html,
body {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}
body {
  font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  overflow: hidden;
  touch-action: none;
  user-drag: none;
  -ms-content-zooming: none;
  color: #333;
  background-image: url('../../1591755179132/images/canvas-pattern.png');
}
main {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
button {
  background: none;
  outline: none;
  padding: 0;
  margin: 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
}
.hidden {
  display: none;
}
.light-on-dark {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.soft-shadow {
  box-shadow: 0 0 300px rgba(0, 0, 0, 0.25);
}
#canvas {
  order: 2;
  flex: 1 0;
  background-color: #f8f8f8;
  outline: none;
}
/* Adds an alpha tag to a canvas. */
.alpha-tag::after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "ALPHA";
  font-size: 1.5em;
  background: #551A8B;
  opacity: 0.75;
  position: absolute;
  padding: 0.2em 0.4em;
  top: 0.3em;
  right: 0.9em;
  color: #fff;
  border-radius: 3px;
  font-weight: 600;
  pointer-events: none;
}
/* Adds a beta tag to a canvas. */
.beta-tag::after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "BETA";
  font-size: 1.5em;
  background: #0273af;
  opacity: 0.75;
  position: absolute;
  padding: 0.2em 0.4em;
  top: 0.3em;
  right: 0.9em;
  color: #fff;
  border-radius: 3px;
  font-weight: 600;
  pointer-events: none;
}
/* -----
Toolbar
----- */
#toolbar {
  order: 3;
  flex: 0 0 48px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  background: #0081c6;
  margin: 0;
  padding: 0;
}
#toolbar.top {
  order: 1;
}
#toolbar.top .popup {
  bottom: auto;
  top: 64px;
}
#toolbar.top .popup::after {
  top: -24px;
  background: url('../../1591755179132/images/toolbar/popup-tail-top.svg') no-repeat;
}
#toolbar.top .popup .popup-body {
  border-radius: 10px;
}
#toolbar.top .popup.tail-right .popup-body {
  border-top-right-radius: 0;
}
#toolbar.top .popup.tail-right::after {
  background-position: 24px 0;
  right: 48px;
}
#toolbar.top .popup.tail-left .popup-body {
  border-top-left-radius: 0;
}
#toolbar.top .popup.tail-left::after {
  background-position: -24px 0;
  left: 48px;
}
#toolbar .toolbar-spacer {
  display: flex;
  flex-grow: 1;
}
#toolbar .divider {
  height: 48px;
  -ms-flex: 0 0 16px;
  flex: 0 0 16px;
  background-image: url('../../1591755179132/images/toolbar/divider.png');
  background-repeat: no-repeat;
  background-position: center;
}
#toolbar .button-group {
  position: relative;
  height: 48px;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
}
#toolbar .popup {
  bottom: 64px;
}
#toolbar .toolbar-button {
  height: 48px;
  width: 64px;
  background-repeat: no-repeat;
  background-position: center;
}
#toolbar .toolbar-button.narrow {
  width: 40px;
}
#toolbar .toolbar-button.wide {
  width: 96px;
}
#toolbar .toolbar-button.disabled,
#toolbar .toolbar-button:active {
  opacity: 0.5;
}
.text-button {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #629d34;
  color: white;
  padding: 0.8em 0;
  font-size: 0.825em;
  border-radius: 3px;
  font-weight: 600;
  letter-spacing: 0.025em;
  word-spacing: 0.1em;
  white-space: nowrap;
}
.text-button:hover {
  opacity: 0.8;
}
.text-button:active {
  background-color: #4a7727;
}
.text-button:disabled {
  background-color: #b2b2b2;
  cursor: default;
}
.text-button:disabled:hover {
  background-color: #b2b2b2;
  opacity: 1;
}
.button-field {
  display: flex;
  flex-direction: row;
}
.button-field input {
  border: 1px solid #CCC;
  border-right: none;
  border-radius: 3px 0 0 3px;
  box-shadow: inset 2px 2px 5px #CCC;
  padding: 5px;
  font-size: 0.9em;
  margin: 0;
  flex-grow: 1;
}
.button-field button {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
/* -----
Dialog
----- */
/* jquery dialogs */
#dialog-modal {
  display: none;
}
/* background overlay */
.ui-front {
  z-index: 101;
  /* same as toolbar or higher */
}
.ui-widget-overlay {
  background: none repeat scroll 0 0 gray;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* our app's generic dialog */
.ui-dialog.alert {
  padding: 0;
  background-image: none;
  background-color: #FFFFFF;
  border-radius: 8px;
  overflow: hidden;
  outline: none;
}
.ui-dialog.alert .ui-dialog-titlebar {
  padding-top: 20px;
  font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: bold;
  color: #000000;
  background: none;
  border: none;
  text-align: center;
  font-size: 16px;
}
.ui-dialog.alert .ui-dialog-titlebar .ui-dialog-title.no-title {
  /* Fix to JQuery UI 1.12 update where empty titles
      are replaced with an nbsp;.
      Manually hiding to prevent extra padding.
   */
  display: none;
}
.ui-dialog.alert .ui-dialog-titlebar-close {
  display: none;
}
.ui-dialog.alert .ui-dialog-content {
  font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 16px;
  text-align: center;
  padding: 5px 20px 20px;
  line-height: 1.2em;
}
.ui-dialog.alert .ui-dialog-buttonpane {
  margin: 0;
  padding: 0;
}
.ui-dialog.alert .ui-dialog-buttonset {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  border-top: solid 1px #BBB;
}
.ui-dialog.alert .ui-button {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 35px;
  background: none;
  border: none;
  color: #1C81C4;
  /*font-size: 14px;*/
  /*text-transform: uppercase;*/
}
.ui-dialog.alert.confirm .ui-button {
  width: 50%;
}
.ui-dialog.alert.confirm .ui-button:first-child {
  border-right: solid 1px #BBB;
}
.ui-dialog.alert .ui-button:hover {
  background-color: #F7F7F7;
}
.ui-dialog.alert .ui-button:active {
  background-color: #DDD;
}
.ui-dialog.alert.has-close button.ui-dialog-titlebar-close {
  display: block;
  position: absolute;
  color: transparent;
  top: 0;
  right: 0;
  border-radius: 18px;
  margin: 5px;
  width: 36px;
  background: black url('../../1591755179132/images/toolbar/icon-trash.png') no-repeat center;
}
.ui-dialog.alert.has-close button.ui-dialog-titlebar-close:hover {
  background-color: darkgrey;
}
#templates {
  display: none;
}
/* -----
  Modal styles
----- */
.modal-backdrop {
  height: 300vh;
  width: 300vw;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  transform: translate(-50%, -50%);
}
.modal {
  z-index: 100;
}
.modal.dark-backdrop .modal-backdrop {
  background-color: rgba(108, 118, 128, 0.5);
}
.modal.popup {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.modal.popup::after {
  content: '';
  position: absolute;
  bottom: -24px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  height: 24px;
  width: 48px;
  background: url('../../1591755179132/images/toolbar/popup-tail.svg') no-repeat;
}
.modal.popup.tail-right .popup-body {
  transform: translateX(-50%);
  border-bottom-right-radius: 0;
}
.modal.popup.tail-right::after {
  background-position: 24px 0;
  right: 48px;
}
.modal.popup.tail-left .popup-body {
  transform: translateX(50%);
  border-bottom-left-radius: 0;
}
.modal.popup.tail-left::after {
  background-position: -24px 0;
  left: 48px;
}
.modal.dialog {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
}
.modal.dialog.hidden {
  display: none;
}
.modal.dialog .modal-box {
  top: -24px;
}
.modal-box {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}
.modal-box .content {
  background: white;
}
.modal-box .header {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 0 0 15px;
  background: #0081c6;
  color: white;
  height: 46px;
  font-weight: 600;
  font-size: 1.1em;
}
.modal-box .header .close-button {
  height: 46px;
  width: 46px;
  background: url('../../1591755179132/images/toolbar/close.svg') no-repeat center;
  background-size: 40%;
}
.modal-box .header .close-button.close-dark {
  background-image: url('../../1591755179132/images/toolbar/close-dark.svg');
}
.modal-box .header .close-button:active {
  opacity: 0.5;
}
.modal.alert .modal-box {
  display: flex;
  flex-flow: column nowrap;
  width: 300px;
  text-align: center;
  position: relative;
  top: -24px;
}
.modal.alert .title {
  margin: 20px 20px 0;
  font-weight: 600;
}
.modal.alert .message {
  margin: 0.5em 20px 20px;
}
.modal.alert .button-container {
  display: flex;
  flex-flow: row wrap;
}
.modal.alert .button-container button {
  color: #1C81C4;
  flex: 1 0 100%;
  padding: 0.5em 0;
  border-top: 1px solid #BBB;
}
.modal.alert .button-container button:nth-last-child(-n + 2):first-child,
.modal.alert .button-container button:nth-last-child(-n + 2):first-child ~ button {
  flex: 1 0 40%;
}
.modal.alert .button-container button:first-child:nth-last-child(2) {
  border-right: 1px solid #BBB;
}
.modal.alert .button-container button:hover {
  background-color: #e6e6e6;
}
.modal.alert .button-container button:hover:active {
  background-color: #cccccc;
}
.modal.alert .button-container button.default {
  background-color: #afd8ee;
  color: #0a609a;
  animation: pulse-alert-default 3s ease infinite;
}
.modal.alert .button-container button.default:hover {
  background-color: #9aceea;
  animation: none;
}
.modal.alert .button-container button.default:hover:active {
  background-color: #85c3e5;
}
@keyframes pulse-alert-default {
  0% {
    background-color: #afd8ee;
  }
  50% {
    background-color: #daeef9;
  }
  100% {
    background-color: #afd8ee;
  }
}
#save-popup {
  width: 380px;
}
#save-popup .modal-box {
  position: relative;
  right: 130px;
}
#save-popup {
  user-select: text;
  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  -webkit-user-drag: auto;
}
#save-popup .content {
  background-color: white;
  padding: 15px;
  display: flex;
  flex-direction: column;
}
#save-popup .content #share-image-ui-container,
#save-popup .content #share-activity-ui-container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
#save-popup .content .description {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  margin-bottom: 0.75em;
}
#save-popup .content .description .description-icon {
  height: 24px;
  width: 24px;
  margin-right: 0.5em;
}
#save-popup .content .description .description-icon.short {
  height: 20px;
}
#save-popup .content .share-image-button-container {
  display: flex;
  flex-flow: row nowrap;
  width: calc(100% + 10px);
  margin: 0 -5px;
}
#save-popup .content .share-image-button-container .text-button {
  margin: 0 5px;
  padding-left: 0;
  padding-right: 0;
  flex-basis: 0;
  flex-grow: 1;
}
#save-popup .content .popup-divider {
  margin: 1em -15px;
  flex-grow: 0;
  flex-basis: 2px;
  background: #CCC;
}
#copy-container {
  position: relative;
  overflow: hidden;
  padding: 0;
}
#copy-container #image-copy {
  width: 100%;
  height: 100%;
}
html.disable-copy-image #copy-container {
  background-color: #b2b2b2;
}
#share-activity-ui-container {
  display: flex;
  flex-flow: row nowrap;
  width: calc(100% + 10px);
  margin: 0 -5px;
}
#share-activity-ui-container .input-container,
#share-activity-ui-container .text-button {
  margin: 0 5px;
  flex: 1 0 0;
}
#share-activity-ui-container input {
  font-family: Monaco, monospace;
  height: 95%;
  font-size: 1em;
  padding: 0 0.5em;
  width: calc(100% - 18px);
  border: 1px solid #CCC;
  border-radius: 3px;
  box-shadow: inset 2px 2px 5px #CCC;
  margin: 0;
}
html.chrome-os #share-activity-ui-container {
  width: 103%;
}
html.chrome-os #share-activity-ui-container input {
  height: 27px;
}
.submit-container {
  display: flex;
  justify-content: space-between;
}
.submit-container .field-container {
  width: 100%;
}
.submit-container .input-container {
  margin: 0 5px;
  padding-left: 0;
  padding-right: 0;
  position: relative;
  overflow: hidden;
}
.submit-container .input-container input {
  border: 1px solid #CCC;
  border-radius: 3px;
  box-shadow: inset 2px 2px 5px #CCC;
  padding: 5px;
  font-size: 4em;
  font-weight: 400;
  margin: 0;
  flex-grow: 1;
  letter-spacing: -0.01em;
}
.submit-container .text-button {
  padding: 0.75em 1.2em;
  font-size: 1.4em;
}
#link-copy {
  padding-left: 1.5em;
  padding-right: 1.5em;
}
/* Default styling: show desktop instructions. */
#copy-image-modal .copy-image-instructions .mobile {
  display: none;
}
/*
 * If touch is detected, hide desktop instructions and show mobileinstructions.
 */
