/*!
 * Materialize v0.97.6 (http://materializecss.com)
 * Copyright 2014-2015 Materialize
 * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
 */

/* ==========================================================================
   Materialize variables
   ========================================================================== */
/**
 * Table of Contents:
 *
 *  1. Colors
 *  2. Badges
 *  3. Buttons
 *  4. Cards
 *  5. Collapsible
 *  6. Chips
 *  7. Date Picker
 *  8. Dropdown
 *  10. Forms
 *  11. Global
 *  12. Grid
 *  13. Navigation Bar
 *  14. Side Navigation
 *  15. Photo Slider
 *  16. Spinners | Loaders
 *  17. Tabs
 *  18. Tables
 *  19. Toasts
 *  20. Typography
 *  21. Footer
 *  22. Flow Text
 *  23. Collections
 *  24. Progress Bar
 */
/* 1. Colors
   ========================================================================== */
/* 2. Badges
   ========================================================================== */
/* 3. Buttons
   ========================================================================== */
/* 4. Cards
   ========================================================================== */
/* 5. Collapsible
   ========================================================================== */
/* 6. Chips
   ========================================================================== */
/* 7. Date Picker
   ========================================================================== */
/* 8. Dropdown
   ========================================================================== */
/* 9. Fonts
   ========================================================================== */
/* 10. Forms
   ========================================================================== */
/* 11. Global
   ========================================================================== */
/* 12. Grid
   ========================================================================== */
/* 13. Navigation Bar
   ========================================================================== */
/* 14. Side Navigation
   ========================================================================== */
/* 15. Photo Slider
   ========================================================================== */
/* 16. Spinners | Loaders
   ========================================================================== */
/* 17. Tabs
   ========================================================================== */
/* 18. Tables
   ========================================================================== */
/* 19. Toasts
   ========================================================================== */
/* 20. Typography
   ========================================================================== */
/* 21. Footer
   ========================================================================== */
/* 22. Flow Text
   ========================================================================== */
/* 23. Collections
   ========================================================================== */
/* 24. Progress Bar
   ========================================================================== */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0;
}

html {
  box-sizing: border-box;
}

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

ul {
  list-style-type: none;
}

ul.browser-default {
  list-style-type: initial;
}

a {
  color: #039be5;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.valign-wrapper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

.valign-wrapper .valign {
  display: block;
}

ul {
  padding: 0;
}

ul li {
  list-style-type: none;
}

.clearfix {
  clear: both;
}

.z-depth-0 {
  box-shadow: none !important;
}

.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
}

.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {
  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
}

.z-depth-2 {
  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

.z-depth-3 {
  box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.z-depth-4, .modal {
  box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);
}

.z-depth-5 {
  box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);
}

.hoverable {
  transition: box-shadow .25s;
  box-shadow: 0;
}

.hoverable:hover {
  transition: box-shadow .25s;
  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

.divider {
  height: 1px;
  overflow: hidden;
  background-color: #e0e0e0;
}

blockquote {
  margin: 20px 0;
  padding-left: 1.5rem;
  border-left: 5px solid #ee6e73;
}

i {
  line-height: inherit;
}

i.left {
  float: left;
  margin-right: 15px;
}

i.right {
  float: right;
  margin-left: 15px;
}

i.tiny {
  font-size: 1rem;
}

i.small {
  font-size: 2rem;
}

i.medium {
  font-size: 4rem;
}

i.large {
  font-size: 6rem;
}

img.responsive-img,
video.responsive-video {
  max-width: 100%;
  height: auto;
}

.pagination li {
  display: inline-block;
  font-size: 1.2rem;
  padding: 0 10px;
  line-height: 30px;
  border-radius: 2px;
  text-align: center;
}

.pagination li a {
  color: #444;
}

.pagination li.active a {
  color: #fff;
}

.pagination li.active {
  background-color: #ee6e73;
}

.pagination li.disabled a {
  cursor: default;
  color: #999;
}

.pagination li i {
  font-size: 2.2rem;
  vertical-align: middle;
}

.pagination li.pages ul li {
  display: inline-block;
  float: none;
}

@media only screen and (max-width: 992px) {
  .pagination {
    width: 100%;
  }
  .pagination li.prev,
  .pagination li.next {
    width: 10%;
  }
  .pagination li.pages {
    width: 80%;
    overflow: hidden;
    white-space: nowrap;
  }
}

.breadcrumb {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.7);
}

.breadcrumb i,
.breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"],
.breadcrumb i.material-icons {
  display: inline-block;
  float: left;
  font-size: 24px;
}

.breadcrumb:before {
  content: '\E5CC';
  color: rgba(255, 255, 255, 0.7);
  vertical-align: top;
  display: inline-block;
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 25px;
  margin: 0 10px 0 8px;
  -webkit-font-smoothing: antialiased;
}

.breadcrumb:first-child:before {
  display: none;
}

.breadcrumb:last-child {
  color: #fff;
}

.parallax-container {
  position: relative;
  overflow: hidden;
  height: 500px;
}

.parallax {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}

.parallax img {
  display: none;
  position: absolute;
  left: 50%;
  bottom: 0;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.pin-top, .pin-bottom {
  position: relative;
}

.pinned {
  position: fixed !important;
}

/*********************
  Transition Classes
**********************/
ul.staggered-list li {
  opacity: 0;
}

.fade-in {
  opacity: 0;
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
}

/*********************
  Media Query Classes
**********************/
@media only screen and (max-width: 600px) {
  .hide-on-small-only, .hide-on-small-and-down {
    display: none !important;
  }
}

@media only screen and (max-width: 992px) {
  .hide-on-med-and-down {
    display: none !important;
  }
}

@media only screen and (min-width: 601px) {
  .hide-on-med-and-up {
    display: none !important;
  }
}

@media only screen and (min-width: 600px) and (max-width: 992px) {
  .hide-on-med-only {
    display: none !important;
  }
}

@media only screen and (min-width: 993px) {
  .hide-on-large-only {
    display: none !important;
  }
}

@media only screen and (min-width: 993px) {
  .show-on-large {
    display: block !important;
  }
}

@media only screen and (min-width: 600px) and (max-width: 992px) {
  .show-on-medium {
    display: block !important;
  }
}

@media only screen and (max-width: 600px) {
  .show-on-small {
    display: block !important;
  }
}

@media only screen and (min-width: 601px) {
  .show-on-medium-and-up {
    display: block !important;
  }
}

@media only screen and (max-width: 992px) {
  .show-on-medium-and-down {
    display: block !important;
  }
}

@media only screen and (max-width: 600px) {
  .center-on-small-only {
    text-align: center;
  }
}

footer.page-footer {
  margin-top: 20px;
  padding-top: 20px;
  background-color: #ee6e73;
}

footer.page-footer .footer-copyright {
  overflow: hidden;
  height: 50px;
  line-height: 50px;
  color: rgba(255, 255, 255, 0.8);
  background-color: rgba(51, 51, 51, 0.08);
}

table, th, td {
  border: none;
}

table {
  width: 100%;
  display: table;
}

table.bordered > thead > tr,
table.bordered > tbody > tr {
  border-bottom: 1px solid #d0d0d0;
}

table.striped > tbody > tr:nth-child(odd) {
  background-color: #f2f2f2;
}

table.striped > tbody > tr > td {
  border-radius: 0;
}

table.highlight > tbody > tr {
  transition: background-color .25s ease;
}

table.highlight > tbody > tr:hover {
  background-color: #f2f2f2;
}

table.centered thead tr th, table.centered tbody tr td {
  text-align: center;
}

thead {
  border-bottom: 1px solid #d0d0d0;
}

td, th {
  padding: 15px 5px;
  display: table-cell;
  text-align: left;
  vertical-align: middle;
  border-radius: 2px;
}

@media only screen and (max-width: 992px) {
  table.responsive-table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    display: block;
    position: relative;
    /* sort out borders */
  }
  table.responsive-table td:empty:before {
    content: '\00a0';
  }
  table.responsive-table th,
  table.responsive-table td {
    margin: 0;
    vertical-align: top;
  }
  table.responsive-table th {
    text-align: left;
  }
  table.responsive-table thead {
    display: block;
    float: left;
  }
  table.responsive-table thead tr {
    display: block;
    padding: 0 10px 0 0;
  }
  table.responsive-table thead tr th::before {
    content: "\00a0";
  }
  table.responsive-table tbody {
    display: block;
    width: auto;
    position: relative;
    overflow-x: auto;
    white-space: nowrap;
  }
  table.responsive-table tbody tr {
    display: inline-block;
    vertical-align: top;
  }
  table.responsive-table th {
    display: block;
    text-align: right;
  }
  table.responsive-table td {
    display: block;
    min-height: 1.25em;
    text-align: left;
  }
  table.responsive-table tr {
    padding: 0 10px;
  }
  table.responsive-table thead {
    border: 0;
    border-right: 1px solid #d0d0d0;
  }
  table.responsive-table.bordered th {
    border-bottom: 0;
    border-left: 0;
  }
  table.responsive-table.bordered td {
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
  }
  table.responsive-table.bordered tr {
    border: 0;
  }
  table.responsive-table.bordered tbody tr {
    border-right: 1px solid #d0d0d0;
  }
}