.touch #copy-image-modal .desktop {
  display: none;
}
.touch #copy-image-modal .mobile {
  display: block;
}
#copy-image-modal {
  z-index: 110;
}
#copy-image-modal .modal-box {
  position: relative;
  top: -24px;
}
#copy-image-modal .content {
  padding: 20px;
  display: flex;
  flex-flow: row nowrap;
}
#copy-image-modal .content .copy-image-instructions {
  width: 10em;
  margin-right: 20px;
}
#copy-image-modal .content .copy-image-instructions p:first-child {
  margin-top: 0;
}
#copy-image-modal .content .copy-image-instructions .sub-head {
  font-size: 0.9em;
}
#copy-image-modal .content .copy-image-source-container {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
}
#copy-image-modal .content .copy-image-source-container .copy-image-source {
  max-width: 50vw;
  max-height: 50vh;
  box-shadow: 0 5px 10px 0 grey;
}
#activity-display .header {
  border-bottom: solid 2px #CCC;
  background-color: white;
  color: #333;
  justify-content: center;
  padding: 0 15px;
}
#activity-display .header .close-button {
  /* Give the title full width to center itself. */
  position: absolute;
  right: 0;
  top: 0;
}
#activity-display .content {
  padding: 5px 10px 10px 10px;
}
#activity-display .content .description {
  font-size: 10pt;
  font-weight: 500;
  text-align: center;
}
#activity-display .content #activity-display-code {
  padding: 15px 25px;
  font-family: Monaco, monospace;
  font-size: 6em;
  text-align: center;
  text-transform: uppercase;
}
#activity-display .submit-glyph-inline {
  height: 1.2em;
  width: 24px;
  vertical-align: bottom;
}
#submit-activity-submit-box .header .error-text {
  display: none;
}
#submit-activity-submit-box.show-error .header {
  background: #ac312e;
}
#submit-activity-submit-box.show-error .header span {
  display: none;
}
#submit-activity-submit-box.show-error .header .error-text {
  display: inline;
}
#submit-activity-submit-box.show-error input {
  color: #ac312e;
}
#submit-activity-ui-container {
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#submit-activity-ui-container .submit-icon {
  width: 48px;
}
#submit-activity-ui-container .input-container {
  margin: 0 15px;
}
#submit-activity-ui-container .input-container input {
  font-family: Monaco, monospace;
  text-transform: uppercase;
  padding-left: 15px;
  padding-right: 15px;
  width: 5.4em;
}
#submit-activity-ui-container #submit-activity-target-background {
  box-shadow: none;
  background: white;
  color: grey;
}
#submit-activity-ui-container #submit-activity-target {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
}
/* --- End Modal styles --- */
.mlc-framework--equation-tools-input input {
  width: 402px;
  height: 36px;
  font: 300 32px Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  padding: 2px 4px;
}
.mlc-framework--text-tools-textarea textarea {
  width: 404px;
  height: 196px;
  font: 300 30px Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  line-height: 1.1;
  padding: 2px 4px;
  resize: none;
  overflow: auto;
}
.infopage {
  display: none;
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  z-index: 200;
  background-color: #cce0ff;
  /* hide about initially */
}
.infopage .titlebar {
  position: absolute;
  width: 100%;
  z-index: 10;
  height: 50px;
  background-color: #0287cf;
  color: white;
  text-align: center;
  font-weight: bold;
  line-height: 50px;
}
.infopage .sectionwrapper {
  display: inline-block;
  text-align: center;
  line-height: 13px;
  margin: auto;
}
.infopage .title {
  display: inline-block;
  color: white;
  font-size: 13px;
  cursor: pointer;
  margin: 5px 0;
  padding: 6px 5px;
  text-align: center;
  width: 100px;
  border: solid 1px white;
}
.infopage .title:first-child {
  border-bottom-left-radius: 5px;
  border-right: medium none;
  border-top-left-radius: 5px;
}
.infopage .title:last-child {
  border-bottom-right-radius: 5px;
  border-right: 1px solid white;
  border-top-right-radius: 5px;
}
.infopage .title.selected {
  color: #0287CF;
  background-color: white;
}
.infopage .close {
  display: inline-block;
}
.infopage .close {
  float: right;
  cursor: pointer;
  padding-right: 15px;
  font-weight: normal;
}
.infopage .infowrapper {
  height: 100%;
}
.infopage .contents-wrapper {
  height: 100%;
  background-color: #cce0ff;
  overflow-y: scroll;
  overflow-x: hidden;
}
.infopage .contents {
  padding-top: 50px;
  margin: 0 10px 10px;
}
.infopage .contents.about {
  display: none;
}
.infopage .box {
  background-color: white;
  border-radius: 10px;
  margin: 10px auto;
  max-width: 810px;
  min-width: 500px;
  padding: 30px;
}
.infopage .infohead {
  color: #0081c6;
  font: bold 36px Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  margin: 0;
  text-align: center;
}
.infopage .infohead.howto {
  margin-bottom: 1em;
}
.infopage .infohead.rule-line {
  border-top: 4px solid #a4dfff;
  margin: 30px -30px 0;
  padding-top: 30px;
}
.infopage .info-subhead {
  color: #0081c6;
  font: bold 28px Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  margin: 0 0 20px;
  text-align: left;
}
.infopage .info-subhead-description {
  color: #0081c6;
  font: 18px Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  line-height: 1.4em;
  margin: -15px 0 30px;
  text-align: left;
}
.infopage .infobody,
.infopage .box ul,
.infopage .info-buttons p {
  color: #666;
  font: 18px/1.4em Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.infopage .infolink {
  text-align: center;
  font-size: 24px;
  padding-bottom: 10px;
}
.infopage img {
  text-decoration: none;
  border: 0px;
}
.infopage .info_illus {
  margin: 40px 0;
  text-align: center;
}
.infopage .info_illus img {
  max-width: 100%;
}
.infopage .infoversion {
  font-size: 11pt;
  text-align: center;
  color: #666;
}
.infopage a.about-link {
  color: #0287CF;
  display: block;
  font-weight: bold;
  text-align: center;
  transition: opacity 0.2s ease 0s;
  width: 100%;
}
.infopage a.about-link:hover {
  opacity: 0.5;
}
.flex {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}
.two-column {
  width: 50%;
}
.two-column-wide {
  width: 55%;
}
.two-column-small {
  width: 45%;
}
/* roboto-300 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url('../../fonts/roboto-v19-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-300.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-300italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 300;
  src: url('../../fonts/roboto-v19-latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-300italic.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-regular - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url('../../fonts/roboto-v19-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-regular.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url('../../fonts/roboto-v19-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-italic.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 700;
  src: url('../../fonts/roboto-v19-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-700italic.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url('../../fonts/roboto-v19-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-700.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
@-webkit-keyframes missing-feature {
  0% {
    background-color: red;
  }
  17% {
    background-color: magenta;
  }
  33% {
    background-color: blue;
  }
  50% {
    background-color: cyan;
  }
  67% {
    background-color: green;
  }
  83% {
    background-color: yellow;
  }
  100% {
    background-color: red;
  }
}
@keyframes missing-feature {
  0% {
    background-color: red;
  }
  17% {
    background-color: magenta;
  }
  33% {
    background-color: blue;
  }
  50% {
    background-color: cyan;
  }
  67% {
    background-color: green;
  }
  83% {
    background-color: yellow;
  }
  100% {
    background-color: red;
  }
}
.missing-feature {
  -webkit-animation: missing-feature 600s infinite linear;
  animation: missing-feature 600s infinite linear;
}
.beta-tag::after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "BETA";
  font-size: 1.5em;
  background: #0273af;
  opacity: 0.75;
  position: absolute;
  padding: 0.2em 0.4em;
  top: 0.3em;
  right: 0.3em;
  color: #fff;
  border-radius: 3px;
  font-weight: 600;
  pointer-events: none;
}
#toolbar {
  flex: 0 0 48px;
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  background: #0081c6;
  margin: 0;
  padding: 0 16px;
}
#toolbar .toolbar-button {
  height: 100%;
  width: 100%;
  max-width: 48px;
}
#toolbar .toolbar-button-container {
  position: relative;
  flex: 0 1 56px;
  height: 48px;
  margin: 0 4px;
  min-width: 24px;
  display: flex;
  justify-content: center;
}
#toolbar .toolbar-button-container.narrow {
  flex-basis: 26px;
}
#toolbar .toolbar-button-container.narrow.left-margin {
  margin-left: 15px;
}
#toolbar .toolbar-button-container.narrow.right-margin {
  margin-right: 15px;
}
#toolbar .toolbar-button-container.wide {
  flex-basis: 80px;
}
#toolbar .toolbar-divider {
  height: 48px;
  flex: 0 0 2px;
  margin: 0 7px;
  border: none;
  background: #4da7d7;
}
.input-feedback {
  position: absolute;
  background: url('../../1591755179132/images/45stripe.svg');
  width: 400%;
  height: 100%;
  left: 0;
  top: 0;
  border-radius: 3px;
  align-items: center;
  justify-content: center;
  display: none;
  z-index: 10;
  background-size: 48px;
  opacity: 0;
  color: #4a7727;
  font-size: 1.2em;
  letter-spacing: 0.025em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
@-webkit-keyframes pulse-feedback {
  10% {
    left: -150%;
    background-size: 8px;
    opacity: 1;
  }
  80% {
    left: -150%;
    background-size: 8px;
    opacity: 1;
  }
}
@keyframes pulse-feedback {
  10% {
    left: -150%;
    background-size: 8px;
    opacity: 1;
  }
  80% {
    left: -150%;
    background-size: 8px;
    opacity: 1;
  }
}
.input-feedback-pulse {
  -webkit-animation-duration: 2.5s;
  animation-duration: 2.5s;
  -webkit-animation-name: pulse-feedback;
  animation-name: pulse-feedback;
  display: flex;
}
.button-field {
  position: relative;
  width: 100%;
}
.button-field input {
  width: calc(100% - 10px);
  height: calc(100% - 12px);
}
.button-field .input-container {
  position: relative;
  flex-grow: 1;
  overflow: hidden;
}
#modal-staging {
  display: none;
}
#save-popup {
  width: 380px;
}
#save-popup .modal-box {
  position: relative;
  right: 130px;
}
#save-popup {
  user-select: text;
  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  -webkit-user-drag: auto;
}
#save-popup .content {
  background-color: white;
  padding: 15px;
  display: flex;
  flex-direction: column;
}
#save-popup .content #share-image-ui-container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
#save-popup .content .description {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  margin-bottom: 0.75em;
}
#save-popup .content .description .description-icon {
  height: 18px;
  margin-right: 0.5em;
}
#save-popup .content .share-image-button-container {
  display: flex;
  flex-flow: row nowrap;
  width: calc(100% + 10px);
  margin: 0 -5px;
}
#save-popup .content .share-image-button-container .text-button {
  margin: 0 5px;
  padding-left: 0;
  padding-right: 0;
  flex-basis: 0;
  flex-grow: 1;
}
#save-popup .content .popup-divider {
  margin: 1em -15px;
  flex-grow: 0;
  flex-basis: 2px;
  background: #CCC;
}
#link-copy {
  padding-left: 1.5em;
  padding-right: 1.5em;
}
/* Default styling: show desktop instructions. */
#copy-image-modal .copy-image-instructions .mobile {
  display: none;
}
/*
 * If touch is detected, hide desktop instructions and show mobileinstructions.
 */
.touch #copy-image-modal .desktop {
  display: none;
}
.touch #copy-image-modal .mobile {
  display: block;
}
#copy-image-modal {
  z-index: 110;
}
#copy-image-modal .modal-box {
  position: relative;
  top: -24px;
}
#copy-image-modal .content {
  padding: 20px;
  display: flex;
  flex-flow: row nowrap;
}
#copy-image-modal .content .copy-image-instructions {
  width: 10em;
  margin-right: 20px;
}
#copy-image-modal .content .copy-image-instructions p:first-child {
  margin-top: 0;
}
#copy-image-modal .content .copy-image-instructions .sub-head {
  font-size: 0.9em;
}
#copy-image-modal .content .copy-image-source-container {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
}
#copy-image-modal .content .copy-image-source-container .copy-image-source {
  max-width: 50vw;
  max-height: 50vh;
  box-shadow: 0 5px 10px 0 grey;
}
#canvas {
  background-image: url('../../1591755179132/images/canvas-pattern.png');
}
#canvas.draw-cursor:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.draw-cursor[data-draw-color='BLACK']:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen-black.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.draw-cursor[data-draw-color='BLUE']:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen-blue.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.draw-cursor[data-draw-color='GREEN']:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen-green.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.draw-cursor[data-draw-color='YELLOW']:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen-yellow.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.draw-cursor[data-draw-color='ORANGE']:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen-orange.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.draw-cursor[data-draw-color='RED']:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/cursor-pen-red.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.erase-cursor:not(.pan-cursor) {
  cursor: url('../../1591755179132/images/drawingmenu/eraser-transparent.cur'), crosshair !important;
  /* !important gets around bugginess with EaselJS cursor setting and IE */
}
#canvas.pan-cursor {
  cursor: -webkit-grab;
  cursor: grab;
}
#canvas.pan-cursor:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}
#loading-spinner {
  position: fixed;
  left: 50%;
  top: 50%;
}
/* -----
Toolbar Buttons
----- */
.toolbar-button {
  background-size: auto 24px;
}
#restart {
  background-image: url('../../1591755179132/images/toolbar/icon-reload@2x.png');
}
#duplicate {
  background-image: url('../../1591755179132/images/toolbar/icon-duplicate@2x.png');
}
#equation {
  background-image: url('../../1591755179132/images/toolbar/icon-equation@2x.png');
}
#equation.on {
  opacity: 0.5;
}
#text {
  background-image: url('../../1591755179132/images/toolbar/icon-text@2x.png');
}
#text.on {
  opacity: 0.5;
}
#draw {
  background-image: url('../../1591755179132/images/toolbar/icon-drawing@2x.png');
}
#draw.on {
  background-image: url('../../1591755179132/images/toolbar/icon-drawing-on@2x.png');
}
#shade {
  background-image: url('../../1591755179132/images/toolbar/icon-shade@2x.png');
}
#trash {
  background-image: url('../../1591755179132/images/toolbar/icon-trash@2x.png');
}
#info {
  background-image: url('../../1591755179132/images/toolbar/icon-info@2x.png');
}
#save {
  background-image: url('../../1591755179132/images/toolbar/icon-share@2x.png');
}
#code {
  background-image: url('../../1591755179132/images/toolbar/icon-share-code@2x.png');
}
#add-rack {
  background-image: url('../../1591755179132/images/toolbar/icon-rack-add@2x.png');
}
#remove-rack {
  background-image: url('../../1591755179132/images/toolbar/icon-rack-remove@2x.png');
}
#rack-order {
  background-image: url('../../1591755179132/images/toolbar/icon-rack-order-same@2x.png');
}
#rack-order.reverse {
  background-image: url('../../1591755179132/images/toolbar/icon-rack-order-different@2x.png');
}
.loading #toolbar {
  display: none;
}
/* How To Styling */
/* To be moved to framework as part of Info page refactor */
.infopage .infowrapper {
  display: flex;
  flex-flow: column nowrap;
}
.infopage .titlebar {
  flex: 0 0 50px;
  position: relative;
  height: auto;
}
.infopage .contents-wrapper {
  flex: 1 0 0;
  height: auto;
  overflow-y: hidden;
}
.infopage .contents {
  width: 100%;
  height: 100%;
  border: none;
  margin: 0;
  padding: 0;
}
h1,
h2 {
  color: #0273af;
}
.infopage .titlebar {
  background-color: #0273af;
}
.infopage .title.selected {
  color: #0273af;
}
.infopage .info-subhead {
  margin-bottom: 1em;
}
.howto-overview {
  display: inline-flex;
  flex-wrap: wrap;
}
.howto-overview .instructions {
  font-size: 18px;
  margin-bottom: 2.5em;
  /*.flex;*/
  display: flex;
  box-sizing: border-box;
  align-items: flex-start;
}
.howto-overview .instructions.left {
  padding-right: 1.5em;
}
.howto-overview .instructions.right {
  padding-left: 1.5em;
}
.howto-overview .instructions img {
  max-height: -webkit-fit-content;
  max-height: -moz-fit-content;
  max-height: fit-content;
  height: 100%;
}
.howto-overview .instructions img.left-edge {
  margin-right: 1em;
}
.howto-overview .instructions img.right-edge {
  margin-left: 0.5em;
}
.howto-overview .instructions img.right-center {
  margin-right: 1em;
}
.howto-overview .instructions img.left-center {
  margin-left: 1em;
}
.howto-overview .instructions p {
  line-height: 1.45em;
  color: #444;
  margin: 0;
}
.howto-toolbar table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 3em;
}
.howto-toolbar table td,
.howto-toolbar table th {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: center;
}
.howto-toolbar table td.icon,
.howto-toolbar table th.icon {
  background-color: #0081c6;
  text-align: center;
}
.howto-toolbar table td.tool,
.howto-toolbar table th.tool {
  font-weight: bold;
}
.howto-toolbar table td.description,
.howto-toolbar table th.description {
  text-align: left;
  padding-left: 1em;
}
.howto-toolbar table th {
  padding-top: 12px;
  padding-bottom: 12px;
  text-align: center;
  background-color: #0273af;
  color: white;
}
.howto-toolbar table th.left-align {
  text-align: left;
  padding-left: 1em;
}
.howto-toolbar table img {
  margin: 0 0.2em;
  vertical-align: middle;
  height: 24px;
}
.howto-toolbar .keyboard-support-table {
  margin-bottom: 1em;
}
.howto-toolbar .keyboard-support-table td.tool {
  text-align: left;
  padding-left: 1em;
}
.about a.about-link {
  color: #0273af;
}
.about .privacy-terms,
.about .infoversion {
  text-align: center;
  color: #444;
}
.about .privacy-terms a,
.about .infoversion a {
  font-weight: bold;
  text-decoration: none;
  color: #223087;
}
@media all and (max-width: 767px) {
  .howto-overview .instructions.left,
  .howto-overview .instructions.right {
    padding-right: 0;
    padding-left: 0;
    width: 90%;
  }
}