.collection {
  margin: 0.5rem 0 1rem 0;
  border: 1px solid #e0e0e0;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}

.collection .collection-item {
  background-color: #fff;
  line-height: 1.5rem;
  padding: 10px 20px;
  margin: 0;
  border-bottom: 1px solid #e0e0e0;
}

.collection .collection-item.avatar {
  min-height: 84px;
  padding-left: 72px;
  position: relative;
}

.collection .collection-item.avatar .circle {
  position: absolute;
  width: 42px;
  height: 42px;
  overflow: hidden;
  left: 15px;
  display: inline-block;
  vertical-align: middle;
}

.collection .collection-item.avatar i.circle {
  font-size: 18px;
  line-height: 42px;
  color: #fff;
  background-color: #999;
  text-align: center;
}

.collection .collection-item.avatar .title {
  font-size: 16px;
}

.collection .collection-item.avatar p {
  margin: 0;
}

.collection .collection-item.avatar .secondary-content {
  position: absolute;
  top: 16px;
  right: 16px;
}

.collection .collection-item:last-child {
  border-bottom: none;
}

.collection .collection-item.active {
  background-color: #26a69a;
  color: #eafaf9;
}

.collection .collection-item.active .secondary-content {
  color: #fff;
}

.collection a.collection-item {
  display: block;
  transition: .25s;
  color: #26a69a;
}

.collection a.collection-item:not(.active):hover {
  background-color: #ddd;
}

.collection.with-header .collection-header {
  background-color: #fff;
  border-bottom: 1px solid #e0e0e0;
  padding: 10px 20px;
}

.collection.with-header .collection-item {
  padding-left: 30px;
}

.collection.with-header .collection-item.avatar {
  padding-left: 72px;
}

.secondary-content {
  float: right;
  color: #26a69a;
}

.collapsible .collection {
  margin: 0;
  border: none;
}

span.badge {
  min-width: 3rem;
  padding: 0 6px;
  text-align: center;
  font-size: 1rem;
  line-height: inherit;
  color: #757575;
  position: absolute;
  right: 15px;
  box-sizing: border-box;
}

span.badge.new {
  font-weight: 300;
  font-size: 0.8rem;
  color: #fff;
  background-color: #26a69a;
  border-radius: 2px;
}

span.badge.new:after {
  content: " new";
}

nav ul a span.badge {
  position: static;
  margin-left: 4px;
  line-height: 0;
}

.video-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.video-container iframe, .video-container object, .video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.progress {
  position: relative;
  height: 4px;
  display: block;
  width: 100%;
  background-color: #acece6;
  border-radius: 2px;
  margin: 0.5rem 0 1rem 0;
  overflow: hidden;
}

.progress .determinate {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  background-color: #26a69a;
  transition: width .3s linear;
}

.progress .indeterminate {
  background-color: #26a69a;
}

.progress .indeterminate:before {
  content: '';
  position: absolute;
  background-color: inherit;
  top: 0;
  left: 0;
  bottom: 0;
  will-change: left, right;
  -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
          animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
}

.progress .indeterminate:after {
  content: '';
  position: absolute;
  background-color: inherit;
  top: 0;
  left: 0;
  bottom: 0;
  will-change: left, right;
  -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
          animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
  -webkit-animation-delay: 1.15s;
          animation-delay: 1.15s;
}

@-webkit-keyframes indeterminate {
  0% {
    left: -35%;
    right: 100%;
  }
  60% {
    left: 100%;
    right: -90%;
  }
  100% {
    left: 100%;
    right: -90%;
  }
}

@keyframes indeterminate {
  0% {
    left: -35%;
    right: 100%;
  }
  60% {
    left: 100%;
    right: -90%;
  }
  100% {
    left: 100%;
    right: -90%;
  }
}

@-webkit-keyframes indeterminate-short {
  0% {
    left: -200%;
    right: 100%;
  }
  60% {
    left: 107%;
    right: -8%;
  }
  100% {
    left: 107%;
    right: -8%;
  }
}

@keyframes indeterminate-short {
  0% {
    left: -200%;
    right: 100%;
  }
  60% {
    left: 107%;
    right: -8%;
  }
  100% {
    left: 107%;
    right: -8%;
  }
}

/*******************
  Utility Classes
*******************/
.hide {
  display: none !important;
}

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

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

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

.left {
  float: left !important;
}

.right {
  float: right !important;
}

.no-select, input[type=range],
input[type=range] + .thumb {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.circle {
  border-radius: 50%;
}

.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.truncate {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.no-padding {
  padding: 0 !important;
}

/* This is needed for some mobile phones to display the Google Icon font properly */
.material-icons {
  text-rendering: optimizeLegibility;
  -webkit-font-feature-settings: 'liga';
     -moz-font-feature-settings: 'liga';
          font-feature-settings: 'liga';
}

.container {
  margin: 0 auto;
  max-width: 1280px;
  width: 90%;
}

@media only screen and (min-width: 601px) {
  .container {
    width: 85%;
  }
}

@media only screen and (min-width: 993px) {
  .container {
    width: 70%;
  }
}

.container .row {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}

.section {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.section.no-pad {
  padding: 0;
}

.section.no-pad-bot {
  padding-bottom: 0;
}

.section.no-pad-top {
  padding-top: 0;
}

.row {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
}

.row:after {
  content: "";
  display: table;
  clear: both;
}

.row .col {
  float: left;
  box-sizing: border-box;
  padding: 0 0.75rem;
}

.row .col[class*="push-"], .row .col[class*="pull-"] {
  position: relative;
}

.row .col.s1 {
  width: 8.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s2 {
  width: 16.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s3 {
  width: 25%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s4 {
  width: 33.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s5 {
  width: 41.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s6 {
  width: 50%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s7 {
  width: 58.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s8 {
  width: 66.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s9 {
  width: 75%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s10 {
  width: 83.3333333333%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s11 {
  width: 91.6666666667%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.s12 {
  width: 100%;
  margin-left: auto;
  left: auto;
  right: auto;
}

.row .col.offset-s1 {
  margin-left: 8.3333333333%;
}

.row .col.pull-s1 {
  right: 8.3333333333%;
}

.row .col.push-s1 {
  left: 8.3333333333%;
}

.row .col.offset-s2 {
  margin-left: 16.6666666667%;
}

.row .col.pull-s2 {
  right: 16.6666666667%;
}

.row .col.push-s2 {
  left: 16.6666666667%;
}

.row .col.offset-s3 {
  margin-left: 25%;
}

.row .col.pull-s3 {
  right: 25%;
}

.row .col.push-s3 {
  left: 25%;
}

.row .col.offset-s4 {
  margin-left: 33.3333333333%;
}

.row .col.pull-s4 {
  right: 33.3333333333%;
}

.row .col.push-s4 {
  left: 33.3333333333%;
}

.row .col.offset-s5 {
  margin-left: 41.6666666667%;
}

.row .col.pull-s5 {
  right: 41.6666666667%;
}

.row .col.push-s5 {
  left: 41.6666666667%;
}

.row .col.offset-s6 {
  margin-left: 50%;
}

.row .col.pull-s6 {
  right: 50%;
}

.row .col.push-s6 {
  left: 50%;
}

.row .col.offset-s7 {
  margin-left: 58.3333333333%;
}

.row .col.pull-s7 {
  right: 58.3333333333%;
}

.row .col.push-s7 {
  left: 58.3333333333%;
}

.row .col.offset-s8 {
  margin-left: 66.6666666667%;
}

.row .col.pull-s8 {
  right: 66.6666666667%;
}

.row .col.push-s8 {
  left: 66.6666666667%;
}

.row .col.offset-s9 {
  margin-left: 75%;
}

.row .col.pull-s9 {
  right: 75%;
}

.row .col.push-s9 {
  left: 75%;
}

.row .col.offset-s10 {
  margin-left: 83.3333333333%;
}

.row .col.pull-s10 {
  right: 83.3333333333%;
}

.row .col.push-s10 {
  left: 83.3333333333%;
}

.row .col.offset-s11 {
  margin-left: 91.6666666667%;
}

.row .col.pull-s11 {
  right: 91.6666666667%;
}

.row .col.push-s11 {
  left: 91.6666666667%;
}

.row .col.offset-s12 {
  margin-left: 100%;
}

.row .col.pull-s12 {
  right: 100%;
}

.row .col.push-s12 {
  left: 100%;
}

@media only screen and (min-width: 601px) {
  .row .col.m1 {
    width: 8.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m2 {
    width: 16.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m3 {
    width: 25%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m4 {
    width: 33.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m5 {
    width: 41.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m6 {
    width: 50%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m7 {
    width: 58.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m8 {
    width: 66.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m9 {
    width: 75%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m10 {
    width: 83.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m11 {
    width: 91.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.m12 {
    width: 100%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.offset-m1 {
    margin-left: 8.3333333333%;
  }
  .row .col.pull-m1 {
    right: 8.3333333333%;
  }
  .row .col.push-m1 {
    left: 8.3333333333%;
  }
  .row .col.offset-m2 {
    margin-left: 16.6666666667%;
  }
  .row .col.pull-m2 {
    right: 16.6666666667%;
  }
  .row .col.push-m2 {
    left: 16.6666666667%;
  }
  .row .col.offset-m3 {
    margin-left: 25%;
  }
  .row .col.pull-m3 {
    right: 25%;
  }
  .row .col.push-m3 {
    left: 25%;
  }
  .row .col.offset-m4 {
    margin-left: 33.3333333333%;
  }
  .row .col.pull-m4 {
    right: 33.3333333333%;
  }
  .row .col.push-m4 {
    left: 33.3333333333%;
  }
  .row .col.offset-m5 {
    margin-left: 41.6666666667%;
  }
  .row .col.pull-m5 {
    right: 41.6666666667%;
  }
  .row .col.push-m5 {
    left: 41.6666666667%;
  }
  .row .col.offset-m6 {
    margin-left: 50%;
  }
  .row .col.pull-m6 {
    right: 50%;
  }
  .row .col.push-m6 {
    left: 50%;
  }
  .row .col.offset-m7 {
    margin-left: 58.3333333333%;
  }
  .row .col.pull-m7 {
    right: 58.3333333333%;
  }
  .row .col.push-m7 {
    left: 58.3333333333%;
  }
  .row .col.offset-m8 {
    margin-left: 66.6666666667%;
  }
  .row .col.pull-m8 {
    right: 66.6666666667%;
  }
  .row .col.push-m8 {
    left: 66.6666666667%;
  }
  .row .col.offset-m9 {
    margin-left: 75%;
  }
  .row .col.pull-m9 {
    right: 75%;
  }
  .row .col.push-m9 {
    left: 75%;
  }
  .row .col.offset-m10 {
    margin-left: 83.3333333333%;
  }
  .row .col.pull-m10 {
    right: 83.3333333333%;
  }
  .row .col.push-m10 {
    left: 83.3333333333%;
  }
  .row .col.offset-m11 {
    margin-left: 91.6666666667%;
  }
  .row .col.pull-m11 {
    right: 91.6666666667%;
  }
  .row .col.push-m11 {
    left: 91.6666666667%;
  }
  .row .col.offset-m12 {
    margin-left: 100%;
  }
  .row .col.pull-m12 {
    right: 100%;
  }
  .row .col.push-m12 {
    left: 100%;
  }
}

@media only screen and (min-width: 993px) {
  .row .col.l1 {
    width: 8.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l2 {
    width: 16.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l3 {
    width: 25%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l4 {
    width: 33.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l5 {
    width: 41.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l6 {
    width: 50%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l7 {
    width: 58.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l8 {
    width: 66.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l9 {
    width: 75%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l10 {
    width: 83.3333333333%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l11 {
    width: 91.6666666667%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.l12 {
    width: 100%;
    margin-left: auto;
    left: auto;
    right: auto;
  }
  .row .col.offset-l1 {
    margin-left: 8.3333333333%;
  }
  .row .col.pull-l1 {
    right: 8.3333333333%;
  }
  .row .col.push-l1 {
    left: 8.3333333333%;
  }
  .row .col.offset-l2 {
    margin-left: 16.6666666667%;
  }
  .row .col.pull-l2 {
    right: 16.6666666667%;
  }
  .row .col.push-l2 {
    left: 16.6666666667%;
  }
  .row .col.offset-l3 {
    margin-left: 25%;
  }
  .row .col.pull-l3 {
    right: 25%;
  }
  .row .col.push-l3 {
    left: 25%;
  }
  .row .col.offset-l4 {
    margin-left: 33.3333333333%;
  }
  .row .col.pull-l4 {
    right: 33.3333333333%;
  }
  .row .col.push-l4 {
    left: 33.3333333333%;
  }
  .row .col.offset-l5 {
    margin-left: 41.6666666667%;
  }
  .row .col.pull-l5 {
    right: 41.6666666667%;
  }
  .row .col.push-l5 {
    left: 41.6666666667%;
  }
  .row .col.offset-l6 {
    margin-left: 50%;
  }
  .row .col.pull-l6 {
    right: 50%;
  }
  .row .col.push-l6 {
    left: 50%;
  }
  .row .col.offset-l7 {
    margin-left: 58.3333333333%;
  }
  .row .col.pull-l7 {
    right: 58.3333333333%;
  }
  .row .col.push-l7 {
    left: 58.3333333333%;
  }
  .row .col.offset-l8 {
    margin-left: 66.6666666667%;
  }
  .row .col.pull-l8 {
    right: 66.6666666667%;
  }
  .row .col.push-l8 {
    left: 66.6666666667%;
  }
  .row .col.offset-l9 {
    margin-left: 75%;
  }
  .row .col.pull-l9 {
    right: 75%;
  }
  .row .col.push-l9 {
    left: 75%;
  }
  .row .col.offset-l10 {
    margin-left: 83.3333333333%;
  }
  .row .col.pull-l10 {
    right: 83.3333333333%;
  }
  .row .col.push-l10 {
    left: 83.3333333333%;
  }
  .row .col.offset-l11 {
    margin-left: 91.6666666667%;
  }
  .row .col.pull-l11 {
    right: 91.6666666667%;
  }
  .row .col.push-l11 {
    left: 91.6666666667%;
  }
  .row .col.offset-l12 {
    margin-left: 100%;
  }
  .row .col.pull-l12 {
    right: 100%;
  }
  .row .col.push-l12 {
    left: 100%;
  }
}

nav {
  color: #fff;
  background-color: #ee6e73;
  width: 100%;
  height: 56px;
  line-height: 56px;
}

nav a {
  color: #fff;
}

nav i,
nav [class^="mdi-"], nav [class*="mdi-"],
nav i.material-icons {
  display: block;
  font-size: 2rem;
  height: 56px;
  line-height: 56px;
}

nav .nav-wrapper {
  position: relative;
  height: 100%;
}

@media only screen and (min-width: 993px) {
  nav a.button-collapse {
    display: none;
  }
}

nav .button-collapse {
  float: left;
  position: relative;
  z-index: 1;
  height: 56px;
}

nav .button-collapse i {
  font-size: 2.7rem;
  height: 56px;
  line-height: 56px;
}

nav .brand-logo {
  position: absolute;
  color: #fff;
  display: inline-block;
  font-size: 2.1rem;
  padding: 0;
  white-space: nowrap;
}

nav .brand-logo.center {
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

@media only screen and (max-width: 992px) {
  nav .brand-logo {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  nav .brand-logo.left, nav .brand-logo.right {
    padding: 0;
    -webkit-transform: none;
            transform: none;
  }
  nav .brand-logo.left {
    left: 0.5rem;
  }
  nav .brand-logo.right {
    right: 0.5rem;
    left: auto;
  }
}

nav .brand-logo.right {
  right: 0.5rem;
  padding: 0;
}

nav ul {
  margin: 0;
}

nav ul li {
  transition: background-color .3s;
  float: left;
  padding: 0;
}

nav ul li.active {
  background-color: rgba(0, 0, 0, 0.1);
}

nav ul a {
  transition: background-color .3s;
  font-size: 1rem;
  color: #fff;
  display: inline-block;
  padding: 0 15px;
  cursor: pointer;
}

nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {
  margin-top: -2px;
  margin-left: 15px;
  margin-right: 15px;
}

nav ul a:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

nav ul.left {
  float: left;
}

nav .input-field {
  margin: 0;
}

nav .input-field input {
  height: 100%;
  font-size: 1.2rem;
  border: none;
  padding-left: 2rem;
}

nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {
  border: none;
  box-shadow: none;
}

nav .input-field label {
  top: 0;
  left: 0;
}

nav .input-field label i {
  color: rgba(255, 255, 255, 0.7);
  transition: color .3s;
}

nav .input-field label.active i {
  color: #fff;
}

nav .input-field label.active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.navbar-fixed {
  position: relative;
  height: 56px;
  z-index: 998;
}

.navbar-fixed nav {
  position: fixed;
}

@media only screen and (min-width: 601px) {
  nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {
    height: 64px;
    line-height: 64px;
  }
  .navbar-fixed {
    height: 64px;
  }
}

@font-face {
  font-family: "Roboto";
  src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot");
  src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");
  font-weight: 200;
}

@font-face {
  font-family: "Roboto";
  src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot");
  src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype");
  font-weight: 300;
}

@font-face {
  font-family: "Roboto";
  src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot");
  src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");
  font-weight: 400;
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/roboto/Roboto-Medium.eot");
  src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");
  font-weight: 500;
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/roboto/Roboto-Bold.eot");
  src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");
  font-weight: 700;
}

a {
  text-decoration: none;
}

html {
  line-height: 1.5;
  font-family: "Roboto", sans-serif;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.87);
}

@media only screen and (min-width: 0) {
  html {
    font-size: 14px;
  }
}

@media only screen and (min-width: 992px) {
  html {
    font-size: 14.5px;
  }
}

@media only screen and (min-width: 1200px) {
  html {
    font-size: 15px;
  }
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  line-height: 1.1;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  font-weight: inherit;
}

h1 {
  font-size: 4.2rem;
  line-height: 110%;
  margin: 2.1rem 0 1.68rem 0;
}

h2 {
  font-size: 3.56rem;
  line-height: 110%;
  margin: 1.78rem 0 1.424rem 0;
}

h3 {
  font-size: 2.92rem;
  line-height: 110%;
  margin: 1.46rem 0 1.168rem 0;
}

h4 {
  font-size: 2.28rem;
  line-height: 110%;
  margin: 1.14rem 0 0.912rem 0;
}

h5 {
  font-size: 1.64rem;
  line-height: 110%;
  margin: 0.82rem 0 0.656rem 0;
}

h6 {
  font-size: 1rem;
  line-height: 110%;
  margin: 0.5rem 0 0.4rem 0;
}

em {
  font-style: italic;
}

strong {
  font-weight: 500;
}

small {
  font-size: 75%;
}

.light, footer.page-footer .footer-copyright {
  font-weight: 300;
}

.thin {
  font-weight: 200;
}

.flow-text {
  font-weight: 300;
}

@media only screen and (min-width: 360px) {
  .flow-text {
    font-size: 1.2rem;
  }
}

@media only screen and (min-width: 390px) {
  .flow-text {
    font-size: 1.224rem;
  }
}

@media only screen and (min-width: 420px) {
  .flow-text {
    font-size: 1.248rem;
  }
}

@media only screen and (min-width: 450px) {
  .flow-text {
    font-size: 1.272rem;
  }
}

@media only screen and (min-width: 480px) {
  .flow-text {
    font-size: 1.296rem;
  }
}

@media only screen and (min-width: 510px) {
  .flow-text {
    font-size: 1.32rem;
  }
}

@media only screen and (min-width: 540px) {
  .flow-text {
    font-size: 1.344rem;
  }
}

@media only screen and (min-width: 570px) {
  .flow-text {
    font-size: 1.368rem;
  }
}

@media only screen and (min-width: 600px) {
  .flow-text {
    font-size: 1.392rem;
  }
}

@media only screen and (min-width: 630px) {
  .flow-text {
    font-size: 1.416rem;
  }
}

@media only screen and (min-width: 660px) {
  .flow-text {
    font-size: 1.44rem;
  }
}

@media only screen and (min-width: 690px) {
  .flow-text {
    font-size: 1.464rem;
  }
}

@media only screen and (min-width: 720px) {
  .flow-text {
    font-size: 1.488rem;
  }
}

@media only screen and (min-width: 750px) {
  .flow-text {
    font-size: 1.512rem;
  }
}

@media only screen and (min-width: 780px) {
  .flow-text {
    font-size: 1.536rem;
  }
}

@media only screen and (min-width: 810px) {
  .flow-text {
    font-size: 1.56rem;
  }
}

@media only screen and (min-width: 840px) {
  .flow-text {
    font-size: 1.584rem;
  }
}

@media only screen and (min-width: 870px) {
  .flow-text {
    font-size: 1.608rem;
  }
}

@media only screen and (min-width: 900px) {
  .flow-text {
    font-size: 1.632rem;
  }
}

@media only screen and (min-width: 930px) {
  .flow-text {
    font-size: 1.656rem;
  }
}

@media only screen and (min-width: 960px) {
  .flow-text {
    font-size: 1.68rem;
  }
}

@media only screen and (max-width: 360px) {
  .flow-text {
    font-size: 1.2rem;
  }
}

.card-panel {
  transition: box-shadow .25s;
  padding: 20px;
  margin: 0.5rem 0 1rem 0;
  border-radius: 2px;
  background-color: #fff;
}

.card {
  position: relative;
  margin: 0.5rem 0 1rem 0;
  background-color: #fff;
  transition: box-shadow .25s;
  border-radius: 2px;
}

.card .card-title {
  font-size: 24px;
  font-weight: 300;
}

.card .card-title.activator {
  cursor: pointer;
}

.card.small, .card.medium, .card.large {
  position: relative;
}

.card.small .card-image, .card.medium .card-image, .card.large .card-image {
  max-height: 60%;
  overflow: hidden;
}

.card.small .card-content, .card.medium .card-content, .card.large .card-content {
  max-height: 40%;
  overflow: hidden;
}

.card.small .card-action, .card.medium .card-action, .card.large .card-action {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.card.small {
  height: 300px;
}

.card.medium {
  height: 400px;
}

.card.large {
  height: 500px;
}

.card .card-image {
  position: relative;
}

.card .card-image img {
  display: block;
  border-radius: 2px 2px 0 0;
  position: relative;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
}

.card .card-image .card-title {
  color: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 20px;
}

.card .card-content {
  padding: 20px;
  border-radius: 0 0 2px 2px;
}

.card .card-content p {
  margin: 0;
  color: inherit;
}

.card .card-content .card-title {
  line-height: 48px;
}

.card .card-action {
  position: relative;
  background-color: inherit;
  border-top: 1px solid rgba(160, 160, 160, 0.2);
  padding: 20px;
  z-index: 2;
}

.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating) {
  color: #ffab40;
  margin-right: 20px;
  transition: color .3s ease;
  text-transform: uppercase;
}

.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating):hover {
  color: #ffd8a6;
}

.card .card-action + .card-reveal {
  z-index: 1;
  padding-bottom: 64px;
}

.card .card-reveal {
  padding: 20px;
  position: absolute;
  background-color: #fff;
  width: 100%;
  overflow-y: auto;
  top: 100%;
  height: 100%;
  z-index: 3;
  display: none;
}

.card .card-reveal .card-title {
  cursor: pointer;
  display: block;
}

#toast-container {
  display: block;
  position: fixed;
  z-index: 10000;
}

@media only screen and (max-width: 600px) {
  #toast-container {
    min-width: 100%;
    bottom: 0%;
  }
}

@media only screen and (min-width: 601px) and (max-width: 992px) {
  #toast-container {
    left: 5%;
    bottom: 7%;
    max-width: 90%;
  }
}

@media only screen and (min-width: 993px) {
  #toast-container {
    top: 10%;
    right: 7%;
    max-width: 86%;
  }
}

.toast {
  border-radius: 2px;
  top: 0;
  width: auto;
  clear: both;
  margin-top: 10px;
  position: relative;
  max-width: 100%;
  height: auto;
  min-height: 48px;
  line-height: 1.5em;
  word-break: break-all;
  background-color: #323232;
  padding: 10px 25px;
  font-size: 1.1rem;
  font-weight: 300;
  color: #fff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.toast .btn, .toast .btn-large, .toast .btn-flat {
  margin: 0;
  margin-left: 3rem;
}

.toast.rounded {
  border-radius: 24px;
}

@media only screen and (max-width: 600px) {
  .toast {
    width: 100%;
    border-radius: 0;
  }
}

@media only screen and (min-width: 601px) and (max-width: 992px) {
  .toast {
    float: left;
  }
}

@media only screen and (min-width: 993px) {
  .toast {
    float: right;
  }
}

.tabs {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  height: 48px;
  background-color: #fff;
  margin: 0 auto;
  width: 100%;
  white-space: nowrap;
}

.tabs .tab {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  display: block;
  float: left;
  text-align: center;
  line-height: 48px;
  height: 48px;
  padding: 0;
  margin: 0;
  text-transform: uppercase;
  text-overflow: ellipsis;
  overflow: hidden;
  letter-spacing: .8px;
  width: 15%;
  min-width: 80px;
}

.tabs .tab a {
  color: #ee6e73;
  display: block;
  width: 100%;
  height: 100%;
  text-overflow: ellipsis;
  overflow: hidden;
  transition: color .28s ease;
}

.tabs .tab a:hover {
  color: #f9c9cb;
}

.tabs .tab.disabled a {
  color: #f9c9cb;
  cursor: default;
}

.tabs .indicator {
  position: absolute;
  bottom: 0;
  height: 2px;
  background-color: #f6b2b5;
  will-change: left, right;
}

.material-tooltip {
  padding: 10px 8px;
  font-size: 1rem;
  z-index: 2000;
  background-color: transparent;
  border-radius: 2px;
  color: #fff;
  min-height: 36px;
  line-height: 120%;
  opacity: 0;
  display: none;
  position: absolute;
  text-align: center;
  max-width: calc(100% - 4px);
  overflow: hidden;
  left: 0;
  top: 0;
  pointer-events: none;
  will-change: top, left;
}

.backdrop {
  position: absolute;
  opacity: 0;
  display: none;
  height: 7px;
  width: 14px;
  border-radius: 0 0 14px 14px;
  background-color: #323232;
  z-index: -1;
  -webkit-transform-origin: 50% 10%;
          transform-origin: 50% 10%;
  will-change: transform, opacity;
}

.btn, .btn-large,
.btn-flat {
  border: none;
  border-radius: 2px;
  display: inline-block;
  height: 36px;
  line-height: 36px;
  outline: 0;
  padding: 0 2rem;
  text-transform: uppercase;
  vertical-align: middle;
  -webkit-tap-highlight-color: transparent;
}

.btn.disabled, .disabled.btn-large,
.btn-floating.disabled,
.btn-large.disabled,
.btn:disabled
.btn-large:disabled, .btn-large:disabled .btn-large:disabled,
.btn-floating:disabled {
  background-color: #DFDFDF !important;
  box-shadow: none;
  color: #9F9F9F !important;
  cursor: default;
}

.btn.disabled *, .disabled.btn-large *,
.btn-floating.disabled *,
.btn-large.disabled *,
.btn:disabled
.btn-large:disabled *, .btn-large:disabled .btn-large:disabled *,
.btn-floating:disabled * {
  pointer-events: none;
}

.btn.disabled:hover, .disabled.btn-large:hover,
.btn-floating.disabled:hover,
.btn-large.disabled:hover,
.btn:disabled
.btn-large:disabled:hover, .btn-large:disabled .btn-large:disabled:hover,
.btn-floating:disabled:hover {
  background-color: #DFDFDF !important;
  color: #9F9F9F !important;
}

.btn i, .btn-large i,
.btn-floating i,
.btn-large i,
.btn-flat i {
  font-size: 1.3rem;
  line-height: inherit;
}

.btn, .btn-large {
  text-decoration: none;
  color: #fff;
  background-color: #26a69a;
  text-align: center;
  letter-spacing: .5px;
  transition: .2s ease-out;
  cursor: pointer;
}

.btn:hover, .btn-large:hover {
  background-color: #2bbbad;
}

.btn-floating {
  display: inline-block;
  color: #fff;
  position: relative;
  overflow: hidden;
  z-index: 1;
  width: 37px;
  height: 37px;
  line-height: 37px;
  padding: 0;
  background-color: #26a69a;
  border-radius: 50%;
  transition: .3s;
  cursor: pointer;
  vertical-align: middle;
}

.btn-floating i {
  width: inherit;
  display: inline-block;
  text-align: center;
  color: #fff;
  font-size: 1.6rem;
  line-height: 37px;
}

.btn-floating:hover {
  background-color: #26a69a;
}

.btn-floating:before {
  border-radius: 0;
}

.btn-floating.btn-large {
  width: 55.5px;
  height: 55.5px;
}

.btn-floating.btn-large i {
  line-height: 55.5px;
}

button.btn-floating {
  border: none;
}

.fixed-action-btn {
  position: fixed;
  right: 23px;
  bottom: 23px;
  padding-top: 15px;
  margin-bottom: 0;
  z-index: 998;
}

.fixed-action-btn.active ul {
  visibility: visible;
}

.fixed-action-btn.horizontal {
  padding: 0 0 0 15px;
}

.fixed-action-btn.horizontal ul {
  text-align: right;
  right: 64px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  height: 100%;
  left: auto;
  width: 500px;
  /*width 100% only goes to width of button container */
}

.fixed-action-btn.horizontal ul li {
  display: inline-block;
  margin: 15px 15px 0 0;
}

.fixed-action-btn ul {
  left: 0;
  right: 0;
  text-align: center;
  position: absolute;
  bottom: 64px;
  margin: 0;
  visibility: hidden;
}

.fixed-action-btn ul li {
  margin-bottom: 15px;
}

.fixed-action-btn ul a.btn-floating {
  opacity: 0;
}

.btn-flat {
  box-shadow: none;
  background-color: transparent;
  color: #343434;
  cursor: pointer;
}

.btn-flat.disabled {
  color: #b3b3b3;
  cursor: default;
}

.btn-large {
  height: 54px;
  line-height: 54px;
}

.btn-large i {
  font-size: 1.6rem;
}

.btn-block {
  display: block;
}

.dropdown-content {
  background-color: #fff;
  margin: 0;
  display: none;
  min-width: 100px;
  max-height: 650px;
  overflow-y: auto;
  opacity: 0;
  position: absolute;
  z-index: 999;
  will-change: width, height;
}

.dropdown-content li {
  clear: both;
  color: rgba(0, 0, 0, 0.87);
  cursor: pointer;
  min-height: 50px;
  line-height: 1.5rem;
  width: 100%;
  text-align: left;
  text-transform: none;
}

.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {
  background-color: #eee;
}

.dropdown-content li.active.selected {
  background-color: #e1e1e1;
}

.dropdown-content li.divider {
  min-height: 0;
  height: 1px;
}

.dropdown-content li > a, .dropdown-content li > span {
  font-size: 16px;
  color: #26a69a;
  display: block;
  line-height: 22px;
  padding: 14px 16px;
}

.dropdown-content li > span > label {
  top: 1px;
  left: 3px;
  height: 18px;
}

.dropdown-content li > a > i {
  height: inherit;
  line-height: inherit;
}

/*!
 * Waves v0.6.0
 * http://fian.my.id/Waves
 *
 * Copyright 2014 Alfiana E. Sibuea and other contributors
 * Released under the MIT license
 * https://github.com/fians/Waves/blob/master/LICENSE
 */
.waves-effect {
  position: relative;
  cursor: pointer;
  display: inline-block;
  overflow: hidden;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  vertical-align: middle;
  z-index: 1;
  will-change: opacity, transform;
  transition: all .3s ease-out;
}

.waves-effect .waves-ripple {
  position: absolute;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  margin-left: -10px;
  opacity: 0;
  background: rgba(0, 0, 0, 0.2);
  transition: all 0.7s ease-out;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transform: scale(0);
          transform: scale(0);
  pointer-events: none;
}

.waves-effect.waves-light .waves-ripple {
  background-color: rgba(255, 255, 255, 0.45);
}

.waves-effect.waves-red .waves-ripple {
  background-color: rgba(244, 67, 54, 0.7);
}

.waves-effect.waves-yellow .waves-ripple {
  background-color: rgba(255, 235, 59, 0.7);
}

.waves-effect.waves-orange .waves-ripple {
  background-color: rgba(255, 152, 0, 0.7);
}

.waves-effect.waves-purple .waves-ripple {
  background-color: rgba(156, 39, 176, 0.7);
}

.waves-effect.waves-green .waves-ripple {
  background-color: rgba(76, 175, 80, 0.7);
}

.waves-effect.waves-teal .waves-ripple {
  background-color: rgba(0, 150, 136, 0.7);
}

.waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] {
  border: 0;
  font-style: normal;
  font-size: inherit;
  text-transform: inherit;
  background: none;
}

.waves-notransition {
  transition: none !important;
}

.waves-circle {
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
}

.waves-input-wrapper {
  border-radius: 0.2em;
  vertical-align: bottom;
}

.waves-input-wrapper .waves-button-input {
  position: relative;
  top: 0;
  left: 0;
  z-index: 1;
}

.waves-circle {
  text-align: center;
  width: 2.5em;
  height: 2.5em;
  line-height: 2.5em;
  border-radius: 50%;
  -webkit-mask-image: none;
}

.waves-block {
  display: block;
}

/* Firefox Bug: link not triggered */
a.waves-effect .waves-ripple {
  z-index: -1;
}

.modal {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  background-color: #fafafa;
  padding: 0;
  max-height: 70%;
  width: 55%;
  margin: auto;
  overflow-y: auto;
  border-radius: 2px;
  will-change: top, opacity;
}

@media only screen and (max-width: 992px) {
  .modal {
    width: 80%;
  }
}

.modal h1, .modal h2, .modal h3, .modal h4 {
  margin-top: 0;
}

.modal .modal-content {
  padding: 24px;
}

.modal .modal-close {
  cursor: pointer;
}

.modal .modal-footer {
  border-radius: 0 0 2px 2px;
  background-color: #fafafa;
  padding: 4px 6px;
  height: 56px;
  width: 100%;
}

.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {
  float: right;
  margin: 6px 0;
}

.lean-overlay {
  position: fixed;
  z-index: 999;
  top: -100px;
  left: 0;
  bottom: 0;
  right: 0;
  height: 125%;
  width: 100%;
  background: #000;
  display: none;
  will-change: opacity;
}

.modal.modal-fixed-footer {
  padding: 0;
  height: 70%;
}

.modal.modal-fixed-footer .modal-content {
  position: absolute;
  height: calc(100% - 56px);
  max-height: 100%;
  width: 100%;
  overflow-y: auto;
}

.modal.modal-fixed-footer .modal-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  position: absolute;
  bottom: 0;
}

.modal.bottom-sheet {
  top: auto;
  bottom: -100%;
  margin: 0;
  width: 100%;
  max-height: 45%;
  border-radius: 0;
  will-change: bottom, opacity;
}

.collapsible {
  border-top: 1px solid #ddd;
  border-right: 1px solid #ddd;
  border-left: 1px solid #ddd;
  margin: 0.5rem 0 1rem 0;
}

.collapsible-header {
  display: block;
  cursor: pointer;
  min-height: 3rem;
  line-height: 3rem;
  padding: 0 1rem;
  background-color: #fff;
  border-bottom: 1px solid #ddd;
}

.collapsible-header i {
  width: 2rem;
  font-size: 1.6rem;
  line-height: 3rem;
  display: block;
  float: left;
  text-align: center;
  margin-right: 1rem;
}

.collapsible-body {
  display: none;
  border-bottom: 1px solid #ddd;
  box-sizing: border-box;
}

.collapsible-body p {
  margin: 0;
  padding: 2rem;
}

.side-nav .collapsible,
.side-nav.fixed .collapsible {
  border: none;
  box-shadow: none;
}

.side-nav .collapsible li,
.side-nav.fixed .collapsible li {
  padding: 0;
}

.side-nav .collapsible-header,
.side-nav.fixed .collapsible-header {
  background-color: transparent;
  border: none;
  line-height: inherit;
  height: inherit;
  padding: 0 30px;
}

.side-nav .collapsible-header:hover,
.side-nav.fixed .collapsible-header:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.side-nav .collapsible-header i,
.side-nav.fixed .collapsible-header i {
  line-height: inherit;
}

.side-nav .collapsible-body,
.side-nav.fixed .collapsible-body {
  border: 0;
  background-color: #fff;
}

.side-nav .collapsible-body li a,
.side-nav.fixed .collapsible-body li a {
  padding: 0 37.5px 0 45px;
}

.collapsible.popout {
  border: none;
  box-shadow: none;
}

.collapsible.popout > li {
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  margin: 0 24px;
  transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.collapsible.popout > li.active {
  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
  margin: 16px 0;
}

.chip {
  display: inline-block;
  height: 32px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.6);
  line-height: 32px;
  padding: 0 12px;
  border-radius: 16px;
  background-color: #e4e4e4;
}

.chip img {
  float: left;
  margin: 0 8px 0 -12px;
  height: 32px;
  width: 32px;
  border-radius: 50%;
}

.chip i.material-icons {
  cursor: pointer;
  float: right;
  font-size: 16px;
  line-height: 32px;
  padding-left: 8px;
}

.materialboxed {
  display: block;
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
  position: relative;
  transition: opacity .4s;
}

.materialboxed:hover {
  will-change: left, top, width, height;
}

.materialboxed:hover:not(.active) {
  opacity: .8;
}

.materialboxed.active {
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
}

#materialbox-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #292929;
  z-index: 1000;
  will-change: opacity;
}

.materialbox-caption {
  position: fixed;
  display: none;
  color: #fff;
  line-height: 50px;
  bottom: 0;
  width: 100%;
  text-align: center;
  padding: 0% 15%;
  height: 50px;
  z-index: 1000;
  -webkit-font-smoothing: antialiased;
}

select:focus {
  outline: 1px solid #c9f3ef;
}

button:focus {
  outline: none;
  background-color: #2ab7a9;
}

label {
  font-size: 0.8rem;
  color: #9e9e9e;
}

/* Text Inputs + Textarea
   ========================================================================== */
/* Style Placeholders */
::-webkit-input-placeholder {
  color: #d1d1d1;
}

:-moz-placeholder {
  /* Firefox 18- */
  color: #d1d1d1;
}

::-moz-placeholder {
  /* Firefox 19+ */
  color: #d1d1d1;
}

:-ms-input-placeholder {
  color: #d1d1d1;
}

/* Text inputs */
input:not([type]),
input[type=text],
input[type=password],
input[type=email],
input[type=url],
input[type=time],
input[type=date],
input[type=datetime],
input[type=datetime-local],
input[type=tel],
input[type=number],
input[type=search],
textarea.materialize-textarea {
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #9e9e9e;
  border-radius: 0;
  outline: none;
  height: 3rem;
  width: 100%;
  font-size: 1rem;
  margin: 0 0 15px 0;
  padding: 0;
  box-shadow: none;
  box-sizing: content-box;
  transition: all 0.3s;
}

input:not([type]):disabled, input:not([type])[readonly="readonly"],
input[type=text]:disabled,
input[type=text][readonly="readonly"],
input[type=password]:disabled,
input[type=password][readonly="readonly"],
input[type=email]:disabled,
input[type=email][readonly="readonly"],
input[type=url]:disabled,
input[type=url][readonly="readonly"],
input[type=time]:disabled,
input[type=time][readonly="readonly"],
input[type=date]:disabled,
input[type=date][readonly="readonly"],
input[type=datetime]:disabled,
input[type=datetime][readonly="readonly"],
input[type=datetime-local]:disabled,
input[type=datetime-local][readonly="readonly"],
input[type=tel]:disabled,
input[type=tel][readonly="readonly"],
input[type=number]:disabled,
input[type=number][readonly="readonly"],
input[type=search]:disabled,
input[type=search][readonly="readonly"],
textarea.materialize-textarea:disabled,
textarea.materialize-textarea[readonly="readonly"] {
  color: rgba(0, 0, 0, 0.26);
  border-bottom: 1px dotted rgba(0, 0, 0, 0.26);
}

input:not([type]):disabled + label,
input:not([type])[readonly="readonly"] + label,
input[type=text]:disabled + label,
input[type=text][readonly="readonly"] + label,
input[type=password]:disabled + label,
input[type=password][readonly="readonly"] + label,
input[type=email]:disabled + label,
input[type=email][readonly="readonly"] + label,
input[type=url]:disabled + label,
input[type=url][readonly="readonly"] + label,
input[type=time]:disabled + label,
input[type=time][readonly="readonly"] + label,
input[type=date]:disabled + label,
input[type=date][readonly="readonly"] + label,
input[type=datetime]:disabled + label,
input[type=datetime][readonly="readonly"] + label,
input[type=datetime-local]:disabled + label,
input[type=datetime-local][readonly="readonly"] + label,
input[type=tel]:disabled + label,
input[type=tel][readonly="readonly"] + label,
input[type=number]:disabled + label,
input[type=number][readonly="readonly"] + label,
input[type=search]:disabled + label,
input[type=search][readonly="readonly"] + label,
textarea.materialize-textarea:disabled + label,
textarea.materialize-textarea[readonly="readonly"] + label {
  color: rgba(0, 0, 0, 0.26);
}

input:not([type]):focus:not([readonly]),
input[type=text]:focus:not([readonly]),
input[type=password]:focus:not([readonly]),
input[type=email]:focus:not([readonly]),
input[type=url]:focus:not([readonly]),
input[type=time]:focus:not([readonly]),
input[type=date]:focus:not([readonly]),
input[type=datetime]:focus:not([readonly]),
input[type=datetime-local]:focus:not([readonly]),
input[type=tel]:focus:not([readonly]),
input[type=number]:focus:not([readonly]),
input[type=search]:focus:not([readonly]),
textarea.materialize-textarea:focus:not([readonly]) {
  border-bottom: 1px solid #26a69a;
  box-shadow: 0 1px 0 0 #26a69a;
}

input:not([type]):focus:not([readonly]) + label,
input[type=text]:focus:not([readonly]) + label,
input[type=password]:focus:not([readonly]) + label,
input[type=email]:focus:not([readonly]) + label,
input[type=url]:focus:not([readonly]) + label,
input[type=time]:focus:not([readonly]) + label,
input[type=date]:focus:not([readonly]) + label,
input[type=datetime]:focus:not([readonly]) + label,
input[type=datetime-local]:focus:not([readonly]) + label,
input[type=tel]:focus:not([readonly]) + label,
input[type=number]:focus:not([readonly]) + label,
input[type=search]:focus:not([readonly]) + label,
textarea.materialize-textarea:focus:not([readonly]) + label {
  color: #26a69a;
}

input:not([type]).valid, input:not([type]):focus.valid,
input[type=text].valid,
input[type=text]:focus.valid,
input[type=password].valid,
input[type=password]:focus.valid,
input[type=email].valid,
input[type=email]:focus.valid,
input[type=url].valid,
input[type=url]:focus.valid,
input[type=time].valid,
input[type=time]:focus.valid,
input[type=date].valid,
input[type=date]:focus.valid,
input[type=datetime].valid,
input[type=datetime]:focus.valid,
input[type=datetime-local].valid,
input[type=datetime-local]:focus.valid,
input[type=tel].valid,
input[type=tel]:focus.valid,
input[type=number].valid,
input[type=number]:focus.valid,
input[type=search].valid,
input[type=search]:focus.valid,
textarea.materialize-textarea.valid,
textarea.materialize-textarea:focus.valid {
  border-bottom: 1px solid #4CAF50;
  box-shadow: 0 1px 0 0 #4CAF50;
}

input:not([type]).valid + label:after,
input:not([type]):focus.valid + label:after,
input[type=text].valid + label:after,
input[type=text]:focus.valid + label:after,
input[type=password].valid + label:after,
input[type=password]:focus.valid + label:after,
input[type=email].valid + label:after,
input[type=email]:focus.valid + label:after,
input[type=url].valid + label:after,
input[type=url]:focus.valid + label:after,
input[type=time].valid + label:after,
input[type=time]:focus.valid + label:after,
input[type=date].valid + label:after,
input[type=date]:focus.valid + label:after,
input[type=datetime].valid + label:after,
input[type=datetime]:focus.valid + label:after,
input[type=datetime-local].valid + label:after,
input[type=datetime-local]:focus.valid + label:after,
input[type=tel].valid + label:after,
input[type=tel]:focus.valid + label:after,
input[type=number].valid + label:after,
input[type=number]:focus.valid + label:after,
input[type=search].valid + label:after,
input[type=search]:focus.valid + label:after,
textarea.materialize-textarea.valid + label:after,
textarea.materialize-textarea:focus.valid + label:after {
  content: attr(data-success);
  color: #4CAF50;
  opacity: 1;
}

input:not([type]).invalid, input:not([type]):focus.invalid,
input[type=text].invalid,
input[type=text]:focus.invalid,
input[type=password].invalid,
input[type=password]:focus.invalid,
input[type=email].invalid,
input[type=email]:focus.invalid,
input[type=url].invalid,
input[type=url]:focus.invalid,
input[type=time].invalid,
input[type=time]:focus.invalid,
input[type=date].invalid,
input[type=date]:focus.invalid,
input[type=datetime].invalid,
input[type=datetime]:focus.invalid,
input[type=datetime-local].invalid,
input[type=datetime-local]:focus.invalid,
input[type=tel].invalid,
input[type=tel]:focus.invalid,
input[type=number].invalid,
input[type=number]:focus.invalid,
input[type=search].invalid,
input[type=search]:focus.invalid,
textarea.materialize-textarea.invalid,
textarea.materialize-textarea:focus.invalid {
  border-bottom: 1px solid #F44336;
  box-shadow: 0 1px 0 0 #F44336;
}

input:not([type]).invalid + label:after,
input:not([type]):focus.invalid + label:after,
input[type=text].invalid + label:after,
input[type=text]:focus.invalid + label:after,
input[type=password].invalid + label:after,
input[type=password]:focus.invalid + label:after,
input[type=email].invalid + label:after,
input[type=email]:focus.invalid + label:after,
input[type=url].invalid + label:after,
input[type=url]:focus.invalid + label:after,
input[type=time].invalid + label:after,
input[type=time]:focus.invalid + label:after,
input[type=date].invalid + label:after,
input[type=date]:focus.invalid + label:after,
input[type=datetime].invalid + label:after,
input[type=datetime]:focus.invalid + label:after,
input[type=datetime-local].invalid + label:after,
input[type=datetime-local]:focus.invalid + label:after,
input[type=tel].invalid + label:after,
input[type=tel]:focus.invalid + label:after,
input[type=number].invalid + label:after,
input[type=number]:focus.invalid + label:after,
input[type=search].invalid + label:after,
input[type=search]:focus.invalid + label:after,
textarea.materialize-textarea.invalid + label:after,
textarea.materialize-textarea:focus.invalid + label:after {
  content: attr(data-error);
  color: #F44336;
  opacity: 1;
}

input:not([type]).validate + label,
input[type=text].validate + label,
input[type=password].validate + label,
input[type=email].validate + label,
input[type=url].validate + label,
input[type=time].validate + label,
input[type=date].validate + label,
input[type=datetime].validate + label,
input[type=datetime-local].validate + label,
input[type=tel].validate + label,
input[type=number].validate + label,
input[type=search].validate + label,
textarea.materialize-textarea.validate + label {
  width: 100%;
  pointer-events: none;
}

input:not([type]) + label:after,
input[type=text] + label:after,
input[type=password] + label:after,
input[type=email] + label:after,
input[type=url] + label:after,
input[type=time] + label:after,
input[type=date] + label:after,
input[type=datetime] + label:after,
input[type=datetime-local] + label:after,
input[type=tel] + label:after,
input[type=number] + label:after,
input[type=search] + label:after,
textarea.materialize-textarea + label:after {
  display: block;
  content: "";
  position: absolute;
  top: 65px;
  opacity: 0;
  transition: .2s opacity ease-out, .2s color ease-out;
}

.input-field {
  position: relative;
  margin-top: 1rem;
}

.input-field label {
  color: #9e9e9e;
  position: absolute;
  top: 0.8rem;
  left: 0.75rem;
  font-size: 1rem;
  cursor: text;
  transition: .2s ease-out;
}

.input-field label.active {
  font-size: 0.8rem;
  -webkit-transform: translateY(-140%);
          transform: translateY(-140%);
}

.input-field .prefix {
  position: absolute;
  width: 3rem;
  font-size: 2rem;
  transition: color .2s;
}

.input-field .prefix.active {
  color: #26a69a;
}

.input-field .prefix ~ input,
.input-field .prefix ~ textarea {
  margin-left: 3rem;
  width: 92%;
  width: calc(100% - 3rem);
}

.input-field .prefix ~ textarea {
  padding-top: .8rem;
}

.input-field .prefix ~ label {
  margin-left: 3rem;
}

@media only screen and (max-width: 992px) {
  .input-field .prefix ~ input {
    width: 86%;
    width: calc(100% - 3rem);
  }
}

@media only screen and (max-width: 600px) {
  .input-field .prefix ~ input {
    width: 80%;
    width: calc(100% - 3rem);
  }
}

/* Search Field */
.input-field input[type=search] {
  display: block;
  line-height: inherit;
  padding-left: 4rem;
  width: calc(100% - 4rem);
}

.input-field input[type=search]:focus {
  background-color: #fff;
  border: 0;
  box-shadow: none;
  color: #444;
}

.input-field input[type=search]:focus + label i,
.input-field input[type=search]:focus ~ .mdi-navigation-close,
.input-field input[type=search]:focus ~ .material-icons {
  color: #444;
}

.input-field input[type=search] + label {
  left: 1rem;
}

.input-field input[type=search] ~ .mdi-navigation-close,
.input-field input[type=search] ~ .material-icons {
  position: absolute;
  top: 0;
  right: 1rem;
  color: transparent;
  cursor: pointer;
  font-size: 2rem;
  transition: .3s color;
}

/* Textarea */
textarea {
  width: 100%;
  height: 3rem;
  background-color: transparent;
}

textarea.materialize-textarea {
  overflow-y: hidden;
  /* prevents scroll bar flash */
  padding: 1.6rem 0;
  /* prevents text jump on Enter keypress */
  resize: none;
  min-height: 3rem;
}

.hiddendiv {
  display: none;
  white-space: pre-wrap;
  word-wrap: break-word;
  overflow-wrap: break-word;
  /* future version of deprecated 'word-wrap' */
  padding-top: 1.2rem;
  /* prevents text jump on Enter keypress */
}

/* Radio Buttons
   ========================================================================== */
[type="radio"]:not(:checked),
[type="radio"]:checked {
  position: absolute;
  left: -9999px;
  opacity: 0;
}

[type="radio"]:not(:checked) + label,
[type="radio"]:checked + label {
  position: relative;
  padding-left: 35px;
  cursor: pointer;
  display: inline-block;
  height: 25px;
  line-height: 25px;
  font-size: 1rem;
  transition: .28s ease;
  /* webkit (konqueror) browsers */
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

[type="radio"] + label:before,
[type="radio"] + label:after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  margin: 4px;
  width: 16px;
  height: 16px;
  z-index: 0;
  transition: .28s ease;
}

/* Unchecked styles */
[type="radio"]:not(:checked) + label:before,
[type="radio"]:not(:checked) + label:after,
[type="radio"]:checked + label:before,
[type="radio"]:checked + label:after,
[type="radio"].with-gap:checked + label:before,
[type="radio"].with-gap:checked + label:after {
  border-radius: 50%;
}

[type="radio"]:not(:checked) + label:before,
[type="radio"]:not(:checked) + label:after {
  border: 2px solid #5a5a5a;
}

[type="radio"]:not(:checked) + label:after {
  z-index: -1;
  -webkit-transform: scale(0);
          transform: scale(0);
}

/* Checked styles */
[type="radio"]:checked + label:before {
  border: 2px solid transparent;
}

[type="radio"]:checked + label:after,
[type="radio"].with-gap:checked + label:before,
[type="radio"].with-gap:checked + label:after {
  border: 2px solid #26a69a;
}

[type="radio"]:checked + label:after,
[type="radio"].with-gap:checked + label:after {
  background-color: #26a69a;
  z-index: 0;
}

[type="radio"]:checked + label:after {
  -webkit-transform: scale(1.02);
          transform: scale(1.02);
}

/* Radio With gap */
[type="radio"].with-gap:checked + label:after {
  -webkit-transform: scale(0.5);
          transform: scale(0.5);
}

/* Focused styles */
[type="radio"].tabbed:focus + label:before {
  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Disabled Radio With gap */
[type="radio"].with-gap:disabled:checked + label:before {
  border: 2px solid rgba(0, 0, 0, 0.26);
}

[type="radio"].with-gap:disabled:checked + label:after {
  border: none;
  background-color: rgba(0, 0, 0, 0.26);
}

/* Disabled style */
[type="radio"]:disabled:not(:checked) + label:before,
[type="radio"]:disabled:checked + label:before {
  background-color: transparent;
  border-color: rgba(0, 0, 0, 0.26);
}

[type="radio"]:disabled + label {
  color: rgba(0, 0, 0, 0.26);
}

[type="radio"]:disabled:not(:checked) + label:before {
  border-color: rgba(0, 0, 0, 0.26);
}

[type="radio"]:disabled:checked + label:after {
  background-color: rgba(0, 0, 0, 0.26);
  border-color: #BDBDBD;
}

/* Checkboxes
   ========================================================================== */
/* CUSTOM CSS CHECKBOXES */
form p {
  margin-bottom: 10px;
  text-align: left;
}

form p:last-child {
  margin-bottom: 0;
}

/* Remove default checkbox */
[type="checkbox"]:not(:checked),
[type="checkbox"]:checked {
  position: absolute;
  left: -9999px;
  opacity: 0;
}

[type="checkbox"] {
  /* checkbox aspect */
}

[type="checkbox"] + label {
  position: relative;
  padding-left: 35px;
  cursor: pointer;
  display: inline-block;
  height: 25px;
  line-height: 25px;
  font-size: 1rem;
  -webkit-user-select: none;
  /* webkit (safari, chrome) browsers */
  -moz-user-select: none;
  /* mozilla browsers */
  -khtml-user-select: none;
  /* webkit (konqueror) browsers */
  -ms-user-select: none;
  /* IE10+ */
}

[type="checkbox"] + label:before,
[type="checkbox"]:not(.filled-in) + label:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 18px;
  z-index: 0;
  border: 2px solid #5a5a5a;
  border-radius: 1px;
  margin-top: 2px;
  transition: .2s;
}

[type="checkbox"]:not(.filled-in) + label:after {
  border: 0;
  -webkit-transform: scale(0);
          transform: scale(0);
}

[type="checkbox"]:not(:checked):disabled + label:before {
  border: none;
  background-color: rgba(0, 0, 0, 0.26);
}

[type="checkbox"].tabbed:focus + label:after {
  -webkit-transform: scale(1);
          transform: scale(1);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
  background-color: rgba(0, 0, 0, 0.1);
}

[type="checkbox"]:checked + label:before {
  top: -4px;
  left: -5px;
  width: 12px;
  height: 22px;
  border-top: 2px solid transparent;
  border-left: 2px solid transparent;
  border-right: 2px solid #26a69a;
  border-bottom: 2px solid #26a69a;
  -webkit-transform: rotate(40deg);
          transform: rotate(40deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}

[type="checkbox"]:checked:disabled + label:before {
  border-right: 2px solid rgba(0, 0, 0, 0.26);
  border-bottom: 2px solid rgba(0, 0, 0, 0.26);
}

/* Indeterminate checkbox */
[type="checkbox"]:indeterminate + label:before {
  top: -11px;
  left: -12px;
  width: 10px;
  height: 22px;
  border-top: none;
  border-left: none;
  border-right: 2px solid #26a69a;
  border-bottom: none;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}

[type="checkbox"]:indeterminate:disabled + label:before {
  border-right: 2px solid rgba(0, 0, 0, 0.26);
  background-color: transparent;
}

[type="checkbox"].filled-in + label:after {
  border-radius: 2px;
}

[type="checkbox"].filled-in + label:before,
[type="checkbox"].filled-in + label:after {
  content: '';
  left: 0;
  position: absolute;
  /* .1s delay is for check animation */
  transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
  z-index: 1;
}

[type="checkbox"].filled-in:not(:checked) + label:before {
  width: 0;
  height: 0;
  border: 3px solid transparent;
  left: 6px;
  top: 10px;
  -webkit-transform: rotateZ(37deg);
  transform: rotateZ(37deg);
  -webkit-transform-origin: 20% 40%;
  transform-origin: 100% 100%;
}

[type="checkbox"].filled-in:not(:checked) + label:after {
  height: 20px;
  width: 20px;
  background-color: transparent;
  border: 2px solid #5a5a5a;
  top: 0px;
  z-index: 0;
}

[type="checkbox"].filled-in:checked + label:before {
  top: 0;
  left: 1px;
  width: 8px;
  height: 13px;
  border-top: 2px solid transparent;
  border-left: 2px solid transparent;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  -webkit-transform: rotateZ(37deg);
  transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

[type="checkbox"].filled-in:checked + label:after {
  top: 0;
  width: 20px;
  height: 20px;
  border: 2px solid #26a69a;
  background-color: #26a69a;
  z-index: 0;
}

[type="checkbox"].filled-in.tabbed:focus + label:after {
  border-radius: 2px;
  border-color: #5a5a5a;
  background-color: rgba(0, 0, 0, 0.1);
}

[type="checkbox"].filled-in.tabbed:checked:focus + label:after {
  border-radius: 2px;
  background-color: #26a69a;
  border-color: #26a69a;
}

[type="checkbox"].filled-in:disabled:not(:checked) + label:before {
  background-color: transparent;
  border: 2px solid transparent;
}

[type="checkbox"].filled-in:disabled:not(:checked) + label:after {
  border-color: transparent;
  background-color: #BDBDBD;
}

[type="checkbox"].filled-in:disabled:checked + label:before {
  background-color: transparent;
}

[type="checkbox"].filled-in:disabled:checked + label:after {
  background-color: #BDBDBD;
  border-color: #BDBDBD;
}

/* Switch
   ========================================================================== */
.switch,
.switch * {
  -webkit-user-select: none;
  -moz-user-select: none;
  -khtml-user-select: none;
  -ms-user-select: none;
}

.switch label {
  cursor: pointer;
}

.switch label input[type=checkbox] {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch label input[type=checkbox]:checked + .lever {
  background-color: #84c7c1;
}

.switch label input[type=checkbox]:checked + .lever:after {
  background-color: #26a69a;
  left: 24px;
}

.switch label .lever {
  content: "";
  display: inline-block;
  position: relative;
  width: 40px;
  height: 15px;
  background-color: #818181;
  border-radius: 15px;
  margin-right: 10px;
  transition: background 0.3s ease;
  vertical-align: middle;
  margin: 0 16px;
}

.switch label .lever:after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 21px;
  height: 21px;
  background-color: #F1F1F1;
  border-radius: 21px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
  left: -5px;
  top: -3px;
  transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;
}

input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);
}

input[type=checkbox]:not(:disabled) ~ .lever:active:after,
input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);
}

.switch input[type=checkbox][disabled] + .lever {
  cursor: default;
}

.switch label input[type=checkbox][disabled] + .lever:after,
.switch label input[type=checkbox][disabled]:checked + .lever:after {
  background-color: #BDBDBD;
}

/* Select Field
   ========================================================================== */
select {
  display: none;
}

select.browser-default {
  display: block;
}

select {
  background-color: rgba(255, 255, 255, 0.9);
  width: 100%;
  padding: 5px;
  border: 1px solid #f2f2f2;
  border-radius: 2px;
  height: 3rem;
}

.select-label {
  position: absolute;
}

.select-wrapper {
  position: relative;
}

.select-wrapper input.select-dropdown {
  position: relative;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #9e9e9e;
  outline: none;
  height: 3rem;
  line-height: 3rem;
  width: 100%;
  font-size: 1rem;
  margin: 0 0 15px 0;
  padding: 0;
  display: block;
}

.select-wrapper span.caret {
  color: initial;
  position: absolute;
  right: 0;
  top: 16px;
  font-size: 10px;
}

.select-wrapper span.caret.disabled {
  color: rgba(0, 0, 0, 0.26);
}

.select-wrapper + label {
  position: absolute;
  top: -14px;
  font-size: 0.8rem;
}

select:disabled {
  color: rgba(0, 0, 0, 0.3);
}

.select-wrapper input.select-dropdown:disabled {
  color: rgba(0, 0, 0, 0.3);
  cursor: default;
  -webkit-user-select: none;
  /* webkit (safari, chrome) browsers */
  -moz-user-select: none;
  /* mozilla browsers */
  -ms-user-select: none;
  /* IE10+ */
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

.select-wrapper i {
  color: rgba(0, 0, 0, 0.3);
}

.select-dropdown li.disabled,
.select-dropdown li.disabled > span,
.select-dropdown li.optgroup {
  color: rgba(0, 0, 0, 0.3);
  background-color: transparent;
}

.prefix ~ .select-wrapper {
  margin-left: 3rem;
  width: 92%;
  width: calc(100% - 3rem);
}

.prefix ~ label {
  margin-left: 3rem;
}

.select-dropdown li img {
  height: 40px;
  width: 40px;
  margin: 5px 15px;
  float: right;
}

.select-dropdown li.optgroup {
  border-top: 1px solid #eee;
}

.select-dropdown li.optgroup.selected > span {
  color: rgba(0, 0, 0, 0.7);
}

.select-dropdown li.optgroup > span {
  color: rgba(0, 0, 0, 0.4);
}

.select-dropdown li.optgroup ~ li.optgroup-option {
  padding-left: 1rem;
}

/* File Input
   ========================================================================== */
.file-field {
  position: relative;
}

.file-field .file-path-wrapper {
  overflow: hidden;
  padding-left: 10px;
}

.file-field input.file-path {
  width: 100%;
}

.file-field .btn, .file-field .btn-large {
  float: left;
  height: 3rem;
  line-height: 3rem;
}

.file-field span {
  cursor: pointer;
}

.file-field input[type=file] {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  font-size: 20px;
  cursor: pointer;
  opacity: 0;
  filter: alpha(opacity=0);
}

/* Range
   ========================================================================== */
.range-field {
  position: relative;
}

input[type=range],
input[type=range] + .thumb {
  cursor: pointer;
}

input[type=range] {
  position: relative;
  background-color: transparent;
  border: none;
  outline: none;
  width: 100%;
  margin: 15px 0;
  padding: 0;
}

input[type=range]:focus {
  outline: none;
}

input[type=range] + .thumb {
  position: absolute;
  border: none;
  height: 0;
  width: 0;
  border-radius: 50%;
  background-color: #26a69a;
  top: 10px;
  margin-left: -6px;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

input[type=range] + .thumb .value {
  display: block;
  width: 30px;
  text-align: center;
  color: #26a69a;
  font-size: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

input[type=range] + .thumb.active {
  border-radius: 50% 50% 50% 0;
}

input[type=range] + .thumb.active .value {
  color: #fff;
  margin-left: -1px;
  margin-top: 8px;
  font-size: 10px;
}

input[type=range] {
  -webkit-appearance: none;
}

input[type=range]::-webkit-slider-runnable-track {
  height: 3px;
  background: #c2c0c2;
  border: none;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: none;
  height: 14px;
  width: 14px;
  border-radius: 50%;
  background-color: #26a69a;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  margin: -5px 0 0 0;
  transition: .3s;
}

input[type=range]:focus::-webkit-slider-runnable-track {
  background: #ccc;
}

input[type=range] {
  /* fix for FF unable to apply focus style bug  */
  border: 1px solid white;
  /*required for proper track sizing in FF*/
}

input[type=range]::-moz-range-track {
  height: 3px;
  background: #ddd;
  border: none;
}

input[type=range]::-moz-range-thumb {
  border: none;
  height: 14px;
  width: 14px;
  border-radius: 50%;
  background: #26a69a;
  margin-top: -5px;
}

input[type=range]:-moz-focusring {
  outline: 1px solid #fff;
  outline-offset: -1px;
}

input[type=range]:focus::-moz-range-track {
  background: #ccc;
}

input[type=range]::-ms-track {
  height: 3px;
  background: transparent;
  border-color: transparent;
  border-width: 6px 0;
  /*remove default tick marks*/
  color: transparent;
}

input[type=range]::-ms-fill-lower {
  background: #777;
}

input[type=range]::-ms-fill-upper {
  background: #ddd;
}

input[type=range]::-ms-thumb {
  border: none;
  height: 14px;
  width: 14px;
  border-radius: 50%;
  background: #26a69a;
}

input[type=range]:focus::-ms-fill-lower {
  background: #888;
}

input[type=range]:focus::-ms-fill-upper {
  background: #ccc;
}

/***************
    Nav List
***************/
.table-of-contents.fixed {
  position: fixed;
}

.table-of-contents li {
  padding: 2px 0;
}

.table-of-contents a {
  display: inline-block;
  font-weight: 300;
  color: #757575;
  padding-left: 20px;
  height: 1.5rem;
  line-height: 1.5rem;
  letter-spacing: .4;
  display: inline-block;
}

.table-of-contents a:hover {
  color: #a8a8a8;
  padding-left: 19px;
  border-left: 1px solid #ea4a4f;
}

.table-of-contents a.active {
  font-weight: 500;
  padding-left: 18px;
  border-left: 2px solid #ea4a4f;
}

.side-nav {
  position: fixed;
  width: 240px;
  left: 0;
  top: 0;
  margin: 0;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  height: 100%;
  height: calc(100% + 60px);
  height: -moz-calc(100%);
  padding-bottom: 60px;
  background-color: #fff;
  z-index: 999;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  overflow-y: auto;
  will-change: transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform: translateX(-105%);
          transform: translateX(-105%);
}

.side-nav.right-aligned {
  right: 0;
  -webkit-transform: translateX(105%);
          transform: translateX(105%);
  left: auto;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.side-nav .collapsible {
  margin: 0;
}

.side-nav li {
  float: none;
  line-height: 64px;
}

.side-nav li.active {
  background-color: rgba(0, 0, 0, 0.05);
}

.side-nav a {
  color: #444;
  display: block;
  font-size: 1rem;
  height: 64px;
  line-height: 64px;
  padding: 0 30px;
}

.side-nav a:hover {
  background-color: rgba(0, 0, 0, 0.05);
}

.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating {
  margin: 10px 15px;
}

.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating {
  color: #fff;
}

.side-nav a.btn-flat {
  color: #343434;
}

.side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover {
  background-color: #2bbbad;
}

.side-nav a.btn-floating:hover {
  background-color: #26a69a;
}

.drag-target {
  height: 100%;
  width: 10px;
  position: fixed;
  top: 0;
  z-index: 998;
}

.side-nav.fixed a {
  display: block;
  padding: 0 30px;
  color: #444;
}

.side-nav.fixed {
  left: 0;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  position: fixed;
}

.side-nav.fixed.right-aligned {
  right: 0;
  left: auto;
}

@media only screen and (max-width: 992px) {
  .side-nav.fixed {
    -webkit-transform: translateX(-105%);
            transform: translateX(-105%);
  }
  .side-nav.fixed.right-aligned {
    -webkit-transform: translateX(105%);
            transform: translateX(105%);
  }
}

.side-nav .collapsible-body li.active,
.side-nav.fixed .collapsible-body li.active {
  background-color: #ee6e73;
}

.side-nav .collapsible-body li.active a,
.side-nav.fixed .collapsible-body li.active a {
  color: #fff;
}

#sidenav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 120vh;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 997;
  will-change: opacity;
}

/*
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
 */
/**************************/
/* STYLES FOR THE SPINNER */
/**************************/
/*
 * Constants:
 *      STROKEWIDTH = 3px
 *      ARCSIZE     = 270 degrees (amount of circle the arc takes up)
 *      ARCTIME     = 1333ms (time it takes to expand and contract arc)
 *      ARCSTARTROT = 216 degrees (how much the start location of the arc
 *                                should rotate each time, 216 gives us a
 *                                5 pointed star shape (it's 360/5 * 3).
 *                                For a 7 pointed star, we might do
 *                                360/7 * 3 = 154.286)
 *      CONTAINERWIDTH = 28px
 *      SHRINK_TIME = 400ms
 */
.preloader-wrapper {
  display: inline-block;
  position: relative;
  width: 48px;
  height: 48px;
}

.preloader-wrapper.small {
  width: 36px;
  height: 36px;
}

.preloader-wrapper.big {
  width: 64px;
  height: 64px;
}

.preloader-wrapper.active {
  /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
  -webkit-animation: container-rotate 1568ms linear infinite;
  animation: container-rotate 1568ms linear infinite;
}

@-webkit-keyframes container-rotate {
  to {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes container-rotate {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

.spinner-layer {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  border-color: #26a69a;
}

.spinner-blue,
.spinner-blue-only {
  border-color: #4285f4;
}

.spinner-red,
.spinner-red-only {
  border-color: #db4437;
}

.spinner-yellow,
.spinner-yellow-only {
  border-color: #f4b400;
}

.spinner-green,
.spinner-green-only {
  border-color: #0f9d58;
}

/**
 * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
 *
 * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
 * guarantee that the animation will start _exactly_ after that value. So we avoid using
 * animation-delay and instead set custom keyframes for each color (as redundant as it
 * seems).
 *
 * We write out each animation in full (instead of separating animation-name,
 * animation-duration, etc.) because under the polyfill, Safari does not recognize those
 * specific properties properly, treats them as -webkit-animation, and overrides the
 * other animation rules. See https://github.com/Polymer/platform/issues/53.
 */
.active .spinner-layer.spinner-blue {
  /* durations: 4 * ARCTIME */
  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.active .spinner-layer.spinner-red {
  /* durations: 4 * ARCTIME */
  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.active .spinner-layer.spinner-yellow {
  /* durations: 4 * ARCTIME */
  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.active .spinner-layer.spinner-green {
  /* durations: 4 * ARCTIME */
  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.active .spinner-layer,
.active .spinner-layer.spinner-blue-only,
.active .spinner-layer.spinner-red-only,
.active .spinner-layer.spinner-yellow-only,
.active .spinner-layer.spinner-green-only {
  /* durations: 4 * ARCTIME */
  opacity: 1;
  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

@-webkit-keyframes fill-unfill-rotate {
  12.5% {
    -webkit-transform: rotate(135deg);
  }
  /* 0.5 * ARCSIZE */
  25% {
    -webkit-transform: rotate(270deg);
  }
  /* 1   * ARCSIZE */
  37.5% {
    -webkit-transform: rotate(405deg);
  }
  /* 1.5 * ARCSIZE */
  50% {
    -webkit-transform: rotate(540deg);
  }
  /* 2   * ARCSIZE */
  62.5% {
    -webkit-transform: rotate(675deg);
  }
  /* 2.5 * ARCSIZE */
  75% {
    -webkit-transform: rotate(810deg);
  }
  /* 3   * ARCSIZE */
  87.5% {
    -webkit-transform: rotate(945deg);
  }
  /* 3.5 * ARCSIZE */
  to {
    -webkit-transform: rotate(1080deg);
  }
  /* 4   * ARCSIZE */
}

@keyframes fill-unfill-rotate {
  12.5% {
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg);
  }
  /* 0.5 * ARCSIZE */
  25% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg);
  }
  /* 1   * ARCSIZE */
  37.5% {
    -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
  }
  /* 1.5 * ARCSIZE */
  50% {
    -webkit-transform: rotate(540deg);
            transform: rotate(540deg);
  }
  /* 2   * ARCSIZE */
  62.5% {
    -webkit-transform: rotate(675deg);
            transform: rotate(675deg);
  }
  /* 2.5 * ARCSIZE */
  75% {
    -webkit-transform: rotate(810deg);
            transform: rotate(810deg);
  }
  /* 3   * ARCSIZE */
  87.5% {
    -webkit-transform: rotate(945deg);
            transform: rotate(945deg);
  }
  /* 3.5 * ARCSIZE */
  to {
    -webkit-transform: rotate(1080deg);
            transform: rotate(1080deg);
  }
  /* 4   * ARCSIZE */
}

@-webkit-keyframes blue-fade-in-out {
  from {
    opacity: 1;
  }
  25% {
    opacity: 1;
  }
  26% {
    opacity: 0;
  }
  89% {
    opacity: 0;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

@keyframes blue-fade-in-out {
  from {
    opacity: 1;
  }
  25% {
    opacity: 1;
  }
  26% {
    opacity: 0;
  }
  89% {
    opacity: 0;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

@-webkit-keyframes red-fade-in-out {
  from {
    opacity: 0;
  }
  15% {
    opacity: 0;
  }
  25% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  51% {
    opacity: 0;
  }
}

@keyframes red-fade-in-out {
  from {
    opacity: 0;
  }
  15% {
    opacity: 0;
  }
  25% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  51% {
    opacity: 0;
  }
}

@-webkit-keyframes yellow-fade-in-out {
  from {
    opacity: 0;
  }
  40% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  75% {
    opacity: 1;
  }
  76% {
    opacity: 0;
  }
}

@keyframes yellow-fade-in-out {
  from {
    opacity: 0;
  }
  40% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  75% {
    opacity: 1;
  }
  76% {
    opacity: 0;
  }
}

@-webkit-keyframes green-fade-in-out {
  from {
    opacity: 0;
  }
  65% {
    opacity: 0;
  }
  75% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes green-fade-in-out {
  from {
    opacity: 0;
  }
  65% {
    opacity: 0;
  }
  75% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/**
 * Patch the gap that appear between the two adjacent div.circle-clipper while the
 * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
 */
.gap-patch {
  position: absolute;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  overflow: hidden;
  border-color: inherit;
}

.gap-patch .circle {
  width: 1000%;
  left: -450%;
}

.circle-clipper {
  display: inline-block;
  position: relative;
  width: 50%;
  height: 100%;
  overflow: hidden;
  border-color: inherit;
}

.circle-clipper .circle {
  width: 200%;
  height: 100%;
  border-width: 3px;
  /* STROKEWIDTH */
  border-style: solid;
  border-color: inherit;
  border-bottom-color: transparent !important;
  border-radius: 50%;
  -webkit-animation: none;
  animation: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
}

.circle-clipper.left .circle {
  left: 0;
  border-right-color: transparent !important;
  -webkit-transform: rotate(129deg);
  transform: rotate(129deg);
}

.circle-clipper.right .circle {
  left: -100%;
  border-left-color: transparent !important;
  -webkit-transform: rotate(-129deg);
  transform: rotate(-129deg);
}

.active .circle-clipper.left .circle {
  /* duration: ARCTIME */
  -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.active .circle-clipper.right .circle {
  /* duration: ARCTIME */
  -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
  animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

@-webkit-keyframes left-spin {
  from {
    -webkit-transform: rotate(130deg);
  }
  50% {
    -webkit-transform: rotate(-5deg);
  }
  to {
    -webkit-transform: rotate(130deg);
  }
}

@keyframes left-spin {
  from {
    -webkit-transform: rotate(130deg);
            transform: rotate(130deg);
  }
  50% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
  to {
    -webkit-transform: rotate(130deg);
            transform: rotate(130deg);
  }
}

@-webkit-keyframes right-spin {
  from {
    -webkit-transform: rotate(-130deg);
  }
  50% {
    -webkit-transform: rotate(5deg);
  }
  to {
    -webkit-transform: rotate(-130deg);
  }
}

@keyframes right-spin {
  from {
    -webkit-transform: rotate(-130deg);
            transform: rotate(-130deg);
  }
  50% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg);
  }
  to {
    -webkit-transform: rotate(-130deg);
            transform: rotate(-130deg);
  }
}

#spinnerContainer.cooldown {
  /* duration: SHRINK_TIME */
  -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
  animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
}

@-webkit-keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.slider {
  position: relative;
  height: 400px;
  width: 100%;
}

.slider.fullscreen {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.slider.fullscreen ul.slides {
  height: 100%;
}

.slider.fullscreen ul.indicators {
  z-index: 2;
  bottom: 30px;
}

.slider .slides {
  background-color: #9e9e9e;
  margin: 0;
  height: 400px;
}

.slider .slides li {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: inherit;
  overflow: hidden;
}

.slider .slides li img {
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
}

.slider .slides li .caption {
  color: #fff;
  position: absolute;
  top: 15%;
  left: 15%;
  width: 70%;
  opacity: 0;
}

.slider .slides li .caption p {
  color: #e0e0e0;
}

.slider .slides li.active {
  z-index: 2;
}

.slider .indicators {
  position: absolute;
  text-align: center;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
}

.slider .indicators .indicator-item {
  display: inline-block;
  position: relative;
  cursor: pointer;
  height: 16px;
  width: 16px;
  margin: 0 12px;
  background-color: #e0e0e0;
  transition: background-color .3s;
  border-radius: 50%;
}

.slider .indicators .indicator-item.active {
  background-color: #4CAF50;
}

.carousel {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 400px;
  -webkit-perspective: 500px;
          perspective: 500px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform-origin: 0% 50%;
          transform-origin: 0% 50%;
}

.carousel .carousel-item {
  width: 200px;
  position: absolute;
  top: 0;
  left: 0;
}

.carousel .carousel-item img {
  width: 100%;
}

.carousel.carousel-slider {
  top: 0;
  left: 0;
  height: 0;
}

.carousel.carousel-slider .carousel-item {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

/* ==========================================================================
   $BASE-PICKER
   ========================================================================== */
/**
 * Note: the root picker element should *NOT* be styled more than what's here.
 */
.picker {
  font-size: 16px;
  text-align: left;
  line-height: 1.2;
  color: #000000;
  position: absolute;
  z-index: 10000;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/**
 * The picker input element.
 */
.picker__input {
  cursor: default;
}

/**
 * When the picker is opened, the input element is "activated".
 */
.picker__input.picker__input--active {
  border-color: #0089ec;
}

/**
 * The holder is the only "scrollable" top-level container element.
 */
.picker__holder {
  width: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/*!
 * Default mobile-first, responsive styling for pickadate.js
 * Demo: http://amsul.github.io/pickadate.js
 */
/**
 * Note: the root picker element should *NOT* be styled more than what's here.
 */
/**
 * Make the holder and frame fullscreen.
 */
.picker__holder,
.picker__frame {
  bottom: 0;
  left: 0;
  right: 0;
  top: 100%;
}

/**
 * The holder should overlay the entire screen.
 */
.picker__holder {
  position: fixed;
  transition: background 0.15s ease-out, top 0s 0.15s;
  -webkit-backface-visibility: hidden;
}

/**
 * The frame that bounds the box contents of the picker.
 */
.picker__frame {
  position: absolute;
  margin: 0 auto;
  min-width: 256px;
  width: 300px;
  max-height: 350px;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -moz-opacity: 0;
  opacity: 0;
  transition: all 0.15s ease-out;
}

@media (min-height: 28.875em) {
  .picker__frame {
    overflow: visible;
    top: auto;
    bottom: -100%;
    max-height: 80%;
  }
}

@media (min-height: 40.125em) {
  .picker__frame {
    margin-bottom: 7.5%;
  }
}

/**
 * The wrapper sets the stage to vertically align the box contents.
 */
.picker__wrap {
  display: table;
  width: 100%;
  height: 100%;
}

@media (min-height: 28.875em) {
  .picker__wrap {
    display: block;
  }
}

/**
 * The box contains all the picker contents.
 */
.picker__box {
  background: #ffffff;
  display: table-cell;
  vertical-align: middle;
}

@media (min-height: 28.875em) {
  .picker__box {
    display: block;
    border: 1px solid #777777;
    border-top-color: #898989;
    border-bottom-width: 0;
    border-radius: 5px 5px 0 0;
    box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
  }
}

/**
 * When the picker opens...
 */
.picker--opened .picker__holder {
  top: 0;
  background: transparent;
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
  zoom: 1;
  background: rgba(0, 0, 0, 0.32);
  transition: background 0.15s ease-out;
}

.picker--opened .picker__frame {
  top: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: alpha(opacity=100);
  -moz-opacity: 1;
  opacity: 1;
}

@media (min-height: 35.875em) {
  .picker--opened .picker__frame {
    top: 10%;
    bottom: auto;
  }
}

/**
 * For `large` screens, transform into an inline picker.
 */
/* ==========================================================================
   CUSTOM MATERIALIZE STYLES
   ========================================================================== */
.picker__input.picker__input--active {
  border-color: #E3F2FD;
}

.picker__frame {
  margin: 0 auto;
  max-width: 325px;
}

@media (min-height: 38.875em) {
  .picker--opened .picker__frame {
    top: 10%;
    bottom: auto;
  }
}

/* ==========================================================================
   $BASE-DATE-PICKER
   ========================================================================== */
/**
 * The picker box.
 */
.picker__box {
  padding: 0 1em;
}

/**
 * The header containing the month and year stuff.
 */
.picker__header {
  text-align: center;
  position: relative;
  margin-top: .75em;
}

/**
 * The month and year labels.
 */
.picker__month,
.picker__year {
  display: inline-block;
  margin-left: .25em;
  margin-right: .25em;
}

/**
 * The month and year selectors.
 */
.picker__select--month,
.picker__select--year {
  height: 2em;
  padding: 0;
  margin-left: .25em;
  margin-right: .25em;
}

.picker__select--month.browser-default {
  display: inline;
  background-color: #FFFFFF;
  width: 40%;
}

.picker__select--year.browser-default {
  display: inline;
  background-color: #FFFFFF;
  width: 26%;
}

.picker__select--month:focus,
.picker__select--year:focus {
  border-color: rgba(0, 0, 0, 0.05);
}

/**
 * The month navigation buttons.
 */
.picker__nav--prev,
.picker__nav--next {
  position: absolute;
  padding: .5em 1.25em;
  width: 1em;
  height: 1em;
  box-sizing: content-box;
  top: -0.25em;
}

.picker__nav--prev {
  left: -1em;
  padding-right: 1.25em;
}

.picker__nav--next {
  right: -1em;
  padding-left: 1.25em;
}

.picker__nav--disabled,
.picker__nav--disabled:hover,
.picker__nav--disabled:before,
.picker__nav--disabled:before:hover {
  cursor: default;
  background: none;
  border-right-color: #f5f5f5;
  border-left-color: #f5f5f5;
}

/**
 * The calendar table of dates
 */
.picker__table {
  text-align: center;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
  font-size: 1rem;
  width: 100%;
  margin-top: .75em;
  margin-bottom: .5em;
}

.picker__table th, .picker__table td {
  text-align: center;
}

.picker__table td {
  margin: 0;
  padding: 0;
}

/**
 * The weekday labels
 */
.picker__weekday {
  width: 14.285714286%;
  font-size: .75em;
  padding-bottom: .25em;
  color: #999999;
  font-weight: 500;
  /* Increase the spacing a tad */
}

@media (min-height: 33.875em) {
  .picker__weekday {
    padding-bottom: .5em;
  }
}

/**
 * The days on the calendar
 */
.picker__day--today {
  position: relative;
  color: #595959;
  letter-spacing: -.3;
  padding: .75rem 0;
  font-weight: 400;
  border: 1px solid transparent;
}

.picker__day--disabled:before {
  border-top-color: #aaaaaa;
}

.picker__day--infocus:hover {
  cursor: pointer;
  color: #000;
  font-weight: 500;
}

.picker__day--outfocus {
  display: none;
  padding: .75rem 0;
  color: #fff;
}

.picker__day--outfocus:hover {
  cursor: pointer;
  color: #dddddd;
  font-weight: 500;
}

.picker__day--highlighted:hover,
.picker--focused .picker__day--highlighted {
  cursor: pointer;
}

.picker__day--selected,
.picker__day--selected:hover,
.picker--focused .picker__day--selected {
  border-radius: 50%;
  -webkit-transform: scale(0.75);
          transform: scale(0.75);
  background: #0089ec;
  color: #ffffff;
}

.picker__day--disabled,
.picker__day--disabled:hover,
.picker--focused .picker__day--disabled {
  background: #f5f5f5;
  border-color: #f5f5f5;
  color: #dddddd;
  cursor: default;
}

.picker__day--highlighted.picker__day--disabled,
.picker__day--highlighted.picker__day--disabled:hover {
  background: #bbbbbb;
}

/**
 * The footer containing the "today", "clear", and "close" buttons.
 */
.picker__footer {
  text-align: center;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.picker__button--today,
.picker__button--clear,
.picker__button--close {
  border: 1px solid #ffffff;
  background: #ffffff;
  font-size: .8em;
  padding: .66em 0;
  font-weight: bold;
  width: 33%;
  display: inline-block;
  vertical-align: bottom;
}

.picker__button--today:hover,
.picker__button--clear:hover,
.picker__button--close:hover {
  cursor: pointer;
  color: #000000;
  background: #b1dcfb;
  border-bottom-color: #b1dcfb;
}

.picker__button--today:focus,
.picker__button--clear:focus,
.picker__button--close:focus {
  background: #b1dcfb;
  border-color: rgba(0, 0, 0, 0.05);
  outline: none;
}

.picker__button--today:before,
.picker__button--clear:before,
.picker__button--close:before {
  position: relative;
  display: inline-block;
  height: 0;
}

.picker__button--today:before,
.picker__button--clear:before {
  content: " ";
  margin-right: .45em;
}

.picker__button--today:before {
  top: -0.05em;
  width: 0;
  border-top: 0.66em solid #0059bc;
  border-left: .66em solid transparent;
}

.picker__button--clear:before {
  top: -0.25em;
  width: .66em;
  border-top: 3px solid #ee2200;
}

.picker__button--close:before {
  content: "\D7";
  top: -0.1em;
  vertical-align: top;
  font-size: 1.1em;
  margin-right: .35em;
  color: #777777;
}

.picker__button--today[disabled],
.picker__button--today[disabled]:hover {
  background: #f5f5f5;
  border-color: #f5f5f5;
  color: #dddddd;
  cursor: default;
}

.picker__button--today[disabled]:before {
  border-top-color: #aaaaaa;
}

/* ==========================================================================
   CUSTOM MATERIALIZE STYLES
   ========================================================================== */
.picker__box {
  border-radius: 2px;
  overflow: hidden;
}

.picker__date-display {
  text-align: center;
  background-color: #26a69a;
  color: #fff;
  padding-bottom: 15px;
  font-weight: 300;
}

.picker__nav--prev:hover,
.picker__nav--next:hover {
  cursor: pointer;
  color: #000000;
  background: #a1ded8;
}

.picker__weekday-display {
  background-color: #1f897f;
  padding: 10px;
  font-weight: 200;
  letter-spacing: .5;
  font-size: 1rem;
  margin-bottom: 15px;
}

.picker__month-display {
  text-transform: uppercase;
  font-size: 2rem;
}

.picker__day-display {
  font-size: 4.5rem;
  font-weight: 400;
}

.picker__year-display {
  font-size: 1.8rem;
  color: rgba(255, 255, 255, 0.4);
}

.picker__box {
  padding: 0;
}

.picker__calendar-container {
  padding: 0 1rem;
}

.picker__calendar-container thead {
  border: none;
}

.picker__table {
  margin-top: 0;
  margin-bottom: .5em;
}

.picker__day--infocus {
  color: #595959;
  letter-spacing: -.3;
  padding: .75rem 0;
  font-weight: 400;
  border: 1px solid transparent;
}

.picker__day.picker__day--today {
  color: #26a69a;
}

.picker__day.picker__day--today.picker__day--selected {
  color: #fff;
}

.picker__weekday {
  font-size: .9rem;
}

.picker__day--selected,
.picker__day--selected:hover,
.picker--focused .picker__day--selected {
  border-radius: 50%;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
  background-color: #26a69a;
  color: #ffffff;
}

.picker__day--selected.picker__day--outfocus,
.picker__day--selected:hover.picker__day--outfocus,
.picker--focused .picker__day--selected.picker__day--outfocus {
  background-color: #a1ded8;
}

.picker__footer {
  text-align: right;
  padding: 5px 10px;
}

.picker__close, .picker__today {
  font-size: 1.1rem;
  padding: 0 1rem;
  color: #26a69a;
}

.picker__nav--prev:before,
.picker__nav--next:before {
  content: " ";
  border-top: .5em solid transparent;
  border-bottom: .5em solid transparent;
  border-right: 0.75em solid #676767;
  width: 0;
  height: 0;
  display: block;
  margin: 0 auto;
}

.picker__nav--next:before {
  border-right: 0;
  border-left: 0.75em solid #676767;
}

button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {
  background-color: #a1ded8;
}

/* ==========================================================================
   $BASE-TIME-PICKER
   ========================================================================== */
/**
 * The list of times.
 */
.picker__list {
  list-style: none;
  padding: 0.75em 0 4.2em;
  margin: 0;
}

/**
 * The times on the clock.
 */
.picker__list-item {
  border-bottom: 1px solid #dddddd;
  border-top: 1px solid #dddddd;
  margin-bottom: -1px;
  position: relative;
  background: #ffffff;
  padding: .75em 1.25em;
}

@media (min-height: 46.75em) {
  .picker__list-item {
    padding: .5em 1em;
  }
}

/* Hovered time */
.picker__list-item:hover {
  cursor: pointer;
  color: #000000;
  background: #b1dcfb;
  border-color: #0089ec;
  z-index: 10;
}

/* Highlighted and hovered/focused time */
.picker__list-item--highlighted {
  border-color: #0089ec;
  z-index: 10;
}

.picker__list-item--highlighted:hover,
.picker--focused .picker__list-item--highlighted {
  cursor: pointer;
  color: #000000;
  background: #b1dcfb;
}

/* Selected and hovered/focused time */
.picker__list-item--selected,
.picker__list-item--selected:hover,
.picker--focused .picker__list-item--selected {
  background: #0089ec;
  color: #ffffff;
  z-index: 10;
}

/* Disabled time */
.picker__list-item--disabled,
.picker__list-item--disabled:hover,
.picker--focused .picker__list-item--disabled {
  background: #f5f5f5;
  border-color: #f5f5f5;
  color: #dddddd;
  cursor: default;
  border-color: #dddddd;
  z-index: auto;
}

/**
 * The clear button
 */
.picker--time .picker__button--clear {
  display: block;
  width: 80%;
  margin: 1em auto 0;
  padding: 1em 1.25em;
  background: none;
  border: 0;
  font-weight: 500;
  font-size: .67em;
  text-align: center;
  text-transform: uppercase;
  color: #666;
}

.picker--time .picker__button--clear:hover,
.picker--time .picker__button--clear:focus {
  color: #000000;
  background: #b1dcfb;
  background: #ee2200;
  border-color: #ee2200;
  cursor: pointer;
  color: #ffffff;
  outline: none;
}

.picker--time .picker__button--clear:before {
  top: -0.25em;
  color: #666;
  font-size: 1.25em;
  font-weight: bold;
}

.picker--time .picker__button--clear:hover:before,
.picker--time .picker__button--clear:focus:before {
  color: #ffffff;
}

/* ==========================================================================
   $DEFAULT-TIME-PICKER
   ========================================================================== */
/**
 * The frame the bounds the time picker.
 */
.picker--time .picker__frame {
  min-width: 256px;
  max-width: 320px;
}

/**
 * The picker box.
 */
.picker--time .picker__box {
  font-size: 1em;
  background: #f2f2f2;
  padding: 0;
}

@media (min-height: 40.125em) {
  .picker--time .picker__box {
    margin-bottom: 5em;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJtYXRlcmlhbGl6ZS5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBNYXRlcmlhbGl6ZSB2MC45Ny42IChodHRwOi8vbWF0ZXJpYWxpemVjc3MuY29tKVxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSBNYXRlcmlhbGl6ZVxuICogTUlUIExpY2Vuc2UgKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Eb2dmYWxvL21hdGVyaWFsaXplL21hc3Rlci9MSUNFTlNFKVxuICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNYXRlcmlhbGl6ZSB2YXJpYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRhYmxlIG9mIENvbnRlbnRzOlxuICpcbiAqICAxLiBDb2xvcnNcbiAqICAyLiBCYWRnZXNcbiAqICAzLiBCdXR0b25zXG4gKiAgNC4gQ2FyZHNcbiAqICA1LiBDb2xsYXBzaWJsZVxuICogIDYuIENoaXBzXG4gKiAgNy4gRGF0ZSBQaWNrZXJcbiAqICA4LiBEcm9wZG93blxuICogIDEwLiBGb3Jtc1xuICogIDExLiBHbG9iYWxcbiAqICAxMi4gR3JpZFxuICogIDEzLiBOYXZpZ2F0aW9uIEJhclxuICogIDE0LiBTaWRlIE5hdmlnYXRpb25cbiAqICAxNS4gUGhvdG8gU2xpZGVyXG4gKiAgMTYuIFNwaW5uZXJzIHwgTG9hZGVyc1xuICogIDE3LiBUYWJzXG4gKiAgMTguIFRhYmxlc1xuICogIDE5LiBUb2FzdHNcbiAqICAyMC4gVHlwb2dyYXBoeVxuICogIDIxLiBGb290ZXJcbiAqICAyMi4gRmxvdyBUZXh0XG4gKiAgMjMuIENvbGxlY3Rpb25zXG4gKiAgMjQuIFByb2dyZXNzIEJhclxuICovXG4vKiAxLiBDb2xvcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAyLiBCYWRnZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAzLiBCdXR0b25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogNC4gQ2FyZHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA1LiBDb2xsYXBzaWJsZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDYuIENoaXBzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogNy4gRGF0ZSBQaWNrZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA4LiBEcm9wZG93blxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDkuIEZvbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMTAuIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMTEuIEdsb2JhbFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDEyLiBHcmlkXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMTMuIE5hdmlnYXRpb24gQmFyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMTQuIFNpZGUgTmF2aWdhdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDE1LiBQaG90byBTbGlkZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAxNi4gU3Bpbm5lcnMgfCBMb2FkZXJzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMTcuIFRhYnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAxOC4gVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMTkuIFRvYXN0c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDIwLiBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMjEuIEZvb3RlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDIyLiBGbG93IFRleHRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAyMy4gQ29sbGVjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAyNC4gUHJvZ3Jlc3MgQmFyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxudWwuYnJvd3Nlci1kZWZhdWx0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBpbml0aWFsO1xufVxuXG5hIHtcbiAgY29sb3I6ICMwMzliZTU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnZhbGlnbi13cmFwcGVyIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udmFsaWduLXdyYXBwZXIgLnZhbGlnbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG51bCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnVsIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4uY2xlYXJmaXgge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnotZGVwdGgtMCB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnotZGVwdGgtMSwgbmF2LCAuY2FyZC1wYW5lbCwgLmNhcmQsIC50b2FzdCwgLmJ0biwgLmJ0bi1sYXJnZSwgLmJ0bi1mbG9hdGluZywgLmRyb3Bkb3duLWNvbnRlbnQsIC5jb2xsYXBzaWJsZSwgLnNpZGUtbmF2IHtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi56LWRlcHRoLTEtaGFsZiwgLmJ0bjpob3ZlciwgLmJ0bi1sYXJnZTpob3ZlciwgLmJ0bi1mbG9hdGluZzpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDExcHggMCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDRweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cblxuLnotZGVwdGgtMiB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE3cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuXG4uei1kZXB0aC0zIHtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpLCAwIDE3cHggNTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XG59XG5cbi56LWRlcHRoLTQsIC5tb2RhbCB7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAyOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIyKSwgMCAyNXB4IDU1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjEpO1xufVxuXG4uei1kZXB0aC01IHtcbiAgYm94LXNoYWRvdzogMCAyN3B4IDI0cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNDBweCA3N3B4IDAgcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuLmhvdmVyYWJsZSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjI1cztcbiAgYm94LXNoYWRvdzogMDtcbn1cblxuLmhvdmVyYWJsZTpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjI1cztcbiAgYm94LXNoYWRvdzogMCA4cHggMTdweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XG59XG5cbi5kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDIwcHggMDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgI2VlNmU3Mztcbn1cblxuaSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5pLmxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG5pLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuaS50aW55IHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5pLnNtYWxsIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG5pLm1lZGl1bSB7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbn1cblxuaS5sYXJnZSB7XG4gIGZvbnQtc2l6ZTogNnJlbTtcbn1cblxuaW1nLnJlc3BvbnNpdmUtaW1nLFxudmlkZW8ucmVzcG9uc2l2ZS12aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucGFnaW5hdGlvbiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGFnaW5hdGlvbiBsaSBhIHtcbiAgY29sb3I6ICM0NDQ7XG59XG5cbi5wYWdpbmF0aW9uIGxpLmFjdGl2ZSBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYWdpbmF0aW9uIGxpLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZTZlNzM7XG59XG5cbi5wYWdpbmF0aW9uIGxpLmRpc2FibGVkIGEge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4ucGFnaW5hdGlvbiBsaSBpIHtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5wYWdpbmF0aW9uIGxpLnBhZ2VzIHVsIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAucGFnaW5hdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnBhZ2luYXRpb24gbGkucHJldixcbiAgLnBhZ2luYXRpb24gbGkubmV4dCB7XG4gICAgd2lkdGg6IDEwJTtcbiAgfVxuICAucGFnaW5hdGlvbiBsaS5wYWdlcyB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5cbi5icmVhZGNydW1iIGksXG4uYnJlYWRjcnVtYiBbY2xhc3NePVwibWRpLVwiXSwgLmJyZWFkY3J1bWIgW2NsYXNzKj1cIm1kaS1cIl0sXG4uYnJlYWRjcnVtYiBpLm1hdGVyaWFsLWljb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uYnJlYWRjcnVtYjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxFNUNDJztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDI1cHg7XG4gIG1hcmdpbjogMCAxMHB4IDAgOHB4O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLmJyZWFkY3J1bWI6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJyZWFkY3J1bWI6bGFzdC1jaGlsZCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ucGFyYWxsYXgtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDUwMHB4O1xufVxuXG4ucGFyYWxsYXgge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogLTE7XG59XG5cbi5wYXJhbGxheCBpbWcge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAwO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4ucGluLXRvcCwgLnBpbi1ib3R0b20ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5waW5uZWQge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuICBUcmFuc2l0aW9uIENsYXNzZXNcbioqKioqKioqKioqKioqKioqKioqKiovXG51bC5zdGFnZ2VyZWQtbGlzdCBsaSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5mYWRlLWluIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuICBNZWRpYSBRdWVyeSBDbGFzc2VzXG4qKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuaGlkZS1vbi1zbWFsbC1vbmx5LCAuaGlkZS1vbi1zbWFsbC1hbmQtZG93biB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLmhpZGUtb24tbWVkLWFuZC1kb3duIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDFweCkge1xuICAuaGlkZS1vbi1tZWQtYW5kLXVwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5oaWRlLW9uLW1lZC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTNweCkge1xuICAuaGlkZS1vbi1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTNweCkge1xuICAuc2hvdy1vbi1sYXJnZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLnNob3ctb24tbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnNob3ctb24tc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDFweCkge1xuICAuc2hvdy1vbi1tZWRpdW0tYW5kLXVwIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLnNob3ctb24tbWVkaXVtLWFuZC1kb3duIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmNlbnRlci1vbi1zbWFsbC1vbmx5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuZm9vdGVyLnBhZ2UtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZTZlNzM7XG59XG5cbmZvb3Rlci5wYWdlLWZvb3RlciAuZm9vdGVyLWNvcHlyaWdodCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogNTBweDtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC4wOCk7XG59XG5cbnRhYmxlLCB0aCwgdGQge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG50YWJsZS5ib3JkZXJlZCA+IHRoZWFkID4gdHIsXG50YWJsZS5ib3JkZXJlZCA+IHRib2R5ID4gdHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDBkMDtcbn1cblxudGFibGUuc3RyaXBlZCA+IHRib2R5ID4gdHI6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG50YWJsZS5zdHJpcGVkID4gdGJvZHkgPiB0ciA+IHRkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxudGFibGUuaGlnaGxpZ2h0ID4gdGJvZHkgPiB0ciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjI1cyBlYXNlO1xufVxuXG50YWJsZS5oaWdobGlnaHQgPiB0Ym9keSA+IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxudGFibGUuY2VudGVyZWQgdGhlYWQgdHIgdGgsIHRhYmxlLmNlbnRlcmVkIHRib2R5IHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG50aGVhZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDBkMGQwO1xufVxuXG50ZCwgdGgge1xuICBwYWRkaW5nOiAxNXB4IDVweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8qIHNvcnQgb3V0IGJvcmRlcnMgKi9cbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRkOmVtcHR5OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMDBhMCc7XG4gIH1cbiAgdGFibGUucmVzcG9uc2l2ZS10YWJsZSB0aCxcbiAgdGFibGUucmVzcG9uc2l2ZS10YWJsZSB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cbiAgdGFibGUucmVzcG9uc2l2ZS10YWJsZSB0aCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRoZWFkIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdGhlYWQgdHIgdGg6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDAwYTBcIjtcbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRib2R5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdGJvZHkgdHIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdGgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1pbi1oZWlnaHQ6IDEuMjVlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdHIge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRoZWFkIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2QwZDBkMDtcbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlLmJvcmRlcmVkIHRoIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUuYm9yZGVyZWQgdGQge1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG4gIHRhYmxlLnJlc3BvbnNpdmUtdGFibGUuYm9yZGVyZWQgdHIge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuICB0YWJsZS5yZXNwb25zaXZlLXRhYmxlLmJvcmRlcmVkIHRib2R5IHRyIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDBkMGQwO1xuICB9XG59XG5cbi5jb2xsZWN0aW9uIHtcbiAgbWFyZ2luOiAwLjVyZW0gMCAxcmVtIDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xufVxuXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciB7XG4gIG1pbi1oZWlnaHQ6IDg0cHg7XG4gIHBhZGRpbmctbGVmdDogNzJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciAuY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsZWZ0OiAxNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIGkuY2lyY2xlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogNDJweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBwIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciAuc2Vjb25kYXJ5LWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTZweDtcbiAgcmlnaHQ6IDE2cHg7XG59XG5cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgY29sb3I6ICNlYWZhZjk7XG59XG5cbi5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYWN0aXZlIC5zZWNvbmRhcnktY29udGVudCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uY29sbGVjdGlvbiBhLmNvbGxlY3Rpb24taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2l0aW9uOiAuMjVzO1xuICBjb2xvcjogIzI2YTY5YTtcbn1cblxuLmNvbGxlY3Rpb24gYS5jb2xsZWN0aW9uLWl0ZW06bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbn1cblxuLmNvbGxlY3Rpb24ud2l0aC1oZWFkZXIgLmNvbGxlY3Rpb24taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbn1cblxuLmNvbGxlY3Rpb24ud2l0aC1oZWFkZXIgLmNvbGxlY3Rpb24taXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbn1cblxuLmNvbGxlY3Rpb24ud2l0aC1oZWFkZXIgLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIge1xuICBwYWRkaW5nLWxlZnQ6IDcycHg7XG59XG5cbi5zZWNvbmRhcnktY29udGVudCB7XG4gIGZsb2F0OiByaWdodDtcbiAgY29sb3I6ICMyNmE2OWE7XG59XG5cbi5jb2xsYXBzaWJsZSAuY29sbGVjdGlvbiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG5zcGFuLmJhZGdlIHtcbiAgbWluLXdpZHRoOiAzcmVtO1xuICBwYWRkaW5nOiAwIDZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzc1NzU3NTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuc3Bhbi5iYWRnZS5uZXcge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuc3Bhbi5iYWRnZS5uZXc6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBuZXdcIjtcbn1cblxubmF2IHVsIGEgc3Bhbi5iYWRnZSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4udmlkZW8tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi52aWRlby1jb250YWluZXIgaWZyYW1lLCAudmlkZW8tY29udGFpbmVyIG9iamVjdCwgLnZpZGVvLWNvbnRhaW5lciBlbWJlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhY2VjZTY7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWFyZ2luOiAwLjVyZW0gMCAxcmVtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wcm9ncmVzcyAuZGV0ZXJtaW5hdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAuM3MgbGluZWFyO1xufVxuXG4ucHJvZ3Jlc3MgLmluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xufVxuXG4ucHJvZ3Jlc3MgLmluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpbGwtY2hhbmdlOiBsZWZ0LCByaWdodDtcbiAgLXdlYmtpdC1hbmltYXRpb246IGluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XG4gICAgICAgICAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xufVxuXG4ucHJvZ3Jlc3MgLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xuICAtd2Via2l0LWFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7XG4gICAgICAgICAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuMTVzO1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMS4xNXM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlIHtcbiAgMCUge1xuICAgIGxlZnQ6IC0zNSU7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgNjAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHJpZ2h0OiAtOTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgcmlnaHQ6IC05MCU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBpbmRldGVybWluYXRlIHtcbiAgMCUge1xuICAgIGxlZnQ6IC0zNSU7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgNjAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHJpZ2h0OiAtOTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgcmlnaHQ6IC05MCU7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtc2hvcnQge1xuICAwJSB7XG4gICAgbGVmdDogLTIwMCU7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgNjAlIHtcbiAgICBsZWZ0OiAxMDclO1xuICAgIHJpZ2h0OiAtOCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogMTA3JTtcbiAgICByaWdodDogLTglO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XG4gIDAlIHtcbiAgICBsZWZ0OiAtMjAwJTtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICA2MCUge1xuICAgIGxlZnQ6IDEwNyU7XG4gICAgcmlnaHQ6IC04JTtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAxMDclO1xuICAgIHJpZ2h0OiAtOCU7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKipcbiAgVXRpbGl0eSBDbGFzc2VzXG4qKioqKioqKioqKioqKioqKioqL1xuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5sZWZ0LWFsaWduIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJpZ2h0LWFsaWduIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jZW50ZXIsIC5jZW50ZXItYWxpZ24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5uby1zZWxlY3QsIGlucHV0W3R5cGU9cmFuZ2VdLFxuaW5wdXRbdHlwZT1yYW5nZV0gKyAudGh1bWIge1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5jZW50ZXItYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLnRydW5jYXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLyogVGhpcyBpcyBuZWVkZWQgZm9yIHNvbWUgbW9iaWxlIHBob25lcyB0byBkaXNwbGF5IHRoZSBHb29nbGUgSWNvbiBmb250IHByb3Blcmx5ICovXG4ubWF0ZXJpYWwtaWNvbnMge1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAgICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAgICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xufVxuXG4uY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogMTI4MHB4O1xuICB3aWR0aDogOTAlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA4NSU7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTNweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG59XG5cbi5jb250YWluZXIgLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC43NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NXJlbTtcbn1cblxuLnNlY3Rpb24ge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5zZWN0aW9uLm5vLXBhZCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zZWN0aW9uLm5vLXBhZC1ib3Qge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLnNlY3Rpb24ubm8tcGFkLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4ucm93IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cblxuLnJvdyAuY29sIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgMC43NXJlbTtcbn1cblxuLnJvdyAuY29sW2NsYXNzKj1cInB1c2gtXCJdLCAucm93IC5jb2xbY2xhc3MqPVwicHVsbC1cIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yb3cgLmNvbC5zMSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5yb3cgLmNvbC5zMiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4ucm93IC5jb2wuczMge1xuICB3aWR0aDogMjUlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5yb3cgLmNvbC5zNCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4ucm93IC5jb2wuczUge1xuICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cblxuLnJvdyAuY29sLnM2IHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4ucm93IC5jb2wuczcge1xuICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cblxuLnJvdyAuY29sLnM4IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5yb3cgLmNvbC5zOSB7XG4gIHdpZHRoOiA3NSU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cblxuLnJvdyAuY29sLnMxMCB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4ucm93IC5jb2wuczExIHtcbiAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5yb3cgLmNvbC5zMTIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4ucm93IC5jb2wub2Zmc2V0LXMxIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG59XG5cbi5yb3cgLmNvbC5wdWxsLXMxIHtcbiAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXMxIHtcbiAgbGVmdDogOC4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLm9mZnNldC1zMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcbn1cblxuLnJvdyAuY29sLnB1bGwtczIge1xuICByaWdodDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXMyIHtcbiAgbGVmdDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5vZmZzZXQtczMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuXG4ucm93IC5jb2wucHVsbC1zMyB7XG4gIHJpZ2h0OiAyNSU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXMzIHtcbiAgbGVmdDogMjUlO1xufVxuXG4ucm93IC5jb2wub2Zmc2V0LXM0IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4ucm93IC5jb2wucHVsbC1zNCB7XG4gIHJpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLnB1c2gtczQge1xuICBsZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLm9mZnNldC1zNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbn1cblxuLnJvdyAuY29sLnB1bGwtczUge1xuICByaWdodDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXM1IHtcbiAgbGVmdDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5vZmZzZXQtczYge1xuICBtYXJnaW4tbGVmdDogNTAlO1xufVxuXG4ucm93IC5jb2wucHVsbC1zNiB7XG4gIHJpZ2h0OiA1MCU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXM2IHtcbiAgbGVmdDogNTAlO1xufVxuXG4ucm93IC5jb2wub2Zmc2V0LXM3IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xufVxuXG4ucm93IC5jb2wucHVsbC1zNyB7XG4gIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLnB1c2gtczcge1xuICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLm9mZnNldC1zOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbn1cblxuLnJvdyAuY29sLnB1bGwtczgge1xuICByaWdodDogNjYuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXM4IHtcbiAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5vZmZzZXQtczkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuXG4ucm93IC5jb2wucHVsbC1zOSB7XG4gIHJpZ2h0OiA3NSU7XG59XG5cbi5yb3cgLmNvbC5wdXNoLXM5IHtcbiAgbGVmdDogNzUlO1xufVxuXG4ucm93IC5jb2wub2Zmc2V0LXMxMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLnB1bGwtczEwIHtcbiAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xufVxuXG4ucm93IC5jb2wucHVzaC1zMTAge1xuICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLnJvdyAuY29sLm9mZnNldC1zMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5wdWxsLXMxMSB7XG4gIHJpZ2h0OiA5MS42NjY2NjY2NjY3JTtcbn1cblxuLnJvdyAuY29sLnB1c2gtczExIHtcbiAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5yb3cgLmNvbC5vZmZzZXQtczEyIHtcbiAgbWFyZ2luLWxlZnQ6IDEwMCU7XG59XG5cbi5yb3cgLmNvbC5wdWxsLXMxMiB7XG4gIHJpZ2h0OiAxMDAlO1xufVxuXG4ucm93IC5jb2wucHVzaC1zMTIge1xuICBsZWZ0OiAxMDAlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KSB7XG4gIC5yb3cgLmNvbC5tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5tMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTYge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm05IHtcbiAgICB3aWR0aDogNzUlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLm0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LW0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLW0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLW0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1tMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1tMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1tMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLW0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gIC5yb3cgLmNvbC5sMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubDIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmw1IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubDYge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wubDcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5yb3cgLmNvbC5sOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmw5IHtcbiAgICB3aWR0aDogNzUlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmwxMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmwxMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnJvdyAuY29sLmwxMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWwxIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWwyIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWw0IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1sNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWw1IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWw3IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1sNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWw4IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1bGwtbDkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLnJvdyAuY29sLnB1c2gtbDkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAucm93IC5jb2wub2Zmc2V0LWwxMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdWxsLWwxMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWwxMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnJvdyAuY29sLm9mZnNldC1sMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAucm93IC5jb2wucHVzaC1sMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5yb3cgLmNvbC5vZmZzZXQtbDEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAucm93IC5jb2wucHVsbC1sMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5yb3cgLmNvbC5wdXNoLWwxMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxufVxuXG5uYXYge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlNmU3MztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTZweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG5cbm5hdiBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbm5hdiBpLFxubmF2IFtjbGFzc149XCJtZGktXCJdLCBuYXYgW2NsYXNzKj1cIm1kaS1cIl0sXG5uYXYgaS5tYXRlcmlhbC1pY29ucyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDJyZW07XG4gIGhlaWdodDogNTZweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG5cbm5hdiAubmF2LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTNweCkge1xuICBuYXYgYS5idXR0b24tY29sbGFwc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxubmF2IC5idXR0b24tY29sbGFwc2Uge1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbm5hdiAuYnV0dG9uLWNvbGxhcHNlIGkge1xuICBmb250LXNpemU6IDIuN3JlbTtcbiAgaGVpZ2h0OiA1NnB4O1xuICBsaW5lLWhlaWdodDogNTZweDtcbn1cblxubmF2IC5icmFuZC1sb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxubmF2IC5icmFuZC1sb2dvLmNlbnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIG5hdiAuYnJhbmQtbG9nbyB7XG4gICAgbGVmdDogNTAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG4gIG5hdiAuYnJhbmQtbG9nby5sZWZ0LCBuYXYgLmJyYW5kLWxvZ28ucmlnaHQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgbmF2IC5icmFuZC1sb2dvLmxlZnQge1xuICAgIGxlZnQ6IDAuNXJlbTtcbiAgfVxuICBuYXYgLmJyYW5kLWxvZ28ucmlnaHQge1xuICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuXG5uYXYgLmJyYW5kLWxvZ28ucmlnaHQge1xuICByaWdodDogMC41cmVtO1xuICBwYWRkaW5nOiAwO1xufVxuXG5uYXYgdWwge1xuICBtYXJnaW46IDA7XG59XG5cbm5hdiB1bCBsaSB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMDtcbn1cblxubmF2IHVsIGxpLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxubmF2IHVsIGEge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcztcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxubmF2IHVsIGEuYnRuLCBuYXYgdWwgYS5idG4tbGFyZ2UsIG5hdiB1bCBhLmJ0bi1sYXJnZSwgbmF2IHVsIGEuYnRuLWZsYXQsIG5hdiB1bCBhLmJ0bi1mbG9hdGluZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbm5hdiB1bCBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG5uYXYgdWwubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG5uYXYgLmlucHV0LWZpZWxkIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5uYXYgLmlucHV0LWZpZWxkIGlucHV0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG59XG5cbm5hdiAuaW5wdXQtZmllbGQgaW5wdXQ6Zm9jdXMsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT10ZXh0XTp2YWxpZCwgbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXBhc3N3b3JkXTp2YWxpZCwgbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPWVtYWlsXTp2YWxpZCwgbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXVybF06dmFsaWQsIG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1kYXRlXTp2YWxpZCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxubmF2IC5pbnB1dC1maWVsZCBsYWJlbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxubmF2IC5pbnB1dC1maWVsZCBsYWJlbCBpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzO1xufVxuXG5uYXYgLmlucHV0LWZpZWxkIGxhYmVsLmFjdGl2ZSBpIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbm5hdiAuaW5wdXQtZmllbGQgbGFiZWwuYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ubmF2YmFyLWZpeGVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDU2cHg7XG4gIHotaW5kZXg6IDk5ODtcbn1cblxuLm5hdmJhci1maXhlZCBuYXYge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgbmF2LCBuYXYgLm5hdi13cmFwcGVyIGksIG5hdiBhLmJ1dHRvbi1jb2xsYXBzZSwgbmF2IGEuYnV0dG9uLWNvbGxhcHNlIGkge1xuICAgIGhlaWdodDogNjRweDtcbiAgICBsaW5lLWhlaWdodDogNjRweDtcbiAgfVxuICAubmF2YmFyLWZpeGVkIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gIH1cbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiO1xuICBzcmM6IGxvY2FsKFJvYm90byBUaGluKSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1UaGluLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLVRoaW4uZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1UaGluLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLVRoaW4ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLVRoaW4udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICBmb250LXdlaWdodDogMjAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCI7XG4gIHNyYzogbG9jYWwoUm9ib3RvIExpZ2h0KSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1MaWdodC5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1MaWdodC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1MaWdodC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgc3JjOiBsb2NhbChSb2JvdG8gUmVndWxhciksIHVybChcIi4uL2ZvbnRzL3JvYm90by9Sb2JvdG8tUmVndWxhci5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1SZWd1bGFyLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3JvYm90by9Sb2JvdG8tUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3JvYm90by9Sb2JvdG8tTWVkaXVtLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLU1lZGl1bS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLU1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvcm9ib3RvL1JvYm90by1NZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLU1lZGl1bS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLUJvbGQuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3JvYm90by9Sb2JvdG8tQm9sZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9yb2JvdG8vUm9ib3RvLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL3JvYm90by9Sb2JvdG8tQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3JvYm90by9Sb2JvdG8tQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMCkge1xuICBodG1sIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICBodG1sIHtcbiAgICBmb250LXNpemU6IDE0LjVweDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBodG1sIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbmgxIGEsIGgyIGEsIGgzIGEsIGg0IGEsIGg1IGEsIGg2IGEge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDQuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDExMCU7XG4gIG1hcmdpbjogMi4xcmVtIDAgMS42OHJlbSAwO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMy41NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDExMCU7XG4gIG1hcmdpbjogMS43OHJlbSAwIDEuNDI0cmVtIDA7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyLjkycmVtO1xuICBsaW5lLWhlaWdodDogMTEwJTtcbiAgbWFyZ2luOiAxLjQ2cmVtIDAgMS4xNjhyZW0gMDtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDIuMjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxMTAlO1xuICBtYXJnaW46IDEuMTRyZW0gMCAwLjkxMnJlbSAwO1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS42NHJlbTtcbiAgbGluZS1oZWlnaHQ6IDExMCU7XG4gIG1hcmdpbjogMC44MnJlbSAwIDAuNjU2cmVtIDA7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTEwJTtcbiAgbWFyZ2luOiAwLjVyZW0gMCAwLjRyZW0gMDtcbn1cblxuZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA3NSU7XG59XG5cbi5saWdodCwgZm9vdGVyLnBhZ2UtZm9vdGVyIC5mb290ZXItY29weXJpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLnRoaW4ge1xuICBmb250LXdlaWdodDogMjAwO1xufVxuXG4uZmxvdy10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNjBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM5MHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4yMjRyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MjBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMjQ4cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDUwcHgpIHtcbiAgLmZsb3ctdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjI3MnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4yOTZyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MTBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMzJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NDBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMzQ0cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTcwcHgpIHtcbiAgLmZsb3ctdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjM2OHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4zOTJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MzBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNDE2cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjYwcHgpIHtcbiAgLmZsb3ctdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjQ0cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjkwcHgpIHtcbiAgLmZsb3ctdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjQ2NHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS40ODhyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNTEycmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzgwcHgpIHtcbiAgLmZsb3ctdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjUzNnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxMHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS41NnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS41ODRyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NzBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNjA4cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLmZsb3ctdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjYzMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzMHB4KSB7XG4gIC5mbG93LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS42NTZyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNjhyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xuICAuZmxvdy10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxufVxuXG4uY2FyZC1wYW5lbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjI1cztcbiAgcGFkZGluZzogMjBweDtcbiAgbWFyZ2luOiAwLjVyZW0gMCAxcmVtIDA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLmNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMC41cmVtIDAgMXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yNXM7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLmNhcmQgLmNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi5jYXJkIC5jYXJkLXRpdGxlLmFjdGl2YXRvciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNhcmQuc21hbGwsIC5jYXJkLm1lZGl1bSwgLmNhcmQubGFyZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJkLnNtYWxsIC5jYXJkLWltYWdlLCAuY2FyZC5tZWRpdW0gLmNhcmQtaW1hZ2UsIC5jYXJkLmxhcmdlIC5jYXJkLWltYWdlIHtcbiAgbWF4LWhlaWdodDogNjAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2FyZC5zbWFsbCAuY2FyZC1jb250ZW50LCAuY2FyZC5tZWRpdW0gLmNhcmQtY29udGVudCwgLmNhcmQubGFyZ2UgLmNhcmQtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDQwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNhcmQuc21hbGwgLmNhcmQtYWN0aW9uLCAuY2FyZC5tZWRpdW0gLmNhcmQtYWN0aW9uLCAuY2FyZC5sYXJnZSAuY2FyZC1hY3Rpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5jYXJkLnNtYWxsIHtcbiAgaGVpZ2h0OiAzMDBweDtcbn1cblxuLmNhcmQubWVkaXVtIHtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cblxuLmNhcmQubGFyZ2Uge1xuICBoZWlnaHQ6IDUwMHB4O1xufVxuXG4uY2FyZCAuY2FyZC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcmQgLmNhcmQtaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYXJkIC5jYXJkLWltYWdlIC5jYXJkLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4uY2FyZCAuY2FyZC1jb250ZW50IHtcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7XG59XG5cbi5jYXJkIC5jYXJkLWNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5jYXJkIC5jYXJkLWNvbnRlbnQgLmNhcmQtdGl0bGUge1xuICBsaW5lLWhlaWdodDogNDhweDtcbn1cblxuLmNhcmQgLmNhcmQtYWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxNjAsIDE2MCwgMTYwLCAwLjIpO1xuICBwYWRkaW5nOiAyMHB4O1xuICB6LWluZGV4OiAyO1xufVxuXG4uY2FyZCAuY2FyZC1hY3Rpb24gYTpub3QoLmJ0bik6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLWZsb2F0aW5nKSB7XG4gIGNvbG9yOiAjZmZhYjQwO1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4zcyBlYXNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uY2FyZCAuY2FyZC1hY3Rpb24gYTpub3QoLmJ0bik6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLWZsb2F0aW5nKTpob3ZlciB7XG4gIGNvbG9yOiAjZmZkOGE2O1xufVxuXG4uY2FyZCAuY2FyZC1hY3Rpb24gKyAuY2FyZC1yZXZlYWwge1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbn1cblxuLmNhcmQgLmNhcmQtcmV2ZWFsIHtcbiAgcGFkZGluZzogMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDM7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jYXJkIC5jYXJkLXJldmVhbCAuY2FyZC10aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiN0b2FzdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAjdG9hc3QtY29udGFpbmVyIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAwJTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgI3RvYXN0LWNvbnRhaW5lciB7XG4gICAgbGVmdDogNSU7XG4gICAgYm90dG9tOiA3JTtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gICN0b2FzdC1jb250YWluZXIge1xuICAgIHRvcDogMTAlO1xuICAgIHJpZ2h0OiA3JTtcbiAgICBtYXgtd2lkdGg6IDg2JTtcbiAgfVxufVxuXG4udG9hc3Qge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHRvcDogMDtcbiAgd2lkdGg6IGF1dG87XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcbiAgcGFkZGluZzogMTBweCAyNXB4O1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnRvYXN0IC5idG4sIC50b2FzdCAuYnRuLWxhcmdlLCAudG9hc3QgLmJ0bi1mbGF0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tbGVmdDogM3JlbTtcbn1cblxuLnRvYXN0LnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC50b2FzdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLnRvYXN0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gIC50b2FzdCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi50YWJzIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIGhlaWdodDogNDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udGFicyAudGFiIHtcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICBmbGV4LWdyb3c6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsZXR0ZXItc3BhY2luZzogLjhweDtcbiAgd2lkdGg6IDE1JTtcbiAgbWluLXdpZHRoOiA4MHB4O1xufVxuXG4udGFicyAudGFiIGEge1xuICBjb2xvcjogI2VlNmU3MztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMjhzIGVhc2U7XG59XG5cbi50YWJzIC50YWIgYTpob3ZlciB7XG4gIGNvbG9yOiAjZjljOWNiO1xufVxuXG4udGFicyAudGFiLmRpc2FibGVkIGEge1xuICBjb2xvcjogI2Y5YzljYjtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udGFicyAuaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZiMmI1O1xuICB3aWxsLWNoYW5nZTogbGVmdCwgcmlnaHQ7XG59XG5cbi5tYXRlcmlhbC10b29sdGlwIHtcbiAgcGFkZGluZzogMTBweCA4cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgei1pbmRleDogMjAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6ICNmZmY7XG4gIG1pbi1oZWlnaHQ6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogdG9wLCBsZWZ0O1xufVxuXG4uYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogN3B4O1xuICB3aWR0aDogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDE0cHggMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcbiAgei1pbmRleDogLTE7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwJTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAlO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuXG4uYnRuLCAuYnRuLWxhcmdlLFxuLmJ0bi1mbGF0IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAzNnB4O1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogMCAycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLmRpc2FibGVkLCAuZGlzYWJsZWQuYnRuLWxhcmdlLFxuLmJ0bi1mbG9hdGluZy5kaXNhYmxlZCxcbi5idG4tbGFyZ2UuZGlzYWJsZWQsXG4uYnRuOmRpc2FibGVkXG4uYnRuLWxhcmdlOmRpc2FibGVkLCAuYnRuLWxhcmdlOmRpc2FibGVkIC5idG4tbGFyZ2U6ZGlzYWJsZWQsXG4uYnRuLWZsb2F0aW5nOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGREZERiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogIzlGOUY5RiAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5idG4uZGlzYWJsZWQgKiwgLmRpc2FibGVkLmJ0bi1sYXJnZSAqLFxuLmJ0bi1mbG9hdGluZy5kaXNhYmxlZCAqLFxuLmJ0bi1sYXJnZS5kaXNhYmxlZCAqLFxuLmJ0bjpkaXNhYmxlZFxuLmJ0bi1sYXJnZTpkaXNhYmxlZCAqLCAuYnRuLWxhcmdlOmRpc2FibGVkIC5idG4tbGFyZ2U6ZGlzYWJsZWQgKixcbi5idG4tZmxvYXRpbmc6ZGlzYWJsZWQgKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYnRuLmRpc2FibGVkOmhvdmVyLCAuZGlzYWJsZWQuYnRuLWxhcmdlOmhvdmVyLFxuLmJ0bi1mbG9hdGluZy5kaXNhYmxlZDpob3Zlcixcbi5idG4tbGFyZ2UuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuOmRpc2FibGVkXG4uYnRuLWxhcmdlOmRpc2FibGVkOmhvdmVyLCAuYnRuLWxhcmdlOmRpc2FibGVkIC5idG4tbGFyZ2U6ZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWZsb2F0aW5nOmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGREZERiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzlGOUY5RiAhaW1wb3J0YW50O1xufVxuXG4uYnRuIGksIC5idG4tbGFyZ2UgaSxcbi5idG4tZmxvYXRpbmcgaSxcbi5idG4tbGFyZ2UgaSxcbi5idG4tZmxhdCBpIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uYnRuLCAuYnRuLWxhcmdlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgdHJhbnNpdGlvbjogLjJzIGVhc2Utb3V0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idG46aG92ZXIsIC5idG4tbGFyZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmJiYmFkO1xufVxuXG4uYnRuLWZsb2F0aW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMzdweDtcbiAgaGVpZ2h0OiAzN3B4O1xuICBsaW5lLWhlaWdodDogMzdweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiAuM3M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJ0bi1mbG9hdGluZyBpIHtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAzN3B4O1xufVxuXG4uYnRuLWZsb2F0aW5nOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbn1cblxuLmJ0bi1mbG9hdGluZzpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYnRuLWZsb2F0aW5nLmJ0bi1sYXJnZSB7XG4gIHdpZHRoOiA1NS41cHg7XG4gIGhlaWdodDogNTUuNXB4O1xufVxuXG4uYnRuLWZsb2F0aW5nLmJ0bi1sYXJnZSBpIHtcbiAgbGluZS1oZWlnaHQ6IDU1LjVweDtcbn1cblxuYnV0dG9uLmJ0bi1mbG9hdGluZyB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmZpeGVkLWFjdGlvbi1idG4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyM3B4O1xuICBib3R0b206IDIzcHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB6LWluZGV4OiA5OTg7XG59XG5cbi5maXhlZC1hY3Rpb24tYnRuLmFjdGl2ZSB1bCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5maXhlZC1hY3Rpb24tYnRuLmhvcml6b250YWwge1xuICBwYWRkaW5nOiAwIDAgMCAxNXB4O1xufVxuXG4uZml4ZWQtYWN0aW9uLWJ0bi5ob3Jpem9udGFsIHVsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHJpZ2h0OiA2NHB4O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHdpZHRoOiA1MDBweDtcbiAgLyp3aWR0aCAxMDAlIG9ubHkgZ29lcyB0byB3aWR0aCBvZiBidXR0b24gY29udGFpbmVyICovXG59XG5cbi5maXhlZC1hY3Rpb24tYnRuLmhvcml6b250YWwgdWwgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMTVweCAxNXB4IDAgMDtcbn1cblxuLmZpeGVkLWFjdGlvbi1idG4gdWwge1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNjRweDtcbiAgbWFyZ2luOiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5maXhlZC1hY3Rpb24tYnRuIHVsIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLmZpeGVkLWFjdGlvbi1idG4gdWwgYS5idG4tZmxvYXRpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uYnRuLWZsYXQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMzNDM0MzQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ0bi1mbGF0LmRpc2FibGVkIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmJ0bi1sYXJnZSB7XG4gIGhlaWdodDogNTRweDtcbiAgbGluZS1oZWlnaHQ6IDU0cHg7XG59XG5cbi5idG4tbGFyZ2UgaSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kcm9wZG93bi1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiA2NTBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk7XG4gIHdpbGwtY2hhbmdlOiB3aWR0aCwgaGVpZ2h0O1xufVxuXG4uZHJvcGRvd24tY29udGVudCBsaSB7XG4gIGNsZWFyOiBib3RoO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5kcm9wZG93bi1jb250ZW50IGxpOmhvdmVyLCAuZHJvcGRvd24tY29udGVudCBsaS5hY3RpdmUsIC5kcm9wZG93bi1jb250ZW50IGxpLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cblxuLmRyb3Bkb3duLWNvbnRlbnQgbGkuYWN0aXZlLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxZTFlMTtcbn1cblxuLmRyb3Bkb3duLWNvbnRlbnQgbGkuZGl2aWRlciB7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uZHJvcGRvd24tY29udGVudCBsaSA+IGEsIC5kcm9wZG93bi1jb250ZW50IGxpID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICMyNmE2OWE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xufVxuXG4uZHJvcGRvd24tY29udGVudCBsaSA+IHNwYW4gPiBsYWJlbCB7XG4gIHRvcDogMXB4O1xuICBsZWZ0OiAzcHg7XG4gIGhlaWdodDogMThweDtcbn1cblxuLmRyb3Bkb3duLWNvbnRlbnQgbGkgPiBhID4gaSB7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qIVxuICogV2F2ZXMgdjAuNi4wXG4gKiBodHRwOi8vZmlhbi5teS5pZC9XYXZlc1xuICpcbiAqIENvcHlyaWdodCAyMDE0IEFsZmlhbmEgRS4gU2lidWVhIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZpYW5zL1dhdmVzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuLndhdmVzLWVmZmVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDE7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1vdXQ7XG59XG5cbi53YXZlcy1lZmZlY3QgLndhdmVzLXJpcHBsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBvcGFjaXR5OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zaXRpb246IGFsbCAwLjdzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi53YXZlcy1lZmZlY3Qud2F2ZXMtbGlnaHQgLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG59XG5cbi53YXZlcy1lZmZlY3Qud2F2ZXMtcmVkIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjcpO1xufVxuXG4ud2F2ZXMtZWZmZWN0LndhdmVzLXllbGxvdyAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIzNSwgNTksIDAuNyk7XG59XG5cbi53YXZlcy1lZmZlY3Qud2F2ZXMtb3JhbmdlIC53YXZlcy1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjcpO1xufVxuXG4ud2F2ZXMtZWZmZWN0LndhdmVzLXB1cnBsZSAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTYsIDM5LCAxNzYsIDAuNyk7XG59XG5cbi53YXZlcy1lZmZlY3Qud2F2ZXMtZ3JlZW4gLndhdmVzLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNzYsIDE3NSwgODAsIDAuNyk7XG59XG5cbi53YXZlcy1lZmZlY3Qud2F2ZXMtdGVhbCAud2F2ZXMtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNTAsIDEzNiwgMC43KTtcbn1cblxuLndhdmVzLWVmZmVjdCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAud2F2ZXMtZWZmZWN0IGlucHV0W3R5cGU9XCJyZXNldFwiXSwgLndhdmVzLWVmZmVjdCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi53YXZlcy1ub3RyYW5zaXRpb24ge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi53YXZlcy1jaXJjbGUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSAxMDAlLCBibGFjayAxMDAlKTtcbn1cblxuLndhdmVzLWlucHV0LXdyYXBwZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjJlbTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLndhdmVzLWlucHV0LXdyYXBwZXIgLndhdmVzLWJ1dHRvbi1pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xufVxuXG4ud2F2ZXMtY2lyY2xlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMi41ZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IG5vbmU7XG59XG5cbi53YXZlcy1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBGaXJlZm94IEJ1ZzogbGluayBub3QgdHJpZ2dlcmVkICovXG5hLndhdmVzLWVmZmVjdCAud2F2ZXMtcmlwcGxlIHtcbiAgei1pbmRleDogLTE7XG59XG5cbi5tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC1oZWlnaHQ6IDcwJTtcbiAgd2lkdGg6IDU1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHdpbGwtY2hhbmdlOiB0b3AsIG9wYWNpdHk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG59XG5cbi5tb2RhbCBoMSwgLm1vZGFsIGgyLCAubW9kYWwgaDMsIC5tb2RhbCBoNCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5tb2RhbCAubW9kYWwtY29udGVudCB7XG4gIHBhZGRpbmc6IDI0cHg7XG59XG5cbi5tb2RhbCAubW9kYWwtY2xvc2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb2RhbCAubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4sIC5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tbGFyZ2UsIC5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tZmxhdCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiA2cHggMDtcbn1cblxuLmxlYW4tb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5O1xuICB0b3A6IC0xMDBweDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMjUlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG59XG5cbi5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXIge1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDcwJTtcbn1cblxuLm1vZGFsLm1vZGFsLWZpeGVkLWZvb3RlciAubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXIgLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xufVxuXG4ubW9kYWwuYm90dG9tLXNoZWV0IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IC0xMDAlO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA0NSU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHdpbGwtY2hhbmdlOiBib3R0b20sIG9wYWNpdHk7XG59XG5cbi5jb2xsYXBzaWJsZSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGQ7XG4gIG1hcmdpbjogMC41cmVtIDAgMXJlbSAwO1xufVxuXG4uY29sbGFwc2libGUtaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWluLWhlaWdodDogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5jb2xsYXBzaWJsZS1oZWFkZXIgaSB7XG4gIHdpZHRoOiAycmVtO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbi5jb2xsYXBzaWJsZS1ib2R5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5jb2xsYXBzaWJsZS1ib2R5IHAge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDJyZW07XG59XG5cbi5zaWRlLW5hdiAuY29sbGFwc2libGUsXG4uc2lkZS1uYXYuZml4ZWQgLmNvbGxhcHNpYmxlIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uc2lkZS1uYXYgLmNvbGxhcHNpYmxlIGxpLFxuLnNpZGUtbmF2LmZpeGVkIC5jb2xsYXBzaWJsZSBsaSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zaWRlLW5hdiAuY29sbGFwc2libGUtaGVhZGVyLFxuLnNpZGUtbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwYWRkaW5nOiAwIDMwcHg7XG59XG5cbi5zaWRlLW5hdiAuY29sbGFwc2libGUtaGVhZGVyOmhvdmVyLFxuLnNpZGUtbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4uc2lkZS1uYXYgLmNvbGxhcHNpYmxlLWhlYWRlciBpLFxuLnNpZGUtbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1oZWFkZXIgaSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uc2lkZS1uYXYgLmNvbGxhcHNpYmxlLWJvZHksXG4uc2lkZS1uYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5zaWRlLW5hdiAuY29sbGFwc2libGUtYm9keSBsaSBhLFxuLnNpZGUtbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1ib2R5IGxpIGEge1xuICBwYWRkaW5nOiAwIDM3LjVweCAwIDQ1cHg7XG59XG5cbi5jb2xsYXBzaWJsZS5wb3BvdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5jb2xsYXBzaWJsZS5wb3BvdXQgPiBsaSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBtYXJnaW46IDAgMjRweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMzVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmNvbGxhcHNpYmxlLnBvcG91dCA+IGxpLmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDExcHggMCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDRweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgbWFyZ2luOiAxNnB4IDA7XG59XG5cbi5jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDMycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbn1cblxuLmNoaXAgaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMCA4cHggMCAtMTJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uY2hpcCBpLm1hdGVyaWFsLWljb25zIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4ubWF0ZXJpYWxib3hlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xufVxuXG4ubWF0ZXJpYWxib3hlZDpob3ZlciB7XG4gIHdpbGwtY2hhbmdlOiBsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQ7XG59XG5cbi5tYXRlcmlhbGJveGVkOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gIG9wYWNpdHk6IC44O1xufVxuXG4ubWF0ZXJpYWxib3hlZC5hY3RpdmUge1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1vdXQ7XG4gIGN1cnNvcjogem9vbS1vdXQ7XG59XG5cbiNtYXRlcmlhbGJveC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTI5Mjk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4ubWF0ZXJpYWxib3gtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAlIDE1JTtcbiAgaGVpZ2h0OiA1MHB4O1xuICB6LWluZGV4OiAxMDAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICNjOWYzZWY7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYWI3YTk7XG59XG5cbmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiAjOWU5ZTllO1xufVxuXG4vKiBUZXh0IElucHV0cyArIFRleHRhcmVhXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU3R5bGUgUGxhY2Vob2xkZXJzICovXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2QxZDFkMTtcbn1cblxuOi1tb3otcGxhY2Vob2xkZXIge1xuICAvKiBGaXJlZm94IDE4LSAqL1xuICBjb2xvcjogI2QxZDFkMTtcbn1cblxuOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgLyogRmlyZWZveCAxOSsgKi9cbiAgY29sb3I6ICNkMWQxZDE7XG59XG5cbjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2QxZDFkMTtcbn1cblxuLyogVGV4dCBpbnB1dHMgKi9cbmlucHV0Om5vdChbdHlwZV0pLFxuaW5wdXRbdHlwZT10ZXh0XSxcbmlucHV0W3R5cGU9cGFzc3dvcmRdLFxuaW5wdXRbdHlwZT1lbWFpbF0sXG5pbnB1dFt0eXBlPXVybF0sXG5pbnB1dFt0eXBlPXRpbWVdLFxuaW5wdXRbdHlwZT1kYXRlXSxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sXG5pbnB1dFt0eXBlPXRlbF0sXG5pbnB1dFt0eXBlPW51bWJlcl0sXG5pbnB1dFt0eXBlPXNlYXJjaF0sXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWU5ZTllO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBoZWlnaHQ6IDNyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuXG5pbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCwgaW5wdXQ6bm90KFt0eXBlXSlbcmVhZG9ubHk9XCJyZWFkb25seVwiXSxcbmlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQsXG5pbnB1dFt0eXBlPXRleHRdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0sXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpkaXNhYmxlZCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0sXG5pbnB1dFt0eXBlPWVtYWlsXTpkaXNhYmxlZCxcbmlucHV0W3R5cGU9ZW1haWxdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0sXG5pbnB1dFt0eXBlPXVybF06ZGlzYWJsZWQsXG5pbnB1dFt0eXBlPXVybF1bcmVhZG9ubHk9XCJyZWFkb25seVwiXSxcbmlucHV0W3R5cGU9dGltZV06ZGlzYWJsZWQsXG5pbnB1dFt0eXBlPXRpbWVdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0sXG5pbnB1dFt0eXBlPWRhdGVdOmRpc2FibGVkLFxuaW5wdXRbdHlwZT1kYXRlXVtyZWFkb25seT1cInJlYWRvbmx5XCJdLFxuaW5wdXRbdHlwZT1kYXRldGltZV06ZGlzYWJsZWQsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXVtyZWFkb25seT1cInJlYWRvbmx5XCJdLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06ZGlzYWJsZWQsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXVtyZWFkb25seT1cInJlYWRvbmx5XCJdLFxuaW5wdXRbdHlwZT10ZWxdOmRpc2FibGVkLFxuaW5wdXRbdHlwZT10ZWxdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0sXG5pbnB1dFt0eXBlPW51bWJlcl06ZGlzYWJsZWQsXG5pbnB1dFt0eXBlPW51bWJlcl1bcmVhZG9ubHk9XCJyZWFkb25seVwiXSxcbmlucHV0W3R5cGU9c2VhcmNoXTpkaXNhYmxlZCxcbmlucHV0W3R5cGU9c2VhcmNoXVtyZWFkb25seT1cInJlYWRvbmx5XCJdLFxudGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYVtyZWFkb25seT1cInJlYWRvbmx5XCJdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuaW5wdXQ6bm90KFt0eXBlXSk6ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0Om5vdChbdHlwZV0pW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0gKyBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF1bcmVhZG9ubHk9XCJyZWFkb25seVwiXSArIGxhYmVsLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0gKyBsYWJlbCxcbmlucHV0W3R5cGU9ZW1haWxdOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPWVtYWlsXVtyZWFkb25seT1cInJlYWRvbmx5XCJdICsgbGFiZWwsXG5pbnB1dFt0eXBlPXVybF06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9dXJsXVtyZWFkb25seT1cInJlYWRvbmx5XCJdICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRpbWVdOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRpbWVdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0gKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZV06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZV1bcmVhZG9ubHk9XCJyZWFkb25seVwiXSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZV06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdW3JlYWRvbmx5PVwicmVhZG9ubHlcIl0gKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmRpc2FibGVkICsgbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXVtyZWFkb25seT1cInJlYWRvbmx5XCJdICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRlbF06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGVsXVtyZWFkb25seT1cInJlYWRvbmx5XCJdICsgbGFiZWwsXG5pbnB1dFt0eXBlPW51bWJlcl06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9bnVtYmVyXVtyZWFkb25seT1cInJlYWRvbmx5XCJdICsgbGFiZWwsXG5pbnB1dFt0eXBlPXNlYXJjaF06ZGlzYWJsZWQgKyBsYWJlbCxcbmlucHV0W3R5cGU9c2VhcmNoXVtyZWFkb25seT1cInJlYWRvbmx5XCJdICsgbGFiZWwsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpkaXNhYmxlZCArIGxhYmVsLFxudGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWFbcmVhZG9ubHk9XCJyZWFkb25seVwiXSArIGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbmlucHV0Om5vdChbdHlwZV0pOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9dGV4dF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT11cmxdOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9dGltZV06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT1kYXRlXTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG5pbnB1dFt0eXBlPXRlbF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbmlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1czpub3QoW3JlYWRvbmx5XSkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzI2YTY5YTtcbiAgYm94LXNoYWRvdzogMCAxcHggMCAwICMyNmE2OWE7XG59XG5cbmlucHV0Om5vdChbdHlwZV0pOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT10ZXh0XTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXVybF06Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRpbWVdOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRlXTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdOmZvY3VzOm5vdChbcmVhZG9ubHldKSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRlbF06Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPW51bWJlcl06Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG5pbnB1dFt0eXBlPXNlYXJjaF06Zm9jdXM6bm90KFtyZWFkb25seV0pICsgbGFiZWwsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1czpub3QoW3JlYWRvbmx5XSkgKyBsYWJlbCB7XG4gIGNvbG9yOiAjMjZhNjlhO1xufVxuXG5pbnB1dDpub3QoW3R5cGVdKS52YWxpZCwgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPXRleHRdLnZhbGlkLFxuaW5wdXRbdHlwZT10ZXh0XTpmb2N1cy52YWxpZCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdLnZhbGlkLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPWVtYWlsXS52YWxpZCxcbmlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT11cmxdLnZhbGlkLFxuaW5wdXRbdHlwZT11cmxdOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT10aW1lXS52YWxpZCxcbmlucHV0W3R5cGU9dGltZV06Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPWRhdGVdLnZhbGlkLFxuaW5wdXRbdHlwZT1kYXRlXTpmb2N1cy52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdLnZhbGlkLFxuaW5wdXRbdHlwZT1kYXRldGltZV06Zm9jdXMudmFsaWQsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT10ZWxdLnZhbGlkLFxuaW5wdXRbdHlwZT10ZWxdOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT1udW1iZXJdLnZhbGlkLFxuaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzLnZhbGlkLFxuaW5wdXRbdHlwZT1zZWFyY2hdLnZhbGlkLFxuaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzLnZhbGlkLFxudGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWEudmFsaWQsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1cy52YWxpZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNENBRjUwO1xuICBib3gtc2hhZG93OiAwIDFweCAwIDAgIzRDQUY1MDtcbn1cblxuaW5wdXQ6bm90KFt0eXBlXSkudmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0Om5vdChbdHlwZV0pOmZvY3VzLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRleHRdLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXS52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMudmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZW1haWxdLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPWVtYWlsXTpmb2N1cy52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT11cmxdLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXVybF06Zm9jdXMudmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9dGltZV0udmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9dGltZV06Zm9jdXMudmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZV0udmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZV06Zm9jdXMudmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpmb2N1cy52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0udmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRlbF0udmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9dGVsXTpmb2N1cy52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1udW1iZXJdLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMudmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9c2VhcmNoXS52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzLnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYS52YWxpZCArIGxhYmVsOmFmdGVyLFxudGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWE6Zm9jdXMudmFsaWQgKyBsYWJlbDphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1zdWNjZXNzKTtcbiAgY29sb3I6ICM0Q0FGNTA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmlucHV0Om5vdChbdHlwZV0pLmludmFsaWQsIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXRleHRdLmludmFsaWQsXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXS5pbnZhbGlkLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9ZW1haWxdLmludmFsaWQsXG5pbnB1dFt0eXBlPWVtYWlsXTpmb2N1cy5pbnZhbGlkLFxuaW5wdXRbdHlwZT11cmxdLmludmFsaWQsXG5pbnB1dFt0eXBlPXVybF06Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9dGltZV0uaW52YWxpZCxcbmlucHV0W3R5cGU9dGltZV06Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZV0uaW52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZV06Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWVdLmludmFsaWQsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpmb2N1cy5pbnZhbGlkLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0uaW52YWxpZCxcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLmludmFsaWQsXG5pbnB1dFt0eXBlPXRlbF0uaW52YWxpZCxcbmlucHV0W3R5cGU9dGVsXTpmb2N1cy5pbnZhbGlkLFxuaW5wdXRbdHlwZT1udW1iZXJdLmludmFsaWQsXG5pbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMuaW52YWxpZCxcbmlucHV0W3R5cGU9c2VhcmNoXS5pbnZhbGlkLFxuaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzLmludmFsaWQsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYS5pbnZhbGlkLFxudGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWE6Zm9jdXMuaW52YWxpZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjQ0MzM2O1xuICBib3gtc2hhZG93OiAwIDFweCAwIDAgI0Y0NDMzNjtcbn1cblxuaW5wdXQ6bm90KFt0eXBlXSkuaW52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMuaW52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT10ZXh0XS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9cGFzc3dvcmRdLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZW1haWxdLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9dXJsXS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXVybF06Zm9jdXMuaW52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT10aW1lXS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRpbWVdOmZvY3VzLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZV0uaW52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRlXTpmb2N1cy5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXTpmb2N1cy5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpmb2N1cy5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRlbF0uaW52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT10ZWxdOmZvY3VzLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9bnVtYmVyXS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMuaW52YWxpZCArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1zZWFyY2hdLmludmFsaWQgKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9c2VhcmNoXTpmb2N1cy5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYS5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1cy5pbnZhbGlkICsgbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiBhdHRyKGRhdGEtZXJyb3IpO1xuICBjb2xvcjogI0Y0NDMzNjtcbiAgb3BhY2l0eTogMTtcbn1cblxuaW5wdXQ6bm90KFt0eXBlXSkudmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGV4dF0udmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9cGFzc3dvcmRdLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPWVtYWlsXS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT11cmxdLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPXRpbWVdLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGVdLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPWRhdGV0aW1lXS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0udmFsaWRhdGUgKyBsYWJlbCxcbmlucHV0W3R5cGU9dGVsXS52YWxpZGF0ZSArIGxhYmVsLFxuaW5wdXRbdHlwZT1udW1iZXJdLnZhbGlkYXRlICsgbGFiZWwsXG5pbnB1dFt0eXBlPXNlYXJjaF0udmFsaWRhdGUgKyBsYWJlbCxcbnRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkYXRlICsgbGFiZWwge1xuICB3aWR0aDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbmlucHV0Om5vdChbdHlwZV0pICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRleHRdICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1lbWFpbF0gKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9dXJsXSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT10aW1lXSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRlXSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1kYXRldGltZV0gKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdICsgbGFiZWw6YWZ0ZXIsXG5pbnB1dFt0eXBlPXRlbF0gKyBsYWJlbDphZnRlcixcbmlucHV0W3R5cGU9bnVtYmVyXSArIGxhYmVsOmFmdGVyLFxuaW5wdXRbdHlwZT1zZWFyY2hdICsgbGFiZWw6YWZ0ZXIsXG50ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYSArIGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2NXB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiAuMnMgb3BhY2l0eSBlYXNlLW91dCwgLjJzIGNvbG9yIGVhc2Utb3V0O1xufVxuXG4uaW5wdXQtZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5pbnB1dC1maWVsZCBsYWJlbCB7XG4gIGNvbG9yOiAjOWU5ZTllO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC44cmVtO1xuICBsZWZ0OiAwLjc1cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGN1cnNvcjogdGV4dDtcbiAgdHJhbnNpdGlvbjogLjJzIGVhc2Utb3V0O1xufVxuXG4uaW5wdXQtZmllbGQgbGFiZWwuYWN0aXZlIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNDAlKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0MCUpO1xufVxuXG4uaW5wdXQtZmllbGQgLnByZWZpeCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDNyZW07XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjJzO1xufVxuXG4uaW5wdXQtZmllbGQgLnByZWZpeC5hY3RpdmUge1xuICBjb2xvcjogIzI2YTY5YTtcbn1cblxuLmlucHV0LWZpZWxkIC5wcmVmaXggfiBpbnB1dCxcbi5pbnB1dC1maWVsZCAucHJlZml4IH4gdGV4dGFyZWEge1xuICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgd2lkdGg6IDkyJTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xufVxuXG4uaW5wdXQtZmllbGQgLnByZWZpeCB+IHRleHRhcmVhIHtcbiAgcGFkZGluZy10b3A6IC44cmVtO1xufVxuXG4uaW5wdXQtZmllbGQgLnByZWZpeCB+IGxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLmlucHV0LWZpZWxkIC5wcmVmaXggfiBpbnB1dCB7XG4gICAgd2lkdGg6IDg2JTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuaW5wdXQtZmllbGQgLnByZWZpeCB+IGlucHV0IHtcbiAgICB3aWR0aDogODAlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbiAgfVxufVxuXG4vKiBTZWFyY2ggRmllbGQgKi9cbi5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0pO1xufVxuXG4uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogIzQ0NDtcbn1cblxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1cyArIGxhYmVsIGksXG4uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzIH4gLm1kaS1uYXZpZ2F0aW9uLWNsb3NlLFxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1cyB+IC5tYXRlcmlhbC1pY29ucyB7XG4gIGNvbG9yOiAjNDQ0O1xufVxuXG4uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdICsgbGFiZWwge1xuICBsZWZ0OiAxcmVtO1xufVxuXG4uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdIH4gLm1kaS1uYXZpZ2F0aW9uLWNsb3NlLFxuLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXSB+IC5tYXRlcmlhbC1pY29ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMXJlbTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgdHJhbnNpdGlvbjogLjNzIGNvbG9yO1xufVxuXG4vKiBUZXh0YXJlYSAqL1xudGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxudGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWEge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIC8qIHByZXZlbnRzIHNjcm9sbCBiYXIgZmxhc2ggKi9cbiAgcGFkZGluZzogMS42cmVtIDA7XG4gIC8qIHByZXZlbnRzIHRleHQganVtcCBvbiBFbnRlciBrZXlwcmVzcyAqL1xuICByZXNpemU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDNyZW07XG59XG5cbi5oaWRkZW5kaXYge1xuICBkaXNwbGF5OiBub25lO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgLyogZnV0dXJlIHZlcnNpb24gb2YgZGVwcmVjYXRlZCAnd29yZC13cmFwJyAqL1xuICBwYWRkaW5nLXRvcDogMS4ycmVtO1xuICAvKiBwcmV2ZW50cyB0ZXh0IGp1bXAgb24gRW50ZXIga2V5cHJlc3MgKi9cbn1cblxuLyogUmFkaW8gQnV0dG9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblt0eXBlPVwicmFkaW9cIl06bm90KDpjaGVja2VkKSxcblt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OTlweDtcbiAgb3BhY2l0eTogMDtcbn1cblxuW3R5cGU9XCJyYWRpb1wiXTpub3QoOmNoZWNrZWQpICsgbGFiZWwsXG5bdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyNXB4O1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0cmFuc2l0aW9uOiAuMjhzIGVhc2U7XG4gIC8qIHdlYmtpdCAoa29ucXVlcm9yKSBicm93c2VycyAqL1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG5bdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YmVmb3JlLFxuW3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDRweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNpdGlvbjogLjI4cyBlYXNlO1xufVxuXG4vKiBVbmNoZWNrZWQgc3R5bGVzICovXG5bdHlwZT1cInJhZGlvXCJdOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUsXG5bdHlwZT1cInJhZGlvXCJdOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlcixcblt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcblt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuW3R5cGU9XCJyYWRpb1wiXS53aXRoLWdhcDpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuW3R5cGU9XCJyYWRpb1wiXS53aXRoLWdhcDpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cblt0eXBlPVwicmFkaW9cIl06bm90KDpjaGVja2VkKSArIGxhYmVsOmJlZm9yZSxcblt0eXBlPVwicmFkaW9cIl06bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzVhNWE1YTtcbn1cblxuW3R5cGU9XCJyYWRpb1wiXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICB6LWluZGV4OiAtMTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG59XG5cbi8qIENoZWNrZWQgc3R5bGVzICovXG5bdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuW3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG5bdHlwZT1cInJhZGlvXCJdLndpdGgtZ2FwOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG5bdHlwZT1cInJhZGlvXCJdLndpdGgtZ2FwOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMyNmE2OWE7XG59XG5cblt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuW3R5cGU9XCJyYWRpb1wiXS53aXRoLWdhcDpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICB6LWluZGV4OiAwO1xufVxuXG5bdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xufVxuXG4vKiBSYWRpbyBXaXRoIGdhcCAqL1xuW3R5cGU9XCJyYWRpb1wiXS53aXRoLWdhcDpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbi8qIEZvY3VzZWQgc3R5bGVzICovXG5bdHlwZT1cInJhZGlvXCJdLnRhYmJlZDpmb2N1cyArIGxhYmVsOmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBEaXNhYmxlZCBSYWRpbyBXaXRoIGdhcCAqL1xuW3R5cGU9XCJyYWRpb1wiXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuW3R5cGU9XCJyYWRpb1wiXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbi8qIERpc2FibGVkIHN0eWxlICovXG5bdHlwZT1cInJhZGlvXCJdOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUsXG5bdHlwZT1cInJhZGlvXCJdOmRpc2FibGVkOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG5bdHlwZT1cInJhZGlvXCJdOmRpc2FibGVkICsgbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuW3R5cGU9XCJyYWRpb1wiXTpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG5bdHlwZT1cInJhZGlvXCJdOmRpc2FibGVkOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJvcmRlci1jb2xvcjogI0JEQkRCRDtcbn1cblxuLyogQ2hlY2tib3hlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIENVU1RPTSBDU1MgQ0hFQ0tCT1hFUyAqL1xuZm9ybSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuZm9ybSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBSZW1vdmUgZGVmYXVsdCBjaGVja2JveCAqL1xuW3R5cGU9XCJjaGVja2JveFwiXTpub3QoOmNoZWNrZWQpLFxuW3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5OXB4O1xuICBvcGFjaXR5OiAwO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgLyogY2hlY2tib3ggYXNwZWN0ICovXG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyNXB4O1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiB3ZWJraXQgKHNhZmFyaSwgY2hyb21lKSBicm93c2VycyAqL1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBtb3ppbGxhIGJyb3dzZXJzICovXG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogd2Via2l0IChrb25xdWVyb3IpIGJyb3dzZXJzICovXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogSUUxMCsgKi9cbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmJlZm9yZSxcblt0eXBlPVwiY2hlY2tib3hcIl06bm90KC5maWxsZWQtaW4pICsgbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHotaW5kZXg6IDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM1YTVhNWE7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICB0cmFuc2l0aW9uOiAuMnM7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl06bm90KC5maWxsZWQtaW4pICsgbGFiZWw6YWZ0ZXIge1xuICBib3JkZXI6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdOm5vdCg6Y2hlY2tlZCk6ZGlzYWJsZWQgKyBsYWJlbDpiZWZvcmUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0udGFiYmVkOmZvY3VzICsgbGFiZWw6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gIHRvcDogLTRweDtcbiAgbGVmdDogLTVweDtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMjJweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMjZhNjlhO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzI2YTY5YTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDBkZWcpO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkOmRpc2FibGVkICsgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbi8qIEluZGV0ZXJtaW5hdGUgY2hlY2tib3ggKi9cblt0eXBlPVwiY2hlY2tib3hcIl06aW5kZXRlcm1pbmF0ZSArIGxhYmVsOmJlZm9yZSB7XG4gIHRvcDogLTExcHg7XG4gIGxlZnQ6IC0xMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzI2YTY5YTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXTppbmRldGVybWluYXRlOmRpc2FibGVkICsgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluICsgbGFiZWw6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluICsgbGFiZWw6YmVmb3JlLFxuW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW4gKyBsYWJlbDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8qIC4xcyBkZWxheSBpcyBmb3IgY2hlY2sgYW5pbWF0aW9uICovXG4gIHRyYW5zaXRpb246IGJvcmRlciAuMjVzLCBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMsIHdpZHRoIC4yMHMgLjFzLCBoZWlnaHQgLjIwcyAuMXMsIHRvcCAuMjBzIC4xcywgbGVmdCAuMjBzIC4xcztcbiAgei1pbmRleDogMTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW46bm90KDpjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBsZWZ0OiA2cHg7XG4gIHRvcDogMTBweDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMzdkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMzdkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDIwJSA0MCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW46bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM1YTVhNWE7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiAwO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxcHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMTNweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZmZmO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMzdkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMzdkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMyNmE2OWE7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG4gIHotaW5kZXg6IDA7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluLnRhYmJlZDpmb2N1cyArIGxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItY29sb3I6ICM1YTVhNWE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW4udGFiYmVkOmNoZWNrZWQ6Zm9jdXMgKyBsYWJlbDphZnRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgYm9yZGVyLWNvbG9yOiAjMjZhNjlhO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpkaXNhYmxlZDpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkRCREJEO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpkaXNhYmxlZDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluOmRpc2FibGVkOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCREJEQkQ7XG4gIGJvcmRlci1jb2xvcjogI0JEQkRCRDtcbn1cblxuLyogU3dpdGNoXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnN3aXRjaCxcbi5zd2l0Y2ggKiB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uc3dpdGNoIGxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgLmxldmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg0YzdjMTtcbn1cblxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgLmxldmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgbGVmdDogMjRweDtcbn1cblxuLnN3aXRjaCBsYWJlbCAubGV2ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgxODE4MTtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDE2cHg7XG59XG5cbi5zd2l0Y2ggbGFiZWwgLmxldmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMXB4O1xuICBoZWlnaHQ6IDIxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMUYxRjE7XG4gIGJvcmRlci1yYWRpdXM6IDIxcHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBsZWZ0OiAtNXB4O1xuICB0b3A6IC0zcHg7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLCBiYWNrZ3JvdW5kIC4zcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbn1cblxuaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpub3QoOmRpc2FibGVkKSB+IC5sZXZlcjphY3RpdmU6OmFmdGVyLFxuaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpub3QoOmRpc2FibGVkKS50YWJiZWQ6Zm9jdXMgfiAubGV2ZXI6OmFmdGVyIHtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuNCksIDAgMCAwIDE1cHggcmdiYSgzOCwgMTY2LCAxNTQsIDAuMSk7XG59XG5cbmlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdCg6ZGlzYWJsZWQpIH4gLmxldmVyOmFjdGl2ZTphZnRlcixcbmlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdCg6ZGlzYWJsZWQpLnRhYmJlZDpmb2N1cyB+IC5sZXZlcjo6YWZ0ZXIge1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAwIDAgMTVweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uc3dpdGNoIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSArIC5sZXZlciB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XVtkaXNhYmxlZF0gKyAubGV2ZXI6YWZ0ZXIsXG4uc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXTpjaGVja2VkICsgLmxldmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDtcbn1cblxuLyogU2VsZWN0IEZpZWxkXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuc2VsZWN0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuc2VsZWN0LmJyb3dzZXItZGVmYXVsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAzcmVtO1xufVxuXG4uc2VsZWN0LWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uc2VsZWN0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZWxlY3Qtd3JhcHBlciBpbnB1dC5zZWxlY3QtZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGhlaWdodDogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zZWxlY3Qtd3JhcHBlciBzcGFuLmNhcmV0IHtcbiAgY29sb3I6IGluaXRpYWw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMTZweDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uc2VsZWN0LXdyYXBwZXIgc3Bhbi5jYXJldC5kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG4uc2VsZWN0LXdyYXBwZXIgKyBsYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTRweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbnNlbGVjdDpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5zZWxlY3Qtd3JhcHBlciBpbnB1dC5zZWxlY3QtZHJvcGRvd246ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIHdlYmtpdCAoc2FmYXJpLCBjaHJvbWUpIGJyb3dzZXJzICovXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIG1vemlsbGEgYnJvd3NlcnMgKi9cbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBJRTEwKyAqL1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uc2VsZWN0LXdyYXBwZXIgaSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5zZWxlY3QtZHJvcGRvd24gbGkuZGlzYWJsZWQsXG4uc2VsZWN0LWRyb3Bkb3duIGxpLmRpc2FibGVkID4gc3Bhbixcbi5zZWxlY3QtZHJvcGRvd24gbGkub3B0Z3JvdXAge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnByZWZpeCB+IC5zZWxlY3Qtd3JhcHBlciB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICB3aWR0aDogOTIlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG59XG5cbi5wcmVmaXggfiBsYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtO1xufVxuXG4uc2VsZWN0LWRyb3Bkb3duIGxpIGltZyB7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIG1hcmdpbjogNXB4IDE1cHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3VwLnNlbGVjdGVkID4gc3BhbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG5cbi5zZWxlY3QtZHJvcGRvd24gbGkub3B0Z3JvdXAgPiBzcGFuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuLnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cCB+IGxpLm9wdGdyb3VwLW9wdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLyogRmlsZSBJbnB1dFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5maWxlLWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsZS1maWVsZCAuZmlsZS1wYXRoLXdyYXBwZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5maWxlLWZpZWxkIGlucHV0LmZpbGUtcGF0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsZS1maWVsZCAuYnRuLCAuZmlsZS1maWVsZCAuYnRuLWxhcmdlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG59XG5cbi5maWxlLWZpZWxkIHNwYW4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5maWxlLWZpZWxkIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLyogUmFuZ2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmFuZ2UtZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdLFxuaW5wdXRbdHlwZT1yYW5nZV0gKyAudGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAxNXB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV0gKyAudGh1bWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xuICB0b3A6IDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtNnB4O1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iIC52YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzI2YTY5YTtcbiAgZm9udC1zaXplOiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iLmFjdGl2ZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJSA1MCUgNTAlIDA7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdICsgLnRodW1iLmFjdGl2ZSAudmFsdWUge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICNjMmMwYzI7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogMTRweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIG1hcmdpbjogLTVweCAwIDAgMDtcbiAgdHJhbnNpdGlvbjogLjNzO1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXSB7XG4gIC8qIGZpeCBmb3IgRkYgdW5hYmxlIHRvIGFwcGx5IGZvY3VzIHN0eWxlIGJ1ZyAgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gIC8qcmVxdWlyZWQgZm9yIHByb3BlciB0cmFjayBzaXppbmcgaW4gRkYqL1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10cmFjayB7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZGRkO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1iIHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICMyNmE2OWE7XG4gIG1hcmdpbi10b3A6IC01cHg7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICNmZmY7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTpmb2N1czo6LW1vei1yYW5nZS10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2sge1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogNnB4IDA7XG4gIC8qcmVtb3ZlIGRlZmF1bHQgdGljayBtYXJrcyovXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyIHtcbiAgYmFja2dyb3VuZDogIzc3Nztcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLXVwcGVyIHtcbiAgYmFja2dyb3VuZDogI2RkZDtcbn1cblxuaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10aHVtYiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiAxNHB4O1xuICB3aWR0aDogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAjMjZhNjlhO1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTpmb2N1czo6LW1zLWZpbGwtbG93ZXIge1xuICBiYWNrZ3JvdW5kOiAjODg4O1xufVxuXG5pbnB1dFt0eXBlPXJhbmdlXTpmb2N1czo6LW1zLWZpbGwtdXBwZXIge1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xufVxuXG4vKioqKioqKioqKioqKioqXG4gICAgTmF2IExpc3RcbioqKioqKioqKioqKioqKi9cbi50YWJsZS1vZi1jb250ZW50cy5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLnRhYmxlLW9mLWNvbnRlbnRzIGxpIHtcbiAgcGFkZGluZzogMnB4IDA7XG59XG5cbi50YWJsZS1vZi1jb250ZW50cyBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzc1NzU3NTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IC40O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi50YWJsZS1vZi1jb250ZW50cyBhOmhvdmVyIHtcbiAgY29sb3I6ICNhOGE4YTg7XG4gIHBhZGRpbmctbGVmdDogMTlweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWE0YTRmO1xufVxuXG4udGFibGUtb2YtY29udGVudHMgYS5hY3RpdmUge1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2VhNGE0Zjtcbn1cblxuLnNpZGUtbmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMjQwcHg7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWFyZ2luOiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDYwcHgpO1xuICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlKTtcbiAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDk5OTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xufVxuXG4uc2lkZS1uYXYucmlnaHQtYWxpZ25lZCB7XG4gIHJpZ2h0OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDUlKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSk7XG4gIGxlZnQ6IGF1dG87XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cblxuLnNpZGUtbmF2IC5jb2xsYXBzaWJsZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLnNpZGUtbmF2IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiA2NHB4O1xufVxuXG4uc2lkZS1uYXYgbGkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLnNpZGUtbmF2IGEge1xuICBjb2xvcjogIzQ0NDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgaGVpZ2h0OiA2NHB4O1xuICBsaW5lLWhlaWdodDogNjRweDtcbiAgcGFkZGluZzogMCAzMHB4O1xufVxuXG4uc2lkZS1uYXYgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi5zaWRlLW5hdiBhLmJ0biwgLnNpZGUtbmF2IGEuYnRuLWxhcmdlLCAuc2lkZS1uYXYgYS5idG4tbGFyZ2UsIC5zaWRlLW5hdiBhLmJ0bi1mbGF0LCAuc2lkZS1uYXYgYS5idG4tZmxvYXRpbmcge1xuICBtYXJnaW46IDEwcHggMTVweDtcbn1cblxuLnNpZGUtbmF2IGEuYnRuLCAuc2lkZS1uYXYgYS5idG4tbGFyZ2UsIC5zaWRlLW5hdiBhLmJ0bi1sYXJnZSwgLnNpZGUtbmF2IGEuYnRuLWZsb2F0aW5nIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zaWRlLW5hdiBhLmJ0bi1mbGF0IHtcbiAgY29sb3I6ICMzNDM0MzQ7XG59XG5cbi5zaWRlLW5hdiBhLmJ0bjpob3ZlciwgLnNpZGUtbmF2IGEuYnRuLWxhcmdlOmhvdmVyLCAuc2lkZS1uYXYgYS5idG4tbGFyZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmJiYmFkO1xufVxuXG4uc2lkZS1uYXYgYS5idG4tZmxvYXRpbmc6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhO1xufVxuXG4uZHJhZy10YXJnZXQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTk4O1xufVxuXG4uc2lkZS1uYXYuZml4ZWQgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwIDMwcHg7XG4gIGNvbG9yOiAjNDQ0O1xufVxuXG4uc2lkZS1uYXYuZml4ZWQge1xuICBsZWZ0OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLnNpZGUtbmF2LmZpeGVkLnJpZ2h0LWFsaWduZWQge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuc2lkZS1uYXYuZml4ZWQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSk7XG4gIH1cbiAgLnNpZGUtbmF2LmZpeGVkLnJpZ2h0LWFsaWduZWQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xuICB9XG59XG5cbi5zaWRlLW5hdiAuY29sbGFwc2libGUtYm9keSBsaS5hY3RpdmUsXG4uc2lkZS1uYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHkgbGkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlNmU3Mztcbn1cblxuLnNpZGUtbmF2IC5jb2xsYXBzaWJsZS1ib2R5IGxpLmFjdGl2ZSBhLFxuLnNpZGUtbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1ib2R5IGxpLmFjdGl2ZSBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNzaWRlbmF2LW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTIwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogOTk3O1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLypcbiAgICBAbGljZW5zZVxuICAgIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG4gICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG4gICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTVFlMRVMgRk9SIFRIRSBTUElOTkVSICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuICogQ29uc3RhbnRzOlxuICogICAgICBTVFJPS0VXSURUSCA9IDNweFxuICogICAgICBBUkNTSVpFICAgICA9IDI3MCBkZWdyZWVzIChhbW91bnQgb2YgY2lyY2xlIHRoZSBhcmMgdGFrZXMgdXApXG4gKiAgICAgIEFSQ1RJTUUgICAgID0gMTMzM21zICh0aW1lIGl0IHRha2VzIHRvIGV4cGFuZCBhbmQgY29udHJhY3QgYXJjKVxuICogICAgICBBUkNTVEFSVFJPVCA9IDIxNiBkZWdyZWVzIChob3cgbXVjaCB0aGUgc3RhcnQgbG9jYXRpb24gb2YgdGhlIGFyY1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCByb3RhdGUgZWFjaCB0aW1lLCAyMTYgZ2l2ZXMgdXMgYVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgcG9pbnRlZCBzdGFyIHNoYXBlIChpdCdzIDM2MC81ICogMykuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGEgNyBwb2ludGVkIHN0YXIsIHdlIG1pZ2h0IGRvXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYwLzcgKiAzID0gMTU0LjI4NilcbiAqICAgICAgQ09OVEFJTkVSV0lEVEggPSAyOHB4XG4gKiAgICAgIFNIUklOS19USU1FID0gNDAwbXNcbiAqL1xuLnByZWxvYWRlci13cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG59XG5cbi5wcmVsb2FkZXItd3JhcHBlci5zbWFsbCB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG59XG5cbi5wcmVsb2FkZXItd3JhcHBlci5iaWcge1xuICB3aWR0aDogNjRweDtcbiAgaGVpZ2h0OiA2NHB4O1xufVxuXG4ucHJlbG9hZGVyLXdyYXBwZXIuYWN0aXZlIHtcbiAgLyogZHVyYXRpb246IDM2MCAqIEFSQ1RJTUUgLyAoQVJDU1RBUlRST1QgKyAoMzYwLUFSQ1NJWkUpKSAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSAxNTY4bXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGUge1xuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZSB7XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi5zcGlubmVyLWxheWVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICBib3JkZXItY29sb3I6ICMyNmE2OWE7XG59XG5cbi5zcGlubmVyLWJsdWUsXG4uc3Bpbm5lci1ibHVlLW9ubHkge1xuICBib3JkZXItY29sb3I6ICM0Mjg1ZjQ7XG59XG5cbi5zcGlubmVyLXJlZCxcbi5zcGlubmVyLXJlZC1vbmx5IHtcbiAgYm9yZGVyLWNvbG9yOiAjZGI0NDM3O1xufVxuXG4uc3Bpbm5lci15ZWxsb3csXG4uc3Bpbm5lci15ZWxsb3ctb25seSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0YjQwMDtcbn1cblxuLnNwaW5uZXItZ3JlZW4sXG4uc3Bpbm5lci1ncmVlbi1vbmx5IHtcbiAgYm9yZGVyLWNvbG9yOiAjMGY5ZDU4O1xufVxuXG4vKipcbiAqIElNUE9SVEFOVCBOT1RFIEFCT1VUIENTUyBBTklNQVRJT04gUFJPUEVSVElFUyAoa2VhbnVsZWUpOlxuICpcbiAqIGlPUyBTYWZhcmkgKHRlc3RlZCBvbiBpT1MgOC4xKSBkb2VzIG5vdCBoYW5kbGUgYW5pbWF0aW9uLWRlbGF5IHZlcnkgd2VsbCAtIGl0IGRvZXNuJ3RcbiAqIGd1YXJhbnRlZSB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCBzdGFydCBfZXhhY3RseV8gYWZ0ZXIgdGhhdCB2YWx1ZS4gU28gd2UgYXZvaWQgdXNpbmdcbiAqIGFuaW1hdGlvbi1kZWxheSBhbmQgaW5zdGVhZCBzZXQgY3VzdG9tIGtleWZyYW1lcyBmb3IgZWFjaCBjb2xvciAoYXMgcmVkdW5kYW50IGFzIGl0XG4gKiBzZWVtcykuXG4gKlxuICogV2Ugd3JpdGUgb3V0IGVhY2ggYW5pbWF0aW9uIGluIGZ1bGwgKGluc3RlYWQgb2Ygc2VwYXJhdGluZyBhbmltYXRpb24tbmFtZSxcbiAqIGFuaW1hdGlvbi1kdXJhdGlvbiwgZXRjLikgYmVjYXVzZSB1bmRlciB0aGUgcG9seWZpbGwsIFNhZmFyaSBkb2VzIG5vdCByZWNvZ25pemUgdGhvc2VcbiAqIHNwZWNpZmljIHByb3BlcnRpZXMgcHJvcGVybHksIHRyZWF0cyB0aGVtIGFzIC13ZWJraXQtYW5pbWF0aW9uLCBhbmQgb3ZlcnJpZGVzIHRoZVxuICogb3RoZXIgYW5pbWF0aW9uIHJ1bGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGxhdGZvcm0vaXNzdWVzLzUzLlxuICovXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItYmx1ZSB7XG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBibHVlLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG4gIGFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIGJsdWUtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbn1cblxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLXJlZCB7XG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCByZWQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgcmVkLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG59XG5cbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci15ZWxsb3cge1xuICAvKiBkdXJhdGlvbnM6IDQgKiBBUkNUSU1FICovXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgeWVsbG93LWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG4gIGFuaW1hdGlvbjogZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIHllbGxvdy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xufVxuXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItZ3JlZW4ge1xuICAvKiBkdXJhdGlvbnM6IDQgKiBBUkNUSU1FICovXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgZ3JlZW4tZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgYW5pbWF0aW9uOiBmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgZ3JlZW4tZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbn1cblxuLmFjdGl2ZSAuc3Bpbm5lci1sYXllcixcbi5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ibHVlLW9ubHksXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItcmVkLW9ubHksXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXIteWVsbG93LW9ubHksXG4uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItZ3JlZW4tb25seSB7XG4gIC8qIGR1cmF0aW9uczogNCAqIEFSQ1RJTUUgKi9cbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICBhbmltYXRpb246IGZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmlsbC11bmZpbGwtcm90YXRlIHtcbiAgMTIuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgfVxuICAvKiAwLjUgKiBBUkNTSVpFICovXG4gIDI1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICB9XG4gIC8qIDEgICAqIEFSQ1NJWkUgKi9cbiAgMzcuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKTtcbiAgfVxuICAvKiAxLjUgKiBBUkNTSVpFICovXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpO1xuICB9XG4gIC8qIDIgICAqIEFSQ1NJWkUgKi9cbiAgNjIuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKTtcbiAgfVxuICAvKiAyLjUgKiBBUkNTSVpFICovXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg4MTBkZWcpO1xuICB9XG4gIC8qIDMgICAqIEFSQ1NJWkUgKi9cbiAgODcuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTtcbiAgfVxuICAvKiAzLjUgKiBBUkNTSVpFICovXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpO1xuICB9XG4gIC8qIDQgICAqIEFSQ1NJWkUgKi9cbn1cblxuQGtleWZyYW1lcyBmaWxsLXVuZmlsbC1yb3RhdGUge1xuICAxMi41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgfVxuICAvKiAwLjUgKiBBUkNTSVpFICovXG4gIDI1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgfVxuICAvKiAxICAgKiBBUkNTSVpFICovXG4gIDM3LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpO1xuICB9XG4gIC8qIDEuNSAqIEFSQ1NJWkUgKi9cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDU0MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpO1xuICB9XG4gIC8qIDIgICAqIEFSQ1NJWkUgKi9cbiAgNjIuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZyk7XG4gIH1cbiAgLyogMi41ICogQVJDU0laRSAqL1xuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDgxMGRlZyk7XG4gIH1cbiAgLyogMyAgICogQVJDU0laRSAqL1xuICA4Ny41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTtcbiAgfVxuICAvKiAzLjUgKiBBUkNTSVpFICovXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7XG4gIH1cbiAgLyogNCAgICogQVJDU0laRSAqL1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYmx1ZS1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDI2JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA4OSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBibHVlLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMjYlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDg5JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcmVkLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxNSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByZWQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDE1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUxJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgeWVsbG93LWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA0MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA3NiUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB5ZWxsb3ctZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDc2JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZ3JlZW4tZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBncmVlbi1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNjUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4vKipcbiAqIFBhdGNoIHRoZSBnYXAgdGhhdCBhcHBlYXIgYmV0d2VlbiB0aGUgdHdvIGFkamFjZW50IGRpdi5jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGVcbiAqIHNwaW5uZXIgaXMgcm90YXRpbmcgKGFwcGVhcnMgb24gQ2hyb21lIDM4LCBTYWZhcmkgNy4xLCBhbmQgSUUgMTEpLlxuICovXG4uZ2FwLXBhdGNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDQ1JTtcbiAgd2lkdGg6IDEwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG5cbi5nYXAtcGF0Y2ggLmNpcmNsZSB7XG4gIHdpZHRoOiAxMDAwJTtcbiAgbGVmdDogLTQ1MCU7XG59XG5cbi5jaXJjbGUtY2xpcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cblxuLmNpcmNsZS1jbGlwcGVyIC5jaXJjbGUge1xuICB3aWR0aDogMjAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItd2lkdGg6IDNweDtcbiAgLyogU1RST0tFV0lEVEggKi9cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBub25lO1xuICBhbmltYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xufVxuXG4uY2lyY2xlLWNsaXBwZXIubGVmdCAuY2lyY2xlIHtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7XG59XG5cbi5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHtcbiAgbGVmdDogLTEwMCU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTI5ZGVnKTtcbn1cblxuLmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIubGVmdCAuY2lyY2xlIHtcbiAgLyogZHVyYXRpb246IEFSQ1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IGxlZnQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICBhbmltYXRpb246IGxlZnQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xufVxuXG4uYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xlIHtcbiAgLyogZHVyYXRpb246IEFSQ1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IHJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgYW5pbWF0aW9uOiByaWdodC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsZWZ0LXNwaW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGVmdC1zcGluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByaWdodC1zcGluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByaWdodC1zcGluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDVkZWcpO1xuICB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XG4gIH1cbn1cblxuI3NwaW5uZXJDb250YWluZXIuY29vbGRvd24ge1xuICAvKiBkdXJhdGlvbjogU0hSSU5LX1RJTUUgKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgMTU2OG1zIGxpbmVhciBpbmZpbml0ZSwgZmFkZS1vdXQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGUsIGZhZGUtb3V0IDQwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zbGlkZXIuZnVsbHNjcmVlbiB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xufVxuXG4uc2xpZGVyLmZ1bGxzY3JlZW4gdWwuc2xpZGVzIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2xpZGVyLmZ1bGxzY3JlZW4gdWwuaW5kaWNhdG9ycyB7XG4gIHotaW5kZXg6IDI7XG4gIGJvdHRvbTogMzBweDtcbn1cblxuLnNsaWRlciAuc2xpZGVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWU5ZTtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuXG4uc2xpZGVyIC5zbGlkZXMgbGkge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNsaWRlciAuc2xpZGVzIGxpIGltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLnNsaWRlciAuc2xpZGVzIGxpIC5jYXB0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNSU7XG4gIGxlZnQ6IDE1JTtcbiAgd2lkdGg6IDcwJTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnNsaWRlciAuc2xpZGVzIGxpIC5jYXB0aW9uIHAge1xuICBjb2xvcjogI2UwZTBlMDtcbn1cblxuLnNsaWRlciAuc2xpZGVzIGxpLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5zbGlkZXIgLmluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc2xpZGVyIC5pbmRpY2F0b3JzIC5pbmRpY2F0b3ItaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIG1hcmdpbjogMCAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uc2xpZGVyIC5pbmRpY2F0b3JzIC5pbmRpY2F0b3ItaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNENBRjUwO1xufVxuXG4uY2Fyb3VzZWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwMHB4O1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiA1MDBweDtcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogNTAwcHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSA1MCU7XG59XG5cbi5jYXJvdXNlbCAuY2Fyb3VzZWwtaXRlbSB7XG4gIHdpZHRoOiAyMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5jYXJvdXNlbCAuY2Fyb3VzZWwtaXRlbSBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhcm91c2VsLmNhcm91c2VsLXNsaWRlciB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4uY2Fyb3VzZWwuY2Fyb3VzZWwtc2xpZGVyIC5jYXJvdXNlbC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAkQkFTRS1QSUNLRVJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIE5vdGU6IHRoZSByb290IHBpY2tlciBlbGVtZW50IHNob3VsZCAqTk9UKiBiZSBzdHlsZWQgbW9yZSB0aGFuIHdoYXQncyBoZXJlLlxuICovXG4ucGlja2VyIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwMDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyoqXG4gKiBUaGUgcGlja2VyIGlucHV0IGVsZW1lbnQuXG4gKi9cbi5waWNrZXJfX2lucHV0IHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFdoZW4gdGhlIHBpY2tlciBpcyBvcGVuZWQsIHRoZSBpbnB1dCBlbGVtZW50IGlzIFwiYWN0aXZhdGVkXCIuXG4gKi9cbi5waWNrZXJfX2lucHV0LnBpY2tlcl9faW5wdXQtLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogIzAwODllYztcbn1cblxuLyoqXG4gKiBUaGUgaG9sZGVyIGlzIHRoZSBvbmx5IFwic2Nyb2xsYWJsZVwiIHRvcC1sZXZlbCBjb250YWluZXIgZWxlbWVudC5cbiAqL1xuLnBpY2tlcl9faG9sZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLyohXG4gKiBEZWZhdWx0IG1vYmlsZS1maXJzdCwgcmVzcG9uc2l2ZSBzdHlsaW5nIGZvciBwaWNrYWRhdGUuanNcbiAqIERlbW86IGh0dHA6Ly9hbXN1bC5naXRodWIuaW8vcGlja2FkYXRlLmpzXG4gKi9cbi8qKlxuICogTm90ZTogdGhlIHJvb3QgcGlja2VyIGVsZW1lbnQgc2hvdWxkICpOT1QqIGJlIHN0eWxlZCBtb3JlIHRoYW4gd2hhdCdzIGhlcmUuXG4gKi9cbi8qKlxuICogTWFrZSB0aGUgaG9sZGVyIGFuZCBmcmFtZSBmdWxsc2NyZWVuLlxuICovXG4ucGlja2VyX19ob2xkZXIsXG4ucGlja2VyX19mcmFtZSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMTAwJTtcbn1cblxuLyoqXG4gKiBUaGUgaG9sZGVyIHNob3VsZCBvdmVybGF5IHRoZSBlbnRpcmUgc2NyZWVuLlxuICovXG4ucGlja2VyX19ob2xkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZS1vdXQsIHRvcCAwcyAwLjE1cztcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qKlxuICogVGhlIGZyYW1lIHRoYXQgYm91bmRzIHRoZSBib3ggY29udGVudHMgb2YgdGhlIHBpY2tlci5cbiAqL1xuLnBpY2tlcl9fZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtaW4td2lkdGg6IDI1NnB4O1xuICB3aWR0aDogMzAwcHg7XG4gIG1heC1oZWlnaHQ6IDM1MHB4O1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgLW1vei1vcGFjaXR5OiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1vdXQ7XG59XG5cbkBtZWRpYSAobWluLWhlaWdodDogMjguODc1ZW0pIHtcbiAgLnBpY2tlcl9fZnJhbWUge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IC0xMDAlO1xuICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi1oZWlnaHQ6IDQwLjEyNWVtKSB7XG4gIC5waWNrZXJfX2ZyYW1lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3LjUlO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHdyYXBwZXIgc2V0cyB0aGUgc3RhZ2UgdG8gdmVydGljYWxseSBhbGlnbiB0aGUgYm94IGNvbnRlbnRzLlxuICovXG4ucGlja2VyX193cmFwIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbkBtZWRpYSAobWluLWhlaWdodDogMjguODc1ZW0pIHtcbiAgLnBpY2tlcl9fd3JhcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgYm94IGNvbnRhaW5zIGFsbCB0aGUgcGlja2VyIGNvbnRlbnRzLlxuICovXG4ucGlja2VyX19ib3gge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5AbWVkaWEgKG1pbi1oZWlnaHQ6IDI4Ljg3NWVtKSB7XG4gIC5waWNrZXJfX2JveCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzc3Nzc3NztcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjODk4OTg5O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDM2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICB9XG59XG5cbi8qKlxuICogV2hlbiB0aGUgcGlja2VyIG9wZW5zLi4uXG4gKi9cbi5waWNrZXItLW9wZW5lZCAucGlja2VyX19ob2xkZXIge1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSMxRTAwMDAwMCxlbmRDb2xvcnN0cj0jMUUwMDAwMDApXCI7XG4gIHpvb206IDE7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZS1vdXQ7XG59XG5cbi5waWNrZXItLW9wZW5lZCAucGlja2VyX19mcmFtZSB7XG4gIHRvcDogMDtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApXCI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xuICAtbW96LW9wYWNpdHk6IDE7XG4gIG9wYWNpdHk6IDE7XG59XG5cbkBtZWRpYSAobWluLWhlaWdodDogMzUuODc1ZW0pIHtcbiAgLnBpY2tlci0tb3BlbmVkIC5waWNrZXJfX2ZyYW1lIHtcbiAgICB0b3A6IDEwJTtcbiAgICBib3R0b206IGF1dG87XG4gIH1cbn1cblxuLyoqXG4gKiBGb3IgYGxhcmdlYCBzY3JlZW5zLCB0cmFuc2Zvcm0gaW50byBhbiBpbmxpbmUgcGlja2VyLlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ1VTVE9NIE1BVEVSSUFMSVpFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5waWNrZXJfX2lucHV0LnBpY2tlcl9faW5wdXQtLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogI0UzRjJGRDtcbn1cblxuLnBpY2tlcl9fZnJhbWUge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAzMjVweDtcbn1cblxuQG1lZGlhIChtaW4taGVpZ2h0OiAzOC44NzVlbSkge1xuICAucGlja2VyLS1vcGVuZWQgLnBpY2tlcl9fZnJhbWUge1xuICAgIHRvcDogMTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgJEJBU0UtREFURS1QSUNLRVJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRoZSBwaWNrZXIgYm94LlxuICovXG4ucGlja2VyX19ib3gge1xuICBwYWRkaW5nOiAwIDFlbTtcbn1cblxuLyoqXG4gKiBUaGUgaGVhZGVyIGNvbnRhaW5pbmcgdGhlIG1vbnRoIGFuZCB5ZWFyIHN0dWZmLlxuICovXG4ucGlja2VyX19oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogLjc1ZW07XG59XG5cbi8qKlxuICogVGhlIG1vbnRoIGFuZCB5ZWFyIGxhYmVscy5cbiAqL1xuLnBpY2tlcl9fbW9udGgsXG4ucGlja2VyX195ZWFyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogLjI1ZW07XG4gIG1hcmdpbi1yaWdodDogLjI1ZW07XG59XG5cbi8qKlxuICogVGhlIG1vbnRoIGFuZCB5ZWFyIHNlbGVjdG9ycy5cbiAqL1xuLnBpY2tlcl9fc2VsZWN0LS1tb250aCxcbi5waWNrZXJfX3NlbGVjdC0teWVhciB7XG4gIGhlaWdodDogMmVtO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogLjI1ZW07XG4gIG1hcmdpbi1yaWdodDogLjI1ZW07XG59XG5cbi5waWNrZXJfX3NlbGVjdC0tbW9udGguYnJvd3Nlci1kZWZhdWx0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB3aWR0aDogNDAlO1xufVxuXG4ucGlja2VyX19zZWxlY3QtLXllYXIuYnJvd3Nlci1kZWZhdWx0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB3aWR0aDogMjYlO1xufVxuXG4ucGlja2VyX19zZWxlY3QtLW1vbnRoOmZvY3VzLFxuLnBpY2tlcl9fc2VsZWN0LS15ZWFyOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4vKipcbiAqIFRoZSBtb250aCBuYXZpZ2F0aW9uIGJ1dHRvbnMuXG4gKi9cbi5waWNrZXJfX25hdi0tcHJldixcbi5waWNrZXJfX25hdi0tbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcGFkZGluZzogLjVlbSAxLjI1ZW07XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgdG9wOiAtMC4yNWVtO1xufVxuXG4ucGlja2VyX19uYXYtLXByZXYge1xuICBsZWZ0OiAtMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1ZW07XG59XG5cbi5waWNrZXJfX25hdi0tbmV4dCB7XG4gIHJpZ2h0OiAtMWVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTtcbn1cblxuLnBpY2tlcl9fbmF2LS1kaXNhYmxlZCxcbi5waWNrZXJfX25hdi0tZGlzYWJsZWQ6aG92ZXIsXG4ucGlja2VyX19uYXYtLWRpc2FibGVkOmJlZm9yZSxcbi5waWNrZXJfX25hdi0tZGlzYWJsZWQ6YmVmb3JlOmhvdmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZjVmNWY1O1xufVxuXG4vKipcbiAqIFRoZSBjYWxlbmRhciB0YWJsZSBvZiBkYXRlc1xuICovXG4ucGlja2VyX190YWJsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC43NWVtO1xuICBtYXJnaW4tYm90dG9tOiAuNWVtO1xufVxuXG4ucGlja2VyX190YWJsZSB0aCwgLnBpY2tlcl9fdGFibGUgdGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5waWNrZXJfX3RhYmxlIHRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFRoZSB3ZWVrZGF5IGxhYmVsc1xuICovXG4ucGlja2VyX193ZWVrZGF5IHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI4NiU7XG4gIGZvbnQtc2l6ZTogLjc1ZW07XG4gIHBhZGRpbmctYm90dG9tOiAuMjVlbTtcbiAgY29sb3I6ICM5OTk5OTk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC8qIEluY3JlYXNlIHRoZSBzcGFjaW5nIGEgdGFkICovXG59XG5cbkBtZWRpYSAobWluLWhlaWdodDogMzMuODc1ZW0pIHtcbiAgLnBpY2tlcl9fd2Vla2RheSB7XG4gICAgcGFkZGluZy1ib3R0b206IC41ZW07XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgZGF5cyBvbiB0aGUgY2FsZW5kYXJcbiAqL1xuLnBpY2tlcl9fZGF5LS10b2RheSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICM1OTU5NTk7XG4gIGxldHRlci1zcGFjaW5nOiAtLjM7XG4gIHBhZGRpbmc6IC43NXJlbSAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLnBpY2tlcl9fZGF5LS1kaXNhYmxlZDpiZWZvcmUge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYWFhYWFhO1xufVxuXG4ucGlja2VyX19kYXktLWluZm9jdXM6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucGlja2VyX19kYXktLW91dGZvY3VzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogLjc1cmVtIDA7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ucGlja2VyX19kYXktLW91dGZvY3VzOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2RkZGRkZDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZDpob3Zlcixcbi5waWNrZXItLWZvY3VzZWQgLnBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnBpY2tlcl9fZGF5LS1zZWxlY3RlZCxcbi5waWNrZXJfX2RheS0tc2VsZWN0ZWQ6aG92ZXIsXG4ucGlja2VyLS1mb2N1c2VkIC5waWNrZXJfX2RheS0tc2VsZWN0ZWQge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xuICBiYWNrZ3JvdW5kOiAjMDA4OWVjO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnBpY2tlcl9fZGF5LS1kaXNhYmxlZCxcbi5waWNrZXJfX2RheS0tZGlzYWJsZWQ6aG92ZXIsXG4ucGlja2VyLS1mb2N1c2VkIC5waWNrZXJfX2RheS0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICBib3JkZXItY29sb3I6ICNmNWY1ZjU7XG4gIGNvbG9yOiAjZGRkZGRkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5waWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQucGlja2VyX19kYXktLWRpc2FibGVkLFxuLnBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZC5waWNrZXJfX2RheS0tZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjYmJiYmJiO1xufVxuXG4vKipcbiAqIFRoZSBmb290ZXIgY29udGFpbmluZyB0aGUgXCJ0b2RheVwiLCBcImNsZWFyXCIsIGFuZCBcImNsb3NlXCIgYnV0dG9ucy5cbiAqL1xuLnBpY2tlcl9fZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5waWNrZXJfX2J1dHRvbi0tdG9kYXksXG4ucGlja2VyX19idXR0b24tLWNsZWFyLFxuLnBpY2tlcl9fYnV0dG9uLS1jbG9zZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogLjhlbTtcbiAgcGFkZGluZzogLjY2ZW0gMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdpZHRoOiAzMyU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLnBpY2tlcl9fYnV0dG9uLS10b2RheTpob3Zlcixcbi5waWNrZXJfX2J1dHRvbi0tY2xlYXI6aG92ZXIsXG4ucGlja2VyX19idXR0b24tLWNsb3NlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZDogI2IxZGNmYjtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2IxZGNmYjtcbn1cblxuLnBpY2tlcl9fYnV0dG9uLS10b2RheTpmb2N1cyxcbi5waWNrZXJfX2J1dHRvbi0tY2xlYXI6Zm9jdXMsXG4ucGlja2VyX19idXR0b24tLWNsb3NlOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2IxZGNmYjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ucGlja2VyX19idXR0b24tLXRvZGF5OmJlZm9yZSxcbi5waWNrZXJfX2J1dHRvbi0tY2xlYXI6YmVmb3JlLFxuLnBpY2tlcl9fYnV0dG9uLS1jbG9zZTpiZWZvcmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAwO1xufVxuXG4ucGlja2VyX19idXR0b24tLXRvZGF5OmJlZm9yZSxcbi5waWNrZXJfX2J1dHRvbi0tY2xlYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIG1hcmdpbi1yaWdodDogLjQ1ZW07XG59XG5cbi5waWNrZXJfX2J1dHRvbi0tdG9kYXk6YmVmb3JlIHtcbiAgdG9wOiAtMC4wNWVtO1xuICB3aWR0aDogMDtcbiAgYm9yZGVyLXRvcDogMC42NmVtIHNvbGlkICMwMDU5YmM7XG4gIGJvcmRlci1sZWZ0OiAuNjZlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLnBpY2tlcl9fYnV0dG9uLS1jbGVhcjpiZWZvcmUge1xuICB0b3A6IC0wLjI1ZW07XG4gIHdpZHRoOiAuNjZlbTtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNlZTIyMDA7XG59XG5cbi5waWNrZXJfX2J1dHRvbi0tY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEQ3XCI7XG4gIHRvcDogLTAuMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBtYXJnaW4tcmlnaHQ6IC4zNWVtO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cblxuLnBpY2tlcl9fYnV0dG9uLS10b2RheVtkaXNhYmxlZF0sXG4ucGlja2VyX19idXR0b24tLXRvZGF5W2Rpc2FibGVkXTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2Y1ZjVmNTtcbiAgY29sb3I6ICNkZGRkZGQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnBpY2tlcl9fYnV0dG9uLS10b2RheVtkaXNhYmxlZF06YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2FhYWFhYTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENVU1RPTSBNQVRFUklBTElaRSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucGlja2VyX19ib3gge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5waWNrZXJfX2RhdGUtZGlzcGxheSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2YTY5YTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4ucGlja2VyX19uYXYtLXByZXY6aG92ZXIsXG4ucGlja2VyX19uYXYtLW5leHQ6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiAjYTFkZWQ4O1xufVxuXG4ucGlja2VyX193ZWVrZGF5LWRpc3BsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY4OTdmO1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXdlaWdodDogMjAwO1xuICBsZXR0ZXItc3BhY2luZzogLjU7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnBpY2tlcl9fbW9udGgtZGlzcGxheSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuLnBpY2tlcl9fZGF5LWRpc3BsYXkge1xuICBmb250LXNpemU6IDQuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnBpY2tlcl9feWVhci1kaXNwbGF5IHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG5cbi5waWNrZXJfX2JveCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5waWNrZXJfX2NhbGVuZGFyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbn1cblxuLnBpY2tlcl9fY2FsZW5kYXItY29udGFpbmVyIHRoZWFkIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4ucGlja2VyX190YWJsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IC41ZW07XG59XG5cbi5waWNrZXJfX2RheS0taW5mb2N1cyB7XG4gIGNvbG9yOiAjNTk1OTU5O1xuICBsZXR0ZXItc3BhY2luZzogLS4zO1xuICBwYWRkaW5nOiAuNzVyZW0gMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5waWNrZXJfX2RheS5waWNrZXJfX2RheS0tdG9kYXkge1xuICBjb2xvcjogIzI2YTY5YTtcbn1cblxuLnBpY2tlcl9fZGF5LnBpY2tlcl9fZGF5LS10b2RheS5waWNrZXJfX2RheS0tc2VsZWN0ZWQge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBpY2tlcl9fd2Vla2RheSB7XG4gIGZvbnQtc2l6ZTogLjlyZW07XG59XG5cbi5waWNrZXJfX2RheS0tc2VsZWN0ZWQsXG4ucGlja2VyX19kYXktLXNlbGVjdGVkOmhvdmVyLFxuLnBpY2tlci0tZm9jdXNlZCAucGlja2VyX19kYXktLXNlbGVjdGVkIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNmE2OWE7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ucGlja2VyX19kYXktLXNlbGVjdGVkLnBpY2tlcl9fZGF5LS1vdXRmb2N1cyxcbi5waWNrZXJfX2RheS0tc2VsZWN0ZWQ6aG92ZXIucGlja2VyX19kYXktLW91dGZvY3VzLFxuLnBpY2tlci0tZm9jdXNlZCAucGlja2VyX19kYXktLXNlbGVjdGVkLnBpY2tlcl9fZGF5LS1vdXRmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMWRlZDg7XG59XG5cbi5waWNrZXJfX2Zvb3RlciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbn1cblxuLnBpY2tlcl9fY2xvc2UsIC5waWNrZXJfX3RvZGF5IHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgY29sb3I6ICMyNmE2OWE7XG59XG5cbi5waWNrZXJfX25hdi0tcHJldjpiZWZvcmUsXG4ucGlja2VyX19uYXYtLW5leHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJvcmRlci10b3A6IC41ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IC41ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMC43NWVtIHNvbGlkICM2NzY3Njc7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnBpY2tlcl9fbmF2LS1uZXh0OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDAuNzVlbSBzb2xpZCAjNjc2NzY3O1xufVxuXG5idXR0b24ucGlja2VyX190b2RheTpmb2N1cywgYnV0dG9uLnBpY2tlcl9fY2xlYXI6Zm9jdXMsIGJ1dHRvbi5waWNrZXJfX2Nsb3NlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ExZGVkODtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICRCQVNFLVRJTUUtUElDS0VSXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBUaGUgbGlzdCBvZiB0aW1lcy5cbiAqL1xuLnBpY2tlcl9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAwIDQuMmVtO1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogVGhlIHRpbWVzIG9uIHRoZSBjbG9jay5cbiAqL1xuLnBpY2tlcl9fbGlzdC1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IC43NWVtIDEuMjVlbTtcbn1cblxuQG1lZGlhIChtaW4taGVpZ2h0OiA0Ni43NWVtKSB7XG4gIC5waWNrZXJfX2xpc3QtaXRlbSB7XG4gICAgcGFkZGluZzogLjVlbSAxZW07XG4gIH1cbn1cblxuLyogSG92ZXJlZCB0aW1lICovXG4ucGlja2VyX19saXN0LWl0ZW06aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiAjYjFkY2ZiO1xuICBib3JkZXItY29sb3I6ICMwMDg5ZWM7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4vKiBIaWdobGlnaHRlZCBhbmQgaG92ZXJlZC9mb2N1c2VkIHRpbWUgKi9cbi5waWNrZXJfX2xpc3QtaXRlbS0taGlnaGxpZ2h0ZWQge1xuICBib3JkZXItY29sb3I6ICMwMDg5ZWM7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ucGlja2VyX19saXN0LWl0ZW0tLWhpZ2hsaWdodGVkOmhvdmVyLFxuLnBpY2tlci0tZm9jdXNlZCAucGlja2VyX19saXN0LWl0ZW0tLWhpZ2hsaWdodGVkIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZDogI2IxZGNmYjtcbn1cblxuLyogU2VsZWN0ZWQgYW5kIGhvdmVyZWQvZm9jdXNlZCB0aW1lICovXG4ucGlja2VyX19saXN0LWl0ZW0tLXNlbGVjdGVkLFxuLnBpY2tlcl9fbGlzdC1pdGVtLS1zZWxlY3RlZDpob3Zlcixcbi5waWNrZXItLWZvY3VzZWQgLnBpY2tlcl9fbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6ICMwMDg5ZWM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLyogRGlzYWJsZWQgdGltZSAqL1xuLnBpY2tlcl9fbGlzdC1pdGVtLS1kaXNhYmxlZCxcbi5waWNrZXJfX2xpc3QtaXRlbS0tZGlzYWJsZWQ6aG92ZXIsXG4ucGlja2VyLS1mb2N1c2VkIC5waWNrZXJfX2xpc3QtaXRlbS0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICBib3JkZXItY29sb3I6ICNmNWY1ZjU7XG4gIGNvbG9yOiAjZGRkZGRkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJvcmRlci1jb2xvcjogI2RkZGRkZDtcbiAgei1pbmRleDogYXV0bztcbn1cblxuLyoqXG4gKiBUaGUgY2xlYXIgYnV0dG9uXG4gKi9cbi5waWNrZXItLXRpbWUgLnBpY2tlcl9fYnV0dG9uLS1jbGVhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogODAlO1xuICBtYXJnaW46IDFlbSBhdXRvIDA7XG4gIHBhZGRpbmc6IDFlbSAxLjI1ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAuNjdlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzY2Njtcbn1cblxuLnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmhvdmVyLFxuLnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmZvY3VzIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQ6ICNiMWRjZmI7XG4gIGJhY2tncm91bmQ6ICNlZTIyMDA7XG4gIGJvcmRlci1jb2xvcjogI2VlMjIwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmJlZm9yZSB7XG4gIHRvcDogLTAuMjVlbTtcbiAgY29sb3I6ICM2NjY7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmhvdmVyOmJlZm9yZSxcbi5waWNrZXItLXRpbWUgLnBpY2tlcl9fYnV0dG9uLS1jbGVhcjpmb2N1czpiZWZvcmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICRERUZBVUxULVRJTUUtUElDS0VSXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBUaGUgZnJhbWUgdGhlIGJvdW5kcyB0aGUgdGltZSBwaWNrZXIuXG4gKi9cbi5waWNrZXItLXRpbWUgLnBpY2tlcl9fZnJhbWUge1xuICBtaW4td2lkdGg6IDI1NnB4O1xuICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuXG4vKipcbiAqIFRoZSBwaWNrZXIgYm94LlxuICovXG4ucGlja2VyLS10aW1lIC5waWNrZXJfX2JveCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgKG1pbi1oZWlnaHQ6IDQwLjEyNWVtKSB7XG4gIC5waWNrZXItLXRpbWUgLnBpY2tlcl9fYm94IHtcbiAgICBtYXJnaW4tYm90dG9tOiA1ZW07XG4gIH1cbn1cbiJdLCJmaWxlIjoibWF0ZXJpYWxpemUuY3NzIiwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