/* roboto-300 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url('../../fonts/roboto-v19-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-300.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-300italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 300;
  src: url('../../fonts/roboto-v19-latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-300italic.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-regular - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url('../../fonts/roboto-v19-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-regular.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url('../../fonts/roboto-v19-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-italic.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 700;
  src: url('../../fonts/roboto-v19-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-700italic.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url('../../fonts/roboto-v19-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('../../fonts/roboto-v19-latin-700.woff') format('woff');
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

.flex {
  display: flex;
}
.two-column {
  width: 50%;
}
.two-column-wide {
  width: 55%;
}
.two-column-small {
  width: 45%;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9tbGMtZnJhbWV3b3JrL2xlc3MvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21sYy1mcmFtZXdvcmsvbGVzcy9jb25zdGFudHMubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tbGMtZnJhbWV3b3JrL2xlc3MvaW5mb3BhZ2UubGVzcyIsInZhcmlhYmxlcy5sZXNzIiwicm9ib3RvLmxlc3MiLCJtYWluLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUFBTTtFQUNKLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0Y7RUFDRSxxQkNTcUIsOENEVHJCO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7RUFFQSxzQkFBc0Isa0NBQXRCOztBQUdGO0VBQ0Usa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUVBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7O0FBS0Y7RUFDRSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdGO0VBQ0UsYUFBQTs7QUFHRjtFQUNFLG1DQUFBO0VBQ0Esa0NBQUE7O0FBR0Y7RUFDRSx5Q0FBQTs7QUFHRjtFQUNFLFFBQUE7RUFDQSxTQUFBO0VBQ0EseUJBQUE7RUFDQSxhQUFBOzs7QUFJRixVQUFVO0VBQ1IsbUNBQUE7RUFDQSxrQ0FBQTtFQUVBLFNBQVMsT0FBVDtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQkFBQTs7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UUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUNTLDhDQUE4QyxPQUFPLHVEQUNyRCw2Q0FBNkMsT0FBTyxPQUY3RDs7OztBQUtGO0VBQ0UsYUFBQSxRQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLFNBQ1MsNkNBQTZDLE9BQU8sdURBQ3BELDRDQUE0QyxPQUFPLE9BRjVEOzs7O0FBS0Y7RUFDRSxhQUFBLFFBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FDUyxnREFBZ0QsT0FBTyx1REFDdkQsK0NBQStDLE9BQU8sT0FGL0Q7Ozs7QUFLRjtFQUNFLGFBQUEsUUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUNTLDBDQUEwQyxPQUFPLHVEQUNqRCx5Q0FBeUMsT0FBTyxPQUZ6RDs7OztBRDlDRjtFQUtFLGFBQUE7O0FBR0Y7RUFDRSxVQUFBOztBQUdGO0VBQ0UsVUFBQTs7QUFHRjtFQUNFLFVBQUEiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuL2NvbnN0YW50cy5sZXNzJztcblxuaHRtbCwgYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBAREVGQVVMVF9GT05UO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHVzZXItZHJhZzogbm9uZTtcbiAgLW1zLWNvbnRlbnQtem9vbWluZzogbm9uZTtcbiAgY29sb3I6ICMzMzM7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvY2FudmFzLXBhdHRlcm4ucG5nJyk7XG59XG5cbm1haW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG59XG5cbi8vIEJ1dHRvbiBzdHlsZSByZXNldFxuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmxpZ2h0LW9uLWRhcmsge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNvZnQtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAwIEBzb2Z0LXNoYWRvdy1yYWRpdXMgQHNvZnQtc2hhZG93LWNvbG9yO1xufVxuXG4jY2FudmFzIHtcbiAgb3JkZXI6IDI7XG4gIGZsZXg6IDEgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQENBTlZBU19CQUNLR1JPVU5EX0NPTE9SO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vKiBBZGRzIGFuIGFscGhhIHRhZyB0byBhIGNhbnZhcy4gKi9cbi5hbHBoYS10YWc6OmFmdGVyIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgY29udGVudDogXCJBTFBIQVwiO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBiYWNrZ3JvdW5kOiAjNTUxQThCO1xuICBvcGFjaXR5OiAwLjc1O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IC4yZW0gLjRlbTtcbiAgdG9wOiAuM2VtO1xuICByaWdodDogLjllbTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIEFkZHMgYSBiZXRhIHRhZyB0byBhIGNhbnZhcy4gKi9cbi5iZXRhLXRhZzo6YWZ0ZXIge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICBjb250ZW50OiBcIkJFVEFcIjtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgYmFja2dyb3VuZDogQGJyYW5kLWNvbG9yLWRhcms7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcGFkZGluZzogLjJlbSAuNGVtO1xuICB0b3A6IC4zZW07XG4gIHJpZ2h0OiAuOWVtO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogLS0tLS1cblRvb2xiYXJcbi0tLS0tICovXG5cbi8vIFRvb2xiYXIgaW1hZ2UgcGF0aFxuQHRiaW1nOiAnaW1hZ2VzL3Rvb2xiYXInO1xuXG4jdG9vbGJhciB7XG4gIG9yZGVyOiAzO1xuXG4gIC8vIE92ZXJyaWRlcyBmb3Igd2hlbiB0b29sYmFyIGlzIGF0IHRvcCBvZiBwYWdlXG4gICYudG9wIHtcbiAgICBvcmRlcjogMTtcblxuICAgIC5wb3B1cCB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IChAVE9PTEJBUl9IRUlHSFQgKyBAUE9QVVBfVEFJTF9IRUlHSFQgLSA4cHgpO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogLUBQT1BVUF9UQUlMX0hFSUdIVDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCdAe3RiaW1nfS9wb3B1cC10YWlsLXRvcC5zdmcnKSBuby1yZXBlYXQ7XG4gICAgICB9XG5cbiAgICAgIC5wb3B1cC1ib2R5IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIH1cblxuICAgICAgJi50YWlsLXJpZ2h0IHtcbiAgICAgICAgLnBvcHVwLWJvZHkge1xuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IChAUE9QVVBfVEFJTF9XSURUSCAvIDIpIDA7XG4gICAgICAgICAgcmlnaHQ6IEBQT1BVUF9UQUlMX1dJRFRIO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudGFpbC1sZWZ0IHtcbiAgICAgICAgLnBvcHVwLWJvZHkge1xuICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogKC1AUE9QVVBfVEFJTF9XSURUSCAvIDIpIDA7XG4gICAgICAgICAgbGVmdDogQFBPUFVQX1RBSUxfV0lEVEg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cblxuICB9XG5cbiAgZmxleDogMCAwIEBUT09MQkFSX0hFSUdIVDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kOiBAQ09MT1JfUFJJTUFSWV9CQVNFO1xuICAvLyBSZW1vdmUgZGVmYXVsdCBzcGFjaW5nIGZyb20gbWVudSB0eXBlPVwidG9vbGJhclwiXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICAvLyBTcGFjZXJzIG9uIGxlZnQgYW5kIHJpZ2h0IHNpZGUgb2YgdG9vbGJhciB0byBjZW50ZXIgdGhlIGJ1dHRvbnNcbiAgLy8gaW4gdGhlIG1pZGRsZVxuICAudG9vbGJhci1zcGFjZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgLy8gRGl2aWRpbmcgbGluZSBiZXR3ZWVuIGJ1dHRvbiBncm91cHNcbiAgLmRpdmlkZXIge1xuICAgIGhlaWdodDogQFRPT0xCQVJfSEVJR0hUO1xuXG4gICAgLW1zLWZsZXg6IDAgMCAxNnB4O1xuICAgIGZsZXg6IDAgMCAxNnB4O1xuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdAe3RiaW1nfS9kaXZpZGVyLnBuZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICB9XG5cbiAgLy8gR3JvdXBzIG9mIGJ1dHRvbnMgYmV0d2VlbiBkaXZpZGVyc1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiBAVE9PTEJBUl9IRUlHSFQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB9XG5cbiAgLnBvcHVwIHtcbiAgICBib3R0b206IChAVE9PTEJBUl9IRUlHSFQgKyBAUE9QVVBfVEFJTF9IRUlHSFQgLSA4cHgpO1xuICB9XG5cbiAgLnRvb2xiYXItYnV0dG9uIHtcbiAgICBoZWlnaHQ6IEBUT09MQkFSX0hFSUdIVDtcbiAgICB3aWR0aDogNjRweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblxuICAgICYubmFycm93IHtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgIH1cbiAgICAmLndpZGUge1xuICAgICAgd2lkdGg6IDk2cHg7XG4gICAgfVxuICAgICYuZGlzYWJsZWQsXG4gICAgJjphY3RpdmUge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxufVxuXG4udGV4dC1idXR0b24ge1xuICAubGlnaHQtb24tZGFyaygpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGV4dC1idXR0b24tY29sb3I7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogLjhlbSAwO1xuICBmb250LXNpemU6IC44MjVlbTtcbiAgYm9yZGVyLXJhZGl1czogQGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogLjAyNWVtO1xuICB3b3JkLXNwYWNpbmc6IC4xZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogLjg7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRleHQtYnV0dG9uLWNvbG9yLWFjdGl2ZVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQENPTE9SX05FVVRSQUxfQkFTRTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBDT0xPUl9ORVVUUkFMX0JBU0U7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4uYnV0dG9uLWZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICBpbnB1dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0NDQztcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogQGJ1dHRvbi1ib3JkZXItcmFkaXVzIDAgMCBAYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDJweCA1cHggI0NDQztcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1zaXplOiAuOWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICBidXR0b24ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxufVxuXG4vKiAtLS0tLVxuRGlhbG9nXG4tLS0tLSAqL1xuXG4vKiBqcXVlcnkgZGlhbG9ncyAqL1xuI2RpYWxvZy1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIGJhY2tncm91bmQgb3ZlcmxheSAqL1xuLnVpLWZyb250IHtcbiAgei1pbmRleDogMTAxOyAvKiBzYW1lIGFzIHRvb2xiYXIgb3IgaGlnaGVyICovXG59XG4udWktd2lkZ2V0LW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiBub25lIHJlcGVhdCBzY3JvbGwgMCAwIGdyYXk7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIG91ciBhcHAncyBnZW5lcmljIGRpYWxvZyAqL1xuLnVpLWRpYWxvZy5hbGVydCB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi51aS1kaWFsb2cuYWxlcnQgLnVpLWRpYWxvZy10aXRsZWJhciB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBmb250LWZhbWlseTogQERFRkFVTFRfRk9OVDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLnVpLWRpYWxvZy5hbGVydCAudWktZGlhbG9nLXRpdGxlYmFyIC51aS1kaWFsb2ctdGl0bGUubm8tdGl0bGUge1xuICAvKiBGaXggdG8gSlF1ZXJ5IFVJIDEuMTIgdXBkYXRlIHdoZXJlIGVtcHR5IHRpdGxlc1xuICAgICAgYXJlIHJlcGxhY2VkIHdpdGggYW4gbmJzcDsuXG4gICAgICBNYW51YWxseSBoaWRpbmcgdG8gcHJldmVudCBleHRyYSBwYWRkaW5nLlxuICAgKi9cbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnVpLWRpYWxvZy5hbGVydCAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS1kaWFsb2cuYWxlcnQgLnVpLWRpYWxvZy1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IEBERUZBVUxUX0ZPTlQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA1cHggMjBweCAyMHB4O1xuICBsaW5lLWhlaWdodDogMS4yZW07XG59XG4udWktZGlhbG9nLmFsZXJ0IC51aS1kaWFsb2ctYnV0dG9ucGFuZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi51aS1kaWFsb2cuYWxlcnQgLnVpLWRpYWxvZy1idXR0b25zZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjQkJCO1xufVxuLnVpLWRpYWxvZy5hbGVydCAudWktYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNXB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjMUM4MUM0O1xuICAvKmZvbnQtc2l6ZTogMTRweDsqL1xuICAvKnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Ki9cbn1cbi51aS1kaWFsb2cuYWxlcnQuY29uZmlybSAudWktYnV0dG9uIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS1kaWFsb2cuYWxlcnQuY29uZmlybSAudWktYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggI0JCQjtcbn1cbi51aS1kaWFsb2cuYWxlcnQgLnVpLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGN0Y3Rjc7XG59XG4udWktZGlhbG9nLmFsZXJ0IC51aS1idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RERDtcbn1cblxuLnVpLWRpYWxvZy5hbGVydC5oYXMtY2xvc2UgYnV0dG9uLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcblxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBtYXJnaW46IDVweDtcbiAgd2lkdGg6IDM2cHg7XG5cbiAgYmFja2dyb3VuZDogYmxhY2sgdXJsKCdAe3RiaW1nfS9pY29uLXRyYXNoLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyZXk7XG4gIH1cbn1cblxuI3RlbXBsYXRlcyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIC0tLS0tXG4gIE1vZGFsIHN0eWxlc1xuLS0tLS0gKi9cblxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgaGVpZ2h0OiAzMDB2aDtcbiAgd2lkdGg6IDMwMHZ3O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogLTE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4ubW9kYWwge1xuICB6LWluZGV4OiAxMDA7XG5cbiAgJi5kYXJrLWJhY2tkcm9wIHtcbiAgICAubW9kYWwtYmFja2Ryb3Age1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGRhcmstYmFja2Ryb3AtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5tb2RhbC5wb3B1cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAvLyBDZW50ZXIgb24gcGFyZW50XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gIC8vIFRhaWwgcG9pbnRpbmcgdG8gdGhlIGJ1dHRvbiBwb3B1cCBpcyBwb3BwaW5nIG91dCBmcm9tXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtQFBPUFVQX1RBSUxfSEVJR0hUO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGhlaWdodDogQFBPUFVQX1RBSUxfSEVJR0hUO1xuICAgIHdpZHRoOiBAUE9QVVBfVEFJTF9XSURUSDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ0B7dGJpbWd9L3BvcHVwLXRhaWwuc3ZnJykgbm8tcmVwZWF0O1xuICB9XG5cbiAgJi50YWlsLXJpZ2h0IHtcbiAgICAucG9wdXAtYm9keSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAoQFBPUFVQX1RBSUxfV0lEVEggLyAyKSAwO1xuICAgICAgcmlnaHQ6IEBQT1BVUF9UQUlMX1dJRFRIO1xuICAgIH1cbiAgfVxuXG4gICYudGFpbC1sZWZ0IHtcbiAgICAucG9wdXAtYm9keSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogKC1AUE9QVVBfVEFJTF9XSURUSCAvIDIpIDA7XG4gICAgICBsZWZ0OiBAUE9QVVBfVEFJTF9XSURUSDtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGFsLmRpYWxvZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcblxuICAmLmhpZGRlbiB7XG4gICAgLmhpZGRlbigpO1xuICB9XG5cbiAgLm1vZGFsLWJveCB7XG4gICAgdG9wOiAtMjRweDtcbiAgfVxufVxuXG4ubW9kYWwtYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gIC5jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgfVxuXG4gIC5oZWFkZXIge1xuICAgIC5saWdodC1vbi1kYXJrKCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDAgMCAxNXB4O1xuICAgIGJhY2tncm91bmQ6IEBDT0xPUl9QUklNQVJZX0JBU0U7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGhlaWdodDogNDZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMS4xZW07XG5cbiAgICAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGhlaWdodDogNDZweDtcbiAgICAgIHdpZHRoOiA0NnB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKCdAe3RiaW1nfS9jbG9zZS5zdmcnKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA0MCU7XG5cbiAgICAgICYuY2xvc2UtZGFyayB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vY2xvc2UtZGFyay5zdmcnKTtcbiAgICAgIH1cblxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5tb2RhbC5hbGVydCB7XG4gIC5tb2RhbC1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogKC1AVE9PTEJBUl9IRUlHSFQgLyAyKTtcbiAgfVxuXG4gIC50aXRsZSB7XG4gICAgbWFyZ2luOiAyMHB4IDIwcHggMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIG1hcmdpbjogLjVlbSAyMHB4IDIwcHg7XG4gIH1cblxuICAuYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGJ1dHRvbiB7XG4gICAgICBjb2xvcjogIzFDODFDNDtcbiAgICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgICAgcGFkZGluZzogLjVlbSAwO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNCQkI7XG4gICAgICAvLyBJZiB0d28gb3IgZmV3ZXIgYnV0dG9ucywgc2V0IHRoZW0gdG8gNDAlIHNvIHRoZSBjYXNlIG9mIHR3byBidXR0b25zIHdvbid0IHdyYXBcbiAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4gKyAyKTpmaXJzdC1jaGlsZCxcbiAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4gKyAyKTpmaXJzdC1jaGlsZCB+IGJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDEgMCA0MCU7XG4gICAgICB9XG4gICAgICAvLyBJZiBleGFjdGx5IHR3byBidXR0b25zLCBhZGQgYSBzZXBhcmF0b3IgdG8gdGhlIGZpcnN0IGJ1dHRvblxuICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCQkI7XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHdoaXRlLCAxMCUpO1xuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHdoaXRlLCAyMCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmRlZmF1bHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZkOGVlO1xuICAgICAgICBjb2xvcjogIzBhNjA5YTtcbiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1hbGVydC1kZWZhdWx0IDNzIGVhc2UgaW5maW5pdGU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjYWZkOGVlLCA1JSk7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjYWZkOGVlLCAxMCUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgcHVsc2UtYWxlcnQtZGVmYXVsdCB7XG4gICAgMCUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FmZDhlZTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkYWVlZjk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FmZDhlZTtcbiAgICB9XG4gIH1cbn1cblxuXG4jc2F2ZS1wb3B1cCB7XG4gIHdpZHRoOiAzODBweDtcblxuICAubW9kYWwtYm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDEzMHB4O1xuICB9XG59XG5cbiNzYXZlLXBvcHVwIHtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1tcy11c2VyLXNlbGVjdDogdGV4dDtcbiAgLXdlYmtpdC11c2VyLWRyYWc6IGF1dG87XG5cbiAgLmNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgI3NoYXJlLWltYWdlLXVpLWNvbnRhaW5lcixcbiAgICAjc2hhcmUtYWN0aXZpdHktdWktY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IC43NWVtO1xuICAgICAgLmRlc2NyaXB0aW9uLWljb24ge1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC41ZW07XG4gICAgICAgICYuc2hvcnQge1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zaGFyZS1pbWFnZS1idXR0b24tY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMTBweCk7XG4gICAgICBtYXJnaW46IDAgLTVweDtcblxuICAgICAgLnRleHQtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBvcHVwLWRpdmlkZXIge1xuICAgICAgbWFyZ2luOiAxZW0gLTE1cHg7XG4gICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICBmbGV4LWJhc2lzOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kOiAgI0NDQztcbiAgICB9XG4gIH1cbn1cblxuI2NvcHktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuXG4gICNpbWFnZS1jb3B5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbmh0bWwuZGlzYWJsZS1jb3B5LWltYWdlICNjb3B5LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBDT0xPUl9ORVVUUkFMX0JBU0U7XG59XG5cbiNzaGFyZS1hY3Rpdml0eS11aS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgbWFyZ2luOiAwIC01cHg7XG5cbiAgLmlucHV0LWNvbnRhaW5lcixcbiAgLnRleHQtYnV0dG9uIHtcbiAgICBtYXJnaW46IDAgNXB4O1xuICAgIGZsZXg6IDEgMCAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGZvbnQtZmFtaWx5OiBAc2hhcmUtY29kZS1mb250O1xuICAgIGhlaWdodDogOTUlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHBhZGRpbmc6IDAgLjVlbTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMThweCk7XG5cbiAgICAvLyBUaGlzIGlzIGEgcGF0Y2ggZm9yIDQuMiByZWxlYXNlLCBzaG91bGQgYmUgbW92ZWQgdG8gYSBjb21tb24gaW5wdXQgY2xhc3NcbiAgICAvLyBzaGFyZWQgd2l0aCBidXR0b24tZmllbGQgaW5wdXRcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3gtc2hhZG93OiBpbnNldCAycHggMnB4IDVweCAjQ0NDO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuaHRtbC5jaHJvbWUtb3MgI3NoYXJlLWFjdGl2aXR5LXVpLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDMlO1xuICBpbnB1dCB7XG4gICAgaGVpZ2h0OiAyN3B4O1xuICB9XG59XG5cbi5zdWJtaXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIC5maWVsZC1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmlucHV0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGlucHV0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0M7XG4gICAgICBib3JkZXItcmFkaXVzOiBAYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAycHggMnB4IDVweCAjQ0NDO1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgZm9udC1zaXplOiA0ZW07XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgLy8gRml4IHRvIHVuZXhwbGFpbmVkIHRpbnkgaG9yaXpvbnRhbCBzY3JvbGxpbmcgd2hlbiBmaWVsZCBmdWxsIGluIGNocm9tZS5cbiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgIH1cbiAgfVxuXG4gIC50ZXh0LWJ1dHRvbiB7XG4gICAgcGFkZGluZzogLjc1ZW0gMS4yZW07XG4gICAgZm9udC1zaXplOiAxLjRlbTtcbiAgfVxufVxuXG4jbGluay1jb3B5IHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG59XG5cbi8qIERlZmF1bHQgc3R5bGluZzogc2hvdyBkZXNrdG9wIGluc3RydWN0aW9ucy4gKi9cbiNjb3B5LWltYWdlLW1vZGFsIC5jb3B5LWltYWdlLWluc3RydWN0aW9ucyAubW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qXG4gKiBJZiB0b3VjaCBpcyBkZXRlY3RlZCwgaGlkZSBkZXNrdG9wIGluc3RydWN0aW9ucyBhbmQgc2hvdyBtb2JpbGVpbnN0cnVjdGlvbnMuXG4gKi9cbi50b3VjaCAjY29weS1pbWFnZS1tb2RhbCB7XG4gIC5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbiNjb3B5LWltYWdlLW1vZGFsIHtcbiAgei1pbmRleDogMTEwO1xuICAubW9kYWwtYm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAoLUBUT09MQkFSX0hFSUdIVCAvIDIpO1xuICB9XG59XG5cbiNjb3B5LWltYWdlLW1vZGFsIC5jb250ZW50IHtcbiAgcGFkZGluZzogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuXG4gIC5jb3B5LWltYWdlLWluc3RydWN0aW9ucyB7XG4gICAgd2lkdGg6IDEwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5zdWItaGVhZCB7XG4gICAgICBmb250LXNpemU6IC45ZW07XG4gICAgfVxuICB9XG5cbiAgLmNvcHktaW1hZ2Utc291cmNlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAuY29weS1pbWFnZS1zb3VyY2Uge1xuICAgICAgbWF4LXdpZHRoOiA1MHZ3O1xuICAgICAgbWF4LWhlaWdodDogNTB2aDtcbiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggMCBncmV5O1xuICAgIH1cbiAgfVxufVxuXG4jYWN0aXZpdHktZGlzcGxheSAuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICNDQ0M7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzMzMztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMTVweDtcblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICAvKiBHaXZlIHRoZSB0aXRsZSBmdWxsIHdpZHRoIHRvIGNlbnRlciBpdHNlbGYuICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG4jYWN0aXZpdHktZGlzcGxheSAuY29udGVudCB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDEwcHggMTBweDtcblxuICAuZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICNhY3Rpdml0eS1kaXNwbGF5LWNvZGUge1xuICAgIHBhZGRpbmc6IDE1cHggMjVweDtcbiAgICBmb250LWZhbWlseTogQHNoYXJlLWNvZGUtZm9udDtcbiAgICBmb250LXNpemU6IDZlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4jYWN0aXZpdHktZGlzcGxheSAuc3VibWl0LWdseXBoLWlubGluZSB7XG4gIGhlaWdodDogMS4yZW07XG4gIHdpZHRoOiAyNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG5cbiNzdWJtaXQtYWN0aXZpdHktc3VibWl0LWJveCB7XG4gIC5oZWFkZXIgLmVycm9yLXRleHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiNzdWJtaXQtYWN0aXZpdHktc3VibWl0LWJveC5zaG93LWVycm9yIHtcbiAgLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogQGVycm9yLWNvbG9yO1xuICB9XG5cbiAgLmhlYWRlciBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oZWFkZXIgLmVycm9yLXRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBjb2xvcjogQGVycm9yLWNvbG9yO1xuICB9XG59XG4jc3VibWl0LWFjdGl2aXR5LXVpLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDE1cHg7XG5cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC5zdWJtaXQtaWNvbiB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gIH1cblxuICAuaW5wdXQtY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDAgMTVweDtcblxuICAgIGlucHV0IHtcbiAgICAgIGZvbnQtZmFtaWx5OiBAc2hhcmUtY29kZS1mb250O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICB3aWR0aDogNS40ZW07XG4gICAgfVxuICB9XG5cbiAgI3N1Ym1pdC1hY3Rpdml0eS10YXJnZXQtYmFja2dyb3VuZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBjb2xvcjogZ3JleTtcbiAgfVxuXG4gICNzdWJtaXQtYWN0aXZpdHktdGFyZ2V0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8qIC0tLSBFbmQgTW9kYWwgc3R5bGVzIC0tLSAqL1xuXG4ubWxjLWZyYW1ld29yay0tZXF1YXRpb24tdG9vbHMtaW5wdXQgaW5wdXQge1xuICB3aWR0aDogNDAycHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udDogMzAwIDMycHggQERFRkFVTFRfRk9OVDtcbiAgcGFkZGluZzogMnB4IDRweDtcbn1cblxuLm1sYy1mcmFtZXdvcmstLXRleHQtdG9vbHMtdGV4dGFyZWEgdGV4dGFyZWEge1xuICB3aWR0aDogNDA0cHg7XG4gIGhlaWdodDogMTk2cHg7XG4gIGZvbnQ6IDMwMCAzMHB4IEBERUZBVUxUX0ZPTlQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIHJlc2l6ZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCJAQ09MT1JfUFJJTUFSWV9CQVNFOiByZ2JhKDAsIDEyOSwgMTk4LCAxKTtcbkBDT0xPUl9QUklNQVJZX0xJR0hUOiByZ2JhKDk1LCAxNTIsIDIzMiwgMSk7XG5AQ09MT1JfUFJJTUFSWV9QQUxFOiByZ2JhKDE2NCwgMjIzLCAyNTUsIDEpO1xuQENPTE9SX1BSSU1BUllfUEFMRV9ERVNBVDogcmdiYSgyMDQsIDIyNCwgMjU1LCAxKTtcblxuQENPTE9SX1NFQ09OREFSWV9CQVNFOiByZ2JhKDM5LCA1NCwgMTQ1LCAxKTtcblxuQENPTE9SX05FVVRSQUxfQkFTRTogcmdiYSgxNzgsIDE3OCwgMTc4LCAxKTtcbkBDT0xPUl9ORVVUUkFMX0xJR0hUOiByZ2JhKDIyMSwgMjIxLCAyMjEsIDEpO1xuQENPTE9SX05FVVRSQUxfUEFMRTogcmdiYSgyNDIsIDI0MiwgMjQyLCAxKTtcblxuQENBTlZBU19CQUNLR1JPVU5EX0NPTE9SOiAjZjhmOGY4O1xuXG5AVE9PTEJBUl9IRUlHSFQ6IDQ4cHg7XG5cbkBQT1BVUF9UQUlMX0hFSUdIVDogMjRweDtcbkBQT1BVUF9UQUlMX1dJRFRIOiA0OHB4O1xuXG5cbkBERUZBVUxUX0ZPTlQ6IFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuQHRleHQtYnV0dG9uLWNvbG9yOiBkYXJrZW4oIzdhYzE0MywgMTAlKTtcbkB0ZXh0LWJ1dHRvbi1jb2xvci1hY3RpdmU6IGRhcmtlbigjN2FjMTQzLCAyMCUpO1xuQGJ1dHRvbi1ib3JkZXItcmFkaXVzOiAzcHg7XG5cbkBzb2Z0LXNoYWRvdy1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbkBzb2Z0LXNoYWRvdy1yYWRpdXM6IDMwMHB4O1xuXG5AZGFyay1iYWNrZHJvcC1jb2xvcjogcmdiYSgxMDgsIDExOCwgMTI4LCAuNSk7XG5cbkBpbWc6ICcuLi8uLi9pbWFnZXMnO1xuXG5AZXJyb3ItY29sb3I6ICNhYzMxMmU7XG5Ac2hhcmUtY29kZS1mb250OiBNb25hY28sIG1vbm9zcGFjZTtcbiIsIkBpbXBvcnQgJy4vY29uc3RhbnRzLmxlc3MnO1xuXG4uaW5mb3BhZ2Uge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAQ09MT1JfUFJJTUFSWV9QQUxFX0RFU0FUO1xuXG4gICYgLnRpdGxlYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTA7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjg3Y2Y7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgfVxuXG4gICYgLnNlY3Rpb253cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxuXG4gICYgLnRpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBwYWRkaW5nOiA2cHggNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG4gIH1cblxuICAmIC50aXRsZTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1yaWdodDogbWVkaXVtIG5vbmU7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuICB9XG4gICYgLnRpdGxlOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbiAgfVxuXG4gICYgLnRpdGxlLnNlbGVjdGVkIHtcbiAgICBjb2xvcjogIzAyODdDRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICAmIC5jbG9zZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgJiAuY2xvc2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgJiAuaW5mb3dyYXBwZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICYgLmNvbnRlbnRzLXdyYXBwZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAQ09MT1JfUFJJTUFSWV9QQUxFX0RFU0FUO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cblxuICAmIC5jb250ZW50cyB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgbWFyZ2luOiAwIDEwcHggMTBweDtcbiAgfVxuXG4gIC8qIGhpZGUgYWJvdXQgaW5pdGlhbGx5ICovXG4gICYgLmNvbnRlbnRzLmFib3V0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cblxuICAmIC5ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgbWF4LXdpZHRoOiA4MTBweDtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gIH1cblxuICAmIC5pbmZvaGVhZCB7XG4gICAgY29sb3I6ICMwMDgxYzY7XG4gICAgZm9udDogYm9sZCAzNnB4IEBERUZBVUxUX0ZPTlQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYgLmluZm9oZWFkLmhvd3RvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cblxuICAmIC5pbmZvaGVhZC5ydWxlLWxpbmUge1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCBAQ09MT1JfUFJJTUFSWV9QQUxFO1xuICAgIG1hcmdpbjogMzBweCAtMzBweCAwO1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICB9XG5cbiAgJiAuaW5mby1zdWJoZWFkIHtcbiAgICBjb2xvcjogIzAwODFjNjtcbiAgICBmb250OiBib2xkIDI4cHggQERFRkFVTFRfRk9OVDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmIC5pbmZvLXN1YmhlYWQtZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAjMDA4MWM2O1xuICAgIGZvbnQ6IDE4cHggQERFRkFVTFRfRk9OVDtcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgbWFyZ2luOiAtMTVweCAwIDMwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gICYgLmluZm9ib2R5LFxuICAmIC5ib3ggdWwsXG4gICYgLmluZm8tYnV0dG9ucyBwIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBmb250OiAxOHB4LzEuNGVtIEBERUZBVUxUX0ZPTlQ7XG4gIH1cblxuICAmIC5pbmZvbGluayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gICYgaW1nIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwcHg7XG4gIH1cblxuICAmIC5pbmZvX2lsbHVzIHtcbiAgICBtYXJnaW46IDQwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmIC5pbmZvX2lsbHVzIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiAuaW5mb3ZlcnNpb24ge1xuICAgIGZvbnQtc2l6ZTogMTFwdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICAmIGEuYWJvdXQtbGluayB7XG4gICAgY29sb3I6ICMwMjg3Q0Y7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlIDBzO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiBhLmFib3V0LWxpbms6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuIiwiQGJyYW5kLWNvbG9yOiAjMDA4MWM2O1xuQGJyYW5kLWNvbG9yLWRhcms6ICMwMjczYWY7XG5AYWJvdXQtZXh0cmEtZGFyazogIzIyMzA4NztcblxuLmZsZXgge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi50d28tY29sdW1uIHtcbiAgd2lkdGg6IDUwJTtcbn1cblxuLnR3by1jb2x1bW4td2lkZSB7XG4gIHdpZHRoOiA1NSU7XG59XG5cbi50d28tY29sdW1uLXNtYWxsIHtcbiAgd2lkdGg6IDQ1JTtcbn1cbiIsIi8qIHJvYm90by0zMDAgLSBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IFxuICAgICAgIHVybCgnLi4vLi4vZm9udHMvcm9ib3RvLXYxOS1sYXRpbi0zMDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIENocm9tZSAyNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSsgKi9cbiAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL3JvYm90by12MTktbGF0aW4tMzAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgLyogQ2hyb21lIDYrLCBGaXJlZm94IDMuNissIElFIDkrLCBTYWZhcmkgNS4xKyAqL1xufVxuLyogcm9ib3RvLTMwMGl0YWxpYyAtIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogXG4gICAgICAgdXJsKCcuLi8uLi9mb250cy9yb2JvdG8tdjE5LWxhdGluLTMwMGl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgLyogQ2hyb21lIDI2KywgT3BlcmEgMjMrLCBGaXJlZm94IDM5KyAqL1xuICAgICAgIHVybCgnLi4vLi4vZm9udHMvcm9ib3RvLXYxOS1sYXRpbi0zMDBpdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyAvKiBDaHJvbWUgNissIEZpcmVmb3ggMy42KywgSUUgOSssIFNhZmFyaSA1LjErICovXG59XG4vKiByb2JvdG8tcmVndWxhciAtIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogXG4gICAgICAgdXJsKCcuLi8uLi9mb250cy9yb2JvdG8tdjE5LWxhdGluLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIENocm9tZSAyNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSsgKi9cbiAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL3JvYm90by12MTktbGF0aW4tcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IC8qIENocm9tZSA2KywgRmlyZWZveCAzLjYrLCBJRSA5KywgU2FmYXJpIDUuMSsgKi9cbn1cbi8qIHJvYm90by1pdGFsaWMgLSBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IFxuICAgICAgIHVybCgnLi4vLi4vZm9udHMvcm9ib3RvLXYxOS1sYXRpbi1pdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIENocm9tZSAyNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSsgKi9cbiAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL3JvYm90by12MTktbGF0aW4taXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgLyogQ2hyb21lIDYrLCBGaXJlZm94IDMuNissIElFIDkrLCBTYWZhcmkgNS4xKyAqL1xufVxuLyogcm9ib3RvLTcwMGl0YWxpYyAtIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogXG4gICAgICAgdXJsKCcuLi8uLi9mb250cy9yb2JvdG8tdjE5LWxhdGluLTcwMGl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgLyogQ2hyb21lIDI2KywgT3BlcmEgMjMrLCBGaXJlZm94IDM5KyAqL1xuICAgICAgIHVybCgnLi4vLi4vZm9udHMvcm9ib3RvLXYxOS1sYXRpbi03MDBpdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyAvKiBDaHJvbWUgNissIEZpcmVmb3ggMy42KywgSUUgOSssIFNhZmFyaSA1LjErICovXG59XG4vKiByb2JvdG8tNzAwIC0gbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiBcbiAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL3JvYm90by12MTktbGF0aW4tNzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBDaHJvbWUgMjYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrICovXG4gICAgICAgdXJsKCcuLi8uLi9mb250cy9yb2JvdG8tdjE5LWxhdGluLTcwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IC8qIENocm9tZSA2KywgRmlyZWZveCAzLjYrLCBJRSA5KywgU2FmYXJpIDUuMSsgKi9cbn0iLCJAaW1wb3J0ICdtbGMtZnJhbWV3b3JrL2xlc3MvY29uc3RhbnRzJztcbkBpbXBvcnQgJ21sYy1mcmFtZXdvcmsvbGVzcy9jb3JlJztcblxuQGltcG9ydCAnbWxjLWZyYW1ld29yay9sZXNzL2luZm9wYWdlJztcbkBpbXBvcnQgJ3ZhcmlhYmxlcy5sZXNzJztcbkBpbXBvcnQgJ3JvYm90by5sZXNzJztcblxuQGltZzogJy4uLy4uL2ltYWdlcyc7XG5cbkB0YmltZzogJy4uLy4uL2ltYWdlcy90b29sYmFyJztcblxuQGRtaW1nOiAnLi4vLi4vaW1hZ2VzL2RyYXdpbmdtZW51JztcblxuQGtleWZyYW1lcyBtaXNzaW5nLWZlYXR1cmUge1xuICAwJSB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfVxuICAxNyUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBtYWdlbnRhOyB9XG4gIDMzJSB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH1cbiAgNTAlIHsgYmFja2dyb3VuZC1jb2xvcjogY3lhbjsgfVxuICA2NyUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfVxuICA4MyUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH1cbiAgMTAwJSB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfVxufVxuLm1pc3NpbmctZmVhdHVyZSB7XG4gIGFuaW1hdGlvbjogbWlzc2luZy1mZWF0dXJlIDYwMHMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uYmV0YS10YWc6OmFmdGVyIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgY29udGVudDogXCJCRVRBXCI7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGJhY2tncm91bmQ6IEBicmFuZC1jb2xvci1kYXJrO1xuICBvcGFjaXR5OiAwLjc1O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IC4yZW0gLjRlbTtcbiAgdG9wOiAuM2VtO1xuICByaWdodDogLjNlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbiN0b29sYmFyIHtcbiAgZmxleDogMCAwIEBUT09MQkFSX0hFSUdIVDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogQENPTE9SX1BSSU1BUllfQkFTRTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDE2cHg7XG5cbiAgLnRvb2xiYXItYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0OHB4O1xuICB9XG5cbiAgLnRvb2xiYXItYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMSA1NnB4O1xuICAgIGhlaWdodDogQFRPT0xCQVJfSEVJR0hUO1xuICAgIG1hcmdpbjogMCA0cHg7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmLm5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiAyNnB4O1xuXG4gICAgICAmLmxlZnQtbWFyZ2luIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICB9XG4gICAgICAmLnJpZ2h0LW1hcmdpbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgIH1cblxuICAgIH1cblxuICAgICYud2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA4MHB4O1xuICAgIH1cbiAgfVxuXG4gIC50b29sYmFyLWRpdmlkZXIge1xuICAgIGhlaWdodDogQFRPT0xCQVJfSEVJR0hUO1xuICAgIGZsZXg6IDAgMCAycHg7XG4gICAgbWFyZ2luOiAwIDdweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiKDc3LCAxNjcsIDIxNSk7XG4gIH1cbn1cblxuLmlucHV0LWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB1cmwoJ0B7aW1nfS80NXN0cmlwZS5zdmcnKTtcbiAgd2lkdGg6IDQwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZC1zaXplOiA0OHB4O1xuICBvcGFjaXR5OiAwO1xuICBjb2xvcjogQHRleHQtYnV0dG9uLWNvbG9yLWFjdGl2ZTtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2UtZmVlZGJhY2sge1xuICAxMCUge1xuICAgIGxlZnQ6IC0xNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogOHB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgODAlIHtcbiAgICBsZWZ0OiAtMTUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDhweDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5pbnB1dC1mZWVkYmFjay1wdWxzZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMi41cztcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlLWZlZWRiYWNrO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYnV0dG9uLWZpZWxkIHtcbiAgaW5wdXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEycHgpO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC5pbnB1dC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4jbW9kYWwtc3RhZ2luZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzYXZlLXBvcHVwIHtcbiAgd2lkdGg6IDM4MHB4O1xuXG4gIC5tb2RhbC1ib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogMTMwcHg7XG4gIH1cbn1cblxuI3NhdmUtcG9wdXAge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgLW1vei11c2VyLXNlbGVjdDogdGV4dDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0O1xuICAtd2Via2l0LXVzZXItZHJhZzogYXV0bztcblxuICAuY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAjc2hhcmUtaW1hZ2UtdWktY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IC43NWVtO1xuICAgICAgLmRlc2NyaXB0aW9uLWljb24ge1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjVlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hhcmUtaW1hZ2UtYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgICAgbWFyZ2luOiAwIC01cHg7XG5cbiAgICAgIC50ZXh0LWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wb3B1cC1kaXZpZGVyIHtcbiAgICAgIG1hcmdpbjogMWVtIC0xNXB4O1xuICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgZmxleC1iYXNpczogMnB4O1xuICAgICAgYmFja2dyb3VuZDogICNDQ0M7XG4gICAgfVxuICB9XG59XG5cbiNsaW5rLWNvcHkge1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcbn1cblxuLyogRGVmYXVsdCBzdHlsaW5nOiBzaG93IGRlc2t0b3AgaW5zdHJ1Y3Rpb25zLiAqL1xuI2NvcHktaW1hZ2UtbW9kYWwgLmNvcHktaW1hZ2UtaW5zdHJ1Y3Rpb25zIC5tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLypcbiAqIElmIHRvdWNoIGlzIGRldGVjdGVkLCBoaWRlIGRlc2t0b3AgaW5zdHJ1Y3Rpb25zIGFuZCBzaG93IG1vYmlsZWluc3RydWN0aW9ucy5cbiAqL1xuLnRvdWNoICNjb3B5LWltYWdlLW1vZGFsIHtcbiAgLmRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuI2NvcHktaW1hZ2UtbW9kYWwge1xuICB6LWluZGV4OiAxMTA7XG4gIC5tb2RhbC1ib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6ICgtQFRPT0xCQVJfSEVJR0hUIC8gMik7XG4gIH1cbn1cblxuI2NvcHktaW1hZ2UtbW9kYWwgLmNvbnRlbnQge1xuICBwYWRkaW5nOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG5cbiAgLmNvcHktaW1hZ2UtaW5zdHJ1Y3Rpb25zIHtcbiAgICB3aWR0aDogMTBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICBwOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLnN1Yi1oZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICB9XG4gIH1cblxuICAuY29weS1pbWFnZS1zb3VyY2UtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC5jb3B5LWltYWdlLXNvdXJjZSB7XG4gICAgICBtYXgtd2lkdGg6IDUwdnc7XG4gICAgICBtYXgtaGVpZ2h0OiA1MHZoO1xuICAgICAgYm94LXNoYWRvdzogMCA1cHggMTBweCAwIGdyZXk7XG4gICAgfVxuICB9XG59XG5cblxuI2NhbnZhcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2NhbnZhcy1wYXR0ZXJuLnBuZycpO1xufVxuXG4jY2FudmFzLmRyYXctY3Vyc29yOm5vdCgucGFuLWN1cnNvcikge1xuICBjdXJzb3I6IHVybCgnQHtkbWltZ30vY3Vyc29yLXBlbi5jdXInKSxcbiAgICAgICAgICBjcm9zc2hhaXIgIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBnZXRzIGFyb3VuZCBidWdnaW5lc3Mgd2l0aCBFYXNlbEpTIGN1cnNvciBzZXR0aW5nIGFuZCBJRSAqL1xufVxuXG4jY2FudmFzLmRyYXctY3Vyc29yW2RhdGEtZHJhdy1jb2xvcj0nQkxBQ0snXTpub3QoLnBhbi1jdXJzb3IpIHtcbiAgY3Vyc29yOiB1cmwoJ0B7ZG1pbWd9L2N1cnNvci1wZW4tYmxhY2suY3VyJyksXG4gICAgICAgICAgY3Jvc3NoYWlyICFpbXBvcnRhbnQ7IC8qICFpbXBvcnRhbnQgZ2V0cyBhcm91bmQgYnVnZ2luZXNzIHdpdGggRWFzZWxKUyBjdXJzb3Igc2V0dGluZyBhbmQgSUUgKi9cbn1cbiNjYW52YXMuZHJhdy1jdXJzb3JbZGF0YS1kcmF3LWNvbG9yPSdCTFVFJ106bm90KC5wYW4tY3Vyc29yKSB7XG4gIGN1cnNvcjogdXJsKCdAe2RtaW1nfS9jdXJzb3ItcGVuLWJsdWUuY3VyJyksXG4gICAgICAgICAgY3Jvc3NoYWlyICFpbXBvcnRhbnQ7IC8qICFpbXBvcnRhbnQgZ2V0cyBhcm91bmQgYnVnZ2luZXNzIHdpdGggRWFzZWxKUyBjdXJzb3Igc2V0dGluZyBhbmQgSUUgKi9cbn1cbiNjYW52YXMuZHJhdy1jdXJzb3JbZGF0YS1kcmF3LWNvbG9yPSdHUkVFTiddOm5vdCgucGFuLWN1cnNvcikge1xuICBjdXJzb3I6IHVybCgnQHtkbWltZ30vY3Vyc29yLXBlbi1ncmVlbi5jdXInKSxcbiAgICAgICAgICBjcm9zc2hhaXIgIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBnZXRzIGFyb3VuZCBidWdnaW5lc3Mgd2l0aCBFYXNlbEpTIGN1cnNvciBzZXR0aW5nIGFuZCBJRSAqL1xufVxuI2NhbnZhcy5kcmF3LWN1cnNvcltkYXRhLWRyYXctY29sb3I9J1lFTExPVyddOm5vdCgucGFuLWN1cnNvcikge1xuICBjdXJzb3I6IHVybCgnQHtkbWltZ30vY3Vyc29yLXBlbi15ZWxsb3cuY3VyJyksXG4gICAgICAgICAgY3Jvc3NoYWlyICFpbXBvcnRhbnQ7IC8qICFpbXBvcnRhbnQgZ2V0cyBhcm91bmQgYnVnZ2luZXNzIHdpdGggRWFzZWxKUyBjdXJzb3Igc2V0dGluZyBhbmQgSUUgKi9cbn1cbiNjYW52YXMuZHJhdy1jdXJzb3JbZGF0YS1kcmF3LWNvbG9yPSdPUkFOR0UnXTpub3QoLnBhbi1jdXJzb3IpIHtcbiAgY3Vyc29yOiB1cmwoJ0B7ZG1pbWd9L2N1cnNvci1wZW4tb3JhbmdlLmN1cicpLFxuICAgICAgICAgIGNyb3NzaGFpciAhaW1wb3J0YW50OyAvKiAhaW1wb3J0YW50IGdldHMgYXJvdW5kIGJ1Z2dpbmVzcyB3aXRoIEVhc2VsSlMgY3Vyc29yIHNldHRpbmcgYW5kIElFICovXG59XG4jY2FudmFzLmRyYXctY3Vyc29yW2RhdGEtZHJhdy1jb2xvcj0nUkVEJ106bm90KC5wYW4tY3Vyc29yKSB7XG4gIGN1cnNvcjogdXJsKCdAe2RtaW1nfS9jdXJzb3ItcGVuLXJlZC5jdXInKSxcbiAgICAgICAgICBjcm9zc2hhaXIgIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBnZXRzIGFyb3VuZCBidWdnaW5lc3Mgd2l0aCBFYXNlbEpTIGN1cnNvciBzZXR0aW5nIGFuZCBJRSAqL1xufVxuXG4jY2FudmFzLmVyYXNlLWN1cnNvcjpub3QoLnBhbi1jdXJzb3IpIHtcbiAgY3Vyc29yOiB1cmwoJ0B7ZG1pbWd9L2VyYXNlci10cmFuc3BhcmVudC5jdXInKSxcbiAgICAgICAgICBjcm9zc2hhaXIgIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBnZXRzIGFyb3VuZCBidWdnaW5lc3Mgd2l0aCBFYXNlbEpTIGN1cnNvciBzZXR0aW5nIGFuZCBJRSAqL1xufVxuXG4jY2FudmFzLnBhbi1jdXJzb3Ige1xuICBjdXJzb3I6IGdyYWI7XG59XG4jY2FudmFzLnBhbi1jdXJzb3I6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuI2xvYWRpbmctc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbn1cblxuLyogLS0tLS1cblRvb2xiYXIgQnV0dG9uc1xuLS0tLS0gKi9cblxuLnRvb2xiYXItYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDI0cHg7XG59XG5cbiNyZXN0YXJ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdAe3RiaW1nfS9pY29uLXJlbG9hZEAyeC5wbmcnKTtcbn1cblxuI2R1cGxpY2F0ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vaWNvbi1kdXBsaWNhdGVAMngucG5nJyk7XG59XG5cbiNlcXVhdGlvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vaWNvbi1lcXVhdGlvbkAyeC5wbmcnKTtcbiAgJi5vbiB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbiN0ZXh0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdAe3RiaW1nfS9pY29uLXRleHRAMngucG5nJyk7XG4gICYub24ge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4jZHJhdyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vaWNvbi1kcmF3aW5nQDJ4LnBuZycpO1xuICAmLm9uIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ0B7dGJpbWd9L2ljb24tZHJhd2luZy1vbkAyeC5wbmcnKTtcbiAgfVxufVxuXG4jc2hhZGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ0B7dGJpbWd9L2ljb24tc2hhZGVAMngucG5nJyk7XG59XG5cbiN0cmFzaCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vaWNvbi10cmFzaEAyeC5wbmcnKTtcbn1cblxuI2luZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ0B7dGJpbWd9L2ljb24taW5mb0AyeC5wbmcnKTtcbn1cblxuI3NhdmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ0B7dGJpbWd9L2ljb24tc2hhcmVAMngucG5nJyk7XG59XG5cbiNjb2RlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdAe3RiaW1nfS9pY29uLXNoYXJlLWNvZGVAMngucG5nJyk7XG59XG5cbiNhZGQtcmFjayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vaWNvbi1yYWNrLWFkZEAyeC5wbmcnKTtcbn1cblxuI3JlbW92ZS1yYWNrIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdAe3RiaW1nfS9pY29uLXJhY2stcmVtb3ZlQDJ4LnBuZycpO1xufVxuXG4jcmFjay1vcmRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHt0YmltZ30vaWNvbi1yYWNrLW9yZGVyLXNhbWVAMngucG5nJyk7XG5cbiAgJi5yZXZlcnNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ0B7dGJpbWd9L2ljb24tcmFjay1vcmRlci1kaWZmZXJlbnRAMngucG5nJyk7XG4gIH1cbn1cblxuLmxvYWRpbmcge1xuICAjdG9vbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiBIb3cgVG8gU3R5bGluZyAqL1xuLyogVG8gYmUgbW92ZWQgdG8gZnJhbWV3b3JrIGFzIHBhcnQgb2YgSW5mbyBwYWdlIHJlZmFjdG9yICovXG4uaW5mb3BhZ2UgLmluZm93cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xufVxuXG4uaW5mb3BhZ2UgLnRpdGxlYmFyIHtcbiAgZmxleDogMCAwIDUwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uaW5mb3BhZ2UgLmNvbnRlbnRzLXdyYXBwZXIge1xuICBmbGV4OiAxIDAgMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi5pbmZvcGFnZSAuY29udGVudHMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuaDEsIGgyIHtcbiAgY29sb3I6IEBicmFuZC1jb2xvci1kYXJrO1xufVxuXG4uaW5mb3BhZ2Uge1xuICAudGl0bGViYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBicmFuZC1jb2xvci1kYXJrO1xuICB9XG5cbiAgLnRpdGxlLnNlbGVjdGVkIHtcbiAgICBjb2xvcjogQGJyYW5kLWNvbG9yLWRhcms7XG4gIH1cblxuICAuaW5mby1zdWJoZWFkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbn1cbi5ob3d0by1vdmVydmlldyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLmluc3RydWN0aW9ucyB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIuNWVtO1xuICAgIC8qLmZsZXg7Ki9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAmLmxlZnQge1xuICAgICAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcubGVmdC1lZGdlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgIH1cblxuICAgIGltZy5yaWdodC1lZGdlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xuICAgIH1cblxuICAgIGltZy5yaWdodC1jZW50ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgfVxuXG4gICAgaW1nLmxlZnQtY2VudGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS40NWVtO1xuICAgICAgY29sb3I6ICM0NDQ7XG4gICAgICBtYXJnaW46MDtcbiAgICB9XG4gIH1cbn1cblxuLmhvd3RvLXRvb2xiYXIge1xuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAzZW07XG5cbiAgICB0ZCwgdGgge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgJi5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgICYudG9vbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuXG4gICAgICAmLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGJyYW5kLWNvbG9yLWRhcms7XG4gICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICYubGVmdC1hbGlnbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXJnaW46IDAgLjJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuICB9XG5cbiAgLmtleWJvYXJkLXN1cHBvcnQtdGFibGUge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAgIHRkLnRvb2wge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgIH1cbiAgfVxufVxuXG4uYWJvdXQge1xuXG4gIGEuYWJvdXQtbGluayB7XG4gICAgY29sb3I6IEBicmFuZC1jb2xvci1kYXJrO1xuICB9XG5cbiAgLnByaXZhY3ktdGVybXMsXG4gIC5pbmZvdmVyc2lvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNDQ0O1xuXG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiBAYWJvdXQtZXh0cmEtZGFyaztcbiAgICB9XG4gIH1cbn1cblxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjc2N3B4KSB7XG5cbiAgLmhvd3RvLW92ZXJ2aWV3IC5pbnN0cnVjdGlvbnMge1xuICAgICYubGVmdCxcbiAgICAmLnJpZ2h0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB3aWR0aDogOTAlO1xuICAgIH1cbiAgfVxuXG59XG4iXX0= */
