/* imports and utilities like animations and mixins should be defined here */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*! Base styles, made with normalize.css v7.0.0 */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
@font-face {
  font-family: 'Roboto Wide Black';
  font-style: normal;
  font-weight: 900;
  src: url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff2") format("woff2"), url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff") format("woff");
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
*:focus {
  outline: none;
}
:root {
  font-size: 14px;
}
html,
body {
  height: 100%;
  margin: 0;
}
html {
  line-height: 24px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  background-color: #f3f3f3;
  color: #4a4a4a;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2px;
  line-height: 24px;
  position: relative;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1,
h2,
h3 {
  margin: 8px 0;
}
h1 {
  font-size: 1.428rem;
  font-weight: 500;
  letter-spacing: 0.38px;
  line-height: 1.286;
}
h2 {
  font-size: 1.285rem;
  font-weight: 500;
  letter-spacing: 0.33px;
  line-height: 1.143;
}
h3 {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
}
p {
  margin: 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  border: 0;
  border-top: 1px solid #d8d8d8;
  display: block;
  height: 1px;
  margin: 16px 0;
  padding: 0;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  color: #0868ac;
  text-decoration: none;
  -webkit-text-decoration-skip: objects;
}
a:hover {
  color: #0d94f4;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin: 0 0 8px;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
code,
kbd,
samp {
  background-color: #d8d8d8;
  font-family: monospace, monospace;
  font-size: 0.9em;
  padding: 0.2em 0.3em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
  max-width: 100%;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html [type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  padding: 0;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
xpo-ag-grid .ag-full-width-container .ag-full-width-row,
xpo-ag-grid .ag-full-width-container .ag-full-width-row.ag-row-last {
  border-bottom: none;
}
xpo-ag-grid .ag-full-width-container .ag-status-bar {
  display: none;
}
xpo-ag-grid .ag-details-row {
  background: #FFF;
}
xpo-ag-grid .ag-details-row .ag-header {
  display: none;
}
.app[class*='--hasActionBar'] {
  margin-bottom: 41px;
}
.app[class*='--hasActionBar'] .app-ActionBar {
  margin-bottom: -40px;
}
.xpo-GridSettings-popoverContent {
  max-height: 55vh;
  max-width: 55vw;
  overflow: auto;
}
.xpo-GridSettings-popoverContent .xpo-GridColumnSelection-columns .mat-checkbox {
  margin-left: 0;
  margin-right: 0;
  max-width: 33%;
  padding-right: 10px;
}
.xpo-GridSettings-popoverContent .xpo-GridColumnSelection-columns .mat-checkbox .mat-checkbox-layout {
  max-width: 100%;
}
.xpo-GridSettings-popoverContent .xpo-GridColumnSelection-columns .mat-checkbox .mat-checkbox-label {
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}
.xpo-AgGrid .ag-set-filter {
  display: flex;
  flex-direction: column;
  max-height: 250px;
}
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list {
  height: auto;
  overflow: auto;
  width: 250px;
}
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-set-filter-item-checkbox,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-labeled
.ag-label-align-right
.ag-checkbox,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-input-field,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-set-filter-item-checkbox,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-labeled
.ag-label-align-right
.ag-checkbox,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-input-field {
  width: 100%;
}
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-set-filter-item-checkbox .ag-input-field-label,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-set-filter-item-checkbox .ag-label
.ag-checkbox-label,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-labeled
.ag-label-align-right
.ag-checkbox .ag-input-field-label,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-labeled
.ag-label-align-right
.ag-checkbox .ag-label
.ag-checkbox-label,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-input-field .ag-input-field-label,
.xpo-AgGrid .ag-set-filter .ag-filter-no-matches .ag-input-field .ag-label
.ag-checkbox-label,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-set-filter-item-checkbox .ag-input-field-label,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-set-filter-item-checkbox .ag-label
.ag-checkbox-label,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-labeled
.ag-label-align-right
.ag-checkbox .ag-input-field-label,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-labeled
.ag-label-align-right
.ag-checkbox .ag-label
.ag-checkbox-label,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-input-field .ag-input-field-label,
.xpo-AgGrid .ag-set-filter .ag-set-filter-list .ag-input-field .ag-label
.ag-checkbox-label {
  overflow: hidden;
  text-overflow: ellipsis;
  width: 90%;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3N0eWxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvX3Jlc2V0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHhwby1sdGwvbmd4LWx0bC1jb3JlL3N0eWxlcy9fZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AeHBvLWx0bC9uZ3gtbHRsLWNvcmUvc3R5bGVzL190ZXh0LXRyZWF0bWVudC5zY3NzIiwiLi4vLi4vdGFibGUuc2NzcyIsIi4uLy4uL2FwcC12YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFBQTtBQ0VBOztDRENDO0FDR0Q7O0NEQUM7QUNxRUQ7O0NEbEVDO0FDK0hEOztDRDVIQztBQ2dJRDs7Q0Q3SEM7QUM2TkQ7O0NEMU5DO0FDK05EOztDRDVOQztBQzJURDs7Q0R4VEM7QUM0VEQ7O0NEelRDO0FDMFZEO0VBQ0UsT0FBTztBRHhWVDtBRTlCQSxpREFBQTtBREVBOztDRGlDQztBQzdCRDs7Q0RnQ0M7QUNxQ0Q7O0NEbENDO0FDK0ZEOztDRDVGQztBQ2dHRDs7Q0Q3RkM7QUM2TEQ7O0NEMUxDO0FDK0xEOztDRDVMQztBQzJSRDs7Q0R4UkM7QUM0UkQ7O0NEelJDO0FDMFREO0VBQ0UsT0FBTztBRHhUVDtBRzlEQTtFQUNFLGdDQUFnQztFQUNoQyxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHVMQUN5RjtBSGdFM0Y7QUVqRUE7OztFQUlFLHNCQUFzQjtBRm9FeEI7QUVqRUE7RUFDRSxhQUFhO0FGb0VmO0FFakVBO0VBQ0UsZURzT3VCO0FEbEt6QjtBRWpFQTs7RUFFRSxZQUFZO0VBQ1osU0FBUztBRm9FWDtBRWpFQTtFQUNFLGlCRHlQeUI7RUN4UHpCLDBCQUEwQjtFQUMxQiw4QkFBOEI7QUZvRWhDO0FFakVBO0VBQ0UseUJEa01pQztFQ2pNakMsY0RpRHFCO0VDaERyQiwwRERrT3FFO0VDak9yRSxnQkRxTzBCO0VDcE8xQixxQkR1UDZCO0VDdFA3QixpQkQ4T3lCO0VDN096QixrQkFBa0I7QUZvRXBCO0FFakVBOzs7Ozs7RUFNRSxjQUFjO0FGb0VoQjtBRWpFQTs7O0VBR0UsYUFBbUM7QUZvRXJDO0FFakVBO0VFekNFLG1CSGlQbUM7RUdoUG5DLGdCSDBQd0I7RUd6UHhCLHNCSDZRc0M7RUc1UXRDLGtCSHVRa0M7QUR6SnBDO0FFcEVBO0VFcERFLG1CSHVQb0M7RUd0UHBDLGdCSGlRd0I7RUdoUXhCLHNCSG1SdUM7RUdsUnZDLGtCSDZRbUM7QURqSnJDO0FFdkVBO0VFL0RFLG1CSDZQbUM7RUc1UG5DLGdCSHdRd0I7RUd2UXhCLHFCSHlScUM7RUd4UnJDLGtCSG1Sa0M7QUR6SXBDO0FFMUVBO0VBQ0UsU0FBUztBRjZFWDtBRTFFQTs7O0VBR0UsY0FBYztBRjZFaEI7QUUxRUE7RUFDRSxnQkFBZ0I7QUY2RWxCO0FFMUVBO0VBQ0UsU0FBUztFQUNULDZCRENxQjtFQ0FyQixjQUFjO0VBQ2QsV0FBVztFQUNYLGNBQTZCO0VBQzdCLFVBQVU7QUY2RVo7QUUxRUE7RUFDRSxpQ0FBaUM7RUFDakMsY0FBYztBRjZFaEI7QUUxRUE7RUFDRSw2QkFBNkI7RUFDN0IsY0RvRHFCO0VDbkRyQixxQkFBcUI7RUFDckIscUNBQXFDO0FGNkV2QztBRWpGQTtFQU9JLGNENkNtQjtBRGlDdkI7QUUxRUE7RUFDRSxxQkFBcUI7RUFDckIsU0FBUztFQUNULFVBQVU7QUY2RVo7QUUxRUE7RUFDRSxnQkR3SndCO0FEM0UxQjtBRTFFQTtFQUNFLGVBQXFDO0FGNkV2QztBRTFFQTtFQUNFLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDMUIseUNBQWlDO1VBQWpDLGlDQUFpQztBRjZFbkM7QUUxRUE7OztFQUdFLHlCRDdDcUI7RUM4Q3JCLGlDQUFpQztFQUNqQyxnQkFBZ0I7RUFDaEIsb0JBQW9CO0FGNkV0QjtBRTFFQTtFQUNFLGtCQUFrQjtBRjZFcEI7QUUxRUE7RUFDRSxzQkFBc0I7RUFDdEIsV0FBVztBRjZFYjtBRTFFQTtFQUNFLGNBQWM7QUY2RWhCO0FFMUVBOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBRjZFMUI7QUUxRUE7RUFDRSxlQUFlO0FGNkVqQjtBRTFFQTtFQUNFLFdBQVc7QUY2RWI7QUUxRUE7O0VBRUUscUJBQXFCO0FGNkV2QjtBRTFFQTtFQUNFLGFBQWE7RUFDYixTQUFTO0FGNkVYO0FFMUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGVBQWU7QUY2RWpCO0FFMUVBO0VBQ0UsZ0JBQWdCO0FGNkVsQjtBRTFFQTs7Ozs7RUFLRSxTQUFTO0FGNkVYO0FFMUVBOztFQUVFLGlCQUFpQjtBRjZFbkI7QUUxRUE7O0VBRUUsb0JBQW9CO0FGNkV0QjtBRTFFQTs7OztFQUlFLDBCQUEwQjtBRjZFNUI7QUUxRUE7Ozs7RUFJRSxrQkFBa0I7RUFDbEIsVUFBVTtBRjZFWjtBRTFFQTs7OztFQUlFLDhCQUE4QjtBRjZFaEM7QUUxRUE7RUFDRSw4QkFBOEI7QUY2RWhDO0FFMUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxjQUFjO0VBQ2QsZUFBZTtFQUNmLFVBQVU7RUFDVixtQkFBbUI7QUY2RXJCO0FFMUVBO0VBQ0UscUJBQXFCO0VBQ3JCLHdCQUF3QjtBRjZFMUI7QUUxRUE7RUFDRSxjQUFjO0FGNkVoQjtBQUVBOztFRTFFRSxzQkFBc0I7RUFDdEIsVUFBVTtBRjZFWjtBQUVBOztFRTFFRSxZQUFZO0FGNkVkO0FBRUE7RUUzRUUsNkJBQTZCO0VBQzdCLG9CQUFvQjtBRjZFdEI7QUFFQTs7RUUxRUUsd0JBQXdCO0FGNkUxQjtBRTFFQTtFQUNFLDBCQUEwQjtFQUMxQixhQUFhO0FGNkVmO0FFMUVBOztFQUVFLGNBQWM7QUY2RWhCO0FFMUVBO0VBQ0Usa0JBQWtCO0FGNkVwQjtBRTFFQTtFQUNFLHFCQUFxQjtBRjZFdkI7QUUxRUE7RUFDRSxhQUFhO0FGNkVmO0FBRUE7RUUzRUUsYUFBYTtBRjZFZjtBSy9XQTs7RUFJTSxtQkFBbUI7QUxnWHpCO0FLcFhBO0VBUU0sYUFBYTtBTGdYbkI7QUt4WEE7RUFhSSxnQkFBZ0I7QUwrV3BCO0FLNVhBO0VBZ0JNLGFBQWE7QUxnWG5CO0FBM1hBO0VBRUksbUJBQXdDO0FBNlg1QztBQS9YQTtFQUtNLG9CTVRxQjtBTnVZM0I7QUF6WEE7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGNBQWM7QUE0WGhCO0FBL1hBO0VBT00sY0FBYztFQUNkLGVBQWU7RUFDZixjQUFjO0VBQ2QsbUJBQW1CO0FBNFh6QjtBQXRZQTtFQWFRLGVBQWU7QUE2WHZCO0FBMVlBO0VBaUJRLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsV0FBVztBQTZYbkI7QUF2WEE7RUFFSSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGlCQUFpQjtBQXlYckI7QUE3WEE7O0VBUU0sWUFBWTtFQUNaLGNBQWM7RUFDZCxZQUFZO0FBMFhsQjtBQXBZQTs7Ozs7Ozs7OztFQWlCUSxXQUFXO0FBZ1luQjtBQWpaQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQlUsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixVQUFVO0FBd1pwQiIsImZpbGUiOiJzdHlsZXMuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGltcG9ydHMgYW5kIHV0aWxpdGllcyBsaWtlIGFuaW1hdGlvbnMgYW5kIG1peGlucyBzaG91bGQgYmUgZGVmaW5lZCBoZXJlICovXG5AaW1wb3J0ICcuL2FwcC12YXJpYWJsZXMnO1xuQGltcG9ydCAnfkB4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvcmVzZXQnO1xuQGltcG9ydCAnLi90YWJsZSc7XG5cbi5hcHAge1xuICAmW2NsYXNzKj0nLS1oYXNBY3Rpb25CYXInXSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGFwcC1hY3Rpb25CYXItaGVpZ2h0ICsgMTtcblxuICAgIC5hcHAtQWN0aW9uQmFyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0kYXBwLWFjdGlvbkJhci1oZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi54cG8tR3JpZFNldHRpbmdzLXBvcG92ZXJDb250ZW50IHtcbiAgbWF4LWhlaWdodDogNTV2aDtcbiAgbWF4LXdpZHRoOiA1NXZ3O1xuICBvdmVyZmxvdzogYXV0bztcblxuICAueHBvLUdyaWRDb2x1bW5TZWxlY3Rpb24tY29sdW1ucyB7XG4gICAgLm1hdC1jaGVja2JveCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1heC13aWR0aDogMzMlO1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcblxuICAgICAgLm1hdC1jaGVja2JveC1sYXlvdXQge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi54cG8tQWdHcmlkIHtcbiAgLmFnLXNldC1maWx0ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcblxuICAgIC5hZy1maWx0ZXItbm8tbWF0Y2hlcyxcbiAgICAuYWctc2V0LWZpbHRlci1saXN0IHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgd2lkdGg6IDI1MHB4O1xuXG4gICAgICAuYWctc2V0LWZpbHRlci1pdGVtLWNoZWNrYm94LFxuICAgICAgLmFnLWxhYmVsZWRcbiAgICAgIC5hZy1sYWJlbC1hbGlnbi1yaWdodFxuICAgICAgLmFnLWNoZWNrYm94LFxuICAgICAgLmFnLWlucHV0LWZpZWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLmFnLWlucHV0LWZpZWxkLWxhYmVsLFxuICAgICAgICAuYWctbGFiZWxcbiAgICAgICAgLmFnLWNoZWNrYm94LWxhYmVsIHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4vdGV4dC10cmVhdG1lbnQnO1xuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG4iLCIvKiEgQmFzZSBzdHlsZXMsIG1hZGUgd2l0aCBub3JtYWxpemUuY3NzIHY3LjAuMCAqL1xuQGltcG9ydCAnLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi9mb250cyc7XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbjpyb290IHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xufVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5O1xuICBjb2xvcjogJHhwby1mb250Q29sb3ItLXByaW1hcnk7XG4gIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmgxLFxuaDIsXG5oMyB7XG4gIG1hcmdpbjogKCR4cG8tY29udGVudFNwYWNpbmcgLyAyKSAwO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpO1xufVxuXG5oMiB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKTtcbn1cblxuaDMge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKTtcbn1cblxucCB7XG4gIG1hcmdpbjogMDtcbn1cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICR4cG8tY29udGVudFNwYWNpbmcgMDtcbiAgcGFkZGluZzogMDtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJHhwby1ibHVlLS00MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHhwby1ibHVlLS0zMDA7XG4gIH1cbn1cblxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xufVxuXG5kZCB7XG4gIG1hcmdpbjogMCAwICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMik7XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBwYWRkaW5nOiAwLjJlbSAwLjNlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J2J1dHRvbiddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3Jlc2V0J106LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nc3VibWl0J106LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byBXaWRlIEJsYWNrJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogOTAwO1xuICBzcmM6IHVybCgnaHR0cHM6Ly94cG9kb3Rjb20uYXp1cmVlZGdlLm5ldC94cG8vZmlsZXMvcm9ib3RvLXdpZGUtLWJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnaHR0cHM6Ly94cG9kb3Rjb20uYXp1cmVlZGdlLm5ldC94cG8vZmlsZXMvcm9ib3RvLXdpZGUtLWJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cbiIsIkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuIiwieHBvLWFnLWdyaWQge1xuICAuYWctZnVsbC13aWR0aC1jb250YWluZXIge1xuICAgIC5hZy1mdWxsLXdpZHRoLXJvdyxcbiAgICAuYWctZnVsbC13aWR0aC1yb3cuYWctcm93LWxhc3Qge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAuYWctc3RhdHVzLWJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5hZy1kZXRhaWxzLXJvdyB7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcblxuICAgIC5hZy1oZWFkZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ35AeHBvLWx0bC9uZ3gtbHRsLWNvcmUvc3R5bGVzL3ZhcmlhYmxlcyc7XG4kYXBwLWFjdGlvbkJhci1oZWlnaHQ6IDQwcHg7XG4kYXBwLWhlYWRlci1pdGVtcy1tYXJnaW46IDZweDtcbiRmaWx0ZXItZmllbGQtd3JhcHBlcl9zaWMtd3JhcHBlci1tYXgtbWluLXdpZHRoOiAxMXJlbTsvLzE1MHB4XG4kc2NhbGUtaWQtbWF4LW1pbi13aWR0aDogNnJlbTsvLzg0cHhcbiRmb3JtLXdyYXBwZXItcGFkZGluZzogMC44NTdyZW07XG4kZGF0ZXMtcGlja2VyLW1heC1taW4td2lkdGg6IDE2cmVtOy8vMjE2cHg7XG4kZXF1aXBtZW50LXByZWZpeC1zdWZmaXgtbWluLW1heC13aWR0aDogOHJlbTtcbiRtYXQtZm9ybS1maWVsZC14cG8tZGF0ZS1yYW5nZS1pbnB1dC1oZWlnaHQ6IDIuM3JlbTtcbiJdfQ== */
@charset "UTF-8";
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*! Base styles, made with normalize.css v7.0.0 */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
@font-face {
  font-family: 'Roboto Wide Black';
  font-style: normal;
  font-weight: 900;
  src: url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff2") format("woff2"), url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff") format("woff");
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
*:focus {
  outline: none;
}
:root {
  font-size: 14px;
}
html,
body {
  height: 100%;
  margin: 0;
}
html {
  line-height: 24px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  background-color: #f3f3f3;
  color: #4a4a4a;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2px;
  line-height: 24px;
  position: relative;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1,
h2,
h3 {
  margin: 8px 0;
}
h1 {
  font-size: 1.428rem;
  font-weight: 500;
  letter-spacing: 0.38px;
  line-height: 1.286;
}
h2 {
  font-size: 1.285rem;
  font-weight: 500;
  letter-spacing: 0.33px;
  line-height: 1.143;
}
h3 {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
}
p {
  margin: 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  border: 0;
  border-top: 1px solid #d8d8d8;
  display: block;
  height: 1px;
  margin: 16px 0;
  padding: 0;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  color: #0868ac;
  text-decoration: none;
  -webkit-text-decoration-skip: objects;
}
a:hover {
  color: #0d94f4;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin: 0 0 8px;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
code,
kbd,
samp {
  background-color: #d8d8d8;
  font-family: monospace, monospace;
  font-size: 0.9em;
  padding: 0.2em 0.3em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
  max-width: 100%;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html [type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  padding: 0;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
[mat-button].mat-button,
[mat-raised-button].mat-raised-button,
[mat-icon-button].mat-icon-button {
  border-width: 2px;
  font-size: 1.143rem;
  font-weight: 400;
  height: 40px;
  line-height: normal;
  padding: 0 20px;
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
[mat-button].mat-button {
  padding: 0;
}
[mat-icon-button].mat-icon-button {
  padding: 0;
}
[mat-raised-button].mat-raised-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-raised-button].mat-raised-button, [mat-raised-button].mat-raised-button.mat-primary {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-raised-button].mat-raised-button:hover, [mat-raised-button].mat-raised-button.mat-primary:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-raised-button].mat-raised-button:focus, [mat-raised-button].mat-raised-button:active, [mat-raised-button].mat-raised-button.mat-primary:focus, [mat-raised-button].mat-raised-button.mat-primary:active {
  background-color: #0d47a1;
  border-color: #0d47a1;
}
[mat-raised-button].mat-raised-button.mat-warn {
  background-color: #d50000;
  border-color: #d50000;
}
[mat-raised-button].mat-raised-button.mat-warn:hover {
  background-color: #ff2222;
  border-color: #ff2222;
}
[mat-raised-button].mat-raised-button.mat-warn:focus, [mat-raised-button].mat-raised-button.mat-warn:active {
  background-color: #550000;
  border-color: #550000;
}
[mat-raised-button].mat-raised-button[disabled], [mat-raised-button].mat-raised-button[disabled]:active, [mat-raised-button].mat-raised-button[disabled]:hover, [mat-raised-button].mat-raised-button[disabled]:focus {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
  color: #ffffff;
  cursor: not-allowed;
}
.mat-button,
.mat-icon-button {
  background-color: transparent;
}
.mat-button.mat-primary,
.mat-icon-button.mat-primary {
  color: #0868ac;
}
.mat-button.mat-primary:hover, .mat-button.mat-primary:focus,
.mat-icon-button.mat-primary:hover,
.mat-icon-button.mat-primary:focus {
  color: #0d94f4;
}
.mat-button.mat-primary:active,
.mat-icon-button.mat-primary:active {
  color: #053c63;
}
.mat-button, .mat-button.mat-accent,
.mat-icon-button,
.mat-icon-button.mat-accent {
  color: #4a4a4a;
}
.mat-button:hover, .mat-button:focus, .mat-button.mat-accent:hover, .mat-button.mat-accent:focus,
.mat-icon-button:hover,
.mat-icon-button:focus,
.mat-icon-button.mat-accent:hover,
.mat-icon-button.mat-accent:focus {
  color: #9b9b9b;
}
.mat-button:active, .mat-button.mat-accent:active,
.mat-icon-button:active,
.mat-icon-button.mat-accent:active {
  color: #4a4a4a;
}
.mat-button.mat-warn,
.mat-icon-button.mat-warn {
  color: #d50000;
}
.mat-button.mat-warn:hover, .mat-button.mat-warn:focus,
.mat-icon-button.mat-warn:hover,
.mat-icon-button.mat-warn:focus {
  color: #ff2222;
}
.mat-button.mat-warn:active,
.mat-icon-button.mat-warn:active {
  color: #550000;
}
[mat-raised-button].mat-raised-button {
  align-items: center;
  display: inline-flex;
}
[mat-button].mat-button[disabled], [mat-button].mat-button[disabled]:active, [mat-button].mat-button[disabled]:hover, [mat-button].mat-button[disabled]:focus,
[mat-icon-button].mat-icon-button[disabled],
[mat-icon-button].mat-icon-button[disabled]:active,
[mat-icon-button].mat-icon-button[disabled]:hover,
[mat-icon-button].mat-icon-button[disabled]:focus {
  background-color: transparent;
  border-color: #bdbdbd;
  color: #bdbdbd;
  cursor: not-allowed;
}
[mat-raised-button].mat-raised-button {
  border-radius: 2px;
}
[mat-button].mat-button.xpo-SmallButton,
[mat-raised-button].mat-raised-button.xpo-SmallButton,
[mat-icon-button].mat-icon-button.xpo-SmallButton {
  border-width: 1px;
  font-size: 1rem;
  height: 30px;
  line-height: normal;
  min-width: auto;
}
[mat-button].mat-button.xpo-SmallButton .mat-icon,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-icon,
[mat-icon-button].mat-icon-button.xpo-SmallButton .mat-icon {
  font-size: 20px;
}
[mat-button].mat-button.xpo-SmallButton .mat-button-wrapper,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-button-wrapper,
[mat-icon-button].mat-icon-button.xpo-SmallButton .mat-button-wrapper {
  line-height: 28px;
}
[mat-button].mat-button.xpo-LargeButton,
[mat-raised-button].mat-raised-button.xpo-LargeButton {
  font-size: 1.143rem;
  height: 50px;
  line-height: normal;
}
[mat-button].mat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-raised-button].mat-raised-button.xpo-LargeButton .mat-button-toggle-button {
  font-size: 1.285rem;
  height: 100%;
}
/*
  1. These are carried over from Material but UX does not
      have any design for them yet. That's why they are not
      in the sample... they're a bit of a hidden API.
*/
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
.xpo-Link--accent {
  color: #4a4a4a;
}
.xpo-Link--accent:hover, .xpo-Link--accent:focus, .xpo-Link--accent:active {
  text-decoration: underline;
}
.xpo-Link--accent:hover, .xpo-Link--accent:focus {
  color: #4a4a4a;
  outline: 0;
}
.xpo-Link--accent:active {
  color: #171717;
}
.mat-chip-list .mat-chip-list-wrapper {
  gap: 6px;
}
.mat-chip.mat-standard-chip.xpo-Tag {
  background-color: #fafafa;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  color: #212121;
  display: flex;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.429rem;
  height: 24px;
  margin: 4px 0;
  min-height: 24px;
  padding: 2px 8px;
}
.mat-chip.mat-standard-chip.xpo-Tag > .mat-icon {
  font-size: 1.143rem;
  height: 16px;
  margin-left: 12px;
  margin-right: 0;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .xpo-Icon {
  height: 16px;
  margin-left: 12px;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .xpo-Icon .mat-icon {
  height: 16px;
  margin-right: 0;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .mat-chip-remove.mat-chip-trailing-icon {
  margin-left: 12px;
  opacity: 1;
}
.mat-chip.mat-standard-chip.xpo-Tag .mat-chip-remove.mat-chip-trailing-icon:hover {
  opacity: 1;
}
.mat-chip.mat-standard-chip.xpo-Tag:hover {
  background-color: #ffffff;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
    1. Thanks to sub-pixels and how they render this caused some nasty
        blur. Ew! What one can do is start to add sub-pixels in along
        with the "em" (or rem, or points, or 🧀; it doesn't really
        matter). This is sub-pixel pushing so I just used my eye on
        a low-rez monitor and got it as close as I could. Because
        `calc` was uses this will be handled on the DOM instead of
        during the SCSS compilation which should give the rendering
        engine the best chance to make the correct decision.
    2. This is to support the text weight changing from the label
        changing weights as we want to animate this change instead
        of a snapping change.
    3. This large bit of classes is to identify if a prefix is attached
        to the input so that we can move the label better.
    4. Material has this set to 133.333% because they scale the label.
        We're changing that scale so we need to change the size of it.
*/
/*
    1. Threw a `div` to start this off to get the score to 0011 in order
        to beat Materials 0010. Mwahahaha.
    2. This disables the caret on anything but the first menu when there
        are nested menus. This is slightly fragile but sadly Material
        doesn't give us much of a choice here. We know the first panel
        is the second child of the overlay `div` so we get the second
        with `nth-of-type(2)` which gets the second `div`...then add
        `:not()` and you now get "everything that isn't the second div.
    3. This is because the first and last menu items have space added
        around them. The carets need to respect that and because the
        area round the buttons needs to accept the hover state this
        these need to be manually moved. All other carets are just
        moved 50% wholesale.
    4. Thanks to the reduced padding we need to move the submenu trigger
        icon over just a bit.
*/
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
    1. Moves the select to sit right under the trigger
*/
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
.xpo-Footer {
  width: 100%;
}
.xpo-Footer-navbar > :nth-child(n) {
  margin: 0 12px;
}
.xpo-Footer-navbar > :nth-child(n):last-child {
  margin-right: 16px;
}
.xpo-Footer-bold-text {
  font-weight: 700;
}
.xpo-Footer--sticky {
  bottom: 0;
  position: sticky;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
.mat-elevation-z0 {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z1 {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z2 {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z3 {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z4 {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z5 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z6 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z7 {
  box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z8 {
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z9 {
  box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z10 {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z11 {
  box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z12 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z13 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z14 {
  box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z15 {
  box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z16 {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z17 {
  box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z18 {
  box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z19 {
  box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z20 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z21 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z22 {
  box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z23 {
  box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z24 {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
.mat-badge-content {
  font-weight: 600;
  font-size: 12px;
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-badge-small .mat-badge-content {
  font-size: 9px;
}
.mat-badge-large .mat-badge-content {
  font-size: 24px;
}
.mat-h1, .mat-headline, .mat-typography h1 {
  font: 400 24px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h2, .mat-title, .mat-typography h2 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h3, .mat-subheading-2, .mat-typography h3 {
  font: 400 16px/28px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h4, .mat-subheading-1, .mat-typography h4 {
  font: 400 15px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h5, .mat-typography h5 {
  font: 400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-h6, .mat-typography h6 {
  font: 400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-body-strong, .mat-body-2 {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body, .mat-body-1, .mat-typography {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body p, .mat-body-1 p, .mat-typography p {
  margin: 0 0 12px;
}
.mat-small, .mat-caption {
  font: 400 12px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-display-4, .mat-typography .mat-display-4 {
  font: 300 112px/112px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.05em;
  margin: 0 0 56px;
}
.mat-display-3, .mat-typography .mat-display-3 {
  font: 400 56px/56px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  margin: 0 0 64px;
}
.mat-display-2, .mat-typography .mat-display-2 {
  font: 400 45px/48px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.005em;
  margin: 0 0 64px;
}
.mat-display-1, .mat-typography .mat-display-1 {
  font: 400 34px/40px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 64px;
}
.mat-bottom-sheet-container {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,
.mat-flat-button, .mat-fab, .mat-mini-fab {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-button-toggle {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card-title {
  font-size: 24px;
  font-weight: 500;
}
.mat-card-header .mat-card-title {
  font-size: 20px;
}
.mat-card-subtitle,
.mat-card-content {
  font-size: 14px;
}
.mat-checkbox {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-checkbox-layout .mat-checkbox-label {
  line-height: 24px;
}
.mat-chip {
  font-size: 14px;
  font-weight: 500;
}
.mat-chip .mat-chip-trailing-icon.mat-icon,
.mat-chip .mat-chip-remove.mat-icon {
  font-size: 18px;
}
.mat-table {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-header-cell {
  font-size: 12px;
  font-weight: 500;
}
.mat-cell, .mat-footer-cell {
  font-size: 14px;
}
.mat-calendar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-calendar-body {
  font-size: 13px;
}
.mat-calendar-body-label,
.mat-calendar-period-button {
  font-size: 14px;
  font-weight: 500;
}
.mat-calendar-table-header th {
  font-size: 11px;
  font-weight: 400;
}
.mat-dialog-title {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-expansion-panel-header {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
}
.mat-expansion-panel-content {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field {
  font-size: inherit;
  font-weight: 400;
  line-height: 1.125;
  font-family: Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field-wrapper {
  padding-bottom: 1.34375em;
}
.mat-form-field-prefix .mat-icon,
.mat-form-field-suffix .mat-icon {
  font-size: 150%;
  line-height: 1.125;
}
.mat-form-field-prefix .mat-icon-button,
.mat-form-field-suffix .mat-icon-button {
  height: 1.5em;
  width: 1.5em;
}
.mat-form-field-prefix .mat-icon-button .mat-icon,
.mat-form-field-suffix .mat-icon-button .mat-icon {
  height: 1.125em;
  line-height: 1.125;
}
.mat-form-field-infix {
  padding: 0.5em 0;
  border-top: 0.84375em solid transparent;
}
.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.34375em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.34374em) scale(0.75);
  width: 133.33334333%;
}
.mat-form-field-label-wrapper {
  top: -0.84375em;
  padding-top: 0.84375em;
}
.mat-form-field-label {
  top: 1.34375em;
}
.mat-form-field-underline {
  bottom: 1.34375em;
}
.mat-form-field-subscript-wrapper {
  font-size: 75%;
  margin-top: 0.66666667em;
  top: calc(100% - 1.79166667em);
}
.mat-form-field-appearance-legacy .mat-form-field-wrapper {
  padding-bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-infix {
  padding: 0.4375em 0;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);
  -ms-transform: translateY(-1.28125em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);
  -ms-transform: translateY(-1.28124em) scale(0.75);
  width: 133.33334333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);
  -ms-transform: translateY(-1.28123em) scale(0.75);
  width: 133.33335333%;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  top: 1.28125em;
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {
  margin-top: 0.54166667em;
  top: calc(100% - 1.66666667em);
}
@media print {
  .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.28122em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper
.mat-form-field-label {
    transform: translateY(-1.28121em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
    transform: translateY(-1.2812em) scale(0.75);
  }
}
.mat-form-field-appearance-fill .mat-form-field-infix {
  padding: 0.25em 0 0.75em 0;
}
.mat-form-field-appearance-fill .mat-form-field-label {
  top: 1.09375em;
  margin-top: -0.5em;
}
.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-0.59375em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-0.59374em) scale(0.75);
  width: 133.33334333%;
}
.mat-form-field-appearance-outline .mat-form-field-infix {
  padding: 1em 0 1em 0;
}
.mat-form-field-appearance-outline .mat-form-field-label {
  top: 1.84375em;
  margin-top: -0.25em;
}
.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.59375em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.59374em) scale(0.75);
  width: 133.33334333%;
}
.mat-grid-tile-header,
.mat-grid-tile-footer {
  font-size: 14px;
}
.mat-grid-tile-header .mat-line,
.mat-grid-tile-footer .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-grid-tile-header .mat-line:nth-child(n+2),
.mat-grid-tile-footer .mat-line:nth-child(n+2) {
  font-size: 12px;
}
input.mat-input-element {
  margin-top: -0.0625em;
}
.mat-menu-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 400;
}
.mat-paginator,
.mat-paginator-page-size .mat-select-trigger {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
}
.mat-radio-button {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select-trigger {
  height: 1.125em;
}
.mat-slide-toggle-content {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-slider-thumb-label-text {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-stepper-vertical, .mat-stepper-horizontal {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-step-label {
  font-size: 14px;
  font-weight: 400;
}
.mat-step-sub-label-error {
  font-weight: normal;
}
.mat-step-label-error {
  font-size: 14px;
}
.mat-step-label-selected {
  font-size: 14px;
  font-weight: 500;
}
.mat-tab-group {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tab-label, .mat-tab-link {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-toolbar,
.mat-toolbar h1,
.mat-toolbar h2,
.mat-toolbar h3,
.mat-toolbar h4,
.mat-toolbar h5,
.mat-toolbar h6 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0;
}
.mat-tooltip {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 10px;
  padding-top: 6px;
  padding-bottom: 6px;
}
.mat-tooltip-handset {
  font-size: 14px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.mat-list-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-base .mat-list-item {
  font-size: 16px;
}
.mat-list-base .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-list-option {
  font-size: 16px;
}
.mat-list-base .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-list-base[dense] .mat-list-item {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 16px;
}
.mat-optgroup-label {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-simple-snackbar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
}
.mat-simple-snackbar-action {
  line-height: 1;
  font-family: inherit;
  font-size: inherit;
  font-weight: 500;
}
.mat-tree {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tree-node,
.mat-nested-tree-node {
  font-weight: 400;
  font-size: 14px;
}
.mat-ripple {
  overflow: hidden;
  position: relative;
}
.mat-ripple:not(:empty) {
  transform: translateZ(0);
}
.mat-ripple.mat-ripple-unbounded {
  overflow: visible;
}
.mat-ripple-element {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);
  transform: scale(0);
}
.cdk-high-contrast-active .mat-ripple-element {
  display: none;
}
.cdk-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.cdk-overlay-container, .cdk-global-overlay-wrapper {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.cdk-overlay-container {
  position: fixed;
  z-index: 1000;
}
.cdk-overlay-container:empty {
  display: none;
}
.cdk-global-overlay-wrapper {
  display: flex;
  position: absolute;
  z-index: 1000;
}
.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  z-index: 1000;
  display: flex;
  max-width: 100%;
  max-height: 100%;
}
.cdk-overlay-backdrop {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 0;
}
.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 1;
}
@media screen and (-ms-high-contrast: active) {
  .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
    opacity: 0.6;
  }
}
.cdk-overlay-dark-backdrop {
  background: rgba(0, 0, 0, 0.32);
}
.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0;
}
.cdk-overlay-connected-position-bounding-box {
  position: absolute;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  min-width: 1px;
  min-height: 1px;
}
.cdk-global-scrollblock {
  position: fixed;
  width: 100%;
  overflow-y: scroll;
}
.mat-ripple-element {
  background-color: rgba(0, 0, 0, 0.1);
}
.mat-option {
  color: rgba(0, 0, 0, 0.87);
}
.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-active {
  background: rgba(0, 0, 0, 0.04);
  color: rgba(0, 0, 0, 0.87);
}
.mat-option.mat-option-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #0868ac;
}
.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #4a4a4a;
}
.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #d50000;
}
.mat-optgroup-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-optgroup-disabled .mat-optgroup-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-pseudo-checkbox {
  color: rgba(0, 0, 0, 0.54);
}
.mat-pseudo-checkbox::after {
  color: #f3f3f3;
}
.mat-pseudo-checkbox-disabled {
  color: #b0b0b0;
}
.mat-primary .mat-pseudo-checkbox-checked,
.mat-primary .mat-pseudo-checkbox-indeterminate {
  background: #0868ac;
}
.mat-pseudo-checkbox-checked,
.mat-pseudo-checkbox-indeterminate,
.mat-accent .mat-pseudo-checkbox-checked,
.mat-accent .mat-pseudo-checkbox-indeterminate {
  background: #4a4a4a;
}
.mat-warn .mat-pseudo-checkbox-checked,
.mat-warn .mat-pseudo-checkbox-indeterminate {
  background: #d50000;
}
.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,
.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {
  background: #b0b0b0;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #4a4a4a;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(74, 74, 74, 0.54);
}
.mat-slide-toggle.mat-checked .mat-ripple-element {
  background-color: #4a4a4a;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {
  background-color: #0868ac;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(8, 104, 172, 0.54);
}
.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {
  background-color: #0868ac;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {
  background-color: #d50000;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(213, 0, 0, 0.54);
}
.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {
  background-color: #d50000;
}
.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {
  background-color: black;
}
.mat-slide-toggle-thumb {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  background-color: #fafafa;
}
.mat-slide-toggle-bar {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-theme-loaded-marker {
  display: none;
}
.xpo-Card {
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.87);
}
.xpo-Button,
.xpo-Button .mat-button-toggle-button {
  text-transform: uppercase;
}
[mat-flat-button].mat-flat-button,
[mat-stroked-button].mat-stroked-button {
  border-radius: 2px;
  font-size: 1.143rem;
  font-weight: 500;
  height: 40px;
  line-height: 24px;
  padding: 8px 20px;
  min-width: auto;
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard {
  height: 40px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-top-width: 2px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-button {
  border-width: 2px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-button {
  font-size: 1.143rem;
  height: 100%;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard {
  border-width: 2px;
}
mat-button-toggle-group.mat-button-toggle-group {
  border-width: 0;
}
[mat-flat-button].mat-flat-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-flat-button].mat-flat-button {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-flat-button].mat-flat-button:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-flat-button].mat-flat-button:focus, [mat-flat-button].mat-flat-button:active {
  background-color: #0d47a1;
  border-color: #0d47a1;
}
[mat-flat-button].mat-flat-button[disabled], [mat-flat-button].mat-flat-button[disabled]:active, [mat-flat-button].mat-flat-button[disabled]:hover, [mat-flat-button].mat-flat-button[disabled]:focus {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
  color: #ffffff;
  cursor: not-allowed;
}
.mat-stroked-button {
  background-color: #ffffff;
  border-color: #1976d2;
  color: #0d47a1;
}
.mat-stroked-button:hover {
  background-color: #e4effa;
  border-color: #1976d2;
  color: #1976d2;
}
.mat-stroked-button:focus, .mat-stroked-button:active {
  background-color: #e4effa;
  border-color: #2196f3;
  color: #2196f3;
}
.mat-stroked-button[disabled], .mat-stroked-button[disabled]:active, .mat-stroked-button[disabled]:hover, .mat-stroked-button[disabled]:focus {
  background-color: #fafafa;
  border-color: #bdbdbd;
  color: #bdbdbd;
  cursor: not-allowed;
}
[mat-flat-button].mat-flat-button,
[mat-stroked-button].mat-stroked-button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton {
  border-width: 1px;
  font-size: 1rem;
  height: 32px;
  padding: 4px 20px;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton .mat-icon,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-icon {
  font-size: 20px;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton .mat-button-wrapper,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-button-wrapper {
  line-height: 28px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton {
  height: 32px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton .mat-button-toggle, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton.mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton.mat-button-toggle {
  border-width: 1px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton .mat-button-toggle .mat-button-toggle-button, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton.mat-button-toggle .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton .mat-button-toggle .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton.mat-button-toggle .mat-button-toggle-button {
  font-size: 1rem;
  height: 100%;
}
[mat-flat-button].mat-flat-button.xpo-LargeButton,
[mat-stroked-button].mat-stroked-button.xpo-LargeButton,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-LargeButton,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-LargeButton {
  font-size: 1.428rem;
  font-weight: 500;
  height: 56px;
  line-height: normal;
  padding: 16px 20px;
}
[mat-flat-button].mat-flat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-stroked-button].mat-stroked-button.xpo-LargeButton .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-LargeButton .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-LargeButton .mat-button-toggle-button {
  font-size: 1.285rem;
  height: 100%;
}
.xpo-ActionButton {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  color: #4a4a4a;
  height: 32px;
  width: 32px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
.xpo-ActionButton > .mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
.xpo-ActionButton:focus, .xpo-ActionButton:active {
  border: 1px solid #d8d8d8;
  color: #1976d2;
  outline: none;
}
.xpo-ActionButton:hover {
  color: #212121;
}
.xpo-ActionButton[disabled], .xpo-ActionButton[disabled]:active, .xpo-ActionButton[disabled]:hover, .xpo-ActionButton[disabled]:focus {
  background-color: #ffffff;
  border-color: #d8d8d8;
  color: #bdbdbd;
  cursor: not-allowed;
}
.mat-button-focus-overlay,
.mat-button-toggle-focus-overlay {
  opacity: 0 !important;
}
.cdk-overlay-container .cdk-global-overlay-wrapper.xpo-ApplicationSwitcher-dialog-wrapper {
  height: auto;
  max-height: 100%;
}
.cdk-overlay-container .cdk-global-overlay-wrapper.xpo-ApplicationSwitcher-dialog-wrapper .cdk-overlay-pane.xpo-ApplicationSwitcher-dialog {
  width: 100%;
  background-color: #ffffff;
  border-bottom: solid 1px #d8d8d8;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 100px;
}
.xpo-ApplicationSwitcherContent {
  overflow: auto;
}
.xpo-ApplicationSwitcherContent .xpo-ApplicationCategory .xpo-Application:last-of-type .xpo-Application-content:hover {
  border-bottom: none;
}
.mat-autocomplete-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {
  background: white;
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel-above:nth-child(1) {
  border-top: 1px solid #d8d8d8;
}
.mat-autocomplete-panel-above .mat-autocomplete-panel.mat-autocomplete-visible {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.mat-autocomplete-panel-above .mat-autocomplete-panel.mat-autocomplete-visible:last-of-type {
  border-bottom: 0;
}
.mat-form-field-suffix .mat-icon {
  cursor: pointer;
}
.mat-autocomplete-panel.mat-autocomplete-visible {
  border: 1px solid #d8d8d8;
  border-radius: 0;
  border-top: none;
  box-shadow: none;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option {
  border-bottom: 1px solid #d8d8d8;
  color: #000000;
  font-size: 14px;
  height: 30px;
  line-height: 30px;
  padding: 0 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:hover {
  background-color: #e4effa;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:last-of-type {
  border-bottom: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .mat-option-text {
  align-items: center;
  display: inline-flex;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .xpo-Icon {
  margin-right: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines {
  height: 45px;
  line-height: normal;
  padding: 6px 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text {
  align-items: center;
  display: flex;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text .xpo-Select-twoLinesContainer {
  flex-grow: 1;
  margin-left: 0;
  overflow: hidden;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text .xpo-Select-twoLinesContainer span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option-hideDivider:not(:last-of-type) {
  border-bottom: none;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .mat-icon {
  margin-right: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .xpo-icon {
  margin-right: 4px;
  vertical-align: middle;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer {
  display: grid;
  grid-template-columns: 20% 80%;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span {
  flex: none;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span:first-of-type {
  margin-right: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span:last-of-type {
  margin-left: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer {
  display: grid;
  grid-template-columns: 33% 34% 33%;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span {
  margin: 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span:first-of-type {
  margin-left: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span:last-of-type {
  margin-right: 0;
}
.mat-icon.mat-badge-above:not(.xpo-Badge--important) {
  align-items: center;
  display: inline-flex;
  font-size: 20px;
  height: auto;
  width: auto;
}
.mat-icon.mat-badge-medium {
  color: #4a4a4a;
}
.mat-icon.mat-badge-medium .mat-badge-content {
  align-items: center;
  background-color: #4a4a4a;
  border: 1px solid #ffffff;
  border-radius: 2px;
  display: flex;
  font-size: 10px;
  font-weight: 600;
  height: 16px;
  justify-content: center;
  line-height: 16px;
  padding: 2px 3px;
  width: auto;
}
.mat-icon.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -9px;
}
.mat-icon.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -15px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -28px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important .mat-badge-content {
  background-color: #cc0000;
  border-radius: 10px;
  font-weight: 600;
  height: auto;
  line-height: 10px;
  padding: 4px 8px;
  width: auto;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot .mat-badge-content {
  border: none;
  border-radius: 10px;
  height: 10px;
  width: 10px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot.mat-badge-above .mat-badge-content {
  top: -1px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--warning .mat-badge-content {
  background-color: #fbc02d;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--success .mat-badge-content {
  background-color: #4caf50;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--info .mat-badge-content {
  background-color: #0091ea;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--info .mat-badge-content {
  background-color: #0091ea;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--important .mat-badge-content {
  background-color: #d32f2f;
}
.mat-button-toggle-standalone,
.mat-button-toggle-group {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  box-shadow: none;
}
.mat-button-toggle {
  color: rgba(0, 0, 0, 0.38);
}
.mat-button-toggle .mat-button-toggle-focus-overlay {
  background-color: rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
  background: white;
}
.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
  background-color: black;
}
.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
}
[dir='rtl'] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: none;
  border-top: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-checked {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.54);
}
.mat-button-toggle-checked.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
}
.mat-button-toggle-disabled {
  color: rgba(0, 0, 0, 0.26);
  background-color: #eeeeee;
}
.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  background: white;
}
.mat-button-toggle-disabled.mat-button-toggle-checked {
  background-color: #bdbdbd;
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  border: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
  line-height: 48px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard {
  border-radius: 2px;
}
.mat-button-toggle-standalone:not(:last-child) {
  margin-right: 2px;
}
.mat-button-toggle.mat-button-toggle-standalone,
.mat-button-toggle {
  background-color: #ffffff;
  border-color: #1976d2;
  border-style: solid;
  color: #1976d2;
  font-weight: 500;
  transition: color 200ms ease, background-color 200ms ease;
}
.mat-button-toggle.mat-button-toggle-standalone:hover, .mat-button-toggle.mat-button-toggle-standalone:focus,
.mat-button-toggle:hover,
.mat-button-toggle:focus {
  background-color: #e4effa;
}
.mat-button-toggle.mat-button-toggle-standalone:active,
.mat-button-toggle:active {
  background-color: #1976d2;
  color: #ffffff;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-checked,
.mat-button-toggle.mat-button-toggle-checked {
  background-color: #1976d2;
  color: #ffffff;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-disabled,
.mat-button-toggle.mat-button-toggle-disabled {
  background-color: #f6f6f6;
  color: #bdbdbd;
  outline: none;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-disabled .mat-button-toggle-button:hover,
.mat-button-toggle.mat-button-toggle-disabled .mat-button-toggle-button:hover {
  cursor: not-allowed;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content {
  display: flex;
  line-height: inherit;
  padding: 4px 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content > .mat-icon, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content > .mat-icon,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content > .mat-icon,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content > .mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-top-color: #1976d2;
  border-top-style: solid;
}
.mat-button-toggle-standalone.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  border-color: #bdbdbd;
}
.mat-checkbox-frame {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox-checkmark {
  fill: #f3f3f3;
}
.mat-checkbox-checkmark-path {
  stroke: #f3f3f3 !important;
}
.mat-checkbox-mixedmark {
  background-color: #f3f3f3;
}
.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {
  background-color: #0868ac;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {
  background-color: #4a4a4a;
}
.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {
  background-color: #d50000;
}
.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #b0b0b0;
}
.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {
  border-color: #b0b0b0;
}
.mat-checkbox-disabled .mat-checkbox-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox .mat-ripple-element {
  background-color: black;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {
  background: #0868ac;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {
  background: #4a4a4a;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {
  background: #d50000;
}
.mat-checkbox-background {
  transition: none !important;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-inner-container {
  border: 1px solid #000000;
  border-radius: 2px;
}
.mat-checkbox-indeterminate.mat-accent.mat-checkbox-disabled .mat-checkbox-inner-container {
  border: 1px solid #bdbdbd;
}
.mat-checkbox-indeterminate.mat-accent.mat-checkbox-disabled .mat-checkbox-inner-container .mat-checkbox-frame {
  border: 1px solid transparent;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {
  background: #000000;
  border: 2px solid #000000;
  height: 8px;
  margin: 3px 3px;
  padding: 1px 2px 3px 1px;
  width: 8px;
}
.mat-checkbox {
  border: 1px solid transparent;
  display: inline-flex;
  margin: 3px 4px;
  padding: 0 4px;
}
.mat-checkbox.cdk-keyboard-focused {
  border: 1px dashed #d8d8d8;
}
.mat-checkbox.xpo-CheckboxGroup-selectAll {
  margin: 3px 8px;
}
.mat-checkbox .mat-checkbox-layout {
  align-items: center;
}
.mat-checkbox.mat-checkbox-label-before .mat-checkbox-inner-container {
  margin-left: 4px;
}
.mat-checkbox .mat-checkbox-inner-container {
  align-self: flex-start;
  margin: 4px 4px 0 0;
}
.mat-checkbox-ripple {
  display: none;
}
.mat-checkbox-background .mat-checkbox-checkmark-path {
  stroke-width: 3.13333px;
}
.mat-checkbox .mat-checkbox-frame {
  border: none;
}
.mat-checkbox.mat-checkbox-disabled {
  cursor: not-allowed;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-label {
  color: #333333;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-mixedmark {
  background-color: #bdbdbd;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-checkmark {
  fill: #f6f6f6;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #f6f6f6;
  border: 1px solid #bdbdbd;
}
.mat-checkbox-checked .mat-checkbox.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #bdbdbd;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-background .mat-checkbox-checkmark-path {
  stroke: #ffffff !important;
}
.mat-checkbox.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #d8d8d8;
}
.mat-checkbox.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-mixedmark {
  background-color: #f6f6f6;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-frame {
  border-color: #d8d8d8;
}
.mat-checkbox.mat-checkbox-checked .mat-checkbox-background {
  background-color: #000000;
}
.mat-checkbox.mat-checkbox-checked.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #bdbdbd;
}
.mat-checkbox:not(.mat-checkbox-disabled) .mat-checkbox-inner-container:hover {
  background-color: transparent;
}
.mat-checkbox:not(.mat-checkbox-indeterminate) .mat-checkbox-frame {
  border: 1px solid #d8d8d8;
}
.mat-checkbox.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #000000;
}
.mat-chip.mat-standard-chip {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.87);
}
.mat-chip.mat-standard-chip .mat-chip-remove {
  color: rgba(0, 0, 0, 0.87);
  opacity: 0.4;
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {
  opacity: 0.54;
}
.mat-chip.mat-standard-chip.mat-chip-disabled {
  opacity: 0.4;
}
.mat-chip.mat-standard-chip::after {
  background: black;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {
  background-color: #0868ac;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {
  background-color: #d50000;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {
  background-color: #4a4a4a;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
mat-chip.mat-chip {
  font-weight: 500;
  font-size: 1rem;
  line-height: 24px;
  min-height: 24px;
}
mat-chip.mat-chip .mat-icon {
  height: 1rem;
  width: 1rem;
}
mat-chip.mat-chip.xpo-Chip--small {
  font-size: 0.875rem;
  line-height: 16px;
  min-height: 16px;
}
mat-chip.mat-chip.xpo-Chip--small .mat-icon {
  height: 0.875rem;
  width: 0.875rem;
}
mat-chip.mat-chip.mat-standard-chip {
  background-color: #d8d8d8;
  border-radius: 16px;
  padding-left: 8px;
  padding-right: 8px;
}
mat-chip.mat-chip.mat-standard-chip:not(.mat-chip-disabled):focus, mat-chip.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: none;
}
mat-chip.mat-chip.mat-standard-chip::after {
  opacity: 0;
}
mat-chip.mat-chip.mat-standard-chip .mat-icon {
  font-size: inherit;
  margin-right: 4px;
}
mat-chip.mat-chip.mat-standard-chip .mat-icon.mat-chip-trailing-icon {
  height: auto;
  margin-left: 4px;
  margin-right: 0;
  width: auto;
}
mat-chip.mat-chip.xpo-Chip {
  display: flex;
  justify-content: center;
}
mat-chip.mat-chip.xpo-Chip--unread, mat-chip.mat-chip.xpo-Chip--critical {
  background: #d50000;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--high {
  background: #ff9957;
}
mat-chip.mat-chip.xpo-Chip--medium {
  background: #ffba00;
}
mat-chip.mat-chip.xpo-Chip--green {
  background-color: #11a63b;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--orange {
  background-color: #ff9957;
}
mat-chip.mat-chip.xpo-Chip--red {
  background-color: #d50000;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--yellow {
  background-color: #ffba00;
}
mat-chip.mat-chip.xpo-BadgeChip.mat-chip {
  font-size: 10px;
  font-weight: 600;
  min-height: 20px;
}
mat-chip.mat-chip.xpo-BadgeChip--negative.mat-standard-chip.mat-chip {
  background-color: #fceeeb;
  border: 1px solid #fceeeb;
  color: #dd2c00;
}
mat-chip.mat-chip.xpo-BadgeChip--positive.mat-standard-chip.mat-chip {
  background-color: #f1f9f1;
  border: 1px solid #f1f9f1;
  color: #4caf50;
}
.mat-calendar-arrow {
  border-top-color: rgba(0, 0, 0, 0.54);
}
.mat-datepicker-toggle,
.mat-datepicker-content .mat-calendar-next-button,
.mat-datepicker-content .mat-calendar-previous-button {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-table-header {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-table-header-divider::after {
  background: rgba(0, 0, 0, 0.12);
}
.mat-calendar-body-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-body-cell-content,
.mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.87);
  border-color: transparent;
}
.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-disabled .mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(0, 0, 0, 0.04);
}
.mat-calendar-body-in-preview {
  color: rgba(0, 0, 0, 0.24);
}
.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.18);
}
.mat-calendar-body-in-range::before {
  background: rgba(8, 104, 172, 0.2);
}
.mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-calendar-body-comparison-bridge-start::before,
[dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(8, 104, 172, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-comparison-bridge-end::before,
[dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(8, 104, 172, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-calendar-body-selected {
  background-color: #0868ac;
  color: white;
}
.mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(8, 104, 172, 0.4);
}
.mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range::before {
  background: rgba(74, 74, 74, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-accent [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(74, 74, 74, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-accent [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(74, 74, 74, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-selected {
  background-color: #4a4a4a;
  color: white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(74, 74, 74, 0.4);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range::before {
  background: rgba(213, 0, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-warn [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(213, 0, 0, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-warn [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(213, 0, 0, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-selected {
  background-color: #d50000;
  color: white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(213, 0, 0, 0.4);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content-touch {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-datepicker-toggle-active {
  color: #0868ac;
}
.mat-datepicker-toggle-active.mat-accent {
  color: #4a4a4a;
}
.mat-datepicker-toggle-active.mat-warn {
  color: #d50000;
}
.mat-date-range-input-inner[disabled] {
  color: rgba(0, 0, 0, 0.38);
}
.xpo-DatePicker .mat-datepicker-toggle {
  display: flex;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button {
  height: 16px;
  margin: 0;
  width: 16px;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button .mat-button-wrapper {
  display: flex;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button .mat-button-wrapper .mat-icon {
  font-size: 16px;
  height: 16px;
  line-height: 16px;
  width: 16px;
}
.xpo-DatePicker .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  min-width: 128px;
}
.xpo-DatePicker .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 4px;
}
.xpo-DatePicker--active .mat-form-field-wrapper .mat-form-field-flex {
  border-color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content {
  border: solid 1px #000000;
  border-radius: 0;
  margin-top: -1px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar {
  height: 250px;
  width: 226px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-header {
  padding-top: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-controls {
  align-items: center;
  height: 30px;
  justify-content: space-between;
  margin: 8px 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-period-button {
  color: #000000;
  font-size: 1rem;
  font-weight: 500;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button, .mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button {
  height: 16px;
  width: 16px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button::after, .mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button::after {
  border-color: #000000;
  border-top-width: 3px;
  margin: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button::after {
  border-left-width: 3px;
  transform: scale(0.5305) translateX(3px) rotate(-45deg);
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button::after {
  border-right-width: 3px;
  transform: scale(0.5305) translateX(-3px) rotate(45deg);
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header {
  color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header th {
  font-size: 1rem;
  font-weight: 500;
  padding: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header-divider {
  display: none;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-label {
  padding: 0 !important;
  visibility: hidden;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-cell:hover .mat-calendar-body-cell-content {
  background-color: #e8f5fe;
  border-color: transparent;
  color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-cell-content {
  background-color: #fafafa;
  color: #000000;
  font-size: 1rem;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-today {
  border-color: #1976d2;
  color: #1976d2;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-selected {
  background-color: #1976d2;
  border-color: #1976d2;
  color: #ffffff;
  font-weight: 500;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-selected.mat-calendar-body-today {
  box-shadow: none;
}
.mat-datepicker-popup .mat-datepicker-content mat-year-view .mat-calendar-table .mat-calendar-body-cell-content {
  border-radius: 0;
}
.mat-datepicker-popup .mat-datepicker-content mat-multi-year-view .mat-calendar-table {
  height: 205px;
}
.mat-datepicker-popup .mat-datepicker-content mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell-content {
  border-radius: 0;
  height: 30px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input {
  margin-bottom: 16px;
  margin-top: 24px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label {
  font-size: 1rem;
  letter-spacing: normal;
  opacity: 0.5;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label-wrapper {
  left: 9px;
  overflow: visible;
  top: -12px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label-wrapper {
  left: 0;
  top: -24px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.285rem;
  font-weight: normal;
  letter-spacing: inherit;
  opacity: 1;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-flex, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-flex {
  border-color: #d50000;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-wrapper, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-hint, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-error, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-error .mat-icon, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-underline, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
mat-form-field.mat-form-field-type-xpo-date-range-input:not(.mat-form-field-has-label) {
  margin-top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-focused .mat-form-field-flex {
  border: 1px solid #000000;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-focused .mat-form-field-wrapper {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex {
  align-items: center;
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  display: flex;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 4px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-suffix .mat-icon-button {
  height: auto;
  width: auto;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-infix {
  align-items: center;
  border: 0;
  display: flex;
  padding: 0;
  width: 208px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-label {
  color: #333333 !important;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.428rem;
  font-weight: normal;
  letter-spacing: normal;
  overflow: visible;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-label-wrapper {
  top: -24px;
}
.xpo-DateRangeInput-separator {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.cdk-overlay-pane.xpo-DateRangePicker-popup {
  margin-bottom: -1px;
  margin-top: -1px;
}
.mat-dialog-container {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
mat-dialog-container.mat-dialog-container {
  border-radius: 0;
}
mat-dialog-container.mat-dialog-container [mat-dialog-title].mat-dialog-title {
  color: #212121;
  display: flex;
  flex: 1;
  flex-direction: row;
  flex-shrink: 0;
  font-size: 26px;
  font-weight: 500;
  justify-content: space-between;
  line-height: 26px;
  line-height: normal;
  margin: 0 24px;
  padding-bottom: 8px;
  padding-top: 38px;
  text-transform: none;
}
mat-dialog-container.mat-dialog-container [mat-dialog-title].mat-dialog-title:not(.xpo-ConfirmDialog-header) {
  border-bottom: 1px solid #d8d8d8;
}
mat-dialog-container.mat-dialog-container [mat-dialog-content].mat-dialog-content,
mat-dialog-container.mat-dialog-container mat-dialog-content.mat-dialog-content {
  margin: 0;
  padding: 8px 24px 36px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-content].mat-dialog-content p:not(:last-of-type),
mat-dialog-container.mat-dialog-container mat-dialog-content.mat-dialog-content p:not(:last-of-type) {
  margin-bottom: 16px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-actions].mat-dialog-actions,
mat-dialog-container.mat-dialog-container mat-dialog-actions.mat-dialog-actions {
  border-top: 1px solid #d8d8d8;
  justify-content: space-between;
  margin: 0 24px;
  padding: 24px 0;
}
mat-dialog-container.mat-dialog-container [mat-dialog-actions].mat-dialog-actions .xpo-ButtonGroup > .mat-button-base,
mat-dialog-container.mat-dialog-container mat-dialog-actions.mat-dialog-actions .xpo-ButtonGroup > .mat-button-base {
  margin-left: 0;
}
.mat-expansion-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-action-row {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled='true']),
.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled='true']),
.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled='true']) {
  background: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
  .mat-expansion-panel:not(.mat-expanded):not([aria-disabled='true'])
.mat-expansion-panel-header:hover {
    background: white;
  }
}
.mat-expansion-panel-header-title {
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel-header-description,
.mat-expansion-indicator::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-expansion-panel-header[aria-disabled='true'] {
  color: rgba(0, 0, 0, 0.26);
}
.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-title,
.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-description {
  color: inherit;
}
.mat-expansion-panel-header {
  height: 48px;
}
.mat-expansion-panel-header.mat-expanded {
  height: 64px;
}
.mat-accordion > .mat-expansion-panel,
.mat-expansion-panel {
  margin: 0.1px;
}
.mat-accordion > .mat-expansion-panel, .mat-accordion > .mat-expansion-panel:not([class*='mat-elevation-z']),
.mat-expansion-panel,
.mat-expansion-panel:not([class*='mat-elevation-z']) {
  border-radius: 0;
  box-shadow: none;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header,
.mat-expansion-panel .mat-expansion-panel-header {
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-icon,
.mat-expansion-panel .mat-icon {
  font-size: 20px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-body,
.mat-expansion-panel .mat-expansion-panel-body {
  padding: 8px 39px 8px;
  padding-bottom: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-body p,
.mat-expansion-panel .mat-expansion-panel-body p {
  font-size: 14px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-content .mat-cell > .mat-icon,
.mat-expansion-panel .mat-expansion-panel-content .mat-cell > .mat-icon {
  margin-right: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-content,
.mat-expansion-panel .mat-content {
  align-items: center;
}
.mat-accordion > .mat-expansion-panel .mat-content .mat-expansion-panel-header-title,
.mat-expansion-panel .mat-content .mat-expansion-panel-header-title {
  margin-right: 0;
  padding: 8px 10px;
}
.mat-accordion > .mat-expansion-panel:not(.mat-expanded) .mat-content::before,
.mat-expansion-panel:not(.mat-expanded) .mat-content::before {
  content: 'add';
  font-family: 'Material Icons';
  font-size: 24px;
}
.mat-accordion > .mat-expansion-panel.mat-expanded .mat-content::before,
.mat-expansion-panel.mat-expanded .mat-content::before {
  content: 'remove';
  font-family: 'Material Icons';
  font-size: 24px;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap),
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) {
  border-bottom: 1px solid #d8d8d8;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header {
  font-size: 1.143rem;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-expansion-panel-header-title,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-expansion-panel-header-title {
  color: #000000;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-content::before,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-content::before {
  color: #424242;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header[aria-disabled='true'],
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header[aria-disabled='true'] {
  color: #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap {
  margin-bottom: 8px;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap:not(.mat-expanded),
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap:not(.mat-expanded) {
  border: 1px solid #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap.mat-expanded .mat-expansion-panel-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap.mat-expanded .mat-expansion-panel-content {
  border: 1px solid #d8d8d8;
  border-top: none;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header {
  padding: 0;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content::before {
  color: #f6f6f6 !important;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content .mat-expansion-panel-header-title,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content .mat-expansion-panel-header-title {
  color: #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content::before {
  background-color: #333333;
  color: #ffffff;
  margin-right: 0;
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content {
  background-color: #4a4a4a;
  display: inline-flex;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content > .mat-expansion-panel-header-title,
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content .mat-expansion-panel-header-description,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content > .mat-expansion-panel-header-title,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content .mat-expansion-panel-header-description {
  color: #ffffff;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content {
  background-color: #f6f6f6;
  color: #171717;
  display: inline-flex;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content::before {
  background-color: #d8d8d8;
  color: #333333;
  margin-right: 0;
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-icon,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-icon,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description {
  align-items: center;
  display: flex;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before {
  margin-right: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
  flex-grow: 0;
  line-height: 24px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description {
  font-size: 0.875rem;
  line-height: 16px;
  flex-grow: 0;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator:not(:first-of-type),
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator:not(:first-of-type) {
  margin-left: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator-tag,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator-tag {
  font-size: 10px;
}
.mat-accordion > .mat-expansion-panel.mat-expanded.mat-expansion-panel-spacing,
.mat-expansion-panel.mat-expanded.mat-expansion-panel-spacing {
  margin: 0;
}
.mat-accordion > .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']):hover,
.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']):hover {
  background: none;
}
.mat-form-field-label {
  color: rgba(0, 0, 0, 0.6);
}
.mat-hint {
  color: rgba(0, 0, 0, 0.6);
}
.mat-form-field.mat-focused .mat-form-field-label {
  color: #0868ac;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-accent {
  color: #4a4a4a;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-warn {
  color: #d50000;
}
.mat-focused .mat-form-field-required-marker {
  color: #4a4a4a;
}
.mat-form-field-ripple {
  background-color: rgba(0, 0, 0, 0.87);
}
.mat-form-field.mat-focused .mat-form-field-ripple {
  background-color: #0868ac;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {
  background-color: #4a4a4a;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {
  background-color: #d50000;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {
  color: #0868ac;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {
  color: #4a4a4a;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,
.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {
  background-color: #d50000;
}
.mat-error {
  color: #d50000;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-hint {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-standard .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-fill .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.04);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.02);
}
.mat-form-field-appearance-fill .mat-form-field-underline::before {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {
  background-color: transparent;
}
.mat-form-field-appearance-outline .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.12);
}
.mat-form-field-appearance-outline .mat-form-field-outline-thick {
  color: rgba(0, 0, 0, 0.87);
}
.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {
  color: #0868ac;
}
.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {
  color: #4a4a4a;
}
.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {
  color: #d50000;
}
.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {
  color: #d50000;
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.06);
}
mat-form-field.mat-form-field-type-mat-input {
  margin-bottom: 16px;
  margin-top: 24px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label {
  font-size: 1rem;
  letter-spacing: normal;
  opacity: 0.5;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label-wrapper {
  left: 9px;
  overflow: visible;
  top: -12px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label-wrapper {
  left: 0;
  top: -24px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.285rem;
  font-weight: normal;
  letter-spacing: inherit;
  opacity: 1;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-flex, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-flex {
  border-color: #d50000;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--inline,
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--inline .mat-form-field-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--inline,
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--inline .mat-form-field-wrapper {
  margin-bottom: 0;
  margin-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-hint, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-error, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-error .mat-icon, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--borderless .mat-form-field-flex, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--borderless .mat-form-field-flex {
  border: none;
  box-shadow: unset;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-underline, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
mat-form-field.mat-form-field-type-mat-input:not(.mat-form-field-has-label) {
  margin-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-focused .mat-form-field-flex {
  border: 1px solid #000000;
}
mat-form-field.mat-form-field-type-mat-input.mat-focused .mat-form-field-wrapper {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex {
  align-items: center;
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  display: flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix {
  display: flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix .mat-icon,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: 16px;
  justify-content: center;
  line-height: 16px;
  width: 16px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix .xpo-BusyLoader,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix .xpo-BusyLoader {
  width: 24px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix {
  margin-left: 6px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 6px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix {
  align-items: center;
  border: 0;
  display: flex;
  padding: 0;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-icon + .mat-input-element {
  padding-left: 0;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element {
  color: #000000;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  margin: 0;
  padding: 6px 8px;
  resize: none;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element:disabled {
  background-color: #f3f3f3;
  color: #000000;
  font-style: italic;
  font-weight: 400;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label {
  color: #333333 !important;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.428rem;
  font-weight: normal;
  letter-spacing: normal;
  overflow: visible;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label-wrapper {
  top: -24px;
}
.xpo-Label--wrap .mat-checkbox-layout,
.xpo-Label--wrap .mat-radio-label {
  white-space: unset;
}
.xpo-Form--inline {
  align-items: flex-end;
  display: inline-flex;
  flex-wrap: wrap;
  width: 100%;
}
.xpo-Form--inline .mat-button-base,
.xpo-Form--inline .mat-button-toggle-group,
.xpo-Form--inline .mat-form-field,
.xpo-Form--inline .mat-form-field-type-mat-input:not(.mat-form-field-has-label) {
  margin-bottom: 16px;
  margin-right: 8px;
  width: auto;
}
.xpo-Form--inline > .mat-button-toggle {
  margin-bottom: 16px;
}
.xpo-Form--inline > .mat-button-toggle:last-of-type {
  margin-right: 8px;
}
.mat-form-field-type-mat-native-select .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-input-element:disabled,
.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.38);
}
.mat-input-element {
  caret-color: #0868ac;
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-webkit-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-form-field.mat-accent .mat-input-element {
  caret-color: #4a4a4a;
}
.mat-form-field.mat-warn .mat-input-element,
.mat-form-field-invalid .mat-input-element {
  caret-color: #d50000;
}
.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {
  color: #d50000;
}
input.mat-input-element {
  caret-color: #4a4a4a !important;
  margin-top: 0.1375em;
}
input.mat-input-element:disabled {
  cursor: not-allowed;
}
.xpo-Link {
  align-items: center;
  color: #1976d2;
  cursor: pointer;
  display: inline-flex;
  font-weight: 500;
  gap: 5px;
}
.xpo-Link:hover, .xpo-Link:focus, .xpo-Link:active {
  text-decoration: underline;
}
.xpo-Link:hover {
  color: #2196f3;
  outline: 0;
}
.xpo-Link:active, .xpo-Link:focus {
  color: #0d47a1;
  outline: none;
}
.xpo-Link[disabled] {
  color: #bdbdbd;
  cursor: not-allowed;
}
.xpo-Link--regular {
  font-weight: 400;
}
.xpo-Link > .mat-icon {
  font-size: 1.428rem;
  height: 20px;
  width: 20px;
  text-decoration: none;
}
.mat-menu-panel {
  background: white;
}
.mat-menu-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-menu-item {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
.mat-menu-item[disabled], .mat-menu-item[disabled]::after {
  color: rgba(0, 0, 0, 0.38);
}
.mat-menu-item .mat-icon-no-color,
.mat-menu-item-submenu-trigger::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-menu-item:hover:not([disabled]),
.mat-menu-item.cdk-program-focused:not([disabled]),
.mat-menu-item.cdk-keyboard-focused:not([disabled]),
.mat-menu-item-highlighted:not([disabled]) {
  background: rgba(0, 0, 0, 0.04);
}
div.mat-menu-panel {
  border-radius: 0;
  box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.2), -1px -1px 1px -1px rgba(0, 0, 0, 0.4), 0 1px 1px 0 rgba(0, 0, 0, 0.14);
  margin-top: 2px;
  min-height: unset;
  overflow: visible;
  position: relative;
}
div.mat-menu-panel .mat-menu-content:not(:empty) {
  padding-bottom: 0;
  padding-top: 0;
}
div.mat-menu-panel .mat-menu-item {
  color: #6f6f6f;
  height: 1.75em;
  line-height: 1.75em;
  padding: 0 8px;
}
div.mat-menu-panel .mat-menu-item:disabled {
  color: #9b9b9b;
  cursor: not-allowed;
}
div.mat-menu-panel .mat-menu-item-submenu-trigger::after {
  margin-right: -7px;
}
div.mat-menu-panel a.mat-menu-item,
div.mat-menu-panel a.mat-menu-item:hover,
div.mat-menu-panel a.mat-menu-item:focus {
  text-decoration: none;
}
div.mat-menu-panel .mat-divider {
  color: #d8d8d8;
}
div.mat-menu-panel .mat-divider:last-child {
  display: none;
}
.cdk-overlay-connected-position-bounding-box:not(:nth-of-type(2)) .mat-menu-panel::after {
  display: none;
}
.mat-form-field.mat-form-field-type-xpo-multi-select {
  line-height: 24px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float {
  margin-bottom: 16px;
  margin-top: 24px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper {
  padding: 0;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex {
  cursor: pointer;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  padding: 2px 8px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-form-field-label-wrapper {
  overflow: visible;
  top: -43px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label {
  color: #333333;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  overflow: visible;
  transform: none;
  width: 100%;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-arrow {
  margin-right: 0;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-underline {
  display: none;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper .mat-error {
  display: flex;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-focused .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  border-color: #000000;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-focused .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-arrow {
  color: #4a4a4a;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  background-color: #f6f6f6;
  cursor: not-allowed;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-trigger {
  cursor: not-allowed;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel {
  border: 1px solid #000000;
  margin-top: 26px;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option .mat-option-text .mat-icon {
  margin-right: 6px;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option.xpo-MultiSelectAllOption .mat-pseudo-checkbox-indeterminate {
  background: #ffffff;
  border: 1px solid #000000;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option.xpo-MultiSelectAllOption .mat-pseudo-checkbox-indeterminate::after {
  background: #000000;
  border: 2px solid #000000;
  height: 8px;
  left: 3px;
  top: 3px;
  width: 8px;
}
.xpo-MultiSelectTrigger .mat-chip-list .mat-chip-list-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
}
.mat-snack-bar-container {
  color: rgba(255, 255, 255, 0.7);
  background: #323232;
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-simple-snackbar-action {
  color: #4a4a4a;
}
snack-bar-container.mat-snack-bar-container {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.12), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.2);
  background: #ffffff;
  border-radius: 2px;
  color: #4a4a4a;
  padding: 0;
  overflow: hidden;
  margin: 32px;
}
@media (max-width: 768px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 80vw;
    max-height: 40vh;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 60vw;
    width: auto;
    max-height: 40vh;
  }
}
@media (min-width: 1024px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 40vw;
    max-height: 40vh;
  }
}
.mat-table {
  background: white;
}
.mat-table thead, .mat-table tbody, .mat-table tfoot,
mat-header-row, mat-row, mat-footer-row,
[mat-header-row], [mat-row], [mat-footer-row],
.mat-table-sticky {
  background: inherit;
}
mat-row, mat-header-row, mat-footer-row,
th.mat-header-cell, td.mat-cell, td.mat-footer-cell {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}
.mat-header-cell {
  color: rgba(0, 0, 0, 0.54);
}
.mat-cell, .mat-footer-cell {
  color: rgba(0, 0, 0, 0.87);
}
.mat-table {
  border: 1px solid #d8d8d8;
}
.mat-table tr.mat-header-row,
.mat-table tr.mat-footer-row,
.mat-table tr.mat-row {
  height: 30px;
}
.mat-table mat-header-row.mat-header-row,
.mat-table mat-footer-row.mat-footer-row,
.mat-table mat-row.mat-row {
  min-height: 30px;
}
.mat-table mat-row.mat-row,
.mat-table mat-header-row.mat-header-row,
.mat-table mat-footer-row.mat-footer-row,
.mat-table th.mat-header-cell,
.mat-table td.mat-cell,
.mat-table td.mat-footer-cell {
  border-bottom-color: #d8d8d8;
}
.mat-table mat-row.mat-row:last-child,
.mat-table mat-footer-row.mat-footer-row:last-child,
.mat-table tr.mat-row:last-child > .mat-cell {
  border-bottom-color: transparent;
}
.mat-table .mat-cell .mat-icon {
  align-items: center;
  justify-content: center;
}
.mat-table .mat-cell > .xpo-Icon {
  margin-right: 4px;
}
.mat-table th.mat-header-cell,
.mat-table td.mat-cell,
.mat-table td.mat-footer-cell,
.mat-table mat-cell.mat-cell,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-footer-cell.mat-footer-cell {
  font-size: 1rem;
}
.mat-table th.mat-header-cell, .mat-table th.mat-header-cell:first-of-type,
.mat-table td.mat-cell,
.mat-table td.mat-cell:first-of-type,
.mat-table td.mat-footer-cell,
.mat-table td.mat-footer-cell:first-of-type,
.mat-table mat-cell.mat-cell,
.mat-table mat-cell.mat-cell:first-of-type,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-header-cell.mat-header-cell:first-of-type,
.mat-table mat-footer-cell.mat-footer-cell,
.mat-table mat-footer-cell.mat-footer-cell:first-of-type {
  padding-left: 8px;
}
.mat-table th.mat-header-cell, .mat-table th.mat-header-cell:last-of-type,
.mat-table td.mat-cell,
.mat-table td.mat-cell:last-of-type,
.mat-table td.mat-footer-cell,
.mat-table td.mat-footer-cell:last-of-type,
.mat-table mat-cell.mat-cell,
.mat-table mat-cell.mat-cell:last-of-type,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-header-cell.mat-header-cell:last-of-type,
.mat-table mat-footer-cell.mat-footer-cell,
.mat-table mat-footer-cell.mat-footer-cell:last-of-type {
  padding-right: 8px;
}
.mat-table tr.mat-header-row,
.mat-table mat-header-row.mat-header-row {
  background-color: #f6f6f6;
  box-shadow: 0 4px -2px -1px rgba(0, 0, 0, 0.1);
}
.mat-table tr.mat-header-row .mat-header-cell,
.mat-table mat-header-row.mat-header-row .mat-header-cell {
  color: #4a4a4a;
  font-size: 0.875rem;
  font-weight: 500;
}
.mat-table tr.mat-footer-row,
.mat-table mat-footer-row.mat-footer-row {
  background-color: #e6e6e6;
}
.mat-table tr.mat-footer-row .mat-footer-cell,
.mat-table mat-footer-row.mat-footer-row .mat-footer-cell {
  font-weight: 500;
}
.mat-table .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-cell .mat-icon {
  align-items: center;
  justify-content: center;
}
.mat-cell > .xpo-Icon {
  margin-right: 4px;
}
.xpo-MatTable--withColumnGroup tr.mat-header-row:first-of-type {
  background-color: #e6e6e6;
}
.xpo-MatTable--withColumnGroup tr.mat-header-row:first-of-type th.mat-header-cell {
  text-align: center;
}
.xpo-MatTable--borderRight {
  border-right: 1px solid #d8d8d8;
}
.xpo-MatTable--borderLeft {
  border-left: 1px solid #d8d8d8;
}
.xpo-MatTable-cell--textAlignRight.mat-header-cell, .xpo-MatTable-cell--textAlignRight.mat-cell, .xpo-MatTable-cell--textAlignRight.mat-footer-cell {
  justify-content: flex-end;
  text-align: right;
}
.xpo-MatTable-cell--textAlignCenter.mat-header-cell, .xpo-MatTable-cell--textAlignCenter.mat-cell, .xpo-MatTable-cell--textAlignCenter.mat-footer-cell {
  justify-content: center;
  text-align: center;
}
.mat-tab-nav-bar,
.mat-tab-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.mat-tab-group-inverted-header .mat-tab-nav-bar,
.mat-tab-group-inverted-header .mat-tab-header {
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  border-bottom: none;
}
.mat-tab-label, .mat-tab-link {
  color: rgba(0, 0, 0, 0.87);
}
.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.87);
}
.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-tab-group[class*='mat-background-'] .mat-tab-header,
.mat-tab-nav-bar[class*='mat-background-'] {
  border-bottom: none;
  border-top: none;
}
.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(232, 245, 254, 0.3);
}
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0868ac;
}
.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(155, 155, 155, 0.3);
}
.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {
  background-color: #4a4a4a;
}
.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 34, 34, 0.3);
}
.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {
  background-color: #d50000;
}
.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(232, 245, 254, 0.3);
}
.mat-tab-group.mat-background-primary .mat-tab-header, .mat-tab-group.mat-background-primary .mat-tab-links, .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {
  background-color: #0868ac;
}
.mat-tab-group.mat-background-primary .mat-tab-label, .mat-tab-group.mat-background-primary .mat-tab-link, .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .mat-tab-nav-bar.mat-background-primary .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {
  border-color: white;
}
.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-primary .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(155, 155, 155, 0.3);
}
.mat-tab-group.mat-background-accent .mat-tab-header, .mat-tab-group.mat-background-accent .mat-tab-links, .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {
  background-color: #4a4a4a;
}
.mat-tab-group.mat-background-accent .mat-tab-label, .mat-tab-group.mat-background-accent .mat-tab-link, .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .mat-tab-nav-bar.mat-background-accent .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {
  border-color: white;
}
.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 34, 34, 0.3);
}
.mat-tab-group.mat-background-warn .mat-tab-header, .mat-tab-group.mat-background-warn .mat-tab-links, .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {
  background-color: #d50000;
}
.mat-tab-group.mat-background-warn .mat-tab-label, .mat-tab-group.mat-background-warn .mat-tab-link, .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .mat-tab-nav-bar.mat-background-warn .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {
  border-color: white;
}
.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-header-pagination {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  box-shadow: none;
  max-width: 24px;
  min-width: 0 !important;
  width: 29px;
}
:not(.xpo-Tabs-wideNav) .mat-tab-header-pagination {
  max-width: 24px;
}
.xpo-Tabs-wideNav .mat-tab-header-pagination {
  max-width: 40px;
  width: 55px;
}
.mat-tab-header-pagination .mat-tab-header-pagination-chevron {
  height: 11.34px;
  width: 11.34px;
}
.mat-tab-label-content {
  padding-bottom: 0 !important;
}
.mat-tab-label-content span {
  line-height: normal;
}
.mat-tab-label-content .xpo-icon,
.mat-tab-label-content .mat-icon,
.mat-tab-label-content .mat-chip,
.mat-tab-label-content .mat-chip-list-wrapper {
  margin-left: 8px;
}
.mat-tab-label-content .mat-chip.xpo-Chip--small {
  font-size: 11px;
  line-height: 16px;
  min-height: 16px;
}
.mat-tab-label-content .mat-chip.xpo-Chip--small .mat-icon {
  height: 11px;
  width: 11px;
}
.mat-tab-label-content > .xpo-icon:first-child,
.mat-tab-label-content > .mat-icon:first-child,
.mat-tab-label-content > .mat-chip:first-child {
  margin-left: 12px;
}
.mat-tab-label-content > .mat-icon {
  align-items: center;
  display: flex;
  font-size: 1.143rem;
  width: auto;
}
.mat-tab-group.mat-primary .mat-ink-bar,
.mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0d94f4;
}
.mat-tab-list .mat-tab-labels .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-tab-labels .mat-tab-label,
.mat-tab-nav-bar .mat-tab-link {
  color: #000000;
  height: 40px;
  line-height: 40px;
  margin-left: 0;
  min-width: 0;
  opacity: 1;
  padding: 4px 8px;
}
.mat-tab-labels .mat-tab-label:first-child,
.mat-tab-nav-bar .mat-tab-link:first-child {
  margin-left: 0;
}
.mat-tab-labels .mat-tab-label:hover, .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.mat-tab-nav-bar .mat-tab-link:hover,
.mat-tab-nav-bar .mat-tab-link.mat-tab-label-active {
  color: #4a4a4a;
}
.mat-tab-labels .mat-tab-label.mat-tab-disabled,
.mat-tab-nav-bar .mat-tab-link.mat-tab-disabled {
  color: #d8d8d8;
}
.mat-tab-link:hover, .mat-tab-link:focus {
  text-decoration: none;
}
/*
   * Most of our cases we have the tab contents take up the whole space of the view,
   *  it hard to access this selector with view encapsulation on, so we can default it to
   *  100%. the user can always wrap the tabs in a wrapper and dictate the height there.
   */
.mat-tab-body-wrapper {
  height: 100%;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-ink-bar, .xpo-PrimaryTabs.mat-tab-group .mat-ink-bar,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-ink-bar,
.xpo-AlternateTabs.mat-tab-group .mat-ink-bar {
  display: none;
}
.xpo-PrimaryTabs.mat-tab-nav-bar,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header, .xpo-PrimaryTabs.mat-tab-group,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-header,
.xpo-AlternateTabs.mat-tab-nav-bar,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header,
.xpo-AlternateTabs.mat-tab-group,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header {
  border-bottom: none;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-list, .xpo-PrimaryTabs.mat-tab-group .mat-tab-list,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-list,
.xpo-AlternateTabs.mat-tab-group .mat-tab-list {
  border-bottom: 1px solid #d8d8d8;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link {
  background-color: #ffffff;
  border-bottom: none;
  border-left: 1px solid #d8d8d8;
  border-top: 1px solid #d8d8d8;
  margin-left: 0;
  padding: 0 12px;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:last-child,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:last-child, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:last-child,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:last-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:last-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:last-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:last-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:last-child {
  border-right: 1px solid #d8d8d8;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:first-child,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:first-child, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:first-child,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:first-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:first-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:first-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:first-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:first-child {
  margin-left: 0;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active {
  border-top: 4px solid #0d47a1;
  overflow: inherit;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content {
  margin-bottom: 3px;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip {
  background-color: #757575;
  color: white;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active::after, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active::after {
  background-color: white;
  bottom: -1px;
  content: '';
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  right: 0;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active), .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  border-top: 4px solid #2196f3;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content {
  margin-bottom: 3px;
}
.mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {
  border-color: #0868ac;
}
.mat-radio-button.mat-primary .mat-radio-inner-circle,
.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),
.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,
.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {
  background-color: #0868ac;
}
.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {
  border-color: #4a4a4a;
}
.mat-radio-button.mat-accent .mat-radio-inner-circle,
.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),
.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,
.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {
  background-color: #4a4a4a;
}
.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {
  border-color: #d50000;
}
.mat-radio-button.mat-warn .mat-radio-inner-circle,
.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),
.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,
.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {
  background-color: #d50000;
}
.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,
.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,
.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-label-content {
  color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button .mat-ripple-element {
  background-color: black;
}
mat-radio-button.mat-radio-button .mat-radio-container {
  transform: scale(0.8);
}
mat-radio-button.mat-radio-button .mat-radio-container .mat-radio-inner-circle {
  background-color: #000000;
}
mat-radio-button.mat-radio-button .mat-radio-container .mat-radio-outer-circle {
  border-width: 1px;
}
mat-radio-button.mat-radio-button .mat-radio-label-content {
  padding-left: 2px;
}
mat-radio-button.mat-radio-button.mat-radio-checked .mat-radio-outer-circle {
  border-color: #ffffff;
}
mat-radio-button.mat-radio-button.mat-radio-checked .mat-radio-inner-circle {
  transform: scale(0.625);
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-label {
  cursor: not-allowed;
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle,
mat-radio-button.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle {
  border-color: #bdbdbd;
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: #bdbdbd;
}
mat-radio-button.mat-radio-button .mat-ripple {
  display: none;
}
.mat-select-value {
  color: rgba(0, 0, 0, 0.87);
}
.mat-select-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-select-disabled .mat-select-value {
  color: rgba(0, 0, 0, 0.38);
}
.mat-select-arrow {
  color: rgba(0, 0, 0, 0.54);
}
.mat-select-panel {
  background: white;
}
.mat-select-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {
  background: rgba(0, 0, 0, 0.12);
}
.mat-form-field.mat-focused.mat-primary .mat-select-arrow {
  color: #0868ac;
}
.mat-form-field.mat-focused.mat-accent .mat-select-arrow {
  color: #4a4a4a;
}
.mat-form-field.mat-focused.mat-warn .mat-select-arrow {
  color: #d50000;
}
.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {
  color: #d50000;
}
.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {
  color: rgba(0, 0, 0, 0.38);
}
.xpo-Select-twoLinesContainer {
  color: #212121;
  display: flex;
  flex-direction: column;
  margin-left: 8px;
}
.xpo-Select-twoLinesContainer .mat-option-text:nth-of-type(1) {
  color: #000000;
  line-height: 16px;
}
.xpo-Select-twoLinesContainer .mat-option-text:nth-of-type(2) {
  color: #333333;
  font-size: 11px;
  line-height: 12px;
  padding-top: 4px;
}
.xpo-Select-twoColumnsContainer {
  display: flex;
  width: 100%;
}
.xpo-Select-twoColumnsContainer span:first-of-type {
  flex: 1;
}
.xpo-Select-twoColumnsContainer span:last-of-type {
  flex: 2;
}
.xpo-Select-panel.mat-select-panel {
  border: 1px solid #d8d8d8;
  border-radius: 0;
  border-top: none;
  box-shadow: none;
  margin-left: 7px;
  margin-top: 24px;
}
.xpo-Select-panel.mat-select-panel .mat-option,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label {
  height: 30px;
  line-height: normal;
  padding: 6px 8px;
}
.xpo-Select-panel.mat-select-panel .mat-option:not(:last-of-type),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:not(:last-of-type) {
  border-bottom: 1px solid #d8d8d8;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option--twoLines,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option--twoLines {
  height: 45px;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option--twoLines .mat-option-text,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option--twoLines .mat-option-text {
  display: flex;
  flex-direction: row;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option-hideDivider:not(:last-of-type),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option-hideDivider:not(:last-of-type) {
  border-bottom: none;
}
.xpo-Select-panel.mat-select-panel .mat-option:hover:not(.mat-option-disabled), .xpo-Select-panel.mat-select-panel .mat-option:focus:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:hover:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:focus:not(.mat-option-disabled) {
  background: #e4effa;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-icon,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-icon {
  margin-right: 0;
}
.xpo-Select-panel.mat-select-panel .mat-option.mat-selected:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.mat-selected:not(.mat-option-disabled) {
  background: #e4effa;
  color: #4a4a4a;
}
.xpo-Select-panel.mat-select-panel .mat-option-disabled,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label-disabled {
  background-color: #f6f6f6;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-option-text,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-option-text {
  align-items: center;
  color: #333333;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox {
  border: 1px solid #d8d8d8;
  margin-right: 6px;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-disabled,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-disabled {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-disabled::after,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-disabled::after {
  border-left: 2px solid currentColor;
  box-sizing: content-box;
  height: 3px;
  opacity: 1;
  transform: rotate(-45deg);
  width: 8px;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-checked,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-checked {
  background-color: #000000;
  border-color: #000000;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox::after,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox::after {
  left: 2px;
  top: 3.4px;
}
.xpo-Select-panel.mat-select-panel .mat-optgroup-label {
  border-bottom: 1px solid #d8d8d8;
  color: #333333;
  font-weight: 500;
}
.xpo-Select-panel.mat-select-panel .mat-optgroup:not(:first-of-type) .mat-optgroup-label {
  border-top: 1px solid #d8d8d8;
}
.mat-option .mat-option-ripple {
  display: none !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard {
  margin-bottom: 16px;
  margin-top: 24px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-infix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-infix {
  background-color: #f6f6f6;
  cursor: not-allowed;
  font-style: italic;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-placeholder,
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-trigger, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-select-placeholder,
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-select-trigger {
  color: #000000;
  cursor: not-allowed;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper {
  transform: none;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
.mat-focused .mat-form-field-infix {
  border-color: #000000 !important;
}
.mat-form-field-invalid .mat-form-field-infix {
  border-color: #d50000 !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  padding: 6px 8px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow {
  margin-right: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix .mat-select-value-text, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix .mat-select-value-text {
  color: #212121;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-focused .mat-select-arrow, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-focused .mat-select-arrow {
  color: #4a4a4a !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.ngx-FormField--inline .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.ngx-FormField--inline .mat-form-field-wrapper {
  margin-bottom: 0;
  margin-top: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-label {
  color: #9b9b9b !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy:not(.mat-form-field-should-float) .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard:not(.mat-form-field-should-float) .mat-form-field-label {
  color: #9b9b9b;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-should-float .mat-form-field-label {
  color: #333333;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-label-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-label-wrapper {
  overflow: visible;
  right: 8px;
  top: -43px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-label {
  color: #9b9b9b;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: normal;
  max-width: 100% !important;
  transform: unset !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-label {
  color: #9b9b9b !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy:not(.mat-form-field-should-float) .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard:not(.mat-form-field-should-float) .mat-form-field-label {
  color: #9b9b9b;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-placeholder-required, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-placeholder-required {
  color: #d50000;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-hint, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  font-style: italic;
  font-weight: 400;
  line-height: 16px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-error, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-error .mat-icon, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-prefix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-prefix {
  padding-left: 0.3em;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-suffix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-suffix {
  height: 24px;
  position: absolute;
  right: 24px;
  width: 24px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.ngx-FormField--borderless .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.ngx-FormField--borderless .mat-form-field-wrapper {
  border: none;
  box-shadow: unset;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-underline, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
.xpo-Select-panel.mat-select-panel {
  min-width: calc(100% + 18px) !important;
}
.xpo-Select-panelMultiple.mat-select-panel {
  margin-left: 31px;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled {
  opacity: unset;
}
mat-slide-toggle.mat-slide-toggle.mat-checked {
  opacity: unset;
}
mat-slide-toggle.mat-slide-toggle.mat-checked.mat-disabled .mat-slide-toggle-bar {
  background-color: #cde8cc;
  border: 1px solid #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar {
  background-color: #f9f9f9;
  border: 1px solid #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar .mat-slide-toggle-thumb {
  box-shadow: 0 0 0 1px #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: #4caf50;
  border: 1px solid #388e3c;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-bar {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  border-radius: 30px;
  height: 22px;
  width: 38px;
}
mat-slide-toggle.mat-slide-toggle.mat-checked.mat-disabled .mat-slide-toggle-thumb {
  box-shadow: 0 0 0 1px #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #ffffff;
  border: none;
  box-shadow: none;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb {
  background-color: #ffffff;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb-container {
  cursor: pointer;
  left: 0;
  top: 0.1px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb-container.mat-slide-toggle-thumb {
  background-color: #ffffff;
  height: 22px;
  width: 22px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb {
  background-color: #ffffff;
  box-shadow: 0 0 0 1px #d8d8d8;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-checked.mat-disabled .mat-slide-toggle-bar {
  background-color: #cde8cc;
  border: 1px solid #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-disabled .mat-slide-toggle-bar {
  background-color: #f9f9f9;
  border: 1px solid #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-checked .mat-slide-toggle-bar {
  background-color: #4caf50;
  border: 1px solid #388e3c;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-bar {
  background-color: #f6f6f6;
  border-radius: 30px;
  height: 16px;
  width: 32px;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-thumb-container {
  height: 14px;
  width: 14px;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-thumb {
  height: 14px;
  width: 14px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-ripple {
  display: none;
}
.xpo-Ssi {
  display: inline-flex;
}
.xpo-Ssi .xpo-Icon {
  width: auto;
}
.xpo-Ssi .xpo-Icon .mat-icon svg {
  width: auto;
}
.mat-drawer.xpo-TrayDrawer {
  max-width: 10%;
  min-width: 500px;
  overflow: hidden;
  width: 10%;
}
.mat-drawer.xpo-TrayDrawer.xpo-TrayDrawer--extended {
  max-width: 90%;
  width: 90%;
}
.mat-drawer.xpo-TrayDrawer:not(.mat-drawer-side), .mat-drawer.xpo-TrayDrawer.mat-drawer-side {
  border: 1px solid #d8d8d8;
  box-shadow: 0 3px 9px 0 rgba(0, 0, 0, 0.35);
}
.mat-drawer.xpo-TrayDrawer .mat-drawer-inner-container {
  overflow: hidden;
}
.cdk-overlay-container .mat-tooltip-panel .mat-tooltip {
  background: #212121;
  border-radius: 0;
  color: #ffffff;
  display: flex;
  font-size: 1rem;
  line-height: 18px;
  overflow: visible;
  padding: 16px;
  position: relative;
  white-space: pre-line;
}
.cdk-overlay-container .mat-tooltip-panel[style*='bottom'][style*='left'] .mat-tooltip[style*='center'][style*='bottom'] {
  margin-bottom: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='bottom'][style*='left'] .mat-tooltip[style*='center'][style*='bottom']::after {
  border-bottom: none;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #212121;
  content: '';
  height: 0;
  left: 50%;
  position: absolute;
  top: 100%;
  transform: translateX(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='top'] {
  margin-top: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='top']::before {
  border-bottom: 10px solid #212121;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: none;
  bottom: 100%;
  content: '';
  height: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='left'] {
  margin-left: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='left']::before {
  border-bottom: 10px solid transparent;
  border-left: 10px solid transparent;
  border-right: 10px solid #212121;
  border-top: 10px solid transparent;
  content: '';
  height: 0;
  position: absolute;
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='right'] .mat-tooltip[style*='center'][style*='right'] {
  margin-right: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='right'] .mat-tooltip[style*='center'][style*='right']::after {
  border-bottom: 10px solid transparent;
  border-left: 10px solid #212121;
  border-right: 10px solid transparent;
  border-top: 10px solid transparent;
  content: '';
  height: 0;
  left: 100%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
}
.xpo-ErrorPages-title h1 {
  font-size: 28px;
}
.xpo-ErrorPages-description {
  margin-bottom: 16px;
}
.xpo-ErrorPages-description p {
  font-size: 1.285rem;
}
.xpo-ErrorPages-action {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 32px;
  gap: 8px;
}
.xpo-ErrorPages-footer {
  width: 100%;
}
button.xpo-DownloadButton {
  align-items: center;
  display: flex;
}
button.xpo-DownloadButton .mat-spinner {
  display: inline-block;
  left: 4px;
}
.xpo-Header {
  background: white;
  border-bottom: 1px solid #d8d8d8;
}
.mat-progress-bar-background {
  fill: #e8f5fe;
}
.mat-progress-bar-buffer {
  background-color: #e8f5fe;
}
.mat-progress-bar-fill::after {
  background-color: #0868ac;
}
.mat-progress-bar.mat-accent .mat-progress-bar-background {
  fill: #9b9b9b;
}
.mat-progress-bar.mat-accent .mat-progress-bar-buffer {
  background-color: #9b9b9b;
}
.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {
  background-color: #4a4a4a;
}
.mat-progress-bar.mat-warn .mat-progress-bar-background {
  fill: #ff2222;
}
.mat-progress-bar.mat-warn .mat-progress-bar-buffer {
  background-color: #ff2222;
}
.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {
  background-color: #d50000;
}
.mat-progress-spinner circle, .mat-spinner circle {
  stroke: #0868ac;
}
.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {
  stroke: #4a4a4a;
}
.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {
  stroke: #d50000;
}
.mat-drawer-container {
  background-color: #f3f3f3;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer {
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer.mat-drawer-push {
  background-color: white;
}
.mat-drawer:not(.mat-drawer-side) {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side {
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side.mat-drawer-end {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir='rtl'] .mat-drawer-side {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir='rtl'] .mat-drawer-side.mat-drawer-end {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-backdrop.mat-drawer-shown {
  background-color: rgba(0, 0, 0, 0.6);
}
.mat-badge-content {
  color: white;
  background: #0868ac;
}
.cdk-high-contrast-active .mat-badge-content {
  outline: solid 1px;
  border-radius: 0;
}
.mat-badge-accent .mat-badge-content {
  background: #4a4a4a;
  color: white;
}
.mat-badge-warn .mat-badge-content {
  color: white;
  background: #d50000;
}
.mat-badge {
  position: relative;
}
.mat-badge-hidden .mat-badge-content {
  display: none;
}
.mat-badge-disabled .mat-badge-content {
  background: #b4b4b4;
  color: rgba(0, 0, 0, 0.38);
}
.mat-badge-content {
  position: absolute;
  text-align: center;
  display: inline-block;
  border-radius: 50%;
  transition: transform 200ms ease-in-out;
  transform: scale(0.6);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
}
.ng-animate-disabled .mat-badge-content,
.mat-badge-content._mat-animation-noopable {
  transition: none;
}
.mat-badge-content.mat-badge-active {
  transform: none;
}
.mat-badge-small .mat-badge-content {
  width: 16px;
  height: 16px;
  line-height: 16px;
}
.mat-badge-small.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-badge-small.mat-badge-below .mat-badge-content {
  bottom: -8px;
}
.mat-badge-small.mat-badge-before .mat-badge-content {
  left: -16px;
}
[dir='rtl'] .mat-badge-small.mat-badge-before .mat-badge-content {
  left: auto;
  right: -16px;
}
.mat-badge-small.mat-badge-after .mat-badge-content {
  right: -16px;
}
[dir='rtl'] .mat-badge-small.mat-badge-after .mat-badge-content {
  right: auto;
  left: -16px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -8px;
}
[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -8px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -8px;
}
[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -8px;
}
.mat-badge-medium .mat-badge-content {
  width: 22px;
  height: 22px;
  line-height: 22px;
}
.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -11px;
}
.mat-badge-medium.mat-badge-below .mat-badge-content {
  bottom: -11px;
}
.mat-badge-medium.mat-badge-before .mat-badge-content {
  left: -22px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-before .mat-badge-content {
  left: auto;
  right: -22px;
}
.mat-badge-medium.mat-badge-after .mat-badge-content {
  right: -22px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-after .mat-badge-content {
  right: auto;
  left: -22px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -11px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -11px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -11px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -11px;
}
.mat-badge-large .mat-badge-content {
  width: 28px;
  height: 28px;
  line-height: 28px;
}
.mat-badge-large.mat-badge-above .mat-badge-content {
  top: -14px;
}
.mat-badge-large.mat-badge-below .mat-badge-content {
  bottom: -14px;
}
.mat-badge-large.mat-badge-before .mat-badge-content {
  left: -28px;
}
[dir='rtl'] .mat-badge-large.mat-badge-before .mat-badge-content {
  left: auto;
  right: -28px;
}
.mat-badge-large.mat-badge-after .mat-badge-content {
  right: -28px;
}
[dir='rtl'] .mat-badge-large.mat-badge-after .mat-badge-content {
  right: auto;
  left: -28px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -14px;
}
[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -14px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -14px;
}
mat-dialog-container.mat-dialog-container {
  padding: 0;
}
.u-flex--fillSpace {
  flex: 1;
}
.u-flex--spaceBetween {
  justify-content: space-between;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3hwby1pbnRlcm5hbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0Bhbmd1bGFyL2Nkay9fb3ZlcmxheS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQzJ0RGhCLG1DQUFBO0FBZ0pBLHlEQUFBO0FBNlhBLHlEQUFBO0FBaTFEQSwyQ0FBQTtBQTZDQSxxQkFBQTtBRHRsSUEsaURBQUE7QUFxQ0E7O0NBNUNDO0FBZ0REOztDQTdDQztBQWtIRDs7Q0EvR0M7QUE0S0Q7O0NBektDO0FBNktEOztDQTFLQztBQTBRRDs7Q0F2UUM7QUE0UUQ7O0NBelFDO0FBd1dEOztDQXJXQztBQXlXRDs7Q0F0V0M7QUF1WUQ7RUFDRSxPQUFPO0FBcllUO0FBa1pBO0VBQ0UsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsdUxBQ3lGO0FBaFozRjtBQW9aQTs7O0VBSUUsc0JBQXNCO0FBalp4QjtBQW9aQTtFQUNFLGFBQWE7QUFqWmY7QUFvWkE7RUFDRSxlQWxLdUI7QUEvT3pCO0FBb1pBOztFQUVFLFlBQVk7RUFDWixTQUFTO0FBalpYO0FBb1pBO0VBQ0UsaUJBL0l5QjtFQWdKekIsMEJBQTBCO0VBQzFCLDhCQUE4QjtBQWpaaEM7QUFvWkE7RUFDRSx5QkF0TWlDO0VBdU1qQyxjQXZWcUI7RUF3VnJCLDBEQXRLcUU7RUF1S3JFLGdCQW5LMEI7RUFvSzFCLHFCQWpKNkI7RUFrSjdCLGlCQTFKeUI7RUEySnpCLGtCQUFrQjtBQWpacEI7QUFvWkE7Ozs7OztFQU1FLGNBQWM7QUFqWmhCO0FBb1pBOzs7RUFHRSxhQUFtQztBQWpackM7QUFvWkE7RUFuZEUsbUJBbVJtQztFQWxSbkMsZ0JBNFJ3QjtFQTNSeEIsc0JBK1NzQztFQTlTdEMsa0JBeVNrQztBQXRPcEM7QUFpWkE7RUE5ZEUsbUJBeVJvQztFQXhS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QkQ2akkyQjtBQXYySi9CO0FDNnlCRTtFQUNFLCtCRDBqSXNCO0FBcDJKMUI7QUM2eUJFO0VBQ0UsMEJEb2pJNEI7QUE5MUpoQztBQzZ5QkU7O0VBRUUsMEJEb3BJYztFQ25wSWQseUJBQXlCO0FEMXlCN0I7QUNvd0JFO0VBMkNJLDBCRDBpSXlCO0FBcjFKL0I7QUMreUJFO0VBQ0UsMEJEcWlJMkI7QUFqMUovQjtBQzR2QkU7OztFQXdETSxxQ0RxbElXO0FBbjRKbkI7QUNtekJFO0VBT0ksMEJEa2hJb0I7QUF4MEoxQjtBQ2t2QkU7RUErRUksaUNEc2dJeUI7QUFuMEovQjtBQzh1QkU7RUF3Rk0saUNBQWlFO0FEbDBCekU7QUNtNUJFO0VBQ0Usa0NEcStHbUI7QUFyM0l2QjtBQ201QkU7O0VBRUUsa0NBVjZCO0FEdDRCakM7QUNtNUJFOztFQUVFLDZGQUE4RTtBRGg1QmxGO0FDbTVCRTs7RUFFRSw0RkFBNkU7QURoNUJqRjtBQ201QkU7O0VBRUUsbUJBeEJxQjtBRHgzQnpCO0FDbTVCRTs7RUFFRSxtQkE1QmtEO0FEcDNCdEQ7QUNtckJFO0VBQ0UseUJEd3FIbUI7RUN2cUhuQixZRDBtSGU7QUExeEluQjtBQ21yQkU7RUFJSSx3Q0FBNkU7QURuckJuRjtBQzRyQkU7RUFDRSxpQ0R5bEhlO0FBbHhJbkI7QUNzeUJFO0VBdm1HQSwwSEFFbUU7RUF1bUdqRSx1QkRzaUlTO0VDcmlJVCwwQkRnbEljO0FBbjNKbEI7QUNneUJFO0VBb0VFLGlDRGk2R21CO0FBandJdkI7QUM0eEJFOztFQXlFRSxrQ0FWNkI7QUR0MUJqQztBQ3V4QkU7O0VBOEVFLDRGQUE4RTtBRGgyQmxGO0FDa3hCRTs7RUFtRkUsMkZBQTZFO0FEaDJCakY7QUM2d0JFOztFQXdGRSxtQkF4QnFCO0FEeDBCekI7QUN3d0JFOztFQTZGRSxtQkE1QmtEO0FEcDBCdEQ7QUNtb0JFO0VBQ0UseUJEb21IbUI7RUNubUhuQixZRDBtSGU7QUExdUluQjtBQ21vQkU7RUFJSSx1Q0FBNkU7QURub0JuRjtBQzRvQkU7RUFDRSxpQ0R5bEhlO0FBbHVJbkI7QUNzdkJFO0VBb0VFLGdDRCtoSGtCO0FBcjFJdEI7QUNrdkJFOztFQXlFRSxrQ0FWNkI7QUQ1eUJqQztBQzZ1QkU7O0VBOEVFLDJGQUE4RTtBRHR6QmxGO0FDd3VCRTs7RUFtRkUsMEZBQTZFO0FEdHpCakY7QUNtdUJFOztFQXdGRSxtQkF4QnFCO0FEOXhCekI7QUM4dEJFOztFQTZGRSxtQkE1QmtEO0FEMXhCdEQ7QUN5bEJFO0VBQ0UseUJEa3VIa0I7RUNqdUhsQixZRDBtSGU7QUFoc0luQjtBQ3lsQkU7RUFJSSxzQ0FBNkU7QUR6bEJuRjtBQ2ttQkU7RUFDRSxpQ0R5bEhlO0FBeHJJbkI7QUMwdEJFO0VBcm5HQSx3SEFFbUU7QUQ2NUVyRTtBQzB0QkU7RUFDRSxjRHNoSG1CO0FBN3VJdkI7QUNzdEJFO0VBSUksY0QrOEdpQjtBQXJxSXZCO0FDa3RCRTtFQVFJLGNEeWtIZ0I7QUEveEl0QjtBQzB0QkU7RUFDRSwwQkRnOUgyQjtBQXZxSi9CO0FBZ0JFO0VBSUksYUFBYTtBQWhCbkI7QUFZRTtFQU9NLFlBTDZCO0VBTTdCLFNBQVM7RUFDVCxXQVA2QjtBQVJyQztBQU1FO0VBWVEsYUFBYTtBQWR2QjtBQUVFO0VBZVUsZUFieUI7RUFjekIsWUFkeUI7RUFlekIsaUJBZnlCO0VBZ0J6QixXQWhCeUI7QUFHckM7QUFMRTtFQTRCTSxnQkFuRDZDO0FBZ0NyRDtBQVRFO0VBa0NNLGlCQUZzQztBQW5COUM7QUEyQkk7RUFDRSxxQkEwaUlhO0FBbGtJbkI7QUErQkU7RUFDRSx5QkFyYmU7RUFzYmYsZ0JBQWdCO0VBR2hCLGdCQTFFeUM7QUE0QzdDO0FBeUJFO0VBUUksYUEzRTJCO0VBNEUzQixZQTNFMEI7QUE4Q2hDO0FBb0JFO0VBZ0JRLGNBQWM7QUFoQ3hCO0FBZ0JFO0VBb0JRLG1CQUFtQjtFQUNuQixZQXJGNEI7RUFzRjVCLDhCQUE4QjtFQUM5QixhQUEyQztBQWhDckQ7QUFTRTtFQTJCUSxjQXdnSVM7RUF2Z0lULGVBdXVJaUI7RUF0dUlqQixnQkF3dklnQjtBQXh4STFCO0FBR0U7RUFrQ1EsWUE3TWU7RUE4TWYsV0E5TWU7QUE2S3pCO0FBRkU7RUFzQ1UscUJBNi9ITztFQTUvSFAscUJBckdvQztFQXNHcEMsU0FBUztBQWhDckI7QUFSRTtFQThDVSxzQkE1R29DO0VBNkdwQyx1REFBaUg7QUFsQzdIO0FBYkU7RUFxRFUsdUJBbkhvQztFQW9IcEMsdURBQWlIO0FBcEM3SDtBQWxCRTtFQThEUSxjQXErSFM7QUE3Z0luQjtBQXRCRTtFQWlFVSxlQWtzSWU7RUFqc0lmLGdCQW10SWM7RUFsdElkLFVBQVU7QUF2Q3RCO0FBNUJFO0VBdUVVLGFBQWE7QUF2Q3pCO0FBaENFO0VBaUZVLHFCQUFxQjtFQUlyQixrQkFBa0I7QUFoRDlCO0FBckNFO0VBMEZZLHlCQWlrSVM7RUFoa0lULHlCQUF5QjtFQUN6QixjQXU4SEs7QUF4L0huQjtBQTNDRTtFQWlHVSx5QkE0bElVO0VBM2xJVixjQWk4SE87RUFoOEhQLGVBZ3FJZTtBQWx0STNCO0FBakRFO0VBdUdVLHFCQWlnSVc7RUFoZ0lYLGNBZ2dJVztBQWxqSXZCO0FBdERFO0VBNEdVLHlCQTQvSFc7RUEzL0hYLHFCQTIvSFc7RUExL0hYLGNBcy9ITztFQXIvSFAsZ0JBc3FJYztBQXh0STFCO0FBN0RFO0VBa0hZLGdCQUFnQjtBQWpEOUI7QUFqRUU7RUE4SE0sZ0JBQWdCO0FBekR4QjtBQXJFRTtFQXNJSSxhQTlMK0I7QUFpSXJDO0FBekVFO0VBeUlNLGdCQUFnQjtFQUNoQixZQXBNeUM7QUF3SWpEO0FBb0VFO0VBT0UsbUJBbXBJcUI7RUFscElyQixnQkFKMkI7QUFuRS9CO0FBK0RFO0VBWU0sbUJBQW1CO0VBQ25CLGNBQWM7QUF2RXRCO0FBMERFO0VBc0JRLGVBMmxJaUI7RUExbElqQixzQkFBc0I7RUFDdEIsWUFBWTtBQTVFdEI7QUFvREU7RUErQlEsU0FGaUM7RUFHakMsaUJBQWlCO0VBQ2pCLFVBTGtDO0FBMUU1QztBQThDRTtFQXVDVSxPQUFPO0VBQ1AsVUFyQ1U7QUE1Q3RCO0FBeUNFO0VBNENVLDBEQWlsSTJEO0VBaGxJM0QsbUJBc2tJdUI7RUFya0l2QixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFVBQVU7QUFqRnRCO0FBaUNFO0VBMERNLHFCQStnSWM7QUF0bUl0QjtBQTZCRTtFQThETSxhQUFhO0VBQ2IsaUJBK2tJb0I7RUE5a0lwQixVQUFVO0VBQ1YsTUFBTTtBQXZGZDtBQXNCRTtFQXFFTSxTQUFTO0VBQ1Qsa0JBQWtCO0FBdkYxQjtBQWlCRTtFQTBFTSxtQkFzaUlzQjtFQXJpSXRCLGVBQW1DO0FBdkYzQztBQVlFO0VBK0VNLGFBQWE7RUFDYiwwREE2aUkrRDtFQTVpSS9ELGVBZ2lJbUI7RUEvaEluQixnQkEraUlvQjtFQTlpSXBCLGlCQTJqSW9CO0VBMWpJcEIsZUFBbUM7QUF2RjNDO0FBR0U7RUF1RlEsb0JBQW9CO0VBQ3BCLGVBbkZ5QjtFQW9GekIsWUFBWTtFQUNaLGlCQW9qSWtCO0VBbmpJbEIsaUJBQXFDO0VBQ3JDLFdBQVc7QUF0RnJCO0FBTkU7RUFrR00sYUFBYTtBQXhGckI7QUFWRTtFQXVHSSxhQUFhO0FBekZuQjtBQWRFO0VBNEdNLHlCQXF5SFc7QUEvM0huQjtBQWxCRTtFQ2pvRkEsd0hBRW1FO0FEcXBGckU7QUF0QkU7RUF1SEksbUJBQW1CO0VBQ25CLHlCQTAxSGE7RUF6MUhiLHlCQXExSGlCO0VBcDFIakIsa0JBTDZCO0VBTTdCLGFBQWE7QUE3Rm5CO0FBOUJFO0VBZ0lNLGlCQUY4QjtBQTVGdEM7QUFsQ0U7RUFtSVEsWUFBWTtFQUNaLFdBQVc7QUE3RnJCO0FBdkNFO0VBeUlNLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsYUFBYTtFQUNiLFVBQVU7RUFDVixZQUFZO0FBOUZwQjtBQS9DRTtFQWtKSSx5QkFBZ0M7RUFDaEMsMERBMCtIaUU7RUF6K0hqRSxtQkFxK0grQjtFQXArSC9CLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsaUJBQWlCO0FBL0Z2QjtBQXhERTtFQTBKTSxtQkFBbUI7RUFDbkIsb0JBQW9CO0FBOUY1QjtBQTdERTtFQThKUSxpQkFBcUM7QUE3Ri9DO0FBakVFO0VBb0tJLFVBaktnQjtBQWtFdEI7QUFxR0k7RUNxeEJGLHlCRGh4QjZCO0VDaXhCN0Isc0JEanhCNkI7RUNreEI3QixxQkRseEI2QjtFQ214QjdCLGlCRG54QjZCO0FBbkcvQjtBQXdHRTtFQUVFLG1CQUFtQjtFQUduQixnQkFBZ0I7QUF4R3BCO0FDdWhCRTtFQXp1R0EsOEhBRW1FO0VBeXVHakUsaUJEcTZIVztFQ3A2SFgsMEJEODhIYztBQWwrSWxCO0FBMGlCRTtFQUNFLGdCQUFnQjtBQXZpQnBCO0FBc2lCRTtFQXRCQSxjQURnQztFQUdoQyxhQUFhO0VBQ2IsT0FBTztFQUNQLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsZUFWNEI7RUFXNUIsZ0JBaWhId0I7RUFoaEh4Qiw4QkFBOEI7RUFDOUIsaUJBYjRCO0VBYzVCLG1CQUFtQjtFQUNuQixjQWJvQztFQWNwQyxtQkFBdUM7RUFDdkMsaUJBaEI4QjtFQStCMUIsb0JBQW9CO0FBM2hCMUI7QUFxaEJFO0VBU00sZ0NBbzBHZTtBQTkxSHZCO0FBaWhCRTs7RUFlSSxTQUFTO0VBQ1Qsc0JBbEJvQztBQXpnQjFDO0FBMmdCRTs7RUFxQk0sbUJBb2dIaUI7QUEvaEl6QjtBQXNnQkU7O0VBMkJJLDZCQWt6R2lCO0VBanpHakIsOEJBQThCO0VBQzlCLGNBaENpQztFQWlDakMsZUFBMEM7QUE1aEJoRDtBQThmRTs7RUFpQ00sY0FBYztBQTFoQnRCO0FDOGlCRTtFQUVFLGlCRHMxSFM7RUNyMUhULDBCRGc0SGM7QUE1NklsQjtBQzN2RkU7RUFuQkEseUhBRW1FO0FEZ3hGckU7QUMyaUJFO0VBQ0UscUNEeXhIc0I7QUFqMEkxQjtBQzJpQkU7OztFQUtNLCtCRHcwSFc7QUFsM0luQjtBQ2lqQkU7RUFDRTs7SUFFRSxpQkQrekhPO0VBNzJJWDtBQUNGO0FDaWpCRTtFQUNFLDBCRHEySGM7QUFuNUlsQjtBQ2lqQkU7O0VBRUUsMEJEMnZINEI7QUF6eUloQztBQ2lqQkU7RUFDRSwwQkRxMUh5QjtBQW40STdCO0FDNmlCRTs7RUFLSSxjQUFjO0FEN2lCcEI7QUN5a0JJO0VBQ0UsWUFwL0JxRjtBRDhhM0Y7QUNxa0JJO0VBSUksWUF2L0JtRjtBRGtiM0Y7QUFzZkU7O0VBR0UsYUFBYTtBQXBmakI7QUFpZkU7OztFQU9JLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFsZnRCO0FBMGVFOztFQWFNLFlBQWdDO0FBbGZ4QztBQXFlRTs7RUFrQkksZUF0QnlCO0FBNWQvQjtBQWdlRTs7RUFzQkkscUJBekJpRjtFQTBCakYsbUJBQXVDO0FBamY3QztBQTBkRTs7RUEwQk0sZUFtNkdpQjtBQWw1SHpCO0FBcWRFOztFQWlDUSxpQkFBcUM7QUFqZi9DO0FBZ2RFOztFQXVDSSxtQkFBbUI7QUFsZnpCO0FBMmNFOztFQTBDTSxlQUFlO0VBQ2YsaUJBaERzQztBQWhjOUM7QUFxY0U7O0VBaURNLGNBQWM7RUFDZCw2QkFBNkI7RUFDN0IsZUF1NkdtQjtBQXg1SDNCO0FBOGJFOztFQXlETSxpQkFBaUI7RUFDakIsNkJBQTZCO0VBQzdCLGVBKzVHbUI7QUFqNUgzQjtBQXViRTs7RUFnRUksZ0NBNHRHaUI7QUE5c0h2QjtBQWtiRTs7RUFvRVEsbUJBaTRHMkI7QUFsM0hyQztBQTZhRTs7RUF3RVksY0F1cEdLO0FBdm9IbkI7QUF3YUU7O0VBNEVZLGNBK3pHUztBQTl5SHZCO0FBbWFFOztFQWlGVSxjQTJzR1c7QUExckh2QjtBQThaRTs7RUF3Rkksa0JBQXNDO0FBamY1QztBQXlaRTs7RUEyRk0seUJBaXNHZTtBQWhySHZCO0FBb1pFOztFQWdHUSx5QkE0ckdhO0VBM3JHYixnQkFBZ0I7QUEvZTFCO0FBOFlFOztFQXNHTSxVQUFVO0FBL2VsQjtBQXlZRTs7RUE2R1kseUJBQStCO0FBamY3QztBQW9ZRTs7RUFpSFksY0EycUdTO0FBM3BIdkI7QUErWEU7O0VBd0hVLHlCQXFySFc7RUFwckhYLGNBdXFHTztFQXRxR1AsZUFBZTtFQUNmLFlBQWdDO0FBbGY1QztBQXVYRTs7RUErSFUseUJBMHBHVztFQXpwR1gsb0JBQW9CO0FBamZoQztBQWlYRTs7OztFQW9JWSxjQTRwR0s7QUExb0huQjtBQTBXRTs7RUEySVUseUJBa3BHVTtFQWpwR1YsY0Fpd0dZO0VBaHdHWixvQkFBb0I7QUFoZmhDO0FBbVdFOztFQWdKWSx5QkE0b0dTO0VBM29HVCxjQTRwSFM7RUEzcEhULGVBQWU7RUFDZixZQUFnQztBQTllOUM7QUEyVkU7Ozs7Ozs7O0VBZ0tRLG1CQUFtQjtFQUNuQixhQUFhO0FBaGZ2QjtBQStVRTs7RUFxS1EsaUJBQXFDO0FBL2UvQztBQTBVRTs7RUFzcUdBLG1CQStSbUM7RUE5Um5DLGdCQTBTd0I7RUF6U3hCLHFCQTJUcUM7RUExVHJDLGtCQXFUa0M7RUFuekcxQixZQUFZO0VBQ1osaUJBOHlHaUI7QUExeEgzQjtBQWdVRTs7RUE0ckdBLG1CQWtRNEI7RUFqUTVCLGlCQStSMEI7RUExeUdsQixZQUFZO0FBM2V0QjtBQXlURTs7RUF1TFUsZ0JBQW9DO0FBM2VoRDtBQW9URTs7RUEyTFUsZUE3TDhDO0FBN1MxRDtBQStTRTs7RUFtTU0sU0FBUztBQTdlakI7QUEwU0U7O0VBd01JLGdCQUFnQjtBQTdldEI7QUM0NEZFO0VBQ0UseUJEMHJDNEI7QUFua0loQztBQzQ0RkU7RUFDRSx5QkRzckM0QjtBQS9qSWhDO0FDNDRGRTtFQUNFLGNENnVCbUI7QUF0bkh2QjtBQ3c0RkU7RUFJSSxjRHNxQmlCO0FBOWlIdkI7QUNvNEZFO0VBUUksY0RneUJnQjtBQXhxSHRCO0FDNDRGRTtFQUNFLGNENnBCbUI7QUF0aUh2QjtBQzQ0RkU7RUFDRSxxQ0RvcUNzQjtBQTdpSTFCO0FDNDRGRTtFQUVJLHlCRHd0QmlCO0FBbG1IdkI7QUN3NEZFO0VBS00seUJEaXBCZTtBQTFoSHZCO0FDbzRGRTtFQVNNLHlCRDJ3QmM7QUFwcEh0QjtBQzg0RkU7RUFFSSxjRDBzQmlCO0FBdGxIdkI7QUMwNEZFO0VBTUksY0Rrb0JpQjtBQTlnSHZCO0FDczRGRTtFQVVJLGNENHZCZ0I7QUF4b0h0QjtBQ201RkU7RUFFSSxjRG12QmdCO0FBcG9IdEI7QUMrNEZFOztFQU1NLGNEK3VCYztBQS9uSHRCO0FDMDRGRTs7RUFZSSx5QkR5dUJnQjtBQTFuSHRCO0FDcTVGRTtFQUNFLGNEb3VCa0I7QUF0bkh0QjtBQzY2RUU7RUFFSSwwQkRrbEQwQjtBQTcvSGhDO0FDeTZFRTtFQU1JLDBCRDhrRDBCO0FBei9IaEM7QUNxNkVFO0VBVUkscUNENGtEb0I7QUF2L0gxQjtBQ2k2RUU7RUFsOURBLDRHQUFrRjtFQUNsRix5QkFBeUI7RUFDekIsMkJBQTJCO0FEM2M3QjtBQzR2RkU7RUFFSSxxQ0RtdkNvQjtBQTcrSDFCO0FDd3ZGRTtFQW56RUEsNEdBQWtGO0VBQ2xGLHlCQUF5QjtFQUN6QiwyQkFBMkI7QURqYzdCO0FDc3hFRTtFQUVJLHFDRHV5RE87QUEzakliO0FDa3hFRTtFQU1JLHFDRG15RE87QUF2akliO0FDOHdFRTtFQVVJLHFDRHVzRG9CO0FBMzlIMUI7QUMwd0VFO0VBZU0sMEJEaXNEdUI7QUF0OUgvQjtBQ3N3RUU7RUFtQk0sNkJBQTZCO0FEcnhFckM7QUMya0ZFO0VBRUksMEJEczRDb0I7QUEvOEgxQjtBQ3VrRkU7RUFNSSwwQkRrNENvQjtBQTM4SDFCO0FDbWtGRTtFQVdNLGNEczdCZTtBQWhnSHZCO0FDK2pGRTtFQWVNLGNEODJCZTtBQXg3R3ZCO0FDMmpGRTtFQW1CTSxjRHcrQmM7QUFsakh0QjtBQ3VqRkU7RUEwQk0sY0RpK0JjO0FBOWlIdEI7QUNtakZFO0VBZ0NNLDBCRHUyQ3VCO0FBdDdIL0I7QUMraUZFO0VBb0NNLDBCRG8yQ2tCO0FBbjdIMUI7QUF3WUU7RUFXRSxtQkFvdUdxQjtFQW51R3JCLGdCQVYyQjtBQXJZL0I7QUFtWUU7RUFnQk0sbUJBQW1CO0VBQ25CLGNBQWM7QUEvWXRCO0FBOFhFO0VBMEJRLGVBNHFHaUI7RUEzcUdqQixzQkFBc0I7RUFDdEIsWUFBWTtBQXBadEI7QUF3WEU7RUFnQ1EsU0E1QjZCO0VBNkI3QixpQkFBaUI7RUFDakIsVUEvQjhCO0FBclh4QztBQWtYRTtFQXdDVSxPQUFPO0VBQ1AsVUF4Q1U7QUE5V3RCO0FBNldFO0VBNkNVLDBEQXFxRzJEO0VBcHFHM0QsbUJBK3BHMEI7RUE5cEcxQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFVBQVU7QUF0WnRCO0FBcVdFO0VBK0RNLHFCQW1uR2tCO0FBbmhIMUI7QUFpV0U7RUFtRU0sYUFBYTtFQUNiLGlCQStwR29CO0VBOXBHcEIsVUFBVTtFQUNWLE1BQU07QUFoYWQ7QUEwVkU7OztFQTRFUSxnQkFBZ0I7RUFDaEIsYUFBYTtBQWhhdkI7QUFtVkU7RUFrRk0sU0FBUztFQUNULGtCQUFrQjtBQWphMUI7QUE4VUU7RUF1Rk0sbUJBOG1Hc0I7RUE3bUd0QixlQUFtQztBQWphM0M7QUF5VUU7RUE0Rk0sYUFBYTtFQUNiLDBEQXFuRytEO0VBcG5HL0QsZUF3bUdtQjtFQXZtR25CLGdCQXVuR29CO0VBdG5HcEIsaUJBbW9Hb0I7RUFsb0dwQixlQUFtQztBQWphM0M7QUFnVUU7RUFvR1Esb0JBQW9CO0VBQ3BCLGVBN0Z5QjtFQThGekIsWUFBWTtFQUNaLGlCQTRuR2tCO0VBM25HbEIsaUJBQXFDO0VBQ3JDLFdBQVc7QUFoYXJCO0FBdVRFO0VBa0hRLFlBQVk7RUFDWixpQkFBaUI7QUFyYTNCO0FBa1RFO0VBMEhNLGFBQWE7QUF4YXJCO0FBOFNFO0VBK0hJLGFBQWE7QUF6YW5CO0FBMFNFO0VBb0lNLHlCQWsyRlc7QUE1d0duQjtBQXNTRTtFQzVpSEEsd0hBRW1FO0FEd3dHckU7QUFrU0U7RUE2SUksbUJBQW1CO0VBQ25CLHlCQXk1RmE7RUF4NUZiLHlCQW81RmlCO0VBbjVGakIsa0JBM0k0QjtFQTRJNUIsYUFBYTtBQTNhbkI7QUEwUkU7O0VBcUpNLGFBQWE7QUExYXJCO0FBcVJFOztFQXdKUSxvQkFBb0I7RUFDcEIsZUFqSnlCO0VBa0p6QixZQW5KcUI7RUFvSnJCLHVCQUF1QjtFQUN2QixpQkFySnFCO0VBc0pyQixXQXRKcUI7QUFsUi9CO0FBMlFFOztFQWlLUSxXQXhKcUM7QUEvUS9DO0FBc1FFO0VBc0tNLGdCQWhLZ0M7QUF4UXhDO0FBa1FFO0VBMEtNLGlCQXBLZ0M7QUFwUXhDO0FBOFBFO0VBOEtNLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsYUFBYTtFQUNiLFVBQVU7QUF4YWxCO0FBdVBFO0VBb0xRLGVBQWU7QUF2YXpCO0FBbVBFO0VBd0xRLGNBOHlGUztFQTd5RlQsMERBeWhHNkQ7RUF4aEc3RCxlQTRnR2lCO0VBM2dHakIsU0FBUztFQUNULGdCQUFrQztFQUNsQyxZQUFZO0FBdmF0QjtBQTBPRTtFQWdNVSx5QkFrOEZXO0VBajhGWCxjQXF5Rk87RUFweUZQLGtCQUFrQjtFQUNsQixnQkFtaEdnQjtBQXo3RzVCO0FBbU9FO0VBME1JLHlCQUFnQztFQUNoQywwREF1Z0dpRTtFQXRnR2pFLG1CQWtnRytCO0VBamdHL0IsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixpQkFBaUI7QUF6YXZCO0FBME5FO0VBa05NLG1CQUFtQjtFQUNuQixvQkFBb0I7QUF4YTVCO0FBcU5FO0VBc05RLGlCQUFxQztBQXZhL0M7QUFpTkU7RUE0TkksVUEzTmdCO0FBOU10QjtBQThhRTs7RUFHSSxrQkFBa0I7QUE1YXhCO0FBZ2JFO0VBQ0UscUJBQXFCO0VBQ3JCLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2YsV0FBVztBQTdhZjtBQXlhRTs7OztFQVVJLG1CQTYvRm1CO0VBNS9GbkIsaUJBQXFDO0VBQ3JDLFdBQVc7QUE1YWpCO0FBZ2FFO0VBZ0JJLG1CQXUvRm1CO0FBbjZHekI7QUE0WkU7RUFtQk0saUJBQXFDO0FBM2E3QztBQzBQRTtFQUNFLDBCRDg5RzRCO0FBcnRIaEM7QUMwUEU7O0VBRUUsMEJEMDlHMkI7QUFqdEgvQjtBQzBQRTtFQUNFLG9CRGdoR21CO0FBdndHdkI7QUM4TEU7RUE0REksMEJEazlHMEI7QUF4c0hoQztBQzBMRTtFQTRESSwwQkRrOUcwQjtBQXhzSGhDO0FDMExFO0VBNERJLDBCRGs5RzBCO0FBeHNIaEM7QUM4TEU7RUF3REksMEJEazlHMEI7QUFwc0hoQztBQzhMRTtFQW9ESSwwQkRrOUcwQjtBQWhzSGhDO0FDOExFO0VBZ0RJLDBCRGs5RzBCO0FBNXJIaEM7QUM2UEU7RUFDRSxvQkRxN0ZtQjtBQS9xR3ZCO0FDNlBFOztFQUVFLG9CRDhpR2tCO0FBeHlHdEI7QUM2UEU7RUFDRSxjRDBpR2tCO0FBcHlHdEI7QUF3WkU7RUFDRSwrQkFBc0M7RUFDdEMsb0JBQW9CO0FBclp4QjtBQW1aRTtFQUtJLG1CQUFtQjtBQXBaekI7QUEvMERFO0VBQ0UsbUJBQW1CO0VBQ25CLGNBcS9KbUI7RUFwL0puQixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLGdCQThwS3dCO0VBN3BLeEIsUUFSYTtBQTAxRGpCO0FBeDFERTtFQVdJLDBCQUEwQjtBQWkxRGhDO0FBNTFERTtFQWVJLGNBeStKaUI7RUF4K0pqQixVQUFVO0FBaTFEaEI7QUFqMkRFO0VBcUJJLGNBaStKaUI7RUFoK0pqQixhQUFhO0FBZzFEbkI7QUF0MkRFO0VBMEJJLGNBbzlKaUI7RUFuOUpqQixtQkFBbUI7QUFnMUR6QjtBQTcwREk7RUFDRSxnQkFtb0tzQjtBQW56RzVCO0FBLzJERTtFQW1DSSxtQkF1bksrQjtFQXRuSy9CLFlBdkNhO0VBd0NiLFdBeENhO0VBeUNiLHFCQUFxQjtBQWcxRDNCO0FDb1hFO0VBRUUsaUJEbTBHUztBQXJySGI7QUN2OEdFO0VBbkJBLDBIQUVtRTtBRDQ5R3JFO0FDaVhFO0VBQ0UsdUJBQXVCO0VBQ3ZCLDBCRHkyR2M7QUF2dEhsQjtBQzRXRTtFQU1NLDBCRGl3R3VCO0FBL21IL0I7QUNtWEU7O0VBRUUsMEJENDFHYztBQTVzSGxCO0FDbVhFOzs7O0VBS0ksK0JEMHlHYTtBQTNwSG5CO0FBbVhFO0VBTUUsZ0JBQWdCO0VBQ2hCLHFIQUFxSDtFQUNySCxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFyWHRCO0FBMFdFO0VBY0ksaUJBQWlCO0VBQ2pCLGNBQWM7QUFwWHBCO0FBcVdFO0VBbUJJLGNBb3RGaUI7RUFudEZqQixjQWpCbUI7RUFrQm5CLG1CQWxCbUI7RUFtQm5CLGNBQWtDO0FBcFh4QztBQThWRTtFQXlCTSxjQXF6RmU7RUFwekZmLG1CQUFtQjtBQW5YM0I7QUF5VkU7RUE4Qk0sa0JBQWtCO0FBblgxQjtBQXFWRTs7O0VBcUNJLHFCQUFxQjtBQXBYM0I7QUErVUU7RUF5Q0ksY0Fnc0ZpQjtBQXBqR3ZCO0FBMlVFO0VBNENNLGFBQWE7QUFuWHJCO0FBeVhFO0VBRUksYUFBYTtBQXZYbkI7QUFnWUU7RUFDRSxpQkF5MkZ1QjtBQXR1RzNCO0FBNFhFO0VBU0ksbUJBKzJGbUI7RUE5MkZuQixnQkFIMkI7QUE5WGpDO0FBdVhFO0VBYU0sVUFBVTtBQWhZbEI7QUFtWEU7RUFnQlEsZUFBZTtBQS9YekI7QUErV0U7RUFzQlUseUJBMHBGTztFQXpwRlAseUJBcXBGVztFQXBwRlgsa0JBTG1DO0VBTW5DLGdCQUEyRDtBQWpZdkU7QUF3V0U7RUE4QlksaUJBQWlCO0VBQ2pCLFVBSG1DO0FBL1hqRDtBQW1XRTtFQWtDYyxjQTJwR087RUExcEdQLDBEQXd6RnVEO0VBdnpGdkQsZUEyeUZXO0VBMXlGWCxnQkEwekZZO0VBenpGWixpQkFzMEZZO0VBcjBGWixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFdBQVc7QUFqWTNCO0FBd1ZFO0VBOENZLGVBQWU7QUFsWTdCO0FBb1ZFO0VBcURRLGFBQWE7QUFyWXZCO0FBZ1ZFO0VBeURRLFNBQVM7RUFDVCxrQkFBa0I7QUFyWTVCO0FBMlVFO0VBNkRVLGFBQWE7RUFDYixlQWl4RmU7RUFoeEZmLGdCQWd5RmdCO0VBL3hGaEIsaUJBNHlGZ0I7RUEzeUZoQixlQUFtQztBQXBZL0M7QUFtVUU7RUFzRVksb0JBQW9CO0VBQ3BCLGVBSHFCO0VBSXJCLFlBQVk7RUFDWixpQkFteUZjO0VBbHlGZCxpQkFBcUM7RUFDckMsV0FBVztBQXJZekI7QUEwVEU7RUFxRk0scUJBMGhGVztBQXI2Rm5CO0FBc1RFO0VBd0ZRLGNBaWxGYTtBQTM5RnZCO0FBa1RFO0VBaUdRLHlCQTRrRlk7RUEza0ZaLG1CQUFtQjtBQS9ZN0I7QUE2U0U7RUFxR1UsbUJBQW1CO0FBOVkvQjtBQXdaRTtFQUNFLHlCQSsvRWU7RUE5L0VmLGdCQUFnQjtBQXJacEI7QUFtWkU7RUFTTSxpQkFGdUI7QUF0Wi9CO0FBK1lFO0VBZ0JJLG1CQWlqRmE7RUFoakZiLHlCQSsrRWE7QUExNEZuQjtBQTBZRTtFQXdCTSxtQkF3K0VXO0VBditFWCx5QkF1K0VXO0VBdCtFWCxXQUErQjtFQUMvQixTQUwwQjtFQU0xQixRQVB5QjtFQVF6QixVQUE4QjtBQTladEM7QUFzYUU7RUFDRSxvQkFBb0I7RUFDcEIsaUJBQWlCO0FBbmFyQjtBQytwREU7RUFHRSwrQkRteUQ2QjtFQ2x5RDdCLG1CQUE4RDtFQXp6S2hFLDJIQUVtRTtBRDBwSHJFO0FDa3FERTtFQUNFLGNENndDbUI7QUE1NkZ2QjtBQW8zQkU7RUFHRSx5SEFBeUg7RUFFekgsbUJBMGpFZTtFQXpqRWYsa0JBTDRCO0VBTTVCLGNBaWpFbUI7RUFoakVuQixVQUFVO0VBRVYsZ0JBQWdCO0VBQ2hCLFlBQStCO0FBcjNCbkM7QUFvWkU7RUFzZEE7SUFwZEUsZUFBZTtJQUNmLGdCQUFnQjtFQWpabEI7QUFDRjtBQWtaRTtFQWlkQTtJQS9jRSxlQUFlO0lBQ2YsV0FBVztJQUNYLGdCQUFnQjtFQS9ZbEI7QUFDRjtBQWdaRTtFQTJjQTtJQXpjRSxlQUFlO0lBQ2YsZ0JBQWdCO0VBN1lsQjtBQUNGO0FDenlCRTtFQUNFLGlCRHV2SVM7QUEzOEdiO0FDenlCRTs7OztFQUlFLG1CQUFtQjtBRDR5QnZCO0FDenlCRTs7RUFFRSx3Q0RtcklzQjtBQXY0RzFCO0FDenlCRTtFQUNFLDBCRDZxSTRCO0FBajRHaEM7QUN6eUJFO0VBQ0UsMEJEOHdJYztBQWwrR2xCO0FBeTFCRTtFQUNFLHlCQTZoRW1CO0FBbjNGdkI7QUFxMUJFOzs7RUFNSSxZQWt2RXFCO0FBdmtHM0I7QUErMEJFOzs7RUFZSSxnQkE0dUVxQjtBQWprRzNCO0FBeTBCRTs7Ozs7O0VBc0JJLDRCQXdnRWlCO0FBOTFGdkI7QUFnMEJFOzs7RUE2QkksZ0NBQWdDO0FBdjFCdEM7QUEwekJFO0VBa0NNLG1CQUFtQjtFQUNuQix1QkFBdUI7QUF4MUIvQjtBQXF6QkU7RUF1Q00saUJBQXFDO0FBeDFCN0M7QUFpekJFOzs7Ozs7RUE2REksZUFvb0VxQjtBQXorRjNCO0FBd3lCRTs7Ozs7Ozs7Ozs7RUFvRE0saUJBOURrQztBQWh4QjFDO0FBMHhCRTs7Ozs7Ozs7Ozs7RUEwRE0sa0JBcEVrQztBQWx3QjFDO0FBNHdCRTs7RUFtRUkseUJBNDlEZ0I7RUEzOURoQiw4Q0FBOEM7QUExMEJwRDtBQXN3QkU7O0VBdUVNLGNBbzlEZTtFQW45RGYsbUJBd25Fc0I7RUF2bkV0QixnQkF5b0VvQjtBQWo5RjVCO0FBK3ZCRTs7RUFnRkkseUJBK2lFaUI7QUF6M0Z2QjtBQTB2QkU7O0VBbUZNLGdCQStuRW9CO0FBdjhGNUI7QUFxdkJFO0VBd0ZJLGNBeTREYTtBQWx0Rm5CO0FBNjBCRTtFQUVJLG1CQUFtQjtFQUNuQix1QkFBdUI7QUEzMEI3QjtBQXcwQkU7RUFPSSxpQkFBcUM7QUEzMEIzQztBQWsxQks7RUFHRyx5QkFraEVlO0FBbjJGdkI7QUE4MEJLO0VBTUssa0JBQWtCO0FBaDFCNUI7QUFzMUJJO0VBQ0UsK0JBdTZEaUI7QUExdkZ2QjtBQXMxQkk7RUFDRSw4QkFtNkRpQjtBQXR2RnZCO0FBdzFCTztFQUlHLHlCQUF5QjtFQUN6QixpQkFBaUI7QUF4MUIzQjtBQTQxQk87RUFJRyx1QkFBdUI7RUFDdkIsa0JBQWtCO0FBNTFCNUI7QUM0bENFOztFQUVFLDRDRHNwRXNCO0FBL3VHMUI7QUM0bENFOztFQUdJLHlDRGdwRW9CO0VDL29FcEIsbUJBQW1CO0FEMWxDekI7QUM4bENFO0VBQ0UsMEJENnVFYztBQXgwR2xCO0FDMGxDRTtFQUlJLDBCRHNvRXlCO0FBaHVHL0I7QUM4bENFO0VBQ0UsaUNEcXVFYztBQWgwR2xCO0FDOGxDRTtFQUNFLGlDRDZuRTJCO0FBeHRHL0I7QUMrbENFOztFQUVFLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUQ1bENwQjtBQytsQ0U7Ozs7O0VBMENNLDBDRDZuRGU7QUE5dkZ2QjtBQ3VsQ0U7RUFnQ0UseUJENm9EbUI7QUFod0Z2QjtBQ21sQ0U7RUFnQ0UsdUJEZ2xEZTtBQS9yRm5CO0FDK2tDRTs7Ozs7RUEwQ00sMENEdXFEZTtBQXh4RnZCO0FDdWtDRTtFQWdDRSx5QkR5a0RtQjtBQTVxRnZCO0FDbWtDRTtFQWdDRSx1QkRnbERlO0FBL3FGbkI7QUMrakNFOzs7OztFQTBDTSx3Q0QyckRjO0FBNXhGdEI7QUN1akNFO0VBZ0NFLHlCRHVzRGtCO0FBMXhGdEI7QUNtakNFO0VBZ0NFLHVCRGdsRGU7QUEvcEZuQjtBQytpQ0U7Ozs7O0VBMENNLDBDRDZuRGU7QUE5c0Z2QjtBQ3VpQ0U7RUFtREUseUJEMG5EbUI7QUFodEZ2QjtBQ21pQ0U7RUF3REUsWUR3akRlO0FBL29GbkI7QUMraENFO0VBMkRJLCtCRHFqRGE7QUEzb0ZuQjtBQzJoQ0U7RUFpRUUsbUJEK2lEZTtBQXZvRm5CO0FDdWhDRTtFQXFFRSxzQ0QyaURlO0FBbm9GbkI7QUNtaENFO0VBMkVFLDJDRHFpRGU7QUEvbkZuQjtBQytnQ0U7Ozs7O0VBMENNLDBDRHVxRGU7QUF4dEZ2QjtBQ3VnQ0U7RUFtREUseUJEc2pEbUI7QUE1bUZ2QjtBQ21nQ0U7RUF3REUsWUR3akRlO0FBL21GbkI7QUMrL0JFO0VBMkRJLCtCRHFqRGE7QUEzbUZuQjtBQzIvQkU7RUFpRUUsbUJEK2lEZTtBQXZtRm5CO0FDdS9CRTtFQXFFRSxzQ0QyaURlO0FBbm1GbkI7QUNtL0JFO0VBMkVFLDJDRHFpRGU7QUEvbEZuQjtBQysrQkU7Ozs7O0VBMENNLHdDRDJyRGM7QUE1c0Z0QjtBQ3UrQkU7RUFtREUseUJEb3JEa0I7QUExc0Z0QjtBQ20rQkU7RUF3REUsWUR3akRlO0FBL2tGbkI7QUMrOUJFO0VBMkRJLCtCRHFqRGE7QUEza0ZuQjtBQzI5QkU7RUFpRUUsbUJEK2lEZTtBQXZrRm5CO0FDdTlCRTtFQXFFRSxzQ0QyaURlO0FBbmtGbkI7QUNtOUJFO0VBMkVFLDJDRHFpRGU7QUEvakZuQjtBQThyQkU7RUFDRSx5QkE2M0RrQjtFQTUzRGxCLHlCQTIzRG1CO0VBMTNEbkIsZ0JBQWdCO0VBQ2hCLGVBTnFDO0VBT3JDLHVCQUF1QjtFQUN2QixXQUFXO0FBM3JCZjtBQTZyQkk7RUFDRSxlQVhtQztBQS9xQnpDO0FBNnJCSTtFQUNFLGVBaEJ5QztFQWlCekMsV0FBVztBQTFyQmpCO0FBNHFCRTtFQWtCSSxlQXRCbUI7RUF1Qm5CLGNBdkJtQjtBQW5xQnpCO0FBOHJCRTtFQUNFLDRCQUE0QjtBQTNyQmhDO0FBMHJCRTtFQUlJLG1CQUFtQjtBQTFyQnpCO0FBc3JCRTs7OztFQVdJLGdCQUFvQztBQTFyQjFDO0FBK3FCRTtFQXA3RkEsZUFtOEY2QjtFQWw4RjdCLGlCQXk5SjBCO0VBeDlKMUIsZ0JBdzlKMEI7QUEvc0Y1QjtBQXlxQkU7RUE5NkZBLFlBNjdGNkI7RUE1N0Y3QixXQTQ3RjZCO0FBbnJCL0I7QUFvcUJFOzs7RUEyQkksaUJBMURvQjtBQS9uQjFCO0FBOHBCRTtFQStCSSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLG1CQXkrRHdCO0VBeCtEeEIsV0FBVztBQXpyQmpCO0FBNnJCRTs7RUFFRSx5QkE2M0RtQjtBQXZqRnZCO0FBNnJCRTtFQUNFLGNBNnZEZTtBQXY3RW5CO0FBNnJCRTs7RUFFRSxjQXd2RGU7RUF2dkRmLFlBNmdFd0I7RUE1Z0V4QixpQkE0Z0V3QjtFQTNnRXhCLGNBQWM7RUFDZCxZQUFZO0VBQ1osVUFBVTtFQUNWLGdCQUF3RDtBQTFyQjVEO0FBa3JCRTs7RUFXSSxjQUFjO0FBeHJCcEI7QUE2cUJFOzs7RUFnQkksY0FveURpQjtBQTM5RXZCO0FBdXFCRTs7RUFvQkksY0FteURpQjtBQXo5RXZCO0FBMHJCRTtFQUlJLHFCQUFxQjtBQTFyQjNCO0FBOHJCRTs7OztJQXhyQkU7QUE4ckJGO0VBQ0UsWUFBWTtBQTVyQmhCO0FBK3JCRTs7O0VBS00sYUFBYTtBQTlyQnJCO0FBeXJCRTs7Ozs7OztFQVlNLG1CQUFtQjtBQTNyQjNCO0FBK3FCRTs7O0VBZ0JNLGdDQTZ2RGU7QUF0N0V2QjtBQXlxQkU7Ozs7Ozs7RUFxQk0seUJBNHZEVztFQTN2RFgsbUJBQW1CO0VBQ25CLDhCQXN2RGU7RUFydkRmLDZCQXF2RGU7RUFwdkRmLGNBQWM7RUFDZCxlQWxKa0I7QUFsaUIxQjtBQTBwQkU7Ozs7Ozs7RUE2QlEsK0JBZ3ZEYTtBQTc1RXZCO0FBZ3BCRTs7Ozs7OztFQWlDUSxjQUFjO0FBdnFCeEI7QUFzb0JFOzs7Ozs7O0VBcUNRLDZCQSt1RGE7RUE5dURiLGlCQUFpQjtBQWpxQjNCO0FBMm5CRTs7Ozs7OztFQXlDVSxrQkFBc0M7QUExcEJsRDtBQWluQkU7Ozs7Ozs7RUE2Q1UseUJBdTBEVztFQXQwRFgsWUFBWTtBQXBwQnhCO0FBc21CRTs7Ozs7OztFQW1EVSx1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLFdBQVc7RUFDWCxjQUFjO0VBQ2QsV0FBVztFQUNYLE9BQU87RUFDUCxrQkFBa0I7RUFDbEIsUUFBUTtBQS9vQnBCO0FBcWxCRTs7Ozs7OztFQStEUSw2QkF1dERhO0FBajJFdkI7QUEya0JFOzs7Ozs7O0VBa0VVLGtCQUFzQztBQW5vQmxEO0FDbElFO0VBQ0UsaUNEcTlGNEI7QUFoMUZoQztBQzFKRTtFQUNFLHFCRG9pRm1CO0FBdjRFdkI7QUMxSkU7Ozs7RUFJRSx5QkQ2aEZtQjtBQWg0RXZCO0FDcktFO0VBQ0UscUJEZytFbUI7QUF4ekV2QjtBQ3JLRTs7OztFQUlFLHlCRHk5RW1CO0FBanpFdkI7QUNoTEU7RUFDRSxxQkQ4bEZrQjtBQTM2RXRCO0FDaExFOzs7O0VBSUUseUJEdWxGa0I7QUFwNkV0QjtBQ25LRTs7RUFtQk0saUNEZzhGdUI7QUEzeUYvQjtBQ3hLRTs7RUF3Qk0scUNEMjdGdUI7QUF0eUYvQjtBQzdLRTtFQTRCTSwwQkR1N0Z1QjtBQWx5Ri9CO0FDakxFO0VBbUNJLHVCRHlnR087QUF2M0ZiO0FBdWtDRTtFQUVJLHFCQUFxQjtBQXJrQzNCO0FBbWtDRTtFQUtNLHlCQThvQ1c7QUFsdEVuQjtBQStqQ0U7RUFTTSxpQkE2NkNvQjtBQWovRTVCO0FBMmpDRTtFQWNJLGlCQUFpQjtBQXJrQ3ZCO0FBdWpDRTtFQW1CTSxxQkFpc0NXO0FBdndFbkI7QUFtakNFO0VBdUJNLHVCQUF1QjtBQXRrQy9CO0FBK2lDRTtFQTZCTSxtQkFBbUI7QUF4a0MzQjtBQTJpQ0U7O0VBa0NNLHFCQTZxQ2U7QUFydkV2QjtBQXNpQ0U7RUFzQ00seUJBeXFDZTtBQWp2RXZCO0FBa2lDRTtFQThDSSxhQUFhO0FBNWtDbkI7QUMxSUU7RUFDRSwwQkRrK0ZjO0FBcjFGbEI7QUMxSUU7RUFDRSwwQkR5M0Y0QjtBQTV1RmhDO0FDMUlFO0VBQ0UsMEJEczNGMkI7QUF6dUYvQjtBQzFJRTtFQUNFLDBCRGkzRjRCO0FBcHVGaEM7QUMxSUU7RUFDRSxpQkR1NkZTO0FBMXhGYjtBQ2wySUU7RUFuQkEsMEhBRW1FO0FEdTNJckU7QUNsSkU7RUFLSSwrQkRrNkZhO0FBanhGbkI7QUM3SUU7RUFHTSxjRDY1RWU7QUEvd0V2QjtBQ2pKRTtFQU9NLGNEcTFFZTtBQXZzRXZCO0FDckpFO0VBV00sY0QrOEVjO0FBajBFdEI7QUN6SkU7RUFnQkksY0QwOEVnQjtBQTd6RXRCO0FDN0pFO0VBb0JJLDBCRGsxRnlCO0FBcnNGL0I7QUFtaEJFO0VBQ0UsY0E2eERvQjtFQTV4RHBCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsZ0JBQW9DO0FBaGhCeEM7QUE0Z0JFO0VBUU0sY0FzbURXO0VBcm1EWCxpQkFrMkRvQjtBQWwzRTVCO0FBdWdCRTtFQWFNLGNBK3FFZTtFQTlxRWYsZUF6QnFDO0VBMEJyQyxpQkFBaUI7RUFDakIsZ0JBQW9DO0FBaGhCNUM7QUFxaEJFO0VBQ0UsYUFBYTtFQUNiLFdBQVc7QUFsaEJmO0FBZ2hCRTtFQUtJLE9BQU87QUFqaEJiO0FBNGdCRTtFQVNJLE9BQU87QUFqaEJiO0FBcWhCRTtFQUVJLHlCQXVvRGlCO0VBdG9EakIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsZ0JBbER5QjtFQW1EekIsZ0JBbER5QjtBQWplL0I7QUE0Z0JFOztFQVdNLFlBaTJEd0I7RUFoMkR4QixtQkFBbUI7RUFDbkIsZ0JBQWdFO0FBbGhCeEU7QUFxZ0JFOztFQWdCUSxnQ0F5bkRhO0FBem9FdkI7QUFnZ0JFOztFQXFCVSxZQXcxRHFCO0FBeDJFakM7QUEyZkU7O0VBd0JZLGFBQWE7RUFDYixtQkFBbUI7QUE5Z0JqQztBQXFmRTs7RUE4QlUsbUJBQW1CO0FBOWdCL0I7QUFnZkU7OztFQW9DUSxtQkE2b0RhO0FBM3BFdkI7QUEwZUU7O0VBd0NRLGVBQWU7QUE3Z0J6QjtBQXFlRTs7RUE2Q1UsbUJBb29EVztFQW5vRFgsY0F3bERXO0FBcm1FdkI7QUErZEU7O0VBbURRLHlCQXVsRFk7QUFwbUV0QjtBQTBkRTs7RUF1RFEsbUJBQW1CO0VBQ25CLGNBa21FYTtBQTltRnZCO0FBb2RFOztFQTREUSx5QkE2a0RhO0VBNWtEYixpQkFBaUI7QUEzZ0IzQjtBQThjRTs7RUFnRVUseUJBeWtEVztFQXhrRFgscUJBd2tEVztBQWpsRXZCO0FBd2NFOztFQW9FWSxtQ0FBbUM7RUFDbkMsdUJBQXVCO0VBQ3ZCLFdBQVc7RUFDWCxVQUFVO0VBQ1YseUJBQXlCO0VBSXpCLFVBQVU7QUExZ0J4QjtBQThiRTs7RUFpRlUseUJBMi9DTztFQTEvQ1AscUJBMC9DTztBQXBnRW5CO0FBd2JFOztFQXdGVSxTQUFTO0VBQ1QsVUFBVTtBQTNnQnRCO0FBa2JFO0VBaUdNLGdDQXdpRGU7RUF2aURmLGNBd2pFZTtFQXZqRWYsZ0JBMnREa0I7QUExdUUxQjtBQTRhRTtFQXdHUSw2QkFpaURhO0FBampFdkI7QUF1aEJFO0VBQ0Usd0JBQXdCO0FBcGhCNUI7QUF1aEJFO0VBSVEsbUJBQW1CO0VBQ25CLGNBQWM7QUF2aEJ4QjtBQWtoQkU7RUF1Qk0sbUJBMnNEaUI7RUExc0RqQixnQkFIMkI7QUFsaUJuQztBQTZnQkU7RUE0QlUseUJBMi9DVTtFQTEvQ1YsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQXJpQjlCO0FBdWdCRTs7O0VBbUNVLGNBczdDTztFQXI3Q1AsbUJBQW1CO0FBcGlCL0I7QUFnZ0JFO0VBeUNRLGVBQWU7QUFyaUJ6QjtBQTRmRTtFQTZDUSxTQUFTO0VBQ1Qsa0JBQWtCO0FBcmlCNUI7QUF1ZkU7RUFrRFEsYUFBYTtFQUNiLGlCQW1xRGtCO0VBbHFEbEIsVUFBVTtFQUNWLE1BQU07QUFyaUJoQjtBQXdpQmtCO0VBQ04sZ0NBQXFEO0FBcmlCakU7QUF5aUJrQjtFQUNOLGdDQUEwQztBQXRpQnREO0FBd2VFO0VBa0VVLHlCQXc5Q087RUF2OUNQLHlCQW05Q1c7RUFsOUNYLGtCQWhPb0I7RUFpT3BCLGdCQUFnRTtBQXRpQjVFO0FBaWVFO0VBd0VZLGVBQWU7QUFyaUI3QjtBQTZkRTtFQTRFWSxjQTZqRFU7QUFsbUV4QjtBQXlkRTtFQW1GVSx5QkFBZ0M7QUF4aUI1QztBQXFkRTtFQXdGUSxnQkFBZ0I7RUFDaEIsYUFBYTtBQXppQnZCO0FBZ2RFO0VBNkZRLHlCQUE4QztBQXppQnhEO0FBNGNFO0VBaUdRLGNBMGhEYTtBQW5rRXZCO0FBd2NFO0VBcUdRLGNBazhEYTtBQTMrRXZCO0FBb2NFO0VBeUdRLGlCQUFpQjtFQUNqQixVQUE4QjtFQUM5QixVQXZGa0M7QUFsZDVDO0FBOGJFO0VBK0dRLGNBNGdEYTtFQTNnRGIsZUF5a0RpQjtFQXhrRGpCLGdCQXdsRGtCO0VBdmxEbEIsc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQiwyQkFBMkI7QUF6aUJyQztBQXFiRTtFQXdIUSx5QkFBOEM7QUF6aUJ4RDtBQWliRTtFQTRIUSxjQSsvQ2E7QUF4aUV2QjtBQTZhRTtFQWlJUSxjQW9pRGdCO0FBOWtFMUI7QUF5YUU7RUFxSVEsbUJBbWpEb0I7RUFsakRwQixrQkFBa0I7RUFDbEIsZ0JBa2tEa0I7RUFqa0RsQixpQkE4a0RrQjtBQXhuRTVCO0FBa2FFO0VBNElRLGFBQWE7RUFDYiwwREF3akQ2RDtFQXZqRDdELGVBMmlEaUI7RUExaURqQixnQkEwakRrQjtFQXpqRGxCLGlCQXNrRGtCO0VBcmtEbEIsZUFBbUM7QUExaUI3QztBQXlaRTtFQW9KVSxvQkFBb0I7RUFDcEIsZUE3U3FCO0VBOFNyQixZQUFZO0VBQ1osaUJBK2pEZ0I7RUE5akRoQixpQkFBcUM7RUFDckMsV0FBVztBQXppQnZCO0FBZ1pFO0VBOEpRLG1CQUFtQjtBQTFpQjdCO0FBNFlFO0VBa0tRLFlBN1Q4QjtFQThUOUIsa0JBQWtCO0VBQ2xCLFdBOVR1QjtFQStUdkIsV0FoVThCO0FBMU94QztBQXFZRTtFQTJLVSxZQUFZO0VBQ1osaUJBQWlCO0FBNWlCN0I7QUFnWUU7RUFtTFEsYUFBYTtBQS9pQnZCO0FBMmpCRTtFQUNFLHVDQUF1QztBQXhqQjNDO0FBMmpCRTtFQUNFLGlCQUFpQjtBQXhqQnJCO0FBK2pCRTtFQVdJLGNBQWM7QUF0a0JwQjtBQTJqQkU7RUFlSSxjQUFjO0FBdGtCcEI7QUF1akJFO0VBbUJJLHlCQVhzQztFQVl0Qyx5QkFiK0M7QUF6akJyRDtBQWtqQkU7RUF3QkkseUJBdXlDNEI7RUF0eUM1Qix5QkFuQmtEO0FBbmpCeEQ7QUE2aUJFO0VBNEJNLDZCQXRCZ0Q7QUEvaUJ4RDtBQXlpQkU7RUFpQ0kseUJBNHpDa0I7RUEzekNsQix5QkEwekNrQjtBQWg0RHhCO0FBb2lCRTtFQXNDSSx5QkFzeUNnQjtFQXJ5Q2hCLHlCQW95Q2lCO0VBbnlDakIsbUJBQW1CO0VBQ25CLFlBM0NhO0VBNENiLFdBckM2QjtBQWppQm5DO0FBNGhCRTtFQThDSSw2QkF2QytDO0FBL2hCckQ7QUF3aEJFO0VBa0RJLHlCQTZ4Q2E7RUE1eENiLFlBQVk7RUFDWixnQkFBZ0I7QUF0a0J0QjtBQWtoQkU7RUF3REkseUJBdXhDYTtBQTcxRG5CO0FBOGdCRTtFQTRESSxlQUFlO0VBQ2YsT0FBTztFQUNQLFVBQVU7QUF0a0JoQjtBQXdnQkU7RUFpRU0seUJBOHdDVztFQTd3Q1gsWUFwRVc7RUFxRVgsV0FyRVc7QUFoZ0JuQjtBQWtnQkU7RUF3RUkseUJBdXdDYTtFQXR3Q2IsNkJBa3dDaUI7QUF4MER2QjtBQTZmRTtFQThFTSx5QkF0RW9DO0VBdUVwQyx5QkF4RTZDO0FBL2ZyRDtBQXdmRTtFQW1GTSx5QkE0dUMwQjtFQTN1QzFCLHlCQTlFZ0Q7QUF6ZnhEO0FBbWZFO0VBd0ZNLHlCQXF3Q2dCO0VBcHdDaEIseUJBbXdDZ0I7QUExMER4QjtBQThlRTtFQTZGTSx5QkErdUNjO0VBOXVDZCxtQkFBbUI7RUFDbkIsWUE3RitCO0VBOEYvQixXQS9GOEI7QUF4ZXRDO0FBdWVFO0VBb0dNLFlBakc4QjtFQWtHOUIsV0FsRzhCO0FBcmV0QztBQWtlRTtFQXlHTSxZQXRHOEI7RUF1RzlCLFdBdkc4QjtBQWhldEM7QUE2ZEU7RUErR0ksYUFBYTtBQXhrQm5CO0FBa2xDRTtFQUNFLG9CQUFvQjtBQS9rQ3hCO0FBOGtDRTtFQUlJLFdBQVc7QUE5a0NqQjtBQTBrQ0U7RUFPTSxXQUFXO0FBN2tDbkI7QUFtbUNFO0VBUUUsY0FOMkI7RUFPM0IsZ0JBUjZCO0VBUzdCLGdCQUFnQjtFQUNoQixVQVQyQjtBQTlsQy9CO0FBNGxDRTtFQWNJLGNBWGlDO0VBWWpDLFVBWmlDO0FBMWxDdkM7QUF1bENFO0VBb0JJLHlCQWlxQmlCO0VBaHFCakIsMkNBZjZDO0FBeGxDbkQ7QUFrbENFO0VBeUJJLGdCQUFnQjtBQXZtQ3RCO0FBMmhERTtFQUdNLG1CQXdWZ0I7RUF2VmhCLGdCQUFnQjtFQUNoQixjQXVPVztFQXRPWCxhQUFhO0VBQ2IsZUFvWW1CO0VBalluQixpQkE2WnFCO0VBNVpyQixpQkFBaUI7RUFDakIsYUF3YWlCO0VBdmFqQixrQkFBa0I7RUFDbEIscUJBQXFCO0FBNWhEN0I7QUE4Z0RFO0VBMkJRLG1CQWhDcUI7QUFyZ0QvQjtBQTBnREU7RUE4QlUsbUJBQW1CO0VBQ25CLG1DQUF1RDtFQUN2RCxvQ0FBd0Q7RUFDeEQsOEJBMFRZO0VBelRaLFdBQVc7RUFDWCxTQUFTO0VBQ1QsU0FBUztFQUNULGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsMkJBQTJCO0VBQzNCLFFBQVE7QUFwaURwQjtBQTQvQ0U7RUFrRFEsZ0JBdkRxQjtBQW4vQy9CO0FBdy9DRTtFQXFEVSxpQ0FzU1k7RUFyU1osbUNBQXVEO0VBQ3ZELG9DQUF3RDtFQUN4RCxnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLFdBQVc7RUFDWCxTQUFTO0VBQ1QsU0FBUztFQUNULGtCQUFrQjtFQUNsQiwyQkFBMkI7RUFDM0IsUUFBUTtBQXppRHBCO0FBMCtDRTtFQXFFUSxpQkExRXFCO0FBaitDL0I7QUFzK0NFO0VBd0VVLHFDQUF5RDtFQUN6RCxtQ0FBd0Q7RUFDeEQsZ0NBaVJZO0VBaFJaLGtDQUFzRDtFQUN0RCxXQUFXO0VBQ1gsU0FBUztFQUNULGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsUUFBUTtFQUNSLDJCQUEyQjtFQUMzQixRQUFRO0FBMWlEcEI7QUF3OUNFO0VBNEZRLGtCQWpHcUI7QUEvOEMvQjtBQW85Q0U7RUErRlUscUNBQXlEO0VBQ3pELCtCQTJQWTtFQTFQWixvQ0FBeUQ7RUFDekQsa0NBQXNEO0VBQ3RELFdBQVc7RUFDWCxTQUFTO0VBQ1QsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsMkJBQTJCO0VBQzNCLFFBQVE7QUEvaURwQjtBQSs5REs7RUFLRyxlQUpvQjtBQTU5RDVCO0FBbStESTtFQUNFLG1CQTlHbUI7QUFsM0R6QjtBQSs5REs7RUFHRyxtQkF2SjJCO0FBdjBEbkM7QUFpK0RJO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixtQkFBc0M7RUFDdEMsUUFBNEI7QUE5OURsQztBQWcrREk7RUFHRSxXQUZvQjtBQTc5RDFCO0FBMXlHRTtFQUNFLG1CQUFtQjtFQUNuQixhQUFhO0FBNnlHakI7QUEveUdFO0VBS0kscUJBQXFCO0VBQ3JCLFNBQTZCO0FBOHlHbkM7QUFxZkU7RUFDRSxpQkEycENlO0VBMXBDZixnQ0FzcENtQjtBQXhvRHZCO0FDbjlCRTtFQUNFLGFEcXBGbUI7QUEvckR2QjtBQ245QkU7RUFDRSx5QkRpcEZtQjtBQTNyRHZCO0FDbjlCRTtFQUNFLHlCRG1wRm1CO0FBN3JEdkI7QUNuOUJFO0VBRUksYURrckZpQjtBQTd0RHZCO0FDdjlCRTtFQU1JLHlCRDhxRmlCO0FBenREdkI7QUMzOUJFO0VBVUkseUJEa2tGaUI7QUE3bUR2QjtBQ2o5QkU7RUFFSSxhRHdyRmdCO0FBcnVEdEI7QUNyOUJFO0VBTUkseUJEb3JGZ0I7QUFqdUR0QjtBQ3o5QkU7RUFVSSx5QkRrckZnQjtBQS90RHRCO0FDNTZCRTtFQUVJLGVEK2tGaUI7QUFqcUR2QjtBQ2g3QkU7RUFNSSxlRHVnRmlCO0FBemxEdkI7QUNwN0JFO0VBVUksZURpb0ZnQjtBQW50RHRCO0FDenJCRTtFQUNFLHlCRDY1RStCO0VDNTVFL0IsMEJEMDNGYztBQTlyRWxCO0FDenJCRTtFQUNFLHVCRDQwRlc7RUMzMEZYLDBCRHEzRmM7QUF6ckVsQjtBQzlyQkU7RUFLSSx1QkR3MEZTO0FBM29FZjtBQ2xzQkU7RUFuMElBLDZIQUVtRTtBRHVnS3JFO0FDdnJCRTtFQUNFLDJDRG93RnNCO0FBMWtFMUI7QUMzckJFO0VBSUksMENEaXdGb0I7RUNod0ZwQixrQkFBa0I7QUQyckJ4QjtBQUVBO0VDeHJCSSwwQ0QydkZzQjtFQzF2RnRCLGtCQUFrQjtBRDByQnRCO0FBRUE7RUN6ckJNLGlCQUFpQjtFQUNqQiwyQ0RzdkZvQjtBQTNqRTFCO0FDdnJCRTtFQVFJLG9DQUF5QztBRG1yQi9DO0FDdmtHRTtFQUNFLFlEeW5KZTtFQ3huSmYsbUJEcXJKbUI7QUEzbUR2QjtBQ2wzS0k7RUEyeUVFLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUQya0d0QjtBQ3ZrR0U7RUFFSSxtQkR1bUppQjtFQ3RtSmpCLFlENm1KYTtBQXBpRG5CO0FDcmtHRTtFQUVJLFlEdW1KYTtFQ3RtSmIsbUJENnRKZ0I7QUF0cER0QjtBQ25rR0U7RUFDRSxrQkFBa0I7QURza0d0QjtBQ25rR0U7RUFFSSxhQUFhO0FEcWtHbkI7QUNqa0dFO0VBWU0sbUJBQW9GO0VBTXRGLDBCRHlrS3lCO0FBcmhFL0I7QUNoakdFO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLHVDQUF1QztFQUN2QyxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsb0JBQW9CO0FEbWpHeEI7QUNoakdFOztFQUVFLGdCQUFnQjtBRG1qR3BCO0FDOWlHRTtFQUVFLGVBQWU7QURnakduQjtBQy9zR0U7RUFDRSxXQU44QztFQU85QyxZQVA4QztFQVE5QyxpQkFSOEM7QUQwdEdsRDtBQzlzR0k7RUFDRSxTQUFlO0FEaXRHckI7QUM1c0dJO0VBQ0UsWUFBa0I7QUQrc0d4QjtBQzFzR0k7RUFDRSxXQXpCNEM7QURzdUdsRDtBQUVBO0VDenNHTSxVQUFVO0VBQ1YsWUFoQzRDO0FEMnVHbEQ7QUN0c0dJO0VBQ0UsWUF0QzRDO0FEK3VHbEQ7QUFFQTtFQ3JzR00sV0FBVztFQUNYLFdBN0M0QztBRG92R2xEO0FDanNHTTtFQUNFLFVBQWdCO0FEb3NHeEI7QUFFQTtFQ2hzR1EsVUFBVTtFQUNWLFdBQWlCO0FEa3NHekI7QUM3ckdNO0VBQ0UsV0FBaUI7QURnc0d6QjtBQUVBO0VDNXJHUSxXQUFXO0VBQ1gsVUFBZ0I7QUQ4ckd4QjtBQ2p3R0U7RUFDRSxXQVB5QjtFQVF6QixZQVJ5QjtFQVN6QixpQkFUeUI7QUQ2d0c3QjtBQ2h3R0k7RUFDRSxVQUFlO0FEbXdHckI7QUM5dkdJO0VBQ0UsYUFBa0I7QURpd0d4QjtBQzV2R0k7RUFDRSxXQTFCdUI7QUR5eEc3QjtBQUVBO0VDM3ZHTSxVQUFVO0VBQ1YsWUFqQ3VCO0FEOHhHN0I7QUN4dkdJO0VBQ0UsWUF2Q3VCO0FEa3lHN0I7QUFFQTtFQ3Z2R00sV0FBVztFQUNYLFdBOUN1QjtBRHV5RzdCO0FDbnZHTTtFQUNFLFdBQWdCO0FEc3ZHeEI7QUFFQTtFQ2x2R1EsVUFBVTtFQUNWLFlBQWlCO0FEb3ZHekI7QUMvdUdNO0VBQ0UsWUFBaUI7QURrdkd6QjtBQUVBO0VDOXVHUSxXQUFXO0VBQ1gsV0FBZ0I7QURndkd4QjtBQ256R0U7RUFDRSxXQUw4QztFQU05QyxZQU44QztFQU85QyxpQkFQOEM7QUQ2ekdsRDtBQ2x6R0k7RUFDRSxVQUFlO0FEcXpHckI7QUNoekdJO0VBQ0UsYUFBa0I7QURtekd4QjtBQzl5R0k7RUFDRSxXQXhCNEM7QUR5MEdsRDtBQUVBO0VDN3lHTSxVQUFVO0VBQ1YsWUEvQjRDO0FEODBHbEQ7QUMxeUdJO0VBQ0UsWUFyQzRDO0FEazFHbEQ7QUFFQTtFQ3p5R00sV0FBVztFQUNYLFdBNUM0QztBRHUxR2xEO0FDcnlHTTtFQUNFLFdBQWdCO0FEd3lHeEI7QUFFQTtFQ3B5R1EsVUFBVTtFQUNWLFlBQWlCO0FEc3lHekI7QUNqeUdNO0VBQ0UsWUFBaUI7QURveUd6QjtBQUVBO0VDaHlHUSxXQUFXO0VBQ1gsV0FBZ0I7QURreUd4QjtBQWl1REU7RUFDRSxVQUFVO0FBOXREZDtBQTYvREE7RUFDRSxPQUFPO0FBMS9EVDtBQTYvREE7RUFDRSw4QkFBOEI7QUExL0RoQyIsImZpbGUiOiJ4cG8taW50ZXJuYWwuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbW92ZSB3aGVuIGNoZWNrYm94IGlzIHRoZW1lZFxuLy8gV2UgY2FuIHVzZSByZWxhdGl2ZSBpbXBvcnRzIGZvciBpbXBvcnRzIGZyb20gdGhlIGNkayBiZWNhdXNlIHdlIGJ1bmRsZSBldmVyeXRoaW5nXG4vLyB1cCBpbnRvIGEgc2luZ2xlIGZsYXQgc2NzcyBmaWxlIGZvciBtYXRlcmlhbC5cbkBpbXBvcnQgJ35AYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5AaW1wb3J0ICd+QGFuZ3VsYXIvY2RrL2ExMXknO1xuLy8gXG5AaW1wb3J0ICd+QGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZyc7XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG5cbi8vIFxuLy8gXG4vLyBcbi8vIFxuLy8gXG4vLyBcbi8qISBCYXNlIHN0eWxlcywgbWFkZSB3aXRoIG5vcm1hbGl6ZS5jc3MgdjcuMC4wICovXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byBXaWRlIEJsYWNrJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogOTAwO1xuICBzcmM6IHVybCgnaHR0cHM6Ly94cG9kb3Rjb20uYXp1cmVlZGdlLm5ldC94cG8vZmlsZXMvcm9ib3RvLXdpZGUtLWJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnaHR0cHM6Ly94cG9kb3Rjb20uYXp1cmVlZGdlLm5ldC94cG8vZmlsZXMvcm9ib3RvLXdpZGUtLWJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbio6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG46cm9vdCB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tcm9vdDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJhY2tncm91bmRDb2xvci0tYm9keTtcbiAgY29sb3I6ICR4cG8tZm9udENvbG9yLS1wcmltYXJ5O1xuICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWxldHRlclNwYWNpbmctLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5oMSxcbmgyLFxuaDMge1xuICBtYXJnaW46ICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMikgMDtcbn1cblxuaDEge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKTtcbn1cblxuaDIge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCk7XG59XG5cbmgzIHtcbiAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCk7XG59XG5cbnAge1xuICBtYXJnaW46IDA7XG59XG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR4cG8tYmx1ZS0tNDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICB9XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbn1cblxuZGQge1xuICBtYXJnaW46IDAgMCAoJHhwby1jb250ZW50U3BhY2luZyAvIDIpO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZzogMC4yZW0gMC4zZW07XG59XG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPSdidXR0b24nXTotbW96LWZvY3VzcmluZyxcblt0eXBlPSdyZXNldCddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3N1Ym1pdCddOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiB4cG8tbWF0LWNvcmUoJHR5cG9ncmFwaHktY29uZmlnOiBudWxsKSB7XG4gIC8vIFByb3ZpZGVzIGV4dGVybmFsIENTUyBjbGFzc2VzIGZvciBlYWNoIGVsZXZhdGlvbiB2YWx1ZS4gRWFjaCBDU1MgY2xhc3MgaXMgZm9ybWF0dGVkIGFzXG4gIC8vIGBtYXQtZWxldmF0aW9uLXokelZhbHVlYCB3aGVyZSBgJHpWYWx1ZWAgY29ycmVzcG9uZHMgdG8gdGhlIHotc3BhY2UgdG8gd2hpY2ggdGhlIGVsZW1lbnQgaXNcbiAgLy8gZWxldmF0ZWQuXG4gIEBmb3IgJHpWYWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgLiN7JF9tYXQtZWxldmF0aW9uLXByZWZpeH0jeyR6VmFsdWV9IHtcbiAgICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgLy8gQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIHhwby1tYXQtY29yZS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBXcmFwcGVyIGVsZW1lbnQgdGhhdCBwcm92aWRlcyB0aGUgdGhlbWUgYmFja2dyb3VuZCB3aGVuIHRoZSB1c2VyJ3MgY29udGVudCBpc24ndFxuICAvLyBpbnNpZGUgb2YgYSBgbWF0LXNpZGVuYXYtY29udGFpbmVyYC4gTm90ZSB0aGF0IHdlIG5lZWQgdG8gZXhjbHVkZSB0aGUgYW1wZXJzYW5kXG4gIC8vIHNlbGVjdG9yIGluIGNhc2UgdGhlIG1peGluIGlzIGluY2x1ZGVkIGF0IHRoZSB0b3AgbGV2ZWwuXG4gIC8vIC5tYXQtYXBwLWJhY2tncm91bmQje2lmKCYsICcsICYubWF0LWFwcC1iYWNrZ3JvdW5kJywgJycpfSB7XG4gIC8vICAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgLy8gICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgLy8gICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgLy8gfVxuXG4gIC8vIE1hcmtlciB0aGF0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGFkZGVkIGEgdGhlbWUgdG8gdGhlaXIgcGFnZS5cbiAgQGF0LXJvb3Qge1xuICAgIC5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWNhcmQtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLnhwby1DYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbkBtaXhpbiB4cG8tYXBwbGljYXRpb25Td2l0Y2hlci10aGVtZSgkdGhlbWUpIHtcbiAgLy8gb3ZlcmxheSBkaWFsb2cgd3JhcHBlclxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlci54cG8tQXBwbGljYXRpb25Td2l0Y2hlci1kaWFsb2ctd3JhcHBlciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAvLyBvdmVybGF5IHBhbmVsIGNvbnRlbnQgc3R5bGVcbiAgICAuY2RrLW92ZXJsYXktcGFuZS54cG8tQXBwbGljYXRpb25Td2l0Y2hlci1kaWFsb2cge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgLy8gVE9ETzogZGVmaW5lIGlmIHdlJ2xsIGRpc3BsYXkgYSBib3JkZXIsIGEgc2hhZG93IG9yIGJvdGhcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC54cG8tQXBwbGljYXRpb25Td2l0Y2hlckNvbnRlbnQge1xuICAgIC8vIHNldCB0aGUgY29udGVudCBzY3JvbGwgdG8ga2VlcCB0aGUgaGVhZGVyIGFsd2F5cyB2aXNpYmxlXG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAvLyBmaXggZG91YmxlIGJvdHRvbSBib3JkZXJcbiAgICAvLyBpdCBjYW50IGJlIGRvbmUgaW5zaWRlIGFwcGxpY2F0aW9uIGNvbXBvbmVudCBkdWUgdG8gdGhlIGBsYXN0LXhgIHNlbGVjdG9yXG4gICAgLy8gZWl0aGVyIGluc2lkZSBhcHBsaWNhdGlvbiBjYXRlZ29yeSBjb21wb25lbnQgZHVlIHRvIHZpZXcgZW5jYXBzdWxhdGlvblxuICAgIC54cG8tQXBwbGljYXRpb25DYXRlZ29yeSB7XG4gICAgICAueHBvLUFwcGxpY2F0aW9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIC54cG8tQXBwbGljYXRpb24tY29udGVudDpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpO1xuXG4gIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLWFib3ZlIHtcbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgfVxuXG4gICAgJiAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLXZpc2libGUge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogdGhpcyBzdHlsZSB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGZvcm0gZmllbGQgdHlwZXNcbiAgLy8gd2UgbmVlZCB0byBmaW5kIHRoZSB3YXkgdG8gdXNlIGl0IGp1c3QgZm9yIGF1dG9jb21wbGV0ZSBjb250cm9sc1xuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAubWF0LWljb24ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1hdXRvY29tcGxldGUtdmlzaWJsZSB7XG4gICAgJF9BdXRvY29tcGxldGUtaGVpZ2h0OiAzMHB4O1xuICAgICRfQXV0b2NvbXBsZXRlLWxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICRfQXV0b2NvbXBsZXRlLW1hdC10d28tbGluZXMtaGVpZ2h0OiA0NXB4O1xuICAgICRfQXV0b2NvbXBsZXRlLXBhZGRpbmctLXZlcnRpY2FsOiA2cHg7XG4gICAgJF9BdXRvY29tcGxldGUtbWF4LXdpZHRoLWljb246IDUwcHg7XG4gICAgJF9BdXRvY29tcGxldGUtdGhyZWUtY29sdW1ucy1zaXplOiAzMyU7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgIC5tYXQtb3B0aW9uIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xuICAgICAgaGVpZ2h0OiAkX0F1dG9jb21wbGV0ZS1oZWlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogJF9BdXRvY29tcGxldGUtbGluZS1oZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAwICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0yMDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgfVxuXG4gICAgICAueHBvLUljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuXG4gICAgICAmLnhwby1PcHRpb24ge1xuICAgICAgICAmLS10d29MaW5lcyB7XG4gICAgICAgICAgaGVpZ2h0OiAkX0F1dG9jb21wbGV0ZS1tYXQtdHdvLWxpbmVzLWhlaWdodDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgIHBhZGRpbmc6ICRfQXV0b2NvbXBsZXRlLXBhZGRpbmctLXZlcnRpY2FsICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgLnhwby1TZWxlY3QtdHdvTGluZXNDb250YWluZXIge1xuICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgIC8vIGVhY2ggb2YgdGhlIHByb2plY3RlZCBjb250ZW50XG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWhpZGVEaXZpZGVyOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC54cG8taWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnhwby1TZWxlY3QtdHdvQ29sdW1uc0NvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMCUgODAlO1xuXG4gICAgICAvLyBlYWNoIG9mIHRoZSBwcm9qZWN0ZWQgY29udGVudCBmb3IgY29sdW1uc1xuICAgICAgc3BhbiB7XG4gICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuXG4gICAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAueHBvLVNlbGVjdC10aHJlZUNvbHVtbnNDb250YWluZXIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzMlIDM0JSAzMyU7XG5cbiAgICAgIC8vIGVhY2ggb2YgdGhlIHByb2plY3RlZCBjb250ZW50IGZvciBjb2x1bW5zXG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luOiAwICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIHNwYW46bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZG90QmFkZ2VNaXgoJGJhY2tncm91bmRDb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZENvbG9yO1xufVxuQG1peGluIHhwby1iYWRnZS10aGVtZSgkdGhlbWUpIHtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtZm9udFNpemU6IDEwcHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LWljb24tZm9udFNpemU6IDIwcHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LWhlaWdodDogMTZweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnREZWZhdWx0LWJvcmRlclJhZGl1czogMnB4O1xuICAkX21hdEJhZGdlQ29udGVudC1wYWRkaW5nOiAycHggM3B4O1xuICAkX21hdEJhZGdlQ29udGVudC1ib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8td2hpdGU7XG4gICRfbWF0QmFkZ2VDb250ZW50LXJpZ2h0OiAtMTVweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyUmFkaXVzOiAxMHB4O1xuICAkX21hdERvdEJhZGdlQ29udGVudC1oZWlnaHRXaWR0aDogMTBweDtcbiAgJF9tYXRCYWRnZU92ZXJsYXBDb250ZW50LXRvcDogLTFweDtcbiAgJF9tYXRCYWRnZU92ZXJsYXBDb250ZW50LXJpZ2h0OiAtMTRweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtdG9wLS1pbXBvcnRhbnQ6IC04cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LWhlaWdodC0taW1wb3J0YW50OiAxOHB4O1xuXG4gIC5tYXQtaWNvbiB7XG4gICAgJi5tYXQtYmFkZ2UtYWJvdmU6bm90KC54cG8tQmFkZ2UtLWltcG9ydGFudCkge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZm9udC1zaXplOiAkX21hdEJhZGdlQ29udGVudC1pY29uLWZvbnRTaXplO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJi5tYXQtYmFkZ2UtbWVkaXVtIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcblxuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICAgIGJvcmRlcjogJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkX21hdEJhZGdlQ29udGVudERlZmF1bHQtYm9yZGVyUmFkaXVzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXNpemU6ICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ7XG4gICAgICAgIGhlaWdodDogJF9tYXRCYWRnZUNvbnRlbnQtaGVpZ2h0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRfbWF0QmFkZ2VDb250ZW50LWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJF9tYXRCYWRnZUNvbnRlbnQtcGFkZGluZztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICB0b3A6IC05cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgcmlnaHQ6ICRfbWF0QmFkZ2VDb250ZW50LXJpZ2h0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL0ltcG9ydGFudCBub3RpZmljYXRpb24gYmFkZ2VcbiAgICAgICYueHBvLUJhZGdlLS1pbXBvcnRhbnQge1xuICAgICAgICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIHRvcDogJF9tYXRCYWRnZUNvbnRlbnQtdG9wLS1pbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgICAgICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgcmlnaHQ6IC0yOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1yZWQtLTYwMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkX21hdEJhZGdlQ29udGVudC1ib3JkZXJSYWRpdXM7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBsaW5lLWhlaWdodDogJF9tYXRCYWRnZUNvbnRlbnQtZm9udFNpemU7XG4gICAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDQgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vRG90IGJhZGdlXG4gICAgICAmLnhwby1CYWRnZURvdCB7XG4gICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlclJhZGl1cztcbiAgICAgICAgICBoZWlnaHQ6ICRfbWF0RG90QmFkZ2VDb250ZW50LWhlaWdodFdpZHRoO1xuICAgICAgICAgIHdpZHRoOiAkX21hdERvdEJhZGdlQ29udGVudC1oZWlnaHRXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICAgICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICAgIHJpZ2h0OiAkX21hdEJhZGdlT3ZlcmxhcENvbnRlbnQtcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICB0b3A6ICRfbWF0QmFkZ2VPdmVybGFwQ29udGVudC10b3A7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRvdEJhZGdlTWl4KCRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdWNjZXNzIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluZm8ge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkeHBvLWJsdWUtLTcwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5mbyB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRvdEJhZGdlTWl4KCR4cG8tYmx1ZS0tNzAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbXBvcnRhbnQge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIFNtYWxsIEJ1dHRvbiBzdHlsZXNcbi8vL1xuXG5AbWl4aW4gYnV0dG9uLS1zbWFsbCgpIHtcbiAgJF9idXR0b24tYm9yZGVyLS1zbGltOiAxcHg7XG4gICRfYnV0dG9uLWZvbnRTaXplLWljb24tLXNtYWxsOiAyMHB4O1xuICAkX2J1dHRvbi1MaW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiAgXG4gICRfYnV0dG9uLUhlaWdodC0tc21hbGw6IDMycHg7XG4gICRfYnV0dG9uLXBhZGRpbmc6IDRweCAyMHB4O1xuXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbi54cG8tU21hbGxCdXR0b24sXG4gIFttYXQtc3Ryb2tlZC1idXR0b25dLm1hdC1zdHJva2VkLWJ1dHRvbi54cG8tU21hbGxCdXR0b24ge1xuICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1zbGltO1xuICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgIGhlaWdodDogJF9idXR0b24tSGVpZ2h0LS1zbWFsbDtcbiAgICBwYWRkaW5nOiAkX2J1dHRvbi1wYWRkaW5nO1xuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJF9idXR0b24tZm9udFNpemUtaWNvbi0tc21hbGw7XG4gICAgfVxuXG4gICAgLm1hdC1idXR0b24td3JhcHBlciB7XG4gICAgICBsaW5lLWhlaWdodDogJF9idXR0b24tTGluZUhlaWdodC0tc21hbGw7XG4gICAgfVxuICB9XG5cbiAgbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC54cG8tU21hbGxCdXR0b24sXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZC54cG8tU21hbGxCdXR0b24ge1xuICAgIGhlaWdodDogJF9idXR0b24tSGVpZ2h0LS1zbWFsbDtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSxcbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1zbGltO1xuXG4gICAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBMYXJnZSBCdXR0b24gc3R5bGVzXG4vLy9cblxuQG1peGluIGJ1dHRvbi0tbGFyZ2UoKSB7XG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbi54cG8tTGFyZ2VCdXR0b24sXG4gIFttYXQtc3Ryb2tlZC1idXR0b25dLm1hdC1zdHJva2VkLWJ1dHRvbi54cG8tTGFyZ2VCdXR0b24sXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLUxhcmdlQnV0dG9uLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLUxhcmdlQnV0dG9uIHtcbiAgICAkX2J1dHRvbi1sYXJnZS1oZWlnaHQ6IDU2cHg7XG4gICAgJF9idXR0b24tcGFkZGluZzogMTZweCAyMHB4O1xuXG4gICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLWxhcmdlLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIHBhZGRpbmc6ICRfYnV0dG9uLXBhZGRpbmc7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBBY3Rpb24gQnV0dG9uIHN0eWxlc1xuLy8vXG5cbkBtaXhpbiB4cG8tYWN0aW9uLWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJF9idXR0b24td2lkdGg6IDMycHg7XG4gICRfYnV0dG9uLWhlaWdodDogMzJweDtcblxuICAueHBvLUFjdGlvbkJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1oZWlnaHQ7XG4gICAgd2lkdGg6ICRfYnV0dG9uLXdpZHRoO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICA+IC5tYXQtaWNvbiB7XG4gICAgICAkX2ljb24tc2l6ZTogMjBweDtcbiAgICAgIHdpZHRoOiAkX2ljb24tc2l6ZTtcbiAgICAgIGhlaWdodDogJF9pY29uLXNpemU7XG4gICAgICBmb250LXNpemU6ICRfaWNvbi1zaXplO1xuICAgIH1cbiAgXG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk3NTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkKCR4cG8td2hpdGUsICR4cG8tZ3JleS0tMzAwLCAkeHBvLWdyZXktLTM1MCk7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW1wb3J0IGZvciBkZXByZWNhdGVkIHN0eWxlc1xuLy8vXG4vLyBERVBSRUNBVEVEIFNUWUxFUyBGT1IgQlVUVE9OU1xuLy8gV2UncmUga2VlcGluZyB0aGUgc3R5bGVzIGFyb3VuZCBzbyB0aGluZ3MgZG9uJ3QgYnJlYWsgc28gYmFkbHkuXG4vLy9cblxuQG1peGluIHhwby1idXR0b24tZGlzYWJsZWQtZGVwcmVjYXRlZCgkYmFja2dyb3VuZC1jb2xvciwgJGJvcmRlci1jb2xvciwgJGZvbnQtY29sb3IpIHtcbiAgJixcbiAgJjphY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICBjb2xvcjogJGZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxufVxuXG4kX2J1dHRvbi1wYWRkaW5nLS1ob3Jpem9udGFsOiAyMHB4O1xuJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyOiAycHg7XG5cbi8vIC0tLSBCdXR0b24gV2Fybi0tLVxuJF9idXR0b24td2FybjogJHhwby1yZWQtLTQwMDtcbiRfYnV0dG9uLXdhcm4tLWFjdGl2ZTogJHhwby1yZWQtLTkwMDtcbiRfYnV0dG9uLXdhcm4tLWhvdmVyOiAkeHBvLXJlZC0tMzAwO1xuJF9idXR0b24tbWVkaXVtLWhlaWdodDogNDBweDtcblxuLy8gQWxsIEJ1dHRvbnNcblttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLFxuICBbbWF0LXJhaXNlZC1idXR0b25dLm1hdC1yYWlzZWQtYnV0dG9uLFxuICBbbWF0LWljb24tYnV0dG9uXS5tYXQtaWNvbi1idXR0b24ge1xuICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICBoZWlnaHQ6ICRfYnV0dG9uLW1lZGl1bS1oZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgJF9idXR0b24tcGFkZGluZy0taG9yaXpvbnRhbDtcbiAgdHJhbnNpdGlvbjogY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZSwgYmFja2dyb3VuZC1jb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBib3JkZXItY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZTtcbn1cblxuLy8gRm9yIGJ1dHRvbnMgd2l0aG91dCBib3JkZXIgb3IgYmFja2dyb3VuZCB3ZSBhcmUgbm90IHVzaW5nIHRoZSB2ZXJ0aWNhbCBwYWRkaW5nXG5bbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG59XG5cblttYXQtaWNvbi1idXR0b25dLm1hdC1pY29uLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIEZsYXQtYnV0dG9uIHN0eWxlc1xuW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlcyBhcmUgYSBqZXJrLS1vbmx5IGZvciBgbWF0LXJhaXNlZC1gXG4gIGNvbG9yOiAkeHBvLXdoaXRlO1xuXG4gICYsXG4gICYubWF0LXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS04MDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICB9XG4gIH1cblxuICAmLm1hdC13YXJuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi13YXJuO1xuICAgIGJvcmRlci1jb2xvcjogJF9idXR0b24td2FybjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24td2Fybi0taG92ZXI7XG4gICAgICBib3JkZXItY29sb3I6ICRfYnV0dG9uLXdhcm4tLWhvdmVyO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24td2Fybi0tYWN0aXZlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkX2J1dHRvbi13YXJuLS1hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHhwby1idXR0b24tZGlzYWJsZWQtZGVwcmVjYXRlZCgkeHBvLWdyZXktLTMwMCwgJHhwby1ncmV5LS0zMDAsICR4cG8td2hpdGUpO1xuICB9XG59XG5cbi8vIExpbmsgYnV0dG9ucyBhbmQgaWNvbiBidXR0b25zXG4ubWF0LWJ1dHRvbixcbi5tYXQtaWNvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICBjb2xvcjogJHhwby1ibHVlLS00MDA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTkwMDtcbiAgICB9XG4gIH1cblxuICAmLFxuICAmLm1hdC1hY2NlbnQge1xuICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS00MDA7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LXdhcm4ge1xuICAgIGNvbG9yOiAkX2J1dHRvbi13YXJuO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkX2J1dHRvbi13YXJuLS1ob3ZlcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJF9idXR0b24td2Fybi0tYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCdXR0b25zIHdpdGggYm9yZGVyc1xuW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZXMgZm9yIGJ1dHRvbnMgd2l0aCBubyBiYWNrZ3JvdW5kXG5bbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbixcblttYXQtaWNvbi1idXR0b25dLm1hdC1pY29uLWJ1dHRvbiB7XG4gICZbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkLWRlcHJlY2F0ZWQodHJhbnNwYXJlbnQsICR4cG8tZ3JleS0tMzUwLCAkeHBvLWdyZXktLTM1MCk7XG4gIH1cbn1cblxuLy8gUmVtb3ZlIHJvdW5kZWQgYm9yZGVyc1xuW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbn1cblxuLy8vXG4vLyBERVBSRUNBVEVEIFNUWUxFUyBGT1IgU01BTEwgQlVUVE9OU1xuLy8gV2UncmUga2VlcGluZyB0aGUgc3R5bGVzIGFyb3VuZCBzbyB0aGluZ3MgZG9uJ3QgYnJlYWsgc28gYmFkbHkuXG4vLy9cblxuICAkX2J1dHRvbi1ib3JkZXItLXNsaW06IDFweDtcbiAgJF9idXR0b24tZm9udFNpemUtaWNvbi0tc21hbGw6IDIwcHg7XG4gICRfYnV0dG9uLUhlaWdodC0tc21hbGw6IDMwcHg7XG4gICRfYnV0dG9uLUxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuXG4gIFttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLnhwby1TbWFsbEJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbi54cG8tU21hbGxCdXR0b24sXG4gIFttYXQtaWNvbi1idXR0b25dLm1hdC1pY29uLWJ1dHRvbi54cG8tU21hbGxCdXR0b24ge1xuICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1zbGltO1xuICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgIGhlaWdodDogJF9idXR0b24tSGVpZ2h0LS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1pbi13aWR0aDogYXV0bztcblxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRfYnV0dG9uLWZvbnRTaXplLWljb24tLXNtYWxsO1xuICAgIH1cblxuICAgIC5tYXQtYnV0dG9uLXdyYXBwZXIge1xuICAgICAgbGluZS1oZWlnaHQ6ICRfYnV0dG9uLUxpbmVIZWlnaHQtLXNtYWxsO1xuICAgIH1cbiAgfVxuXG5cbi8vL1xuLy8gREVQUkVDQVRFRCBTVFlMRVMgRk9SIExBUkdFIEJVVFRPTlNcbi8vIFdlJ3JlIGtlZXBpbmcgdGhlIHN0eWxlcyBhcm91bmQgc28gdGhpbmdzIGRvbid0IGJyZWFrIHNvIGJhZGx5LlxuLy8vXG5cbiAgW21hdC1idXR0b25dLm1hdC1idXR0b24ueHBvLUxhcmdlQnV0dG9uLFxuICBbbWF0LXJhaXNlZC1idXR0b25dLm1hdC1yYWlzZWQtYnV0dG9uLnhwby1MYXJnZUJ1dHRvbiB7XG4gICAgJF9idXR0b24tbGFyZ2UtaGVpZ2h0OiA1MHB4O1xuXG4gICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLWxhcmdlLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cblxuXG5AbWl4aW4geHBvLWJ1dHRvbi1kaXNhYmxlZCgkYmFja2dyb3VuZC1jb2xvciwgJGJvcmRlci1jb2xvciwgJGZvbnQtY29sb3IpIHtcbiAgJixcbiAgJjphY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICBjb2xvcjogJGZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxufVxuXG5AbWl4aW4geHBvLWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJF9idXR0b24tcGFkZGluZy0taG9yaXpvbnRhbDogMjBweDtcbiAgJF9idXR0b24tcGFkZGluZy0tdmVydGljYWw6IDhweDtcbiAgJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyOiAycHg7XG5cbiAgLy8gLS0tIEJ1dHRvbiBXYXJuLS0tXG4gICRfYnV0dG9uLW1lZGl1bS1oZWlnaHQ6IDQwcHg7XG5cbiAgLy8gQnV0dG9uIGRpcmVjdGl2ZVxuICAueHBvLUJ1dHRvbixcbiAgLnhwby1CdXR0b24gLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC8vIEFsbCBCdXR0b25zXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbixcbiAgW21hdC1zdHJva2VkLWJ1dHRvbl0ubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgIGhlaWdodDogJF9idXR0b24tbWVkaXVtLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgIHBhZGRpbmc6ICRfYnV0dG9uLXBhZGRpbmctLXZlcnRpY2FsICRfYnV0dG9uLXBhZGRpbmctLWhvcml6b250YWw7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIHRyYW5zaXRpb246IGNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2UsIGJhY2tncm91bmQtY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZSwgYm9yZGVyLWNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2U7XG4gIH1cblxuICAvLyBUaGlzIHN0eWxlcyBhcmUgaGVyZSB0byBiZSBhYmxlIHRvIHVzZSAneHBvU21hbGxCdXR0b24nIGFuZCAneHBvU21hbGxCdXR0b24nXG4gIC8vIHdpdGggbWF0LWJ1dHRvbi10b2dnbGVcbiAgbWF0LWJ1dHRvbi10b2dnbGUubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLW1lZGl1bS1oZWlnaHQ7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIHtcbiAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZSxcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICAgIH1cblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICB9XG5cbiAgbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgfVxuXG4gIC8vIEZsYXQtYnV0dG9uIHN0eWxlc1xuICBbbWF0LWZsYXQtYnV0dG9uXS5tYXQtZmxhdC1idXR0b24ge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyAvLyBvdmVycmlkZXMgYXJlIGEgamVyay0tb25seSBmb3IgYG1hdC1yYWlzZWQtYFxuICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuXG4gICAgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS04MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyxcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgeHBvLWJ1dHRvbi1kaXNhYmxlZCgkeHBvLWdyZXktLTMwMCwgJHhwby1ncmV5LS0zMDAsICR4cG8td2hpdGUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0cm9rZWQgQnV0dG9uc1xuICAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTIwMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTIwMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgeHBvLWJ1dHRvbi1kaXNhYmxlZCgkeHBvLWdyZXktLTI1LCAkeHBvLWdyZXktLTM1MCwgJHhwby1ncmV5LS0zNTApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJ1dHRvbnMgd2l0aCBib3JkZXJzXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbixcbiAgW21hdC1zdHJva2VkLWJ1dHRvbl0ubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gQnJpbmcgaW4gdGhlIFNtYWxsIEJ1dHRvbiBTdHlsZXNcbiAgQGluY2x1ZGUgYnV0dG9uLS1zbWFsbCgpO1xuXG4gIC8vIEJyaW5nIGluIHRoZSBMYXJnZSBCdXR0b24gU3R5bGVzXG4gIEBpbmNsdWRlIGJ1dHRvbi0tbGFyZ2UoKTtcblxuICBAaW5jbHVkZSB4cG8tYWN0aW9uLWJ1dHRvbi10aGVtZSgkdGhlbWUpO1xuXG4gIC8vL1xuICAvLyBSZW1vdmFsc1xuICAvLy9cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDsgLy8gKHhwbyk6IGhpZGUgYmFja2dyb3VuZCBjb2xvcjtcbiAgfVxuXG59XG5cbi8vL1xuLy8gU2V0cyB1cCB0aGUgYnV0dG9uIHRvZ2dsZSBncm91cFxuLy8vXG5cbi8qXG4gIDEuIFRoZXNlIGFyZSBjYXJyaWVkIG92ZXIgZnJvbSBNYXRlcmlhbCBidXQgVVggZG9lcyBub3RcbiAgICAgIGhhdmUgYW55IGRlc2lnbiBmb3IgdGhlbSB5ZXQuIFRoYXQncyB3aHkgdGhleSBhcmUgbm90XG4gICAgICBpbiB0aGUgc2FtcGxlLi4uIHRoZXkncmUgYSBiaXQgb2YgYSBoaWRkZW4gQVBJLlxuKi9cblxuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuXG5AbWl4aW4geHBvLWJ1dHRvbi10b2dnbGUtZ3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAsXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUge1xuICAgICRfaW5uZXJEaXZpZGVyQ29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICRfaW5uZXJCb3JkZXJUaGlja25lc3M6IDJweDtcbiAgICAkX2lubmVyU3RhbmRhbG9uZUJ1dHRvbi1tYXJnaW46IDJweDsgLy8gIzFcbiAgICAkX2lubmVyUGFkZGluZy0taG9yaXpvbnRhbDogMjBweDtcbiAgICAkX2lubmVyUGFkZGluZy0tdmVydGljYWw6IDRweDtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAgIEBhdC1yb290IC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAvLyAjMVxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRfaW5uZXJTdGFuZGFsb25lQnV0dG9uLW1hcmdpbjtcbiAgICAgIH1cblxuICAgICAgQGF0LXJvb3QgLm1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsIC8vICMxXG4gICAgICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRfaW5uZXJEaXZpZGVyQ29sb3I7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2U7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0yMDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdpbGwgYmUgZGVwcmVjYXRlZFxuICAgICAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQnV0dG9uIENvbnRlbnRcbiAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6ICRfaW5uZXJQYWRkaW5nLS12ZXJ0aWNhbCAkX2lubmVyUGFkZGluZy0taG9yaXpvbnRhbDtcbiAgICAgICAgPiAubWF0LWljb24ge1xuICAgICAgICAgICRfaWNvbi1zaXplOiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiAkX2ljb24tc2l6ZTtcbiAgICAgICAgICBoZWlnaHQ6ICRfaWNvbi1zaXplO1xuICAgICAgICAgIGZvbnQtc2l6ZTogJF9pY29uLXNpemU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT3ZlcnJpZGVzIGZvciBib3JkZXIgY29sb3JzXG5cbiAgICAgICYubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgICAgICAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRfaW5uZXJEaXZpZGVyQ29sb3I7XG4gICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3JkZXItY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICB9XG59XG5cbi8vIFRPRE86IHJlbW92ZSB0aGlzIGltcG9ydCBmb3IgZGVwcmVjYXRlZCBzdHlsZXNcbi8vL1xuLy8gREVQUkVDQVRFRCBTVFlMRVMgRk9SIExJTktTXG4vLyBXZSdyZSBrZWVwaW5nIHRoZSBzdHlsZXMgYXJvdW5kIHNvIHRoaW5ncyBkb24ndCBicmVhayBzbyBiYWRseS5cbi8vL1xuXG4ueHBvLUxpbmsge1xuICAmLS1hY2NlbnQge1xuICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS0xMDAwO1xuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiB4cG8tbGluay10aGVtZSgkdGhlbWUpIHtcbiAgJF9pY29uLXNpemU6IDIwcHg7IC8vIHJlbGF0aXZlIHRvIHBhcmVudCBzaXplXG4gICRfaWNvbi1nYXA6IDVweDsgXG5cbiAgLnhwby1MaW5rIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtOyAgICAgICAgXG4gICAgZ2FwOiAkX2ljb24tZ2FwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gICAgXG4gICAgJi0tcmVndWxhciB7XG4gICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgfVxuXG4gICAgPi5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgICAgIGhlaWdodDogJF9pY29uLXNpemU7XG4gICAgICB3aWR0aDogJF9pY29uLXNpemU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIFxuICB9XG59XG5cblxuQG1peGluIHhwby1kb3dubG9hZC1idXR0b24tdGhlbWUoJHRoZW1lKSB7XG4gIGJ1dHRvbi54cG8tRG93bmxvYWRCdXR0b24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5tYXQtc3Bpbm5lciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXJSYWRpdXM6IDJweDtcbiAgJF9jaGVja2JveC1pbmRldGVybWluYXRlLXBhZGRpbmc6IDFweCAycHggM3B4IDFweDtcbiAgJF9jaGVja2JveC1pbmRldGVybWluYXRlLW1hcmdpbjogM3B4IDNweDtcbiAgJF9jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlcjogMnB4IHNvbGlkICR4cG8tYmxhY2s7XG5cbiAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7IC8vIEF2b2lkIGRlZmF1bHQgaW5kZXRlcm1pdGF0ZSBzdHlsZSB3aGVuIGxlZnQgaW5kZXRlcm1pbmF0ZSBzdGF0ZVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ibGFjaztcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXJSYWRpdXM7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xuICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tZ3JleS0tMzUwO1xuXG4gICAgICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJHhwby1ibGFjaztcbiAgICAgIGJvcmRlcjogJF9jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlcjtcbiAgICAgIGhlaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICBtYXJnaW46ICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1tYXJnaW47XG4gICAgICBwYWRkaW5nOiAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtcGFkZGluZztcbiAgICAgIHdpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94IHtcbiAgICAkX21hdC1jaGVja2JveC1jbGFzczogJjtcblxuICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luOiAzcHggJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgcGFkZGluZzogMCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcblxuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQge1xuICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBkYXNoZWQgJHhwby1ncmV5LS0zMDA7XG4gICAgfVxuXG4gICAgJi54cG8tQ2hlY2tib3hHcm91cC1zZWxlY3RBbGwge1xuICAgICAgbWFyZ2luOiAzcHggJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1sYXlvdXQge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW46ICR4cG8tY29udGVudFNwYWNpbmcgLyA0ICR4cG8tY29udGVudFNwYWNpbmcgLyA0IDAgMDtcbiAgICB9XG5cbiAgICAmLXJpcHBsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYtYmFja2dyb3VuZCB7XG4gICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgICAgICYtcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzLjEzMzMzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgICAgICAgZmlsbDogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTM1MDtcblxuICAgICAgICAubWF0LWNoZWNrYm94LWNoZWNrZWQgJiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAgICAgICBzdHJva2U6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlciAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyaztcbiAgICAgIH1cblxuICAgICAgJi5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSB7XG4gICAgICAjeyRfbWF0LWNoZWNrYm94LWNsYXNzfS1pbm5lci1jb250YWluZXI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUpIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY2hpcC1zaXplKCRjaGlwLXNpemUsICRmb250LXNpemUpIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGNoaXAtc2l6ZTtcbiAgbWluLWhlaWdodDogJGNoaXAtc2l6ZTtcbn1cblxuQG1peGluIGljb24tc2l6ZSgkaWNvbi1zaXplKSB7XG4gIGhlaWdodDogJGljb24tc2l6ZTtcbiAgd2lkdGg6ICRpY29uLXNpemU7XG59XG5cbkBtaXhpbiBjaGlwcy1iYWRnZSgkYmFja2dyb3VuZENvbG9yLCAkYm9yZGVyLCAkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmRDb2xvcjtcbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4geHBvLWNoaXBzLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lKTtcblxuICBtYXQtY2hpcC5tYXQtY2hpcCB7XG4gICAgJF9tYXRDaGlwLXByaW9yaXR5LWNyaXRpY2FsOiAkeHBvLWNvbG9yLS1lcnJvcjtcbiAgICAkX21hdENoaXAtcHJpb3JpdHktaGlnaDogJHhwby1vcmFuZ2UtLTMwMDtcbiAgICAkX21hdENoaXAtcHJpb3JpdHktbWVkaXVtOiAkeHBvLWNvbG9yLS13YXJuO1xuICAgICRfbWF0Q2hpcC1ib3JkZXItcmFkaXVzLS1kZWZhdWx0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICRfbWF0Q2hpcC10YWdzLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAkX21hdENoaXAtdGFnTGFyZ2UtaGVpZ2h0OiAzMHB4O1xuICAgICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplOiAxMHB4O1xuICAgICRfbWF0Q2hpcC1CYWRnZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1tZWRpdW07XG5cbiAgICBAaW5jbHVkZSBjaGlwLXNpemUoJHhwby1saW5lSGVpZ2h0LS1iYXNlLCAkeHBvLWZvbnRTaXplLS1tZWRpdW0pO1xuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGljb24tc2l6ZSgkeHBvLWZvbnRTaXplLS1tZWRpdW0pO1xuICAgIH1cblxuICAgICYueHBvLUNoaXAtLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNoaXAtc2l6ZSgkeHBvLWxpbmVIZWlnaHQtLXNtYWxsLCAkeHBvLWZvbnRTaXplLS1zbWFsbCk7XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tc2l6ZSgkeHBvLWZvbnRTaXplLS1zbWFsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfbWF0Q2hpcC1ib3JkZXItcmFkaXVzLS1kZWZhdWx0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAmOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIHtcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG5cbiAgICAgICAgJi5tYXQtY2hpcC10cmFpbGluZy1pY29uIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYueHBvLUNoaXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAmLS11bnJlYWQsXG4gICAgICAmLS1jcml0aWNhbCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRfbWF0Q2hpcC1wcmlvcml0eS1jcml0aWNhbDtcbiAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICB9XG5cbiAgICAgICYtLWhpZ2gge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkX21hdENoaXAtcHJpb3JpdHktaGlnaDtcbiAgICAgIH1cblxuICAgICAgJi0tbWVkaXVtIHtcbiAgICAgICAgYmFja2dyb3VuZDogJF9tYXRDaGlwLXByaW9yaXR5LW1lZGl1bTtcbiAgICAgIH1cblxuICAgICAgJi0tZ3JlZW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZWVuLS00MDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmLS1vcmFuZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLW9yYW5nZS0tMzAwO1xuICAgICAgfVxuXG4gICAgICAmLS1yZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXJlZC0tNDAwO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJi0teWVsbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby15ZWxsb3ctLTQwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnhwby1CYWRnZUNoaXAge1xuICAgICAgJi5tYXQtY2hpcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJF9tYXRCYWRnZUNvbnRlbnQtZm9udFNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDtcbiAgICAgICAgbWluLWhlaWdodDogJF9tYXRDaGlwLUJhZGdlLWhlaWdodDtcbiAgICAgIH1cblxuICAgICAgLy8gTnVtYmVyZWRcbiAgICAgICYtLW5lZ2F0aXZlIHtcbiAgICAgICAgJi5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgICAgICAgJi5tYXQtY2hpcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjaGlwcy1iYWRnZShcbiAgICAgICAgICAgICAgJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZSxcbiAgICAgICAgICAgICAgJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZSxcbiAgICAgICAgICAgICAgJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLS1wb3NpdGl2ZSB7XG4gICAgICAgICYubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgICAgICAgICYubWF0LWNoaXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2hpcHMtYmFkZ2UoXG4gICAgICAgICAgICAgICRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmUsXG4gICAgICAgICAgICAgICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmUsXG4gICAgICAgICAgICAgICRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi5tYXQtY2hpcC1saXN0IHtcbiAgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciB7XG4gICAgJF9tYXRDaGlwLXdyYXBwZXItZ2FwOiA2cHg7XG4gICAgZ2FwOiAkX21hdENoaXAtd3JhcHBlci1nYXA7XG4gIH0gIFxufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLnhwby1UYWcge1xuICAkX21hdENoaXAtYm9yZGVyLXJhZGl1cy0tZGVmYXVsdDogJHhwby1jb250ZW50U3BhY2luZztcbiAgJF9tYXRDaGlwLWdhcDogMTJweDtcbiAgJF9tYXRDaGlwLW1hcmdpbi1yaWdodDogMTJweDtcbiAgJF9tYXRDaGlwLXRhZ3MtYm9yZGVyLXJhZGl1czogMnB4O1xuICAkX21hdENoaXAtdGFncy1oZWlnaHQ6IDI0cHg7XG4gICRfbWF0Q2hpcC10YWdzLW1hcmdpbjogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTI1O1xuICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgYm9yZGVyLXJhZGl1czogJF9tYXRDaGlwLXRhZ3MtYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6ICR4cG8tZ3JleS0tOTc1O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbTtcbiAgaGVpZ2h0OiAkX21hdENoaXAtdGFncy1oZWlnaHQ7XG4gIG1hcmdpbjogJF9tYXRDaGlwLXRhZ3MtbWFyZ2luIDA7XG4gIG1pbi1oZWlnaHQ6ICRfbWF0Q2hpcC10YWdzLWhlaWdodDtcbiAgcGFkZGluZzogKCR4cG8tY29udGVudFNwYWNpbmcgLyA4KSAoJHhwby1jb250ZW50U3BhY2luZyAvIDIpO1xuXG4gID4gLm1hdC1pY29uIHtcbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgIGhlaWdodDogJHhwby1jb250ZW50U3BhY2luZztcbiAgICBtYXJnaW4tbGVmdDogJF9tYXRDaGlwLW1hcmdpbi1yaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgd2lkdGg6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gIH0gXG4gIC54cG8tSWNvbiB7XG4gICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgIG1hcmdpbi1sZWZ0OiAkX21hdENoaXAtbWFyZ2luLXJpZ2h0O1xuICAgIHdpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nOyBcbiAgICAubWF0LWljb24ge1xuICAgICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgd2lkdGg6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgfSBcbiAgfVxuICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAkX21hdENoaXAtbWFyZ2luLXJpZ2h0O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICB9XG4gICAgXG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG4kX2RhdGVQaWNrZXItaW5wdXQtLWJvcmRlcjogc29saWQgMXB4ICR4cG8tYmxhY2s7XG4kX2RhdGVQaWNrZXItaW5wdXQtLW1pbldpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nICogODtcblxuJF9kYXRlUGlja2VyLXBvcHVwLS1tYXJnaW5Ub3BBZGp1c3RtZW50OiAtMXB4O1xuXG4kX2RhdGVQaWNrZXItcGFuZWwtLWhlaWdodDogMjUwcHg7XG4kX2RhdGVQaWNrZXItcGFuZWwtLXdpZHRoOiAyMjZweDtcblxuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1oZWlnaHQ6IDMwcHg7XG4kX2RhdGVQaWNrZXItY29udHJvbHNCYXItLW1hcmdpbnM6ICR4cG8tY29udGVudFNwYWNpbmcgKiAwLjU7XG4kX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzOiAzcHg7XG4kX2RhdGVQaWNrZXItY29udHJvbHNCYXItcHJldk5leHRCdXR0b25zLS1zaXplOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1zY2FsZTogc2NhbGUoMC41MzA1KTtcblxuJF9kYXRlUGlja2VyLXllYXJQaWNrZXItY2VsbENvbnRlbnQtLWhlaWdodDogMzBweDtcblxuJF9kYXRlUGlja2VyLW11bHRpWWVhci0taGVpZ2h0OiAyMDVweDtcblxuQG1peGluIHhwby1kYXRlUGlja2VyLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUpO1xuXG4gIC8vL1xuICAvLy8gRGF0ZSBQaWNrZXIgSW5wdXQsIGNhbGVuZGFyIGJ1dHRvblxuICAvLy9cbiAgLnhwby1EYXRlUGlja2VyIHtcbiAgICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlIHtcbiAgICAgICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU6IDE2cHg7XG5cbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG5cbiAgICAgICAgLm1hdC1idXR0b24td3JhcHBlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJF9kYXRlUGlja2VyLXRvZ2dsZS0tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgIC8vIG1pbi13aWR0aCBwcm9wZXJ0eSBzZXQgdG8gYXZvaWQgbWF0LWRhdGVwaWNrZXItdG9nZ2xlIGljb24gb3ZlcmxhcHMgdGV4dCBpbnB1dFxuICAgICAgICAvLyBiYXNlZCBvbiBjb250ZW50IHNwYWNpbmdcbiAgICAgICAgbWluLXdpZHRoOiAkX2RhdGVQaWNrZXItaW5wdXQtLW1pbldpZHRoO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAgICAgJF9kYXRlUGlja2VyLXRvZ2dsZS0tbWFyZ2luLXJpZ2h0OiA0cHg7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1tYXJnaW4tcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2hvdyBkZWZpbmVkIGJvcmRlciBjb2xvciBpbiBkYXRlIHBpY2tlciBpbnB1dCB0ZXh0XG4gICAgLy8gd2hlbiBkYXRlIHBpY2tlciBjYWxlbmRhciBpcyBvcGVuXG4gICAgJi0tYWN0aXZlIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibGFjaztcbiAgICB9XG4gIH1cblxuICAvLy9cbiAgLy8vIERhdGUgUGlja2VyIENhbGVuZGFyIHBvcHVwXG4gIC8vL1xuICAubWF0LWRhdGVwaWNrZXItcG9wdXAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIGJvcmRlcjogJF9kYXRlUGlja2VyLWlucHV0LS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvLyB0aGlzIGlzIGEgbmVnYXRpdmUgdG9wIG1hcmdpbiB1c2VkIHRvIHNob3cgdGhlIGNhbGVuZGFyIHBvcHVwIHRvcCBib3JkZXJcbiAgICAvLyBhbmQgdG8gbm90IHNob3dpbmcgdGhlIGlucHV0IHRleHQgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi10b3A6ICRfZGF0ZVBpY2tlci1wb3B1cC0tbWFyZ2luVG9wQWRqdXN0bWVudDtcblxuICAgIC54cG8tRGF0ZVBpY2tlci1jYWxlbmRhci5tYXQtY2FsZW5kYXIge1xuICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItcGFuZWwtLWhlaWdodDtcbiAgICAgIHdpZHRoOiAkX2RhdGVQaWNrZXItcGFuZWwtLXdpZHRoO1xuXG4gICAgICAubWF0LWNhbGVuZGFyIHtcbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBTdHlsZXMgZm9yIGNhbGVuZGFyIGhlYWRlclxuICAgICAgICAvLy9cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jb250cm9scyB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0taGVpZ2h0O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICBtYXJnaW46ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0tbWFyZ2lucyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wZXJpb2QtYnV0dG9uIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wcmV2aW91cy1idXR0b24sXG4gICAgICAgICYtbmV4dC1idXR0b24ge1xuICAgICAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLXByZXZOZXh0QnV0dG9ucy0tc2l6ZTtcbiAgICAgICAgICB3aWR0aDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLXByZXZOZXh0QnV0dG9ucy0tc2l6ZTtcblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1idXR0b25zLS10aGlja25lc3M7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1wcmV2aW91cy1idXR0b24ge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLXNjYWxlIHRyYW5zbGF0ZVgoJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzcykgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1uZXh0LWJ1dHRvbiB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLXNjYWxlIHRyYW5zbGF0ZVgoLSRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1idXR0b25zLS10aGlja25lc3MpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBTdHlsZXMgZm9yIGNhbGVuZGFyIHRhYmxlIGhlYWRlclxuICAgICAgICAvLy9cbiAgICAgICAgJi10YWJsZS1oZWFkZXIge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuXG4gICAgICAgICAgdGgge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWRpdmlkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLy9cbiAgICAgICAgLy8vIENvbW1vbiBzdHlsZXMgZm9yIGNhbGVuZGFyIGJvZHkgdmlld3NcbiAgICAgICAgLy8vXG4gICAgICAgICYtYm9keSB7XG4gICAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBpbiBvcmRlciB0byBvdmVycmlkZSBpbi1saW5lIHN0eWxlc1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gZm9yIHNwYWNpbmcgcHVycG9zZXMgd2UgbmVlZCB0byBrZWVwIHRoZSBlbGVtZW50IHNpemVcbiAgICAgICAgICAgIC8vIHNvIHdlIHVzZSB2aXNpYmlsaXR5OiBoaWRkZW4gaW5zdGVhZCBvZiBkaXNwbGF5OiBub25lXG4gICAgICAgICAgICAvLyBiZXNpZGVzIHRoaXMgY2xhc3MgaXMgYXBwbHkgdG8gYSB0ZCBlbGVtZW50XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jZWxsOmhvdmVyIHtcbiAgICAgICAgICAgIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTEwMDtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jZWxsLWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS02MDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi10b2RheSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuXG4gICAgICAgICAgICAmLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5IHtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLy9cbiAgICAvLy8gU3R5bGVzIGZvciBjYWxlbmRhciB5ZWFyIHZpZXdcbiAgICAvLy9cbiAgICBtYXQteWVhci12aWV3IC5tYXQtY2FsZW5kYXItdGFibGUge1xuICAgICAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8vXG4gICAgLy8vIFN0eWxlcyBmb3IgY2FsZW5kYXIgbXVsdGkteWVhciB2aWV3XG4gICAgLy8vXG4gICAgbWF0LW11bHRpLXllYXItdmlldyAubWF0LWNhbGVuZGFyLXRhYmxlIHtcbiAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLW11bHRpWWVhci0taGVpZ2h0O1xuXG4gICAgICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXIteWVhclBpY2tlci1jZWxsQ29udGVudC0taGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWRhdGUtcmFuZ2UtcGlja2VyLXRoZW1lKCR0aGVtZSkge1xuICAvLyBEQVRFIFJBTkdFIElOUFVUIEZPUk0gRklFTEQgU1RZTEVcbiAgbWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtdHlwZS14cG8tZGF0ZS1yYW5nZS1pbnB1dCB7XG4gICAgLy8gdXNlIGEgbmVnYXRpdmUgbWFyZ2luIHRvIHBvc2l0aW9uIHRoZSBsYWJlbCBvbiB0b3AgZm9yIHRoZSBpbnB1dCBjb250cm9sXG4gICAgLy8gaW4gdGhlIHNhbWUgd2F5IGl0IGlzIGRvbmUgZm9yIFwibWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtaW5wdXRcIlxuICAgICRfbGFiZWwtdG9wOiAtMjRweDtcbiAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG4gICAgJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTogMjBweDtcblxuICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgbWFyZ2luLXRvcDogJF9mb3JtRmllbGQtbWFyZ2luVG9wO1xuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5wdXQgZGVmYXVsdCBiZWhhdmlvclxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgICAgLy8gT25seSBwbGFjZWhvbGRlclxuICAgICAgJi5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICAkX2xhYmVsV3JhcHBlci10b3AtLWRlZmF1bHQ6IC0xMnB4O1xuICAgICAgICAgICRfbGFiZWxXcmFwcGVyLWxlZnQtLWRlZmF1bHQ6IDlweDtcblxuICAgICAgICAgIGxlZnQ6ICRfbGFiZWxXcmFwcGVyLWxlZnQtLWRlZmF1bHQ7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgdG9wOiAkX2xhYmVsV3JhcHBlci10b3AtLWRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1c2VkIG9yIHdpdGggdmFsdWVcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6ICRfbGFiZWwtdG9wO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOyAvL1RoaXMgc2l6ZSBpbiAxOHB4IGJlY2F1c2UgdGhlIGRlZmF1bHQgbGFiZWwgd2l0aCBzY2FsZSgwLjc1KVxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5LFxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAvLyBTZXRzIHRoZSBib3JkZXIgY29sb3Igd2hlbiBpbnZhbGlkXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tcmVkLS00MDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtaGludCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgfVxuXG4gICAgICAubWF0LWVycm9yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgZm9udC1zaXplOiAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZXMgdGhlIHVuZGVybGluZVxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCkge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWJsYWNrO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgJF9mb3JtRmllbGQtYm9yZGVyUmFkaXVzOiAycHg7XG5cbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybUZpZWxkLWJvcmRlclJhZGl1cztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgICAgICAkX2Zvcm1GaWVsZC1zdWZmaXgtbWFyZ2luOiA0cHg7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2Zvcm1GaWVsZC1zdWZmaXgtbWFyZ2luO1xuXG4gICAgICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAyMDhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwICFpbXBvcnRhbnQ7IC8vIFRoZSByZWFzb24gb2YgdGhlICFpbXBvcnRhbnQgaXMgdGhlIGJsdWUgY29sb3Igb24gZm9jdXNcbiAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTsgLy9UaGlzIHNpemUgaW4gMjBweCBiZWNhdXNlIHRoZSBkZWZhdWx0IGxhYmVsIHdpdGggc2NhbGUoMC43NSlcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgIG1hdC1sYWJlbCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgIHRvcDogJF9sYWJlbC10b3A7XG4gICAgfVxuICB9XG5cbiAgLy8gREFURSBSQU5HRSBJTlBVVFxuICAueHBvLURhdGVSYW5nZUlucHV0IHtcbiAgICAmLXNlcGFyYXRvciB7XG4gICAgICAvLyBEaXNhYmxlIHRleHQgc2VsZWN0aW9uXG4gICAgICAvLyB3ZSBhZGQgdGhpcyBoZXJlLCBpbnN0ZWFkIG9mIHRoZSBjb21wb25lbnQgc3R5bGVzIGRlZmluaXRpb25cbiAgICAgIC8vIGp1c3QgdG8gcmV1c2UgbWF0ZXJpYWwgbWl4aW4gd2UgaGF2ZSBhdmFpbGFibGUgaGVyZSBhbmQgaXQncyBub3QgYXZhaWxhYmxlXG4gICAgICAvLyBpbnNpZGUgdGhlIGNvbXBvbmVudCBzdHlsZXMgZGVmaW5pdGlvblxuICAgICAgQGluY2x1ZGUgdXNlci1zZWxlY3Qobm9uZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gREFURSBQSUNLRVIgUE9QVVBcbiAgLmNkay1vdmVybGF5LXBhbmUueHBvLURhdGVSYW5nZVBpY2tlci1wb3B1cCB7XG4gICAgLy8gdGhlIHNhbWUgYXMgZm9yIGBtYXJnaW4tdG9wYCBpbiBjYXNlIHRoZSBjYWxlbmRhciBpcyBzaG93biBhYm92ZSB0aGUgaW5wdXRcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgIC8vIHRoaXMgaXMgYSBuZWdhdGl2ZSB0b3AgbWFyZ2luIHVzZWQgdG8gc2hvdyB0aGUgY2FsZW5kYXIgcG9wdXAgdG9wIGJvcmRlclxuICAgIC8vIGFuZCB0byBub3Qgc2hvd2luZyB0aGUgaW5wdXQgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gIH1cbn1cblxuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gVE9ETzogUmVuYW1lIHRoaXMgc28gaXQgZG9lc24ndCBnZXQgY29uZnVzZWQgd2l0aCB0aGUgcGFnZSdzIGhlYWRlclxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuQG1peGluIGRpYWxvZy1oZWFkZXItLXByaW1hcnkoKSB7XG4gICRfbmd4LUhlYWRlckZvbnQtLXNpemU6IDI2cHg7XG4gICRfbmd4LUhlYWRlclBhZGRpbmctLXRvcDogMzhweDtcbiAgJF9uZ3gtSGVhZGVyTWFyZ2luLS1ob3Jpem9udGFsOiAyNHB4O1xuICAkX25neC1IZWFkZXJUaXRsZS1jb2xvcjogIzIxMjEyMTtcbiAgY29sb3I6ICRfbmd4LUhlYWRlclRpdGxlLWNvbG9yO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDE7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmb250LXNpemU6ICRfbmd4LUhlYWRlckZvbnQtLXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbGluZS1oZWlnaHQ6ICRfbmd4LUhlYWRlckZvbnQtLXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogMCAkX25neC1IZWFkZXJNYXJnaW4tLWhvcml6b250YWw7XG4gIHBhZGRpbmctYm90dG9tOiAkeHBvX2NvbnRlbnRTcGFjaW5nIC8gMjtcbiAgcGFkZGluZy10b3A6ICRfbmd4LUhlYWRlclBhZGRpbmctLXRvcDtcbn1cblxuXG5AbWl4aW4geHBvLWRpYWxvZy10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICAkX25neC1EaWFsb2dTcGFjaW5nLS1ob3Jpem9udGFsOiAyNHB4O1xuICAkX25neC1EaWFsb2dTcGFjaW5nLS1jb250ZW50Qm90dG9tOiAzNnB4O1xuXG4gIG1hdC1kaWFsb2ctY29udGFpbmVyLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgW21hdC1kaWFsb2ctdGl0bGVdLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgICAgQGluY2x1ZGUgZGlhbG9nLWhlYWRlci0tcHJpbWFyeSgpO1xuXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgJjpub3QoLnhwby1Db25maXJtRGlhbG9nLWhlYWRlcikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW21hdC1kaWFsb2ctY29udGVudF0ubWF0LWRpYWxvZy1jb250ZW50LFxuICAgIG1hdC1kaWFsb2ctY29udGVudC5tYXQtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZy8yICRfbmd4LURpYWxvZ1NwYWNpbmctLWhvcml6b250YWwgJF9uZ3gtRGlhbG9nU3BhY2luZy0tY29udGVudEJvdHRvbTtcblxuICAgICAgcDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAvLyBUaGUgZGVzaWduIHNwZWNpZmllcyAyNHB4IG1hcmdpbiBib3R0b20gZnJvbSB0aGUgYm9yZGVyIG9mIHRoZSBsZXR0ZXIsXG4gICAgICAgIC8vIHRvIGFjaGlldmUgdGhhdCB3ZWUgbmVlZCB0byByZWR1Y2UgdGhlIHZhbHVlIG9mIHRoYXQgbWFyZ2luXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW21hdC1kaWFsb2ctYWN0aW9uc10ubWF0LWRpYWxvZy1hY3Rpb25zLFxuICAgIG1hdC1kaWFsb2ctYWN0aW9ucy5tYXQtZGlhbG9nLWFjdGlvbnMge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luOiAwICRfbmd4LURpYWxvZ1NwYWNpbmctLWhvcml6b250YWw7XG4gICAgICBwYWRkaW5nOiAkX25neC1EaWFsb2dTcGFjaW5nLS1ob3Jpem9udGFsIDA7XG5cbiAgICAgIC54cG8tQnV0dG9uR3JvdXAgPiAubWF0LWJ1dHRvbi1iYXNlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgb3ZlcnJpZGVzIHN0eWxlcyBpbiBvcmRlciBmb3IgdGhlIGV4cGFuc2lvbi1wYW5lbCB0byBtYXRjaCB0aGVcbi8vIG5neC1sdGwtY29yZSBkZXNpZ24gZ3VpZGVsaW5lcy5cbkBtaXhpbiB4cG8tZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG5cbiAgJF9tYXRFeHBhbnNpb24taGVhZGVyVGl0bGUtcGFkZGluZ0xlZnQ6IDEwcHg7XG4gICRfcGFuZWxNYXRJY29uLWZvbnRTaXplOiAyMHB4O1xuICAkX21hdEV4cGFuc2lvblBhbmVsQm9keS1wYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMiAzOXB4ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAkX21hdEV4cGFuc2lvblBhbmVsSGVhZGVyLVN0YXR1c0luZGljYXRvci1mb250U2l6ZTogMTBweDtcblxuICAubWF0LWFjY29yZGlvbiA+IC5tYXQtZXhwYW5zaW9uLXBhbmVsLFxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgLy8gRml4IHNjcm9sbGluZyB3aGVuIG9wZW5pbmcgcGFuZWwgYW5kIG90aGVyIHBhbmVsIGlzIGFscmVhZHkgb3BlbmVkXG4gICAgbWFyZ2luOiAwLjFweDtcblxuICAgICYsXG4gICAgJjpub3QoW2NsYXNzKj0nbWF0LWVsZXZhdGlvbi16J10pIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICYge1xuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJF9wYW5lbE1hdEljb24tZm9udFNpemU7XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XG4gICAgICBwYWRkaW5nOiAkX21hdEV4cGFuc2lvblBhbmVsQm9keS1wYWRkaW5nO1xuICAgICAgcGFkZGluZy1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgICAgLm1hdC1jZWxsIHtcbiAgICAgICAgPiAubWF0LWljb24ge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNvbnRlbnQge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMiAkX21hdEV4cGFuc2lvbi1oZWFkZXJUaXRsZS1wYWRkaW5nTGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSB7XG4gICAgICAubWF0LWNvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdhZGQnO1xuICAgICAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZXhwYW5kZWQge1xuICAgICAgLm1hdC1jb250ZW50OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAncmVtb3ZlJztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC54cG8tRXhwYW5zaW9uUGFuZWxEYXJrLS13cmFwKSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG5cbiAgICAgIG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICAgJi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG5cbiAgICAgICAgICAmOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKSB7XG4gICAgICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdC1jb250ZW50OjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05MzA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJlthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYueHBvLUV4cGFuc2lvblBhbmVsRGFyay0td3JhcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgJjpub3QoLm1hdC1leHBhbmRlZCkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtZXhwYW5kZWQge1xuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAubWF0LWNvbnRlbnQge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tODAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICAgICAubWF0LWNvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm1hdC1jb250ZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAgICYgPiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSB7XG4gICAgICAgICAgLm1hdC1jb250ZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0xMDAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgJi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgIDo6YmVmb3JlLFxuICAgICAgICAubWF0LWljb24sXG4gICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICA6OmJlZm9yZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgICAgICAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCk7XG5cbiAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC0tc21hbGwoKTtcblxuICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC54cG8tU3RhdHVzSW5kaWNhdG9yIHtcbiAgICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtdGFnIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJF9tYXRFeHBhbnNpb25QYW5lbEhlYWRlci1TdGF0dXNJbmRpY2F0b3ItZm9udFNpemU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZXhwYW5kZWQge1xuICAgICAgJi5tYXQtZXhwYW5zaW9uLXBhbmVsLXNwYWNpbmcge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIFRoZSBvdmVycmlkZXMgaW4gb3JkZXIgZm9yIHRoZSBmb3JtIGZpZWxkIHRvIG1hdGNoIHRoZVxuLy8gICBkZXNpZ24gc3BlY2lmaWNhdGlvbnMuXG4vLyBBcyBhIG5vdGU6IFRoaXMgZG9lcyBub3QgY29udGFpbiB0aGUgc3R5bGVzIGZvciB0aGUgaW5wdXRzXG4vLyAgIHRoZW1zZWx2ZXMuIFRob3NlIGNhbiBiZSBmb3VuZCBpbiB0aGUgaW5wdXQgdGhlbWUuIFdoaWxlXG4vLyAgIG1vc3Qgb2YgdGhlIHN0eWxpbmcgZm9yIGlucHV0cyBpcyBoZXJlLCB0ZWNobmljYWxseSBpdCdzXG4vLyAgIHRoZSBcImZvcm0tZmllbGRcIiB0aGF0IGlzIGJlaW5nIHN0eWxlZCBoZXJlLlxuLy9cbi8vIEFkZGl0aW9uYWwgTm90ZTogUGxlYXNlIGNvbnRpbnVlIHRvIHVzZSBFTXMgZm9yIHNpemluZy5cbi8vICAgVGhpcyBhbGxvd3MgdGhlIGlucHV0cyB0byBiZSBzY2FsZWQgb3V0c2lkZSBvZiB0aGVcbi8vICAgY29tcG9uZW50cyBhcm91bmQgaXQuIFRoaXMgaXMgd2hhdCBNYXRlcmlhbCBkb2VzIGFuZFxuLy8gICBpdCBoYXMgYmVlbiBrZXB0IGZ1bmN0aW9uaW5nIGJ5IGtlZXBpbmcgdGhlIHRyZW5kLlxuLy9cbi8vIEBhdXRob3IgICAgUGV0ZXIgUmFtc2luZyA8cGV0ZXIucmFtc2luZ0B4cG8uY29tPlxuLy9cbi8vIEB0aGFua3MgICAgQWxsaXNvbiwgUGV0ZXIncyB3aWZlLCB3aG8gc3BlbnQgYSBsb25lbHlcbi8vICAgICAgICAgICAgIHdlZWtlbmQgd2hpbGUgaGUgY29kZWQgdGhpcyBpbiB0aGUgb2ZmaWNlLlxuLy9cbi8vIFRPRE86IEZpZ3VyZSBvdXQgdGhlIEBhdC1yb290IG9yZ2FuaXphdGlvbiBoZXJlLiBUaGVcbi8vICAgICAgICBjb21waWxhdGlvbiBpcyBhIGJpdCB3b25reS5cbi8vL1xuXG4vKlxuICAgIDEuIFRoYW5rcyB0byBzdWItcGl4ZWxzIGFuZCBob3cgdGhleSByZW5kZXIgdGhpcyBjYXVzZWQgc29tZSBuYXN0eVxuICAgICAgICBibHVyLiBFdyEgV2hhdCBvbmUgY2FuIGRvIGlzIHN0YXJ0IHRvIGFkZCBzdWItcGl4ZWxzIGluIGFsb25nXG4gICAgICAgIHdpdGggdGhlIFwiZW1cIiAob3IgcmVtLCBvciBwb2ludHMsIG9yIPCfp4A7IGl0IGRvZXNuJ3QgcmVhbGx5XG4gICAgICAgIG1hdHRlcikuIFRoaXMgaXMgc3ViLXBpeGVsIHB1c2hpbmcgc28gSSBqdXN0IHVzZWQgbXkgZXllIG9uXG4gICAgICAgIGEgbG93LXJleiBtb25pdG9yIGFuZCBnb3QgaXQgYXMgY2xvc2UgYXMgSSBjb3VsZC4gQmVjYXVzZVxuICAgICAgICBgY2FsY2Agd2FzIHVzZXMgdGhpcyB3aWxsIGJlIGhhbmRsZWQgb24gdGhlIERPTSBpbnN0ZWFkIG9mXG4gICAgICAgIGR1cmluZyB0aGUgU0NTUyBjb21waWxhdGlvbiB3aGljaCBzaG91bGQgZ2l2ZSB0aGUgcmVuZGVyaW5nXG4gICAgICAgIGVuZ2luZSB0aGUgYmVzdCBjaGFuY2UgdG8gbWFrZSB0aGUgY29ycmVjdCBkZWNpc2lvbi5cbiAgICAyLiBUaGlzIGlzIHRvIHN1cHBvcnQgdGhlIHRleHQgd2VpZ2h0IGNoYW5naW5nIGZyb20gdGhlIGxhYmVsXG4gICAgICAgIGNoYW5naW5nIHdlaWdodHMgYXMgd2Ugd2FudCB0byBhbmltYXRlIHRoaXMgY2hhbmdlIGluc3RlYWRcbiAgICAgICAgb2YgYSBzbmFwcGluZyBjaGFuZ2UuXG4gICAgMy4gVGhpcyBsYXJnZSBiaXQgb2YgY2xhc3NlcyBpcyB0byBpZGVudGlmeSBpZiBhIHByZWZpeCBpcyBhdHRhY2hlZFxuICAgICAgICB0byB0aGUgaW5wdXQgc28gdGhhdCB3ZSBjYW4gbW92ZSB0aGUgbGFiZWwgYmV0dGVyLlxuICAgIDQuIE1hdGVyaWFsIGhhcyB0aGlzIHNldCB0byAxMzMuMzMzJSBiZWNhdXNlIHRoZXkgc2NhbGUgdGhlIGxhYmVsLlxuICAgICAgICBXZSdyZSBjaGFuZ2luZyB0aGF0IHNjYWxlIHNvIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBzaXplIG9mIGl0LlxuKi9cblxuQG1peGluIHhwby1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIElOUFVUIFNUWUxFXG4gIG1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LWlucHV0IHtcbiAgICAkX2xhYmVsLXRvcDogLTI0cHg7XG4gICAgJF9mb3JtRmllbGQtbWFyZ2luVG9wOiAyNHB4O1xuICAgICRfZGVmYXVsdEZvcm1GaWVsZFdyYXBwZXItdG9wOiAtMTJweDtcbiAgICAkX2RlZmF1bHRGb3JtRmllbGRXcmFwcGVyLWxlZnQ6IDlweDtcbiAgICAkX2Zvcm0tZmllbGQtYm9yZGVyUmFkaXVzOiAycHg7XG4gICAgJF9mb3JtRmllbGQtc3VmZml4UHJlZml4LW1hcmdpbjogNnB4O1xuICAgICRfZm9ybUZpZWxkLWljb24tc2l6ZTogMTZweDtcbiAgICAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplOiAyMHB4O1xuICAgICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1sb2FkZXItLXNpemU6IDI0cHg7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgIG1hcmdpbi10b3A6ICRfZm9ybUZpZWxkLW1hcmdpblRvcDtcblxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElucHV0IGRlZmF1bHQgYmVoYXZpb3JcbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgIC8vIE9ubHkgcGxhY2Vob2xkZXJcbiAgICAgICYubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgbGVmdDogJF9kZWZhdWx0Rm9ybUZpZWxkV3JhcHBlci1sZWZ0O1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgIHRvcDogJF9kZWZhdWx0Rm9ybUZpZWxkV3JhcHBlci10b3A7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1c2VkIG9yIHdpdGggdmFsdWVcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6ICRfbGFiZWwtdG9wO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOyAvL1RoaXMgc2l6ZSBpbiAxOHB4IGJlY2F1c2UgdGhlIGRlZmF1bHQgbGFiZWwgd2l0aCBzY2FsZSgwLjc1KVxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5LFxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAkX2lubmVySW5wdXQtbGVmdFBhZGRpbmc6IDAuMjVlbTtcbiAgICAgICRfaW5uZXJJbnB1dC1yaWdodFBhZGRpbmc6IDAuMjVlbTtcbiAgICAgICRfaW5wdXQtYm9yZGVyQ29sb3ItLWZvY3VzZWQ6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG5cbiAgICAgIC8vIFNldHMgdGhlIGJvcmRlciBjb2xvciB3aGVuIGludmFsaWRcbiAgICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1jb2xvci0tZXJyb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5uZ3gtRm9ybUZpZWxkLS1pbmxpbmUge1xuICAgICAgICAmLFxuICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAubWF0LWhpbnQge1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1lcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBCb3JkZXJsZXNzXG4gICAgICAvLyBUaGlzIGNsYXNzIGhhcyB0aGUgb2xkIGZvcm1hdCwgd2UncmUgbm90IHVwZGF0aW5nIG5vdyBiZWNhdXNlIGl0IG1pZ2h0IGJlaW5nXG4gICAgICAvLyB1c2VkIGluIHNldmVyYWwgYXBwbGljYXRpb25zXG4gICAgICAmLm5neC1Gb3JtRmllbGQtLWJvcmRlcmxlc3Mge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJFTU9WQUxTXG4gICAgICAvLyBSZW1vdmVzIHRoZSB1bmRlcmxpbmVcbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWwpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ibGFjaztcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgaGVpZ2h0OiAkX2Zvcm1GaWVsZC1pY29uLXNpemU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICRfZm9ybUZpZWxkLWljb24tc2l6ZTtcbiAgICAgICAgICB3aWR0aDogJF9mb3JtRmllbGQtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLnhwby1CdXN5TG9hZGVyIHtcbiAgICAgICAgICB3aWR0aDogJF9mb3JtRmllbGQtc3VmZml4UHJlZml4LWxvYWRlci0tc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtcHJlZml4IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1tYXJnaW47XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1tYXJnaW47XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAubWF0LWljb24gKyAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogNnB4ICR4cG8tY29udGVudFNwYWNpbmcvMjtcbiAgICAgICAgICByZXNpemU6IG5vbmU7XG5cbiAgICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMTAwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MCAhaW1wb3J0YW50OyAvLyBUaGUgcmVhc29uIG9mIHRoZSAhaW1wb3J0YW50IGlzIHRoZSBibHVlIGNvbG9yIG9uIGZvY3VzXG4gICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7IC8vVGhpcyBzaXplIGluIDIwcHggYmVjYXVzZSB0aGUgZGVmYXVsdCBsYWJlbCB3aXRoIHNjYWxlKDAuNzUpXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICBtYXQtbGFiZWwge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICB0b3A6ICRfbGFiZWwtdG9wO1xuICAgIH1cbiAgfVxuXG4gIC8vIFhQTyBjdXN0b20gQ29tcG9uZW50cy9EaXJlY3RpdmVzXG4gIC54cG8tTGFiZWwtLXdyYXAge1xuICAgIC5tYXQtY2hlY2tib3gtbGF5b3V0LFxuICAgIC5tYXQtcmFkaW8tbGFiZWwge1xuICAgICAgd2hpdGUtc3BhY2U6IHVuc2V0O1xuICAgIH1cbiAgfVxuXG4gIC54cG8tRm9ybS0taW5saW5lIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLm1hdC1idXR0b24tYmFzZSxcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAsXG4gICAgLm1hdC1mb3JtLWZpZWxkLFxuICAgIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dDpub3QoLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmID4gLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBUaGUgb3ZlcnJpZGVzIGluIG9yZGVyIGZvciB0aGUgSW5wdXQgdG8gbWF0Y2ggdGhlIGRlc2lnblxuLy9cbi8vIEFzIGEgbm90ZTogVGhpcyBpcyBqdXN0IGZvciBJbnB1dHMuIE1vc3Qgb2YgdGhlIHN0eWxpbmdcbi8vICAgZm9yIGlucHV0cyBpcyBhY3R1YWxseSBoYW5kbGVkIG9uIHRoZSBGb3JtIEZpZWxkLlxuLy9cbi8vIEFkZGl0aW9uYWwgTm90ZTogUGxlYXNlIGNvbnRpbnVlIHRvIHVzZSBFTXMgZm9yIHNpemluZy5cbi8vICAgVGhpcyBhbGxvd3MgdGhlIGlucHV0cyB0byBiZSBzY2FsZWQgb3V0c2lkZSBvZiB0aGVcbi8vICAgY29tcG9uZW50cyBhcm91bmQgaXQuIFRoaXMgaXMgd2hhdCBNYXRlcmlhbCBkb2VzIGFuZFxuLy8gICBpdCBoYXMgYmVlbiBrZXB0IGZ1bmN0aW9uaW5nIGJ5IGtlZXBpbmcgdGhlIHRyZW5kLlxuLy9cbi8vIEBhdXRob3IgICAgUGV0ZXIgUmFtc2luZyA8cGV0ZXIucmFtc2luZ0B4cG8uY29tPlxuLy8vXG5cbkBtaXhpbiB4cG8taW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUpO1xuXG4gIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogJHhwby1ncmV5LS05MDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAwLjEzNzVlbTtcblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBUaGUgY29kZSB0byBtYWtlIHRoZSBiYXNlIE1hdGVyaWFsIE1lbnVzIG1ha2UgQnJhZCBoYXBweVxuLy9cbi8vIC4uLmFuZCBNYXJpbywgdG9vLlxuLy9cbi8vIEBhdXRob3IgICAgUGV0ZXIgUmFtc2luZyA8cGV0ZXIucmFtc2luZ0B4cG8uY29tPlxuLy9cbi8vL1xuXG4vKlxuICAgIDEuIFRocmV3IGEgYGRpdmAgdG8gc3RhcnQgdGhpcyBvZmYgdG8gZ2V0IHRoZSBzY29yZSB0byAwMDExIGluIG9yZGVyXG4gICAgICAgIHRvIGJlYXQgTWF0ZXJpYWxzIDAwMTAuIE13YWhhaGFoYS5cbiAgICAyLiBUaGlzIGRpc2FibGVzIHRoZSBjYXJldCBvbiBhbnl0aGluZyBidXQgdGhlIGZpcnN0IG1lbnUgd2hlbiB0aGVyZVxuICAgICAgICBhcmUgbmVzdGVkIG1lbnVzLiBUaGlzIGlzIHNsaWdodGx5IGZyYWdpbGUgYnV0IHNhZGx5IE1hdGVyaWFsXG4gICAgICAgIGRvZXNuJ3QgZ2l2ZSB1cyBtdWNoIG9mIGEgY2hvaWNlIGhlcmUuIFdlIGtub3cgdGhlIGZpcnN0IHBhbmVsXG4gICAgICAgIGlzIHRoZSBzZWNvbmQgY2hpbGQgb2YgdGhlIG92ZXJsYXkgYGRpdmAgc28gd2UgZ2V0IHRoZSBzZWNvbmRcbiAgICAgICAgd2l0aCBgbnRoLW9mLXR5cGUoMilgIHdoaWNoIGdldHMgdGhlIHNlY29uZCBgZGl2YC4uLnRoZW4gYWRkXG4gICAgICAgIGA6bm90KClgIGFuZCB5b3Ugbm93IGdldCBcImV2ZXJ5dGhpbmcgdGhhdCBpc24ndCB0aGUgc2Vjb25kIGRpdi5cbiAgICAzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGZpcnN0IGFuZCBsYXN0IG1lbnUgaXRlbXMgaGF2ZSBzcGFjZSBhZGRlZFxuICAgICAgICBhcm91bmQgdGhlbS4gVGhlIGNhcmV0cyBuZWVkIHRvIHJlc3BlY3QgdGhhdCBhbmQgYmVjYXVzZSB0aGVcbiAgICAgICAgYXJlYSByb3VuZCB0aGUgYnV0dG9ucyBuZWVkcyB0byBhY2NlcHQgdGhlIGhvdmVyIHN0YXRlIHRoaXNcbiAgICAgICAgdGhlc2UgbmVlZCB0byBiZSBtYW51YWxseSBtb3ZlZC4gQWxsIG90aGVyIGNhcmV0cyBhcmUganVzdFxuICAgICAgICBtb3ZlZCA1MCUgd2hvbGVzYWxlLlxuICAgIDQuIFRoYW5rcyB0byB0aGUgcmVkdWNlZCBwYWRkaW5nIHdlIG5lZWQgdG8gbW92ZSB0aGUgc3VibWVudSB0cmlnZ2VyXG4gICAgICAgIGljb24gb3ZlciBqdXN0IGEgYml0LlxuKi9cblxuQG1peGluIHhwby1tZW51LXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtbWVudS10aGVtZSgkdGhlbWUpO1xuXG4gIGRpdi5tYXQtbWVudS1wYW5lbCB7XG4gICAgLy8gIzFcbiAgICAkX2NhcmV0LXNpemU6IDAuNGVtO1xuICAgICRfbWVudS1oZWlnaHQ6IDEuNzVlbTtcbiAgICAkX3RvcEJvdHRvbS1wYWRkaW5nOiAwLjVlbTtcblxuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAtMXB4IC0xcHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjQpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBtaW4taGVpZ2h0OiB1bnNldDsgLy8gb3ZlcnJpZGluZyBtYXRlcmlhbCdzIDY0cHhcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAubWF0LW1lbnUtY29udGVudDpub3QoOmVtcHR5KSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC5tYXQtbWVudS1pdGVtIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTcwMDtcbiAgICAgIGhlaWdodDogJF9tZW51LWhlaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkX21lbnUtaGVpZ2h0O1xuICAgICAgcGFkZGluZzogMCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTQwMDtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgJi1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtN3B4OyAvLyAjNFxuICAgICAgfVxuICAgIH1cblxuICAgIGEubWF0LW1lbnUtaXRlbSxcbiAgICBhLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gICAgYS5tYXQtbWVudS1pdGVtOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAubWF0LWRpdmlkZXIge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vICMyXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94Om5vdCg6bnRoLW9mLXR5cGUoMikpIHtcbiAgICAubWF0LW1lbnUtcGFuZWw6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tbXVsdGktc2VsZWN0LXRoZW1lKCR0aGVtZSkge1xuICAvL1xuICAvLyBNVUxUSSBTRUxFQ1QgRk9STSBGSUVMRFxuICAvL1xuICAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtdHlwZS14cG8tbXVsdGktc2VsZWN0IHtcbiAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgIC8vXG4gICAgLy8gU3R5bGVzIGhlcmUgYXBwbHkgdG8gZGVmYXVsdCBhcHBlYXJhbmNlIGBsZWdhY3lgXG4gICAgLy8gYW5kIHRvIGZsb2F0IGxhYmVsIGBhbHdheXNgXG4gICAgLy9cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCB7XG4gICAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG5cbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A7XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgICRfZm9ybUZpZWxkLWluZml4LWJvcmRlclJhZGl1czogMnB4O1xuICAgICAgICAgICAgJF9mb3JtRmllbGQtaW5maXgtdlBhZGRpbmc6IDJweDtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJF9mb3JtRmllbGQtaW5maXgtYm9yZGVyUmFkaXVzO1xuICAgICAgICAgICAgcGFkZGluZzogJF9mb3JtRmllbGQtaW5maXgtdlBhZGRpbmcgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICAgICAgJF9mb3JtRmllbGQtbGFiZWxXcmFwcGVyLXRvcDogLTQzcHg7XG5cbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICAgIHRvcDogJF9mb3JtRmllbGQtbGFiZWxXcmFwcGVyLXRvcDtcblxuICAgICAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaGlkZXMgdGhlIGZvcm0tZmllbGQgdW5kZXJsaW5lIERPTSBlbGVtZW50XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAubWF0LWVycm9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICAgICRfaWNvbi1mb250U2l6ZTogMjBweDtcblxuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAkX2ljb24tZm9udFNpemU7XG4gICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL1xuICAgICAgLy8gRm9jdXNlZCBzdGF0ZVxuICAgICAgLy9cbiAgICAgICYubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWZsZXggLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsYWNrO1xuXG4gICAgICAgIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy9cbiAgICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgICAvL1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1mbGV4IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIE1VTFRJIFNFTEVDVCBQQU5FTFxuICAvL1xuICAubWF0LXNlbGVjdC1wYW5lbC54cG8tU2VsZWN0LXBhbmVsLnhwby1TZWxlY3QtcGFuZWxNdWx0aXBsZS54cG8tTXVsdGlTZWxlY3QtcGFuZWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tYmxhY2s7XG4gICAgbWFyZ2luLXRvcDogMjZweDtcbiAgICBcbiAgICAubWF0LW9wdGlvbiAubWF0LW9wdGlvbi10ZXh0IHtcblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgJF9pY29uLW1hcmdpblJpZ2h0OiA2cHg7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2ljb24tbWFyZ2luUmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gb3ZlcnJpZGVzIHRoZSBjaGVja2JveCBpbmRldGVybWluYXRlIHN0eWxlcyBmb3JcbiAgICAvLyBzZWxlY3QgYWxsIG9wdGlvblxuICAgIC5tYXQtb3B0aW9uLnhwby1NdWx0aVNlbGVjdEFsbE9wdGlvbiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgIGJhY2tncm91bmQ6ICR4cG8td2hpdGU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWJsYWNrO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgICRfY2hlY2tib3gtYWZ0ZXItYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgICRfY2hlY2tib3gtYWZ0ZXItdG9wOiAzcHg7XG4gICAgICAgICRfY2hlY2tib3gtYWZ0ZXItbGVmdDogM3B4O1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICR4cG8tYmxhY2s7XG4gICAgICAgIGJvcmRlcjogJF9jaGVja2JveC1hZnRlci1ib3JkZXItd2lkdGggc29saWQgJHhwby1ibGFjaztcbiAgICAgICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgbGVmdDogJF9jaGVja2JveC1hZnRlci1sZWZ0O1xuICAgICAgICB0b3A6ICRfY2hlY2tib3gtYWZ0ZXItdG9wO1xuICAgICAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gTVVMVEkgU0VMRUNUIFRSSUdHRVJcbiAgLy9cbiAgLnhwby1NdWx0aVNlbGVjdFRyaWdnZXIgLm1hdC1jaGlwLWxpc3QgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuQG1peGluIHNuYWNrYmFyLS13aWR0aC0tYnJlYWtwb2ludCgpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLy8gdGFibGV0IGxhbmRzY2FwZVxuICAgIG1pbi13aWR0aDogODB2dztcbiAgICBtYXgtaGVpZ2h0OiA0MHZoO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC8vIHRhYmxldCBwb3J0cmFpdFxuICAgIG1pbi13aWR0aDogNjB2dztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiA0MHZoO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAvLyBkZXNrdG9wXG4gICAgbWluLXdpZHRoOiA0MHZ3O1xuICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gIH1cbn1cblxuQG1peGluIHNuYWNrQmFyLS1iYWNrZ3JvdW5kKCRuYW1lLCAkYmFja2dyb3VuZC1jb2xvcikge1xuICAmLS0jeyRuYW1lfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIHNuYWNrQmFyLS10ZXh0LS1jb2xvcigkbmFtZSwgJGNvbG9yKSB7XG4gICYtLSN7JG5hbWV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgLnhwby1MaW5rIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzbmFja0Jhci0tY2xvc2UtLWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcbiAgJi0tI3skbmFtZX0gJi1jbG9zZUJ1dHRvbiB7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG5AbWl4aW4geHBvLXNuYWNrLWJhci10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xuXG4gIHNuYWNrLWJhci1jb250YWluZXIubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgICRfc25hY2tCYXItYm9yZGVyUmFkaXVzOiAycHg7XG5cbiAgICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXG4gICAgYmFja2dyb3VuZDogJHhwby13aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkX3NuYWNrQmFyLWJvcmRlclJhZGl1cztcbiAgICBjb2xvcjogJHhwby1mb250Q29sb3ItLXByaW1hcnk7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaW5jbHVkZSBzbmFja2Jhci0td2lkdGgtLWJyZWFrcG9pbnQoKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogJHhwby1jb250ZW50U3BhY2luZyAqIDI7XG4gIH1cbn1cblxuQG1peGluIHhwby10YWJsZS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSk7XG5cbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTsgLy8gVE9ETzogZm9yIGFsbCBvZiB0aGVzZSB2YXJpYWJsZXMsIGl0IHNob3VsZCBjb21lIGZyb20gdGhlIHBhbGV0dGVcbiAgJF90YWJsZS1zcGFjaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgJF90YWJsZS1ib3JkZXJDb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICRfdGFibGUtYm9yZGVyOiAxcHggc29saWQgJF90YWJsZS1ib3JkZXJDb2xvcjtcbiAgJF9mb290ZXItYmFja2dyb3VuZENvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHhwby1ncmV5LS03MDAsICR4cG8tZ3JleS0tMjAwKTtcbiAgJF9oZWFkZXItZ3JvdXBCYWNrZ3JvdW5kQ29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTkwMCwgJHhwby1ncmV5LS0yMDApO1xuICAkX2hlYWRlci1iYWNrZ3JvdW5kQ29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTcwMCwgJHhwby1ncmV5LS04MCk7XG4gICRfaGVhZGVyLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgd2hpdGUsICR4cG8tZ3JleS0tOTAwKTtcblxuICAvLyBXcmFwcGluZyBhbGwgc3R5bGVzIGFyb3VuZCBgLm1hdC10YWJsZWAgdG8gaW5jcmVhc2Ugc3BlY2lmaWNpdHkgc29cbiAgLy8gdGhlc2Ugc3R5bGVzIHRha2UgcGVyc2lzdGFuY2Ugb3ZlciBtYXRlcmlhbCdzXG4gIC5tYXQtdGFibGUge1xuICAgIGJvcmRlcjogJF90YWJsZS1ib3JkZXI7XG5cbiAgICB0ci5tYXQtaGVhZGVyLXJvdyxcbiAgICB0ci5tYXQtZm9vdGVyLXJvdyxcbiAgICB0ci5tYXQtcm93IHtcbiAgICAgIGhlaWdodDogJG5neC10YWJsZS1yb3ctaGVpZ2h0O1xuICAgIH1cblxuICAgIG1hdC1oZWFkZXItcm93Lm1hdC1oZWFkZXItcm93LFxuICAgIG1hdC1mb290ZXItcm93Lm1hdC1mb290ZXItcm93LFxuICAgIG1hdC1yb3cubWF0LXJvdyB7XG4gICAgICBtaW4taGVpZ2h0OiAkbmd4LXRhYmxlLXJvdy1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyIEJvdHRvbSBlbGVtZW50c1xuICAgIG1hdC1yb3cubWF0LXJvdyxcbiAgICBtYXQtaGVhZGVyLXJvdy5tYXQtaGVhZGVyLXJvdyxcbiAgICBtYXQtZm9vdGVyLXJvdy5tYXQtZm9vdGVyLXJvdyxcbiAgICB0aC5tYXQtaGVhZGVyLWNlbGwsXG4gICAgdGQubWF0LWNlbGwsXG4gICAgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRfdGFibGUtYm9yZGVyQ29sb3I7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGJvcmRlciBib3R0b20gY29sb3IgZnJvbSBsYXN0IHJvdyB0byBhdm9pZCBkb3VibGUgYm9yZGVyXG4gICAgbWF0LXJvdy5tYXQtcm93Omxhc3QtY2hpbGQsXG4gICAgbWF0LWZvb3Rlci1yb3cubWF0LWZvb3Rlci1yb3c6bGFzdC1jaGlsZCxcbiAgICB0ci5tYXQtcm93Omxhc3QtY2hpbGQgPiAubWF0LWNlbGwge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLm1hdC1jZWxsIHtcbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICA+IC54cG8tSWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFsbCBDZWxsc1xuICAgIHRoLm1hdC1oZWFkZXItY2VsbCxcbiAgICB0ZC5tYXQtY2VsbCxcbiAgICB0ZC5tYXQtZm9vdGVyLWNlbGwsXG4gICAgbWF0LWNlbGwubWF0LWNlbGwsXG4gICAgbWF0LWhlYWRlci1jZWxsLm1hdC1oZWFkZXItY2VsbCxcbiAgICBtYXQtZm9vdGVyLWNlbGwubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICYsXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAvLyBuZWVkZWQgdG8gb3ZlcnJpZGUgbWF0ZXJpYWwncyBzdHlsZXNcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkX3RhYmxlLXNwYWNpbmc7XG4gICAgICB9XG5cbiAgICAgICYsXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIC8vIG5lZWRlZCB0byBvdmVycmlkZSBtYXRlcmlhbCdzIHN0eWxlc1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkX3RhYmxlLXNwYWNpbmc7XG4gICAgICB9XG5cbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgIH1cblxuICAgIC8vIEhlYWRlciByb3dzXG4gICAgdHIubWF0LWhlYWRlci1yb3csXG4gICAgbWF0LWhlYWRlci1yb3cubWF0LWhlYWRlci1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9oZWFkZXItYmFja2dyb3VuZENvbG9yO1xuICAgICAgYm94LXNoYWRvdzogMCA0cHggLTJweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICAgICAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgICAgIGNvbG9yOiAkX2hlYWRlci1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvb3RlciBSb3dzXG4gICAgdHIubWF0LWZvb3Rlci1yb3csXG4gICAgbWF0LWZvb3Rlci1yb3cubWF0LWZvb3Rlci1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9mb290ZXItYmFja2dyb3VuZENvbG9yO1xuXG4gICAgICAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2VsbCB7XG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICA+IC54cG8tSWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFhwbyBDdXN0b20gQ2xhc3NcbiAgLnhwby1NYXRUYWJsZSB7XG4gICAgLy8gQ29sdW1uIEdyb3VwXG4gICAgJi0td2l0aENvbHVtbkdyb3VwIHtcbiAgICAgIC8vIFByaW1hcnkgaGVhZGVyXG4gICAgICB0ci5tYXQtaGVhZGVyLXJvdzpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9oZWFkZXItZ3JvdXBCYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICAgICAgdGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXVzYWJsZSBDbGFzc2VzXG4gICAgJi0tYm9yZGVyUmlnaHQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkX3RhYmxlLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmLS1ib3JkZXJMZWZ0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkX3RhYmxlLWJvcmRlcjtcbiAgICB9XG5cbiAgICAvLyBDZWxsIENsYXNzZXNcbiAgICAmLWNlbGwge1xuICAgICAgJi0tdGV4dEFsaWduUmlnaHQge1xuICAgICAgICAmLm1hdC1oZWFkZXItY2VsbCxcbiAgICAgICAgJi5tYXQtY2VsbCxcbiAgICAgICAgJi5tYXQtZm9vdGVyLWNlbGwge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tdGV4dEFsaWduQ2VudGVyIHtcbiAgICAgICAgJi5tYXQtaGVhZGVyLWNlbGwsXG4gICAgICAgICYubWF0LWNlbGwsXG4gICAgICAgICYubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby10YWJzLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtdGFicy10aGVtZSgkdGhlbWUpO1xuICAkX3RhYi1ib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgJF90YWItaW5rLXRoaWNrbmVzczogNHB4O1xuICAkX3RhYi1pbm5lclBhZGRpbmc6IDEycHg7XG4gIC8vIFBhZ2luZyBhcnJvd3MgYXJlIGRyYXduIHdpdGggYW4gZW1wdHkgZGl2IHRoYXQgaGFzIDJweCBib3JkZXIuIFVzaW5nIHRoZSB0cmFuc2xhdGUgb3B0aW9uIGl0IGFjaGlldmVzXG4gIC8vIHRoZSBhcnJvdyBmb3JtLiBUaGlzIHZhbHVlIHJlcHJlc2VudHMgdGhlIGhlaWdodC93aWR0aCBvZiB0aGUgZGl2IGFuZCBpcyBhcHBsaWVkIGluIG9yZGVyIHRvIG1ha2UgdGhlXG4gIC8vIGFycm93IDE2cHggeCAxNnB4IGFzIGl0IGlzIGRlZmluZWQgaW4gdGhlIFVYIHNwZWNzLlxuICAkX3RhYi1uYXYtc2l6ZTogMTEuMzRweDtcbiAgJF90YWItd2lkZXItaGVhZGVyLXBhZ2luYXRpb24tbWF4LXdpZHRoOiA0MHB4O1xuICAkX3RhYi1oZWFkZXItcGFnaW5hdGlvbi1tYXgtd2lkdGg6IDI0cHg7XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgYm9yZGVyOiAkX3RhYi1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBtYXgtd2lkdGg6ICRfdGFiLWhlYWRlci1wYWdpbmF0aW9uLW1heC13aWR0aDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjlweDtcblxuICAgIDpub3QoLnhwby1UYWJzLXdpZGVOYXYpICYge1xuICAgICAgbWF4LXdpZHRoOiAkX3RhYi1oZWFkZXItcGFnaW5hdGlvbi1tYXgtd2lkdGg7XG4gICAgfVxuXG4gICAgLnhwby1UYWJzLXdpZGVOYXYgJiB7XG4gICAgICBtYXgtd2lkdGg6ICRfdGFiLXdpZGVyLWhlYWRlci1wYWdpbmF0aW9uLW1heC13aWR0aDtcbiAgICAgIHdpZHRoOiA1NXB4O1xuICAgIH1cblxuICAgIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgICAgaGVpZ2h0OiAkX3RhYi1uYXYtc2l6ZTtcbiAgICAgIHdpZHRoOiAkX3RhYi1uYXYtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAubWF0LXRhYi1sYWJlbC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgc3BhbiB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC54cG8taWNvbixcbiAgICAubWF0LWljb24sXG4gICAgLm1hdC1jaGlwLFxuICAgIC5tYXQtY2hpcC1saXN0LXdyYXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cblxuICAgIC5tYXQtY2hpcC54cG8tQ2hpcC0tc21hbGwge1xuICAgICAgJF9tYXRDaGlwLWZvbnQtc2l6ZTogMTFweDtcblxuICAgICAgQGluY2x1ZGUgY2hpcC1zaXplKCR4cG8tbGluZUhlaWdodC0tc21hbGwsICRfbWF0Q2hpcC1mb250LXNpemUpO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBAaW5jbHVkZSBpY29uLXNpemUoJF9tYXRDaGlwLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC54cG8taWNvbjpmaXJzdC1jaGlsZCxcbiAgICAmID4gLm1hdC1pY29uOmZpcnN0LWNoaWxkLFxuICAgICYgPiAubWF0LWNoaXA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRfdGFiLWlubmVyUGFkZGluZztcbiAgICB9XG5cbiAgICAmID4gLm1hdC1pY29uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhcixcbiAgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICB9XG5cbiAgLm1hdC10YWItbGlzdCAubWF0LXRhYi1sYWJlbHMgLm1hdC10YWItbGFiZWwubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWxzIC5tYXQtdGFiLWxhYmVsLFxuICAubWF0LXRhYi1uYXYtYmFyIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgIGhlaWdodDogJG5neC10YWItaGVhZGVyLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJG5neC10YWItaGVhZGVyLWhlaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGluZyBtYXRlcmlhbCdzIDAuNiBvcGFjaXR5XG4gICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDQgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJi5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHhwby1mb250Q29sb3ItLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICB9XG4gIH1cblxuICAubWF0LXRhYi1saW5rIHtcbiAgICAvLyBSZW1vdmluZyB1bmRlcmxpbmUgYXBwbGllZCB0byBhIHRhZ3MgZnJvbSB0aGUgeHBvLWJ1dHRvbiBzdHlsZXNcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIE1vc3Qgb2Ygb3VyIGNhc2VzIHdlIGhhdmUgdGhlIHRhYiBjb250ZW50cyB0YWtlIHVwIHRoZSB3aG9sZSBzcGFjZSBvZiB0aGUgdmlldyxcbiAgICogIGl0IGhhcmQgdG8gYWNjZXNzIHRoaXMgc2VsZWN0b3Igd2l0aCB2aWV3IGVuY2Fwc3VsYXRpb24gb24sIHNvIHdlIGNhbiBkZWZhdWx0IGl0IHRvXG4gICAqICAxMDAlLiB0aGUgdXNlciBjYW4gYWx3YXlzIHdyYXAgdGhlIHRhYnMgaW4gYSB3cmFwcGVyIGFuZCBkaWN0YXRlIHRoZSBoZWlnaHQgdGhlcmUuXG4gICAqL1xuXG4gIC5tYXQtdGFiLWJvZHktd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnhwby1QcmltYXJ5VGFicyxcbiAgLnhwby1BbHRlcm5hdGVUYWJzIHtcbiAgICAmLm1hdC10YWItbmF2LWJhcixcbiAgICAmLm1hdC10YWItZ3JvdXAge1xuICAgICAgLm1hdC1pbmstYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZpbmcgdGhlIGJvcmRlciBib3R0b20gdG8gcHV0IGl0IG9uIHRoZSBsYWJlbCBzbyB0aGF0IHRhYiBjYW4gb3ZlcmxhcCB0aGUgYm9yZGVyXG4gICAgICAvLyBib3R0b20gd2hlbiBzZWxlY3RlZFxuICAgICAgJixcbiAgICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtdGFiLWxpc3Qge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkX3RhYi1ib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxcbiAgICAgIC5tYXQtdGFiLWxpbmtzIC5tYXQtdGFiLWxpbmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBib3JkZXItbGVmdDogJF90YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItdG9wOiAkX3RhYi1ib3JkZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwICRfdGFiLWlubmVyUGFkZGluZztcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogJF90YWItYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAkX3RhYi1pbmstdGhpY2tuZXNzIHNvbGlkICR4cG8tYmx1ZS0tODUwO1xuICAgICAgICAgIG92ZXJmbG93OiBpbmhlcml0O1xuXG4gICAgICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkX3RhYi1pbmstdGhpY2tuZXNzIC0gMTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWNoaXAge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS02MDA7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT3ZlcmxhcHBpbmcgdGhlIGJvcmRlciBib3R0b20gb2YgdGhlIHRhYi1saXN0XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLm1hdC10YWItZGlzYWJsZWQpOm5vdCgubWF0LXRhYi1sYWJlbC1hY3RpdmUpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAkX3RhYi1pbmstdGhpY2tuZXNzIHNvbGlkICR4cG8tYmx1ZS0tMzUwO1xuXG4gICAgICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkX3RhYi1pbmstdGhpY2tuZXNzIC0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBPdmVycmlkZXMgZm9yIHRoZSBTZWxlY3Rcbi8vXG4vLyBAYXV0aG9yOiBQZXRlciBSYW1zaW5nIDxwZXRlci5yYW1zaW5nQHhwby5jb20+XG4vLy9cblxuLypcbiAgICAxLiBNb3ZlcyB0aGUgc2VsZWN0IHRvIHNpdCByaWdodCB1bmRlciB0aGUgdHJpZ2dlclxuKi9cblxuQG1peGluIHhwby1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgJF9vcHRpb24taGVpZ2h0OiAyLjNlbTtcbiAgJF9zZWxlY3QtdHdvTGluZXNEZXNjcmlwdGlvbi1mb250U2l6ZTogMTFweDtcbiAgJF9zZWxlY3RQYW5lbC1tYXJnaW5MZWZ0OiA3cHg7XG4gICRfc2VsZWN0UGFuZWwtbWFyZ2luVG9wOiAyNHB4O1xuICAkX3NlbGVjdElucHV0LXBhZGRpbmctLXZlcnRpY2FsOiA2cHg7XG4gICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM6IDJweDtcbiAgJF9mb3JtLWZpZWxkLXN1ZmZpeC1sb2FkZXItLXNpemU6IDI0cHg7XG4gICRfZm9ybS1maWVsZC1zdWZmaXgtcmlnaHQ6IDI0cHg7XG4gICRfZm9ybUZpZWxkLWljb24tc2l6ZTogMTZweDtcbiAgJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTogMjBweDtcblxuICAvLyBTZWxlY3Qgd2l0aCBpY29uIGFuZCB0d28gbGluZXNcbiAgLnhwby1TZWxlY3QtdHdvTGluZXNDb250YWluZXIge1xuICAgIGNvbG9yOiAkeHBvLWdyZXktLTExMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgJjpudGgtb2YtdHlwZSgxKSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgZm9udC1zaXplOiAkX3NlbGVjdC10d29MaW5lc0Rlc2NyaXB0aW9uLWZvbnRTaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMTJweDtcbiAgICAgICAgcGFkZGluZy10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC54cG8tU2VsZWN0LXR3b0NvbHVtbnNDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBmbGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gIC54cG8tU2VsZWN0LXBhbmVsIHtcbiAgICAmLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBtYXJnaW4tbGVmdDogJF9zZWxlY3RQYW5lbC1tYXJnaW5MZWZ0OyAvLyAjMVxuICAgICAgbWFyZ2luLXRvcDogJF9zZWxlY3RQYW5lbC1tYXJnaW5Ub3A7IC8vICMxXG5cbiAgICAgIC5tYXQtb3B0aW9uLFxuICAgICAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgICAgIGhlaWdodDogJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ7IC8vIFRoZSBzdHlsZSBpcyBvdmVyd3JpdHRlbiBieSBkZWZhdWx0IG90aGVyd2lzZVxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyAvLyBUaGUgc3R5bGUgaXMgb3ZlcndyaXR0ZW4gYnkgZGVmYXVsdCBvdGhlcndpc2VcbiAgICAgICAgcGFkZGluZzogJF9zZWxlY3RJbnB1dC1wYWRkaW5nLS12ZXJ0aWNhbCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnhwby1PcHRpb24ge1xuICAgICAgICAgICYtLXR3b0xpbmVzIHtcbiAgICAgICAgICAgIGhlaWdodDogJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzO1xuXG4gICAgICAgICAgICAubWF0LW9wdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWhpZGVEaXZpZGVyOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxcbiAgICAgICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtc2VsZWN0ZWQge1xuICAgICAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG5cbiAgICAgICAgICAmLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAvLyBGb3Igc29tZSBzdHJhbmdlIHJlYXNvbiBBbmd1bGFyIE1hdGVyaWFsIGRvZXNuJ3QgaGF2ZSB0aGVzZSBzdHlsZXNcbiAgICAgICAgICAgICAgLy8gZm9yIHRoZSBkaXNhYmxlZCBvcHRpb25zLCB3ZSBhcmUgYWRkaW5nIGl0IHRvIGVuc3VyZSB0aGF0IHdlIGNhbiBzaG93XG4gICAgICAgICAgICAgIC8vIHNlbGVjdGVkIG9wdGlvbnMgYXMgZGlzYWJsZWQuXG4gICAgICAgICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jaGVja2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgLy8gVGhlc2UgdmFsdWVzIGFyZSBuZWVkZWQgdG8gb3ZlcnJpZGUgdGhlIG9uZXMgc2V0IGJ5IE1hdGVyaWFsLFxuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGVtIGJlY2F1c2Ugd2UgY2hhbmdlZCB0aGUgYm9yZGVyLXdpdGguXG4gICAgICAgICAgICBsZWZ0OiAycHg7XG4gICAgICAgICAgICB0b3A6IDMuNHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBcHBseWluZyB0aGVzZSBzdHlsZXMgb3V0c2lkZSB0aGUgbWF0LW9wdGlvbiBibG9jaywgc28gaXRcbiAgICAgIC8vIGRvZXNuJ3QgbWl4dXAgb3IgYnJlYWsgdGhlIG1hdC1vcHRpb25cbiAgICAgIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgICAgfVxuXG4gICAgICAubWF0LW9wdGdyb3VwIHtcbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgICAgICAgIGJvcmRlci10b3A6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZhbHNcbiAgLm1hdC1vcHRpb24gLm1hdC1vcHRpb24tcmlwcGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQge1xuICAgICYubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3Qge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSxcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAgICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7IC8vIFRPRE86IHZhcmlhYmxlcyB1c2luZyB0aGlzIHNob3VsZCBjb21lIGZyb20gcGFsZXR0ZVxuICAgICAgICAkX2lucHV0LWJvcmRlckNvbG9yLS1mb2N1c2VkOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuICAgICAgICAkX2lucHV0LWJvcmRlckNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgICAgJF9sYWJlbFZlcnRpY2FsTW92ZW1lbnQ6IC0xLjNlbTtcbiAgICAgICAgJF9wcmVmaXhTdWZmaXhJY29uLXNpemU6IDJlbTtcbiAgICAgICAgJF9pbnB1dC1wbGFjZWhvbGRlclRleHRDb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR4cG8tZ3JleS0tMTAwLCAkeHBvLWdyZXktLTQwMCk7XG4gICAgICAgICRfaW5wdXQtbGFiZWxUZXh0Q29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTUwLCAkeHBvLWdyZXktLTcwMCk7XG4gICAgICAgICRfc2VsZWN0LWZvcm1GaWVsZFdyYXBwZXItdG9wOiAtNDNweDtcbiAgICAgICAgJF9mb3JtRmllbGQtbWFyZ2luVG9wOiAyNHB4O1xuXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICAgIG1hcmdpbi10b3A6ICRfZm9ybUZpZWxkLW1hcmdpblRvcDtcblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIsXG4gICAgICAgICAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWwgLm1hdC1zZWxlY3Q6bm90KC5tYXQtc2VsZWN0LWVtcHR5KSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRvcDogMDtcblxuICAgICAgICAgIC8vIFNldHMgdGhlIGZvY3VzZWQgYm9yZGVyIGNvbG9yIGFuZCBib3ggc2hhZG93XG4gICAgICAgICAgQGF0LXJvb3QgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRfaW5wdXQtYm9yZGVyQ29sb3ItLWZvY3VzZWQgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTZXRzIHRoZSBib3JkZXIgY29sb3Igd2hlbiBpbnZhbGlkXG4gICAgICAgICAgQGF0LXJvb3QgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1jb2xvci0tZXJyb3IgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJF9pbnB1dC1ib3JkZXJDb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM7XG4gICAgICAgICAgICBwYWRkaW5nOiAkX3NlbGVjdElucHV0LXBhZGRpbmctLXZlcnRpY2FsICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICAgICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdC1zZWxlY3QtdmFsdWUtdGV4dCB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAgICAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5uZ3gtRm9ybUZpZWxkLS1pbmxpbmUgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgIHRvcDogJF9zZWxlY3QtZm9ybUZpZWxkV3JhcHBlci10b3A7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yO1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyAvLyAjNFxuICAgICAgICAgIHRyYW5zZm9ybTogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgYXN0ZXJpc2sgdGhhdCBpcyBhZGRlZCBpZiBgcmVxdWlyZWRgIGlzIGFkZGVkIHRvIHRoZSBpbnB1dFxuICAgICAgICAubWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1jb2xvci0tZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWhpbnQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZXJyb3Ige1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtcHJlZml4IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuM2VtO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICAgaGVpZ2h0OiAkX2Zvcm0tZmllbGQtc3VmZml4LWxvYWRlci0tc2l6ZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6ICRfZm9ybS1maWVsZC1zdWZmaXgtcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6ICRfZm9ybS1maWVsZC1zdWZmaXgtbG9hZGVyLS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQm9yZGVybGVzc1xuICAgICAgICAmLm5neC1Gb3JtRmllbGQtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJFTU9WQUxTXG4gICAgICAgIC8vIFJlbW92ZXMgdGhlIHVuZGVybGluZVxuICAgICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIHJlbW92ZSB0aGUgZXh0cmEgd2lkdGggYW5kIHRoZSB0cmFuc2xhdGVYIGlubGluZSBzdHlsZXMsXG4gIC8vIGFkZGVkIGJ5IEFuZ3VsYXIgTWF0ZXJpYWwgdXNpbmcgdmFyaWFibGVzIFNFTEVDVF9QQU5FTF9QQURESU5HX1hcbiAgLy8gYW5kIFNFTEVDVF9NVUxUSVBMRV9QQU5FTF9QQURESU5HX1guXG4gIC8vIEFsdGhvdWdoIFNFTEVDVF9NVUxUSVBMRV9QQU5FTF9QQURESU5HX1ggaXMgcHVibGljIGFuZCByaWdodCBub3cgd2UgY291bGRcbiAgLy8gb3ZlcnJpZGUgaXQsIGl0J3MgbWFya2VkIGFzIGRlcHJlY2F0ZWQsIHNvIHdlIGFyZSBhcHBseWluZyB0aGlzIHNvbHV0aW9uIHRoYXRcbiAgLy8gd2lsbCBiZSB2YWxpZCB1cCB0byBBbmd1bGFyMTIuXG4gIC54cG8tU2VsZWN0LXBhbmVsLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlICsgMThweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC54cG8tU2VsZWN0LXBhbmVsTXVsdGlwbGUubWF0LXNlbGVjdC1wYW5lbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMxcHg7XG4gIH1cbn1cblxuQG1peGluIHhwby1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lKSB7XG4gICRfdGh1bWJTaXplOiAyMnB4O1xuXG4gIG1hdC1zbGlkZS10b2dnbGUubWF0LXNsaWRlLXRvZ2dsZSB7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS13aWR0aC1zbWFsbDogMzJweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWhlaWdodC1zbWFsbDogMTZweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsOiAxNHB4O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtdGh1bWI6IDIwcHg7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1iYXItd2l0aDogMzhweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci11bnNlbGVjdGVkLWRpc2FibGVkOiAjZTJlMmU0O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ6ICNjN2RlYzY7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1iYWNrZ3JvdW5kLWJhcjogI2NkZThjYztcblxuICAgICYubWF0LWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IHVuc2V0O1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrZWQge1xuICAgICAgb3BhY2l0eTogdW5zZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZC5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfbWF0U2xpZGVUb2dnbGUtYmFja2dyb3VuZC1iYXI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci1jaGVja2VkLWRpc2FibGVkO1xuICAgIH1cblxuICAgICYubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItdW5zZWxlY3RlZC1kaXNhYmxlZDtcblxuICAgICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItdW5zZWxlY3RlZC1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZWVuLS00NTA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZWVuLS02MDA7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICBoZWlnaHQ6ICRfdGh1bWJTaXplO1xuICAgICAgd2lkdGg6ICRfbWF0U2xpZGVUb2dnbGUtYmFyLXdpdGg7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZC5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwLjFweDtcblxuICAgICAgJi5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgaGVpZ2h0OiAkX3RodW1iU2l6ZTtcbiAgICAgICAgd2lkdGg6ICRfdGh1bWJTaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHhwby1ncmV5LS0zMDA7XG4gICAgfVxuXG4gICAgJi54cG8tU2xpZGVUb2dnbGUtLXNtYWxsIHtcbiAgICAgICYubWF0LWNoZWNrZWQubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfbWF0U2xpZGVUb2dnbGUtYmFja2dyb3VuZC1iYXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLXVuc2VsZWN0ZWQtZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmVlbi0tNDUwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZWVuLS02MDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgIGhlaWdodDogJF9tYXRTbGlkZVRvZ2dsZS1oZWlnaHQtc21hbGw7XG4gICAgICAgIHdpZHRoOiAkX21hdFNsaWRlVG9nZ2xlLXdpZHRoLXNtYWxsO1xuICAgICAgfVxuXG4gICAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6ICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw7XG4gICAgICAgIHdpZHRoOiAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsO1xuICAgICAgfVxuXG4gICAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICAgIGhlaWdodDogJF9tYXRTbGlkZVRvZ2dsZS10aHVtYi1zbWFsbDtcbiAgICAgICAgd2lkdGg6ICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gT3ZlcnJpZGVzIGZvciB0aGUgcmFkaW8gYnV0dG9uXG4vLy9cblxuQG1peGluIHhwby1yYWRpby10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXJhZGlvLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICAubWF0LXJhZGlvLWNvbnRhaW5lciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG5cbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyaztcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItd2lkdGg6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICB9XG5cbiAgICAmLm1hdC1yYWRpby1jaGVja2VkIHtcbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjI1KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAubWF0LXJhZGlvLWxhYmVsIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8vXG4gICAgLy8gUmVtb3ZhbHNcbiAgICAvLy9cbiAgICAubWF0LXJpcHBsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWhlYWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAueHBvLUhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBib3JkZXItYm90dG9tOiBpZigkaXMtZGFyay10aGVtZSwgMnB4LCAxcHgpIHNvbGlkIGlmKCRpcy1kYXJrLXRoZW1lLCB0cmFuc3BhcmVudCwgJHhwby1ncmV5LS0zMDApO1xuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG4ueHBvLUZvb3RlciB7XG4gICRfZm9vdGVyTGluay1tYXJnaW46IDAgMTJweDtcblxuICB3aWR0aDogMTAwJTtcblxuICAmLW5hdmJhciB7XG4gICAgJiA+IDpudGgtY2hpbGQobikge1xuICAgICAgbWFyZ2luOiAkX2Zvb3RlckxpbmstbWFyZ2luO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1ib2xkLXRleHQge1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGRlcjtcbiAgfVxuICAvLyBUT0RPOiBkZWZpbmUgaGVyZSBzdHlsZXMgZm9yIHN0aWNreSB3aGVuIGZvb3RlciBjb21wb25lbnQgaXMgZGVmaW5lZCB0byBiZSBwYXJ0IG9mIHRoZSBzaGVsbCBjb21wb25lbnRcbiAgJi0tc3RpY2t5IHtcbiAgICBib3R0b206IDA7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgfVxufVxuXG5AbWl4aW4geHBvLXNwZWNpYWwtc3RhdHVzLWluZGljYXRvcnMtdGhlbWUoJHRoZW1lKSB7XG4gIC54cG8tU3NpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgIC54cG8tSWNvbiB7XG4gICAgICB3aWR0aDogYXV0bztcblxuICAgICAgLm1hdC1pY29uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLXRhYi1kcmF3ZXItdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gVE9ET1xuICAvLyAueHBvLVRhYkRyYXdlciB7XG5cbiAgLy8gICAmLW5hdixcbiAgLy8gICAmLWJ1dHRvbiAge1xuICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgLy8gICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbkBtaXhpbiB4cG8tdHJheS10aGVtZSgkdGhlbWUpIHtcbiAgLm1hdC1kcmF3ZXIueHBvLVRyYXlEcmF3ZXIge1xuICAgICRfdHJheURyYXdlci0tbWluV2lkdGg6IDUwMHB4O1xuICAgICRfdHJheURyYXdlci0tbWF4V2lkdGg6IDEwJTtcbiAgICAkX3RyYXlEcmF3ZXItLW1heFdpZHRoRXh0ZW5kZWQ6IDkwJTtcbiAgICAkX3RyYXlEcmF3ZXItc2hhZG93LS12T2Zmc2V0OiAzcHg7XG4gICAgJF90cmF5RHJhd2VyLXNoYWRvdy0tYmx1cjogOXB4O1xuICAgICRfdHJheURyYXdlci1zaGFkb3ctLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuXG4gICAgbWF4LXdpZHRoOiAkX3RyYXlEcmF3ZXItLW1heFdpZHRoO1xuICAgIG1pbi13aWR0aDogJF90cmF5RHJhd2VyLS1taW5XaWR0aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAkX3RyYXlEcmF3ZXItLW1heFdpZHRoO1xuXG4gICAgJi54cG8tVHJheURyYXdlci0tZXh0ZW5kZWQge1xuICAgICAgbWF4LXdpZHRoOiAkX3RyYXlEcmF3ZXItLW1heFdpZHRoRXh0ZW5kZWQ7XG4gICAgICB3aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aEV4dGVuZGVkO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpLFxuICAgICYubWF0LWRyYXdlci1zaWRlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgYm94LXNoYWRvdzogMCAkX3RyYXlEcmF3ZXItc2hhZG93LS12T2Zmc2V0ICRfdHJheURyYXdlci1zaGFkb3ctLWJsdXIgMCAkX3RyYXlEcmF3ZXItc2hhZG93LS1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWRyYXdlci1pbm5lci1jb250YWluZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbi8vL1xuLy8gT3ZlcnJpZGVzIGZvciB0aGUgdG9vbHRpcFxuLy8vXG5cbiR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW46IDE4cHg7XG4keHBvLXRvb2x0aXAtYXJyb3ctd2lkdGg6IDEwcHg7XG4keHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0OiAxMHB4O1xuXG5AbWl4aW4geHBvLXRvb2x0aXAtdGhlbWUoJHRoZW1lKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIC5tYXQtdG9vbHRpcC1wYW5lbCB7XG4gICAgICAubWF0LXRvb2x0aXAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgLy8gbmVlZCB0byB1c2Ugc2FtZSBmb250LXNpemUgZm9yIGxpbmUtaGVpZ2h0XG4gICAgICAgIC8vIHRvIGtlZXAgdGhlIHNwYWNlcyBiZXR3ZWVuIHRleHQgYW5kIGJveCBib3JkZXIgYXMgdGhleSBhcmUgaW4gdGhlIHZpc3VhbCBzcGVjc1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1tZWRpdW07XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICAgIH1cblxuICAgICAgLy9cbiAgICAgIC8vIFNlbGVjdG9ycyB0byBmaW5kIHRoZSBlbGVtZW50IHRoYXQgaXMgcG9zaXRpb25lZCBcImFib3ZlXCIsIFwiYmVsb3dcIiwgXCJiZWZvcmVcIiwgXCJhZnRlclwiLCBcInJpZ2h0XCIgb3IgXCJsZWZ0XCJcbiAgICAgIC8vIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBiZXR3ZWVuIHRoZSAubWF0LXRvb2x0aXAtcGFuZWwgYW5kIC5tYXQtdG9vbHRpcCBpbmxpbmUgc3R5bGVcbiAgICAgIC8vXG5cbiAgICAgIC8vIFRoaXMgc2VsZWN0b3IgbGV0IHVzIGZpbmQgdGhlIHBvc2l0aW9uIFwiYWJvdmVcIlxuICAgICAgJltzdHlsZSo9J2JvdHRvbSddW3N0eWxlKj0nbGVmdCddIHtcblxuICAgICAgICAvLyBTZWxlY3RvciB0byBmaW5kIHRoZSBlbGVtZW50IHBvc2l0aW9uZWQ6IFwiYWJvdmVcIlxuICAgICAgICAubWF0LXRvb2x0aXBbc3R5bGUqPSdjZW50ZXInXVtzdHlsZSo9J2JvdHRvbSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luO1xuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBzZWxlY3RvciBsZXQgdXMgZmluZCB0aGUgcG9zaXRpb25zIFwiYmVsb3dcIiwgXCJhZnRlclwiLCBcInJpZ2h0XCJcbiAgICAgICZbc3R5bGUqPSd0b3AnXVtzdHlsZSo9J2xlZnQnXSB7XG5cbiAgICAgICAgLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiBcImJlbG93XCJcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSd0b3AnXSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHhwby10b29sdGlwLWFycm93LW1hcmdpbjtcblxuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vIFNlbGVjdG9yIHRvIGZpbmQgdGhlIGVsZW1lbnQgcG9zaXRpb25lZDogIFwiYWZ0ZXJcIiwgXCJyaWdodFwiXG4gICAgICAgIC5tYXQtdG9vbHRpcFtzdHlsZSo9J2NlbnRlciddW3N0eWxlKj0nbGVmdCddIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogJHhwby10b29sdGlwLWFycm93LW1hcmdpbjtcblxuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiBcImJlZm9yZVwiLCBcImxlZnRcIlxuICAgICAgJltzdHlsZSo9J3RvcCddW3N0eWxlKj0ncmlnaHQnXSB7XG5cbiAgICAgICAgLy9wb3NpdGlvbiBiZWZvcmUsIGxlZnRcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSdyaWdodCddIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW47XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuQG1peGluIHhwby1lcnJvci1wYWdlcy10aGVtZSgkdGhlbWUpIHtcbiAgLnhwby1FcnJvclBhZ2VzIHsgICAgXG4gICAgJi10aXRsZSB7XG4gICAgICAkX3RpdGxlLWZvbnRTaXplOiAyOHB4O1xuXG4gICAgICAvLyBUT0RPOiB0aGlzIHdpbGwgYmUgbm90IG5lY2Vzc2FyeSB3aGVuIFtOR1hMVEwtMTMyNV0gaXMgcmVzb2x2ZWRcbiAgICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAkX3RpdGxlLWZvbnRTaXplO1xuICAgICAgfVxuICAgIH1cbiAgICAmLWRlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1leHRyYUxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLWFjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZyAqIDI7XG4gICAgICBnYXA6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cbiAgICAmLWZvb3RlciB7XG4gICAgICAkX2Zvb3Rlci13aWR0aDogMTAwJTtcbiAgICAgIFxuICAgICAgd2lkdGg6ICRfZm9vdGVyLXdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiB4cG8tbWF0ZXJpYWwtaW50ZXJuYWwtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIHhwby1tYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuXG4gIEBpbmNsdWRlIHhwby1jYXJkLXRoZW1lKCR0aGVtZSk7XG5cbiAgQGluY2x1ZGUgeHBvLWJ1dHRvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tYXBwbGljYXRpb25Td2l0Y2hlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tYnV0dG9uLXRvZ2dsZS1ncm91cC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWNoaXBzLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1kYXRlUGlja2VyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1kYXRlLXJhbmdlLXBpY2tlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZGlhbG9nLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1saW5rLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1tdWx0aS1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXJhZGlvLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tc3BlY2lhbC1zdGF0dXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdHJheS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdG9vbHRpcC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZXJyb3ItcGFnZXMtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBYcG8gQ29tcG9uZW50IHRoZW1lc1xuICBAaW5jbHVkZSB4cG8tZG93bmxvYWQtYnV0dG9uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1oZWFkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXRhYi1kcmF3ZXItdGhlbWUoJHRoZW1lKTtcblxuICAvLyBNYXRlcmlhbCB0aGVtZXMgdGhhdCBkb250IG5lZWQgb3ZlcnJpZGVzIHNpbmNlIHRoZXkgbWF0Y2ggb3VyIHN0eWxlIGFscmVhZHlcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIFRPRE86IHJlbW92ZSB3aGVuIHhwby10aGVtZWRcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LWRpYWxvZy1jb250YWluZXIubWF0LWRpYWxvZy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gVE9ETzogaW50cm9kdWNlIG91ciBncmV5cz9cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuXG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7IC8vIFRPRE86IHRoaXMgaXMgd2hhdCBpcyBzcGVjJ2Qgb3V0IGZvciBkYXJrIGNhcmQgYmFja2dyb3VuZHMsIGJ1dCBpdHMgbm90IGluIG91ciB2YXIgbGlzdFxuXG4keHBvLWJsdWUtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICAzMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICA0MDA6ICR4cG8tYmx1ZS0tNDAwLFxuICA5MDA6ICR4cG8tYmx1ZS0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby13aGl0ZSxcbiAgICAzMDA6ICR4cG8td2hpdGUsXG4gICAgNDAwOiAkeHBvLXdoaXRlLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbiR4cG8tZ3JleS1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1ncmV5LS0xMDAsXG4gIDMwMDogJHhwby1ncmV5LS0zMDAsXG4gIDQwMDogJHhwby1ncmV5LS00MDAsXG4gIDkwMDogJHhwby1ncmV5LS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICAzMDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDQwMDogJHhwby1ncmV5LS05MDAsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuJHhwby1yZWQtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tcmVkLS0xMDAsXG4gIDMwMDogJHhwby1yZWQtLTMwMCxcbiAgNDAwOiAkeHBvLXJlZC0tNDAwLFxuICA5MDA6ICR4cG8tcmVkLS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLXdoaXRlLFxuICAgIDMwMDogJHhwby13aGl0ZSxcbiAgICA0MDA6ICR4cG8td2hpdGUsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4keHBvLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICR4cG8td2hpdGUsXG4gIGJhY2tncm91bmQ6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5LFxuICBob3ZlcjogcmdiYShibGFjaywgMC4wNCksXG4gIGNhcmQ6IHdoaXRlLFxuICBkaWFsb2c6IHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogYmxhY2ssXG4gIGFwcC1iYXI6ICR4cG8tZ3JleS0tOTUwLFxuICBiYWNrZ3JvdW5kOiAkeHBvLWdyZXktLTEwMDAsXG4gIGhvdmVyOiByZ2JhKHdoaXRlLCAwLjA0KSxcbiAgY2FyZDogJHhwby1ncmV5LS05NTAsXG4gIGRpYWxvZzogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4xMiksXG4gIHJhaXNlZC1idXR0b246ICR4cG8tZ3JleS0tOTUwLFxuICBmb2N1c2VkLWJ1dHRvbjogJGxpZ2h0LWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDkwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IGJsYWNrLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCA3MDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogYmxhY2ssXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiR4cG8tbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiBibGFjayxcbiAgZGl2aWRlcjogJGRhcmstZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAkZGFyay1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogYmxhY2ssXG4gIGhpbnQtdGV4dDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6IHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW1pbjogcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6IHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogd2hpdGUsXG4gIGRpdmlkZXI6ICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMyksXG4gIGRpc2FibGVkLXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246IGJsYWNrLFxuICBoaW50LXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiB3aGl0ZSxcbiAgaWNvbnM6IHdoaXRlLFxuICB0ZXh0OiB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogd2hpdGUsXG4gIHNsaWRlci1vZmY6IHJnYmEod2hpdGUsIDAuMyksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKHdoaXRlLCAwLjMpLFxuKTtcblxuLy8gVE9ETzogaW50cm9kdWNlIG91ciBncmV5cz9cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuXG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7IC8vIFRPRE86IHRoaXMgaXMgd2hhdCBpcyBzcGVjJ2Qgb3V0IGZvciBkYXJrIGNhcmQgYmFja2dyb3VuZHMsIGJ1dCBpdHMgbm90IGluIG91ciB2YXIgbGlzdFxuXG4keHBvLWJsdWUtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICAzMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICA0MDA6ICR4cG8tYmx1ZS0tNDAwLFxuICA5MDA6ICR4cG8tYmx1ZS0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby13aGl0ZSxcbiAgICAzMDA6ICR4cG8td2hpdGUsXG4gICAgNDAwOiAkeHBvLXdoaXRlLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbiR4cG8tZ3JleS1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1ncmV5LS0xMDAsXG4gIDMwMDogJHhwby1ncmV5LS0zMDAsXG4gIDQwMDogJHhwby1ncmV5LS00MDAsXG4gIDkwMDogJHhwby1ncmV5LS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICAzMDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDQwMDogJHhwby1ncmV5LS05MDAsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuJHhwby1yZWQtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tcmVkLS0xMDAsXG4gIDMwMDogJHhwby1yZWQtLTMwMCxcbiAgNDAwOiAkeHBvLXJlZC0tNDAwLFxuICA5MDA6ICR4cG8tcmVkLS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLXdoaXRlLFxuICAgIDMwMDogJHhwby13aGl0ZSxcbiAgICA0MDA6ICR4cG8td2hpdGUsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4keHBvLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICR4cG8td2hpdGUsXG4gIGJhY2tncm91bmQ6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5LFxuICBob3ZlcjogcmdiYShibGFjaywgMC4wNCksXG4gIGNhcmQ6IHdoaXRlLFxuICBkaWFsb2c6IHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogYmxhY2ssXG4gIGFwcC1iYXI6ICR4cG8tZ3JleS0tOTUwLFxuICBiYWNrZ3JvdW5kOiAkeHBvLWdyZXktLTEwMDAsXG4gIGhvdmVyOiByZ2JhKHdoaXRlLCAwLjA0KSxcbiAgY2FyZDogJHhwby1ncmV5LS05NTAsXG4gIGRpYWxvZzogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4xMiksXG4gIHJhaXNlZC1idXR0b246ICR4cG8tZ3JleS0tOTUwLFxuICBmb2N1c2VkLWJ1dHRvbjogJGxpZ2h0LWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDkwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IGJsYWNrLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCA3MDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogYmxhY2ssXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiR4cG8tbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiBibGFjayxcbiAgZGl2aWRlcjogJGRhcmstZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAkZGFyay1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogYmxhY2ssXG4gIGhpbnQtdGV4dDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6IHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW1pbjogcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6IHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogd2hpdGUsXG4gIGRpdmlkZXI6ICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMyksXG4gIGRpc2FibGVkLXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246IGJsYWNrLFxuICBoaW50LXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiB3aGl0ZSxcbiAgaWNvbnM6IHdoaXRlLFxuICB0ZXh0OiB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogd2hpdGUsXG4gIHNsaWRlci1vZmY6IHJnYmEod2hpdGUsIDAuMyksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKHdoaXRlLCAwLjMpLFxuKTtcblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBsaWdodCB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG5AZnVuY3Rpb24geHBvLWxpZ2h0LXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2Fybikge1xuICBAcmV0dXJuIChwcmltYXJ5OiAkcHJpbWFyeSwgYWNjZW50OiAkYWNjZW50LCB3YXJuOiAkd2FybiwgaXMtZGFyazogZmFsc2UsIGZvcmVncm91bmQ6ICR4cG8tbGlnaHQtdGhlbWUtZm9yZWdyb3VuZCwgYmFja2dyb3VuZDogJHhwby1saWdodC10aGVtZS1iYWNrZ3JvdW5kKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgZGFyayB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG5AZnVuY3Rpb24geHBvLWRhcmstdGhlbWUoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSB7XG4gIEByZXR1cm4gKHByaW1hcnk6ICRwcmltYXJ5LCBhY2NlbnQ6ICRhY2NlbnQsIHdhcm46ICR3YXJuLCBpcy1kYXJrOiB0cnVlLCBmb3JlZ3JvdW5kOiAkeHBvLWRhcmstdGhlbWUtZm9yZWdyb3VuZCwgYmFja2dyb3VuZDogJHhwby1kYXJrLXRoZW1lLWJhY2tncm91bmQpO1xufVxuXG5cbi8vIEluY2x1ZGUgbm9uLXRoZW1lIHN0eWxlcyBmb3IgY29yZS5cbkBpbmNsdWRlIHhwby1tYXQtY29yZSgpO1xuXG4vLyBEZWZpbmUgYSB0aGVtZS5cbiRwcmltYXJ5OiBtYXQtcGFsZXR0ZSgkeHBvLWJsdWUtcGFsZXR0ZSwgNDAwLCAzMDAsIDkwMCk7XG4kYWNjZW50OiBtYXQtcGFsZXR0ZSgkeHBvLWdyZXktcGFsZXR0ZSwgOTAwLCA0MDAsIDkwMCk7XG4kd2FybjogbWF0LXBhbGV0dGUoJHhwby1yZWQtcGFsZXR0ZSwgNDAwLCAzMDAsIDkwMCk7XG5cbiR0aGVtZTogeHBvLWxpZ2h0LXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2Fybik7XG5cbi8vIEluY2x1ZGUgYWxsIHRoZW1lIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudHMuXG5AaW5jbHVkZSB4cG8tbWF0ZXJpYWwtaW50ZXJuYWwtdGhlbWUoJHRoZW1lKTtcblxuLy8gVEhJUyBJUyBKVVNUIEhFUkUgVU5USUwgV0UgQ0FOIEdFVCBUSEVNIElOIEFSQ1xuLy8gVE9ETzogQW55dGhpbmcgaGVyZSBzaG91bGQgYmUgYmFjay1wb3J0ZWQgdG8gQVJDXG4udS1mbGV4LS1maWxsU3BhY2Uge1xuICBmbGV4OiAxO1xufVxuXG4udS1mbGV4LS1zcGFjZUJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4iLCIvLyBGaWxlIGZvciB3aGljaCBhbGwgaW1wb3J0cyBhcmUgcmVzb2x2ZWQgYW5kIGJ1bmRsZWQuIFRoaXMgaXMgdGhlIGVudHJ5LXBvaW50IGZvclxuLy8gdGhlIGBAYW5ndWxhci9tYXRlcmlhbGAgdGhlbWluZyBTYXNzIGJ1bmRsZS4gU2VlIGAvL3NyYy9tYXRlcmlhbDp0aGVtaW5nX2J1bmRsZWAuXG5cbi8vIEltcG9ydCBhbGwgdGhlIHRoZW1pbmcgZnVuY3Rpb25hbGl0eS5cbi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheTogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wOiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBjZGstb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWQgc28gd2UgbmVlZCB0byBmYWxsIGJhY2tcbiAgICAgIC8vIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLiBOb3RlIHRoYXQgd2UgY2FuJ3QgdXNlIHRoZSBgY2RrLWhpZ2gtY29udHJhc3RgXG4gICAgICAvLyBtaXhpbiwgYmVjYXVzZSB3ZSBjYW4ndCBub3JtYWxpemUgdGhlIGltcG9ydCBwYXRoIHRvIHRoZSBfYTExeS5zY3NzIGJvdGggZm9yIHRoZVxuICAgICAgLy8gc291cmNlIGFuZCB3aGVuIHRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZC4gU2VlICMxMDkwOC5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYsICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuXG5AbWl4aW4gY2RrLWExMXkge1xuICAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcblxuICAgIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxuICAgIG91dGxpbmU6IDA7XG5cbiAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHMgKHNlZSAjOTA0OSkuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuXG4vLy8gRW1pdHMgdGhlIG1peGluJ3MgY29udGVudCBuZXN0ZWQgdW5kZXIgYCRzZWxlY3Rvci1jb250ZXh0YCBpZiBgJHNlbGVjdG9yLWNvbnRleHRgXG4vLy8gaXMgbm9uLWVtcHR5LlxuLy8vIEBwYXJhbSBzZWxlY3Rvci1jb250ZXh0IFRoZSBzZWxlY3RvciB1bmRlciB3aGljaCB0byBuZXN0IHRoZSBtaXhpbidzIGNvbnRlbnQuXG5AbWl4aW4gX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICBAaWYgKCRzZWxlY3Rvci1jb250ZXh0ID09ICcnKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JHNlbGVjdG9yLWNvbnRleHR9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIHVzZXJzIGluIGhpZ2ggY29udHJhc3QgbW9kZS4gTm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzXG4vLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8vIGF0dHJpYnV0ZSwgaG93ZXZlciBDaHJvbWUgaGFuZGxlcyBoaWdoIGNvbnRyYXN0IGRpZmZlcmVudGx5LlxuLy8vXG4vLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vLyAgICBgd2hpdGUtb24tYmxhY2tgIG9yIGBibGFjay1vbi13aGl0ZWAuXG4vLy8gQHBhcmFtIGVuY2Fwc3VsYXRpb24gV2hldGhlciB0byBlbWl0IHN0eWxlcyBmb3IgdmlldyBlbmNhcHN1bGF0aW9uLiBWYWx1ZXMgYXJlOlxuLy8vICAgICAqIGBvbmAgLSB3b3JrcyBmb3IgYEVtdWxhdGVkYCwgYE5hdGl2ZWAsIGFuZCBgU2hhZG93RG9tYFxuLy8vICAgICAqIGBvZmZgIC0gd29ya3MgZm9yIGBOb25lYFxuLy8vICAgICAqIGBhbnlgIC0gd29ya3MgZm9yIGFsbCBlbmNhcHN1bGF0aW9uIG1vZGVzIGJ5IGVtaXR0aW5nIHRoZSBDU1MgdHdpY2UgKGRlZmF1bHQpLlxuQG1peGluIGNkay1oaWdoLWNvbnRyYXN0KCR0YXJnZXQ6IGFjdGl2ZSwgJGVuY2Fwc3VsYXRpb246ICdhbnknKSB7XG4gIEBpZiAoJHRhcmdldCAhPSAnYWN0aXZlJyBhbmQgJHRhcmdldCAhPSAnYmxhY2stb24td2hpdGUnIGFuZCAkdGFyZ2V0ICE9ICd3aGl0ZS1vbi1ibGFjaycpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgdmFsdWUgXCIjeyR0YXJnZXR9XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwiYWN0aXZlXCIsIFwiYmxhY2stb24td2hpdGVcIiwgYW5kIFwid2hpdGUtb24tYmxhY2tcIic7XG4gIH1cblxuICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdvZmYnIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnYW55Jykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCBlbmNhcHN1bGF0aW9uIFwiI3skZW5jYXBzdWxhdGlvbn1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJvblwiLCBcIm9mZlwiLCBhbmQgXCJhbnlcIic7XG4gIH1cblxuICAvLyBJZiB0aGUgc2VsZWN0b3IgY29udGV4dCBoYXMgbXVsdGlwbGUgcGFydHMsIHN1Y2ggYXMgYC5zZWN0aW9uLCAucmVnaW9uYCwganVzdCBkb2luZ1xuICAvLyBgLmNkay1oaWdoLWNvbnRyYXN0LXh4eCAjeyZ9YCB3aWxsIG9ubHkgYXBwbHkgdGhlIHBhcmVudCBzZWxlY3RvciB0byB0aGUgZmlyc3QgcGFydCBvZiB0aGVcbiAgLy8gY29udGV4dC4gV2UgYWRkcmVzcyB0aGlzIGJ5IG5lc3RpbmcgdGhlIHNlbGVjdG9yIGNvbnRleHQgdW5kZXIgLmNkay1oaWdoLWNvbnRyYXN0LlxuICBAYXQtcm9vdCB7XG4gICAgJHNlbGVjdG9yLWNvbnRleHQ6ICN7Jn07XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicpIHtcbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IHtcbiAgICAgICAgQGluY2x1ZGUgX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJykge1xuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0gOmhvc3Qge1xuICAgICAgICBAaW5jbHVkZSBfY2RrLW9wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBlbmFibGUgbW9uaXRvcmluZyBhdXRvZmlsbCBzdGF0ZSBvZiB0ZXh0IGZpZWxkcy5cbkBtaXhpbiBjZGstdGV4dC1maWVsZCB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcmVzaXplIGhhbmRsZSBvbiBhdXRvc2l6aW5nIHRleHRhcmVhcywgYmVjYXVzZSB3aGF0ZXZlciBoZWlnaHRcbiAgLy8gdGhlIHVzZXIgcmVzaXplZCB0byB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uY2UgdGhleSBzdGFydCB0eXBpbmcgYWdhaW4uXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gICAgcmVzaXplOiBub25lO1xuICB9XG5cbiAgLy8gVGhpcyBjbGFzcyBpcyB0ZW1wb3JhcmlseSBhcHBsaWVkIHRvIHRoZSB0ZXh0YXJlYSB3aGVuIGl0IGlzIGJlaW5nIG1lYXN1cmVkLiBJdCBpcyBpbW1lZGlhdGVseVxuICAvLyByZW1vdmVkIHdoZW4gbWVhc3VyaW5nIGlzIGNvbXBsZXRlLiBXZSB1c2UgYCFpbXBvcnRhbnRgIHJ1bGVzIGhlcmUgdG8gbWFrZSBzdXJlIHVzZXItc3BlY2lmaWVkXG4gIC8vIHJ1bGVzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgbWVhc3VyZW1lbnQuXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICAgIEBpbmNsdWRlIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU2ltaWxhciB0byB0aGUgYGNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdgIGNsYXNzLCBidXQgb25seSBhcHBsaWVkIG9uIEZpcmVmb3guIFdlIG5lZWRcbiAgLy8gdG8gdXNlIHRoaXMgY2xhc3MsIGJlY2F1c2UgRmlyZWZveCBoYXMgYSBidWcgd2hlcmUgY2hhbmdpbmcgdGhlIGBvdmVyZmxvd2AgYnJlYWtzIHRoZSB1c2VyJ3NcbiAgLy8gYWJpbGl0eSB0byB1bmRvL3JlZG8gd2hhdCB0aGV5IHdlcmUgdHlwaW5nIChzZWUgIzE2NjI5KS4gVGhpcyBjbGFzcyBpcyBvbmx5IHNjb3BlZCB0byBGaXJlZm94LFxuICAvLyBiZWNhdXNlIHRoZSBtZWFzdXJlbWVudHMgdGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSBhZmZlY3RlZCBieSB0aGUgYGhlaWdodDogMGAsIHdoZXJlYXMgb24gb3RoZXJcbiAgLy8gYnJvd3NlcnMgdGhleSBhcmUsIGUuZy4gQ2hyb21lIGRldGVjdHMgbG9uZ2VyIHRleHQgYW5kIElFIGRvZXMndCByZXNpemUgYmFjayB0byBub3JtYWwuXG4gIC8vIElkZW50aWNhbCBpc3N1ZSByZXBvcnQ6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4NFxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICAgIEBpbmNsdWRlIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2Uge1xuICAvLyBIYXZpbmcgMnB4IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2VlbXMgdG8gZml4IGEgYnVnIHdoZXJlIENocm9tZSBnZXRzIGFuIGluY29ycmVjdFxuICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSBmb3IgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsIG9yIHRoZSBhbmltYXRpb25zdGFydFxuICAgIC8vIGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXMsXG4gICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDpcbiAgICAgICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudCArIDEgIWdsb2JhbDtcbn1cblxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcGx5IG1hdGVyaWFsIGRlc2lnbiB0cmVhdG1lbnRzIHRvIGFueSBlbGVtZW50LlxuLy8gTWVkaWEgcXVlcmllc1xuLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogQ2hhbmdlICRtYXQteHNtYWxsIGFuZCAkbWF0LXNtYWxsIHVzYWdlcyB0byByZWx5IG9uIEJyZWFrcG9pbnRPYnNlcnZlcixcbiRtYXQteHNtYWxsOiAnbWF4LXdpZHRoOiA1OTlweCc7XG4kbWF0LXNtYWxsOiAnbWF4LXdpZHRoOiA5NTlweCc7XG5cbi8vIFRPRE86IFJldmlzaXQgYWxsIHotaW5kaWNlcyBiZWZvcmUgYmV0YVxuLy8gei1pbmRleCBtYXN0ZXIgbGlzdFxuXG4kei1pbmRleC1mYWI6IDIwICFkZWZhdWx0O1xuJHotaW5kZXgtZHJhd2VyOiAxMDAgIWRlZmF1bHQ7XG5cbi8vIEdsb2JhbCBjb25zdGFudHNcbiRwaTogMy4xNDE1OTI2NTtcblxuLy8gUGFkZGluZyBiZXR3ZWVuIGlucHV0IHRvZ2dsZXMgYW5kIHRoZWlyIGxhYmVsc1xuJG1hdC10b2dnbGUtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuLy8gV2lkdGggYW5kIGhlaWdodCBvZiBpbnB1dCB0b2dnbGVzXG4kbWF0LXRvZ2dsZS1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLyBFYXNpbmcgQ3VydmVzXG4vLyBUT0RPKGplbGJvdXJuKTogYWxsIG9mIHRoZXNlIG5lZWQgdG8gYmUgcmV2aXNpdGVkXG5cbi8vIFRoZSBkZWZhdWx0IGFuaW1hdGlvbiBjdXJ2ZXMgdXNlZCBieSBtYXRlcmlhbCBkZXNpZ24uXG4kbWF0LWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFkZWZhdWx0O1xuJG1hdC1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSAhZGVmYXVsdDtcblxuJGVhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dDogYWxsICRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1pbi1kdXJhdGlvbjogMzAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW46IGFsbCAkc3dpZnQtZWFzZS1pbi1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbjogNTAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uOiAkZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb24gIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQ6IGFsbCAkc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb24gJHN3aWZ0LWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWxpbmVhci1kdXJhdGlvbjogODBtcyAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWRlZmF1bHQ7XG4kc3dpZnQtbGluZWFyOiBhbGwgJHN3aWZ0LWxpbmVhci1kdXJhdGlvbiAkc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuXG5cbi8vIEEgY29sbGVjdGlvbiBvZiBtaXhpbnMgYW5kIENTUyBjbGFzc2VzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgZWxldmF0aW9uIHRvIGEgbWF0ZXJpYWxcbi8vIGVsZW1lbnQuXG4vLyBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2Vudmlyb25tZW50L2VsZXZhdGlvbi5odG1sXG4vLyBFeGFtcGxlczpcbi8vXG4vL1xuLy8gLm1hdC1mb28ge1xuLy8gICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbigyKTtcbi8vXG4vLyAgICY6YWN0aXZlIHtcbi8vICAgICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbig4KTtcbi8vICAgfVxuLy8gfVxuLy9cbi8vIDxkaXYgaWQ9XCJleHRlcm5hbC1jYXJkXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoyXCI+PHA+U29tZSBjb250ZW50PC9wPjwvZGl2PlxuLy9cbi8vIEZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgZGVzaWduIGJlaGluZCBob3cgZWxldmF0aW9uIGlzIGltcGxlbWVudGVkLCBzZWUgdGhlIGRlc2lnbiBkb2MgYXRcbi8vIGh0dHBzOi8vZ29vLmdsL0txMGs5Wi5cblxuLy8gQ29sb3JzIGZvciB1bWJyYSwgcGVudW1icmEsIGFuZCBhbWJpZW50IHNoYWRvd3MuIEFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYywgZWFjaCBlbGV2YXRpb25cbi8vIGxldmVsIGlzIGNyZWF0ZWQgdXNpbmcgYSBzZXQgb2YgMyBzaGFkb3cgdmFsdWVzLCBvbmUgZm9yIHVtYnJhICh0aGUgc2hhZG93IHJlcHJlc2VudGluZyB0aGVcbi8vIHNwYWNlIGNvbXBsZXRlbHkgb2JzY3VyZWQgYnkgYW4gb2JqZWN0IHJlbGF0aXZlIHRvIGl0cyBsaWdodCBzb3VyY2UpLCBvbmUgZm9yIHBlbnVtYnJhICh0aGVcbi8vIHNwYWNlIHBhcnRpYWxseSBvYnNjdXJlZCBieSBhbiBvYmplY3QpLCBhbmQgb25lIGZvciBhbWJpZW50ICh0aGUgc3BhY2Ugd2hpY2ggY29udGFpbnMgdGhlIG9iamVjdFxuLy8gaXRzZWxmKS4gRm9yIGEgZnVydGhlciBleHBsYW5hdGlvbiBvZiB0aGVzZSB0ZXJtcyBhbmQgdGhlaXIgbWVhbmluZ3MsIHNlZVxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW1icmEsX3BlbnVtYnJhX2FuZF9hbnR1bWJyYS5cblxuLy8gTWFwcyBmb3IgdGhlIGRpZmZlcmVudCBzaGFkb3cgc2V0cyBhbmQgdGhlaXIgdmFsdWVzIHdpdGhpbiBlYWNoIHotc3BhY2UuIFRoZXNlIHZhbHVlcyB3ZXJlXG4vLyBjcmVhdGVkIGJ5IHRha2luZyBhIGZldyByZWZlcmVuY2Ugc2hhZG93IHNldHMgY3JlYXRlZCBieSBHb29nbGUncyBEZXNpZ25lcnMgYW5kIGludGVycG9sYXRpbmdcbi8vIGFsbCBvZiB0aGUgdmFsdWVzIGJldHdlZW4gdGhlbS5cblxuQGZ1bmN0aW9uIF9nZXQtdW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAycHggMXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAzcHggMXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggM3B4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAycHggNHB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA0cHggNXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA1cHggNXB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA1cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNnB4IDZweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDZweCA3cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggN3B4IDhweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDdweCA5cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA4cHggOXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggOHB4IDEwcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA4cHggMTFweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDlweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggOXB4IDEycHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCAxMHB4IDE0cHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAxMXB4IDE0cHggLTdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAxMXB4IDE1cHggLTdweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG5AZnVuY3Rpb24gX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTQpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggMXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDJweCAycHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggM3B4IDRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCA0cHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDVweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggNnB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggN3B4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggOHB4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggOXB4IDEycHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDEwcHggMTRweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggMTFweCAxNXB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCAxMnB4IDE3cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDEzcHggMTlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggMTRweCAyMXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCAxNXB4IDIycHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDE2cHggMjRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggMTdweCAyNnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCAxOHB4IDI4cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDE5cHggMjlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggMjBweCAzMXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAyMXB4IDMzcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDIycHggMzVweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggMjNweCAzNnB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAyNHB4IDM4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjEyKSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMXB4IDNweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAxcHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDFweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggMXB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggMXB4IDE0cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggMXB4IDE4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggMnB4IDE2cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggM3B4IDE0cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggM3B4IDE2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDRweCAxOHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCA0cHggMjBweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggNXB4IDIycHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDVweCAyNHB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCA1cHggMjZweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggNnB4IDI4cHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDZweCAzMHB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA2cHggMzJweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggN3B4IDM0cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDdweCAzNnB4IDZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCA4cHggMzhweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggOHB4IDQwcHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDhweCA0MnB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCA5cHggNDRweCA4cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggOXB4IDQ2cHggOHB4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjtcblxuLy8gVGhlIGRlZmF1bHQgY29sb3IgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBvcGFjaXR5IHNjYWxpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tb3BhY2l0eTogMSAhZGVmYXVsdDtcblxuLy8gUHJlZml4IGZvciBlbGV2YXRpb24tcmVsYXRlZCBzZWxlY3RvcnMuXG4kX21hdC1lbGV2YXRpb24tcHJlZml4OiAnbWF0LWVsZXZhdGlvbi16JztcblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBjc3MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6VmFsdWUuXG4vLyBUaGUgJHpWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQuXG5AbWl4aW4gbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3I6ICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICBAaWYgdHlwZS1vZigkelZhbHVlKSAhPSBudW1iZXIgb3Igbm90IHVuaXRsZXNzKCR6VmFsdWUpIHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlcic7XG4gIH1cbiAgQGlmICR6VmFsdWUgPCAwIG9yICR6VmFsdWUgPiAyNCB7XG4gICAgQGVycm9yICckelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNCc7XG4gIH1cblxuICBib3gtc2hhZG93OiAje21hcC1nZXQoX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtcGVudW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX0sXG4gICAgICAgICAgICAgICN7bWFwLWdldChfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX07XG59XG5cbkBtaXhpbiBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbmZpZywgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRlbGV2YXRpb24tY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGVsZXZhdGlvbik7XG4gICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdDogaWYoJGVsZXZhdGlvbi1jb2xvciA9PSBudWxsLCAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJGVsZXZhdGlvbi1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbigkelZhbHVlLCAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQsICRvcGFjaXR5KTtcbn1cblxuLy8gUmV0dXJucyBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGFzIHRoZSB2YWx1ZSBmb3IgYSB0cmFuc2l0aW9uIHByb3BlcnR5IGZvciBlbGV2YXRpb24uXG4vLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgaXMgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gdHJhbnNpdGlvblxuLy8gbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cbi8vXG4vLyAuZm9vIHtcbi8vICAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCksIG9wYWNpdHkgMTAwbXMgZWFzZTtcbi8vIH1cbkBmdW5jdGlvbiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoXG4gICAgJGR1cmF0aW9uOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICRlYXNpbmc6ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIEByZXR1cm4gYm94LXNoYWRvdyAjeyRkdXJhdGlvbn0gI3skZWFzaW5nfTtcbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBjc3MgcnVsZXMgbmVlZGVkIHRvIGhhdmUgYW4gZWxlbWVudCB0cmFuc2l0aW9uIGJldHdlZW4gZWxldmF0aW9ucy5cbi8vIFRoaXMgbWl4aW4gc2hvdWxkIGJlIGFwcGxpZWQgdG8gZWxlbWVudHMgd2hvc2UgZWxldmF0aW9uIHZhbHVlcyB3aWxsIGNoYW5nZSBkZXBlbmRpbmcgb24gdGhlaXJcbi8vIGNvbnRleHQgKGUuZy4gd2hlbiBhY3RpdmUgb3IgZGlzYWJsZWQpLlxuLy9cbi8vIE5PVEUodHJhdmlza2F1Zm1hbik6IEJvdGggdGhpcyBtaXhpbiBhbmQgdGhlIGFib3ZlIGZ1bmN0aW9uIHVzZSBkZWZhdWx0IHBhcmFtZXRlcnMgc28gdGhleSBjYW5cbi8vIGJlIHVzZWQgaW4gdGhlIHNhbWUgd2F5IGJ5IGNsaWVudHMuXG5AbWl4aW4gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICB0cmFuc2l0aW9uOiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoJGR1cmF0aW9uLCAkZWFzaW5nKTtcbn1cblxuLy8gQ29sb3IgcGFsZXR0ZXMgZnJvbSB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG4vLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29sb3IvXG4vL1xuLy8gQ29udHJhc3QgY29sb3JzIGFyZSBoYXJkLWNvZGVkIGJlY2F1c2UgaXQgaXMgdG9vIGRpZmZpY3VsdCAocHJvYmFibHkgaW1wb3NzaWJsZSkgdG9cbi8vIGNhbGN1bGF0ZSB0aGVtLiBUaGVzZSBjb250cmFzdCBjb2xvcnMgYXJlIHB1bGxlZCBmcm9tIHRoZSBwdWJsaWMgTWF0ZXJpYWwgRGVzaWduIHNwZWMgc3dhdGNoZXMuXG4vLyBXaGlsZSB0aGUgY29udHJhc3QgY29sb3JzIGluIHRoZSBzcGVjIGFyZSBub3QgcHJlc2NyaXB0aXZlLCB3ZSB1c2UgdGhlbSBmb3IgY29udmVuaWVuY2UuXG5cblxuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkZGFyay1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stODctb3BhY2l0eTogcmdiYShibGFjaywgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCByZW5hbWVkIHRvICRsaWdodC1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtODctb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay0xMi1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkbGlnaHQtW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS0xMi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkZGFyay1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTYtb3BhY2l0eTogcmdiYShibGFjaywgMC4wNik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtNi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjA2KTtcblxuJGRhcmstcHJpbWFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KTtcbiRkYXJrLXNlY29uZGFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjU0KTtcbiRkYXJrLWRpc2FibGVkLXRleHQ6IHJnYmEoYmxhY2ssIDAuMzgpO1xuJGRhcmstZGl2aWRlcnM6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGRhcmstZm9jdXNlZDogcmdiYShibGFjaywgMC4xMik7XG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJG1hdC1yZWQ6IChcbiAgNTA6ICNmZmViZWUsXG4gIDEwMDogI2ZmY2RkMixcbiAgMjAwOiAjZWY5YTlhLFxuICAzMDA6ICNlNTczNzMsXG4gIDQwMDogI2VmNTM1MCxcbiAgNTAwOiAjZjQ0MzM2LFxuICA2MDA6ICNlNTM5MzUsXG4gIDcwMDogI2QzMmYyZixcbiAgODAwOiAjYzYyODI4LFxuICA5MDA6ICNiNzFjMWMsXG4gIEExMDA6ICNmZjhhODAsXG4gIEEyMDA6ICNmZjUyNTIsXG4gIEE0MDA6ICNmZjE3NDQsXG4gIEE3MDA6ICNkNTAwMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1waW5rOiAoXG4gIDUwOiAjZmNlNGVjLFxuICAxMDA6ICNmOGJiZDAsXG4gIDIwMDogI2Y0OGZiMSxcbiAgMzAwOiAjZjA2MjkyLFxuICA0MDA6ICNlYzQwN2EsXG4gIDUwMDogI2U5MWU2MyxcbiAgNjAwOiAjZDgxYjYwLFxuICA3MDA6ICNjMjE4NWIsXG4gIDgwMDogI2FkMTQ1NyxcbiAgOTAwOiAjODgwZTRmLFxuICBBMTAwOiAjZmY4MGFiLFxuICBBMjAwOiAjZmY0MDgxLFxuICBBNDAwOiAjZjUwMDU3LFxuICBBNzAwOiAjYzUxMTYyLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcHVycGxlOiAoXG4gIDUwOiAjZjNlNWY1LFxuICAxMDA6ICNlMWJlZTcsXG4gIDIwMDogI2NlOTNkOCxcbiAgMzAwOiAjYmE2OGM4LFxuICA0MDA6ICNhYjQ3YmMsXG4gIDUwMDogIzljMjdiMCxcbiAgNjAwOiAjOGUyNGFhLFxuICA3MDA6ICM3YjFmYTIsXG4gIDgwMDogIzZhMWI5YSxcbiAgOTAwOiAjNGExNDhjLFxuICBBMTAwOiAjZWE4MGZjLFxuICBBMjAwOiAjZTA0MGZiLFxuICBBNDAwOiAjZDUwMGY5LFxuICBBNzAwOiAjYWEwMGZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLXB1cnBsZTogKFxuICA1MDogI2VkZTdmNixcbiAgMTAwOiAjZDFjNGU5LFxuICAyMDA6ICNiMzlkZGIsXG4gIDMwMDogIzk1NzVjZCxcbiAgNDAwOiAjN2U1N2MyLFxuICA1MDA6ICM2NzNhYjcsXG4gIDYwMDogIzVlMzViMSxcbiAgNzAwOiAjNTEyZGE4LFxuICA4MDA6ICM0NTI3YTAsXG4gIDkwMDogIzMxMWI5MixcbiAgQTEwMDogI2IzODhmZixcbiAgQTIwMDogIzdjNGRmZixcbiAgQTQwMDogIzY1MWZmZixcbiAgQTcwMDogIzYyMDBlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtaW5kaWdvOiAoXG4gIDUwOiAjZThlYWY2LFxuICAxMDA6ICNjNWNhZTksXG4gIDIwMDogIzlmYThkYSxcbiAgMzAwOiAjNzk4NmNiLFxuICA0MDA6ICM1YzZiYzAsXG4gIDUwMDogIzNmNTFiNSxcbiAgNjAwOiAjMzk0OWFiLFxuICA3MDA6ICMzMDNmOWYsXG4gIDgwMDogIzI4MzU5MyxcbiAgOTAwOiAjMWEyMzdlLFxuICBBMTAwOiAjOGM5ZWZmLFxuICBBMjAwOiAjNTM2ZGZlLFxuICBBNDAwOiAjM2Q1YWZlLFxuICBBNzAwOiAjMzA0ZmZlLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ibHVlOiAoXG4gIDUwOiAjZTNmMmZkLFxuICAxMDA6ICNiYmRlZmIsXG4gIDIwMDogIzkwY2FmOSxcbiAgMzAwOiAjNjRiNWY2LFxuICA0MDA6ICM0MmE1ZjUsXG4gIDUwMDogIzIxOTZmMyxcbiAgNjAwOiAjMWU4OGU1LFxuICA3MDA6ICMxOTc2ZDIsXG4gIDgwMDogIzE1NjVjMCxcbiAgOTAwOiAjMGQ0N2ExLFxuICBBMTAwOiAjODJiMWZmLFxuICBBMjAwOiAjNDQ4YWZmLFxuICBBNDAwOiAjMjk3OWZmLFxuICBBNzAwOiAjMjk2MmZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtYmx1ZTogKFxuICA1MDogI2UxZjVmZSxcbiAgMTAwOiAjYjNlNWZjLFxuICAyMDA6ICM4MWQ0ZmEsXG4gIDMwMDogIzRmYzNmNyxcbiAgNDAwOiAjMjliNmY2LFxuICA1MDA6ICMwM2E5ZjQsXG4gIDYwMDogIzAzOWJlNSxcbiAgNzAwOiAjMDI4OGQxLFxuICA4MDA6ICMwMjc3YmQsXG4gIDkwMDogIzAxNTc5YixcbiAgQTEwMDogIzgwZDhmZixcbiAgQTIwMDogIzQwYzRmZixcbiAgQTQwMDogIzAwYjBmZixcbiAgQTcwMDogIzAwOTFlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1jeWFuOiAoXG4gIDUwOiAjZTBmN2ZhLFxuICAxMDA6ICNiMmViZjIsXG4gIDIwMDogIzgwZGVlYSxcbiAgMzAwOiAjNGRkMGUxLFxuICA0MDA6ICMyNmM2ZGEsXG4gIDUwMDogIzAwYmNkNCxcbiAgNjAwOiAjMDBhY2MxLFxuICA3MDA6ICMwMDk3YTcsXG4gIDgwMDogIzAwODM4ZixcbiAgOTAwOiAjMDA2MDY0LFxuICBBMTAwOiAjODRmZmZmLFxuICBBMjAwOiAjMThmZmZmLFxuICBBNDAwOiAjMDBlNWZmLFxuICBBNzAwOiAjMDBiOGQ0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtdGVhbDogKFxuICA1MDogI2UwZjJmMSxcbiAgMTAwOiAjYjJkZmRiLFxuICAyMDA6ICM4MGNiYzQsXG4gIDMwMDogIzRkYjZhYyxcbiAgNDAwOiAjMjZhNjlhLFxuICA1MDA6ICMwMDk2ODgsXG4gIDYwMDogIzAwODk3YixcbiAgNzAwOiAjMDA3OTZiLFxuICA4MDA6ICMwMDY5NWMsXG4gIDkwMDogIzAwNGQ0MCxcbiAgQTEwMDogI2E3ZmZlYixcbiAgQTIwMDogIzY0ZmZkYSxcbiAgQTQwMDogIzFkZTliNixcbiAgQTcwMDogIzAwYmZhNSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZWVuOiAoXG4gIDUwOiAjZThmNWU5LFxuICAxMDA6ICNjOGU2YzksXG4gIDIwMDogI2E1ZDZhNyxcbiAgMzAwOiAjODFjNzg0LFxuICA0MDA6ICM2NmJiNmEsXG4gIDUwMDogIzRjYWY1MCxcbiAgNjAwOiAjNDNhMDQ3LFxuICA3MDA6ICMzODhlM2MsXG4gIDgwMDogIzJlN2QzMixcbiAgOTAwOiAjMWI1ZTIwLFxuICBBMTAwOiAjYjlmNmNhLFxuICBBMjAwOiAjNjlmMGFlLFxuICBBNDAwOiAjMDBlNjc2LFxuICBBNzAwOiAjMDBjODUzLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saWdodC1ncmVlbjogKFxuICA1MDogI2YxZjhlOSxcbiAgMTAwOiAjZGNlZGM4LFxuICAyMDA6ICNjNWUxYTUsXG4gIDMwMDogI2FlZDU4MSxcbiAgNDAwOiAjOWNjYzY1LFxuICA1MDA6ICM4YmMzNGEsXG4gIDYwMDogIzdjYjM0MixcbiAgNzAwOiAjNjg5ZjM4LFxuICA4MDA6ICM1NThiMmYsXG4gIDkwMDogIzMzNjkxZSxcbiAgQTEwMDogI2NjZmY5MCxcbiAgQTIwMDogI2IyZmY1OSxcbiAgQTQwMDogIzc2ZmYwMyxcbiAgQTcwMDogIzY0ZGQxNyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saW1lOiAoXG4gIDUwOiAjZjlmYmU3LFxuICAxMDA6ICNmMGY0YzMsXG4gIDIwMDogI2U2ZWU5YyxcbiAgMzAwOiAjZGNlNzc1LFxuICA0MDA6ICNkNGUxNTcsXG4gIDUwMDogI2NkZGMzOSxcbiAgNjAwOiAjYzBjYTMzLFxuICA3MDA6ICNhZmI0MmIsXG4gIDgwMDogIzllOWQyNCxcbiAgOTAwOiAjODI3NzE3LFxuICBBMTAwOiAjZjRmZjgxLFxuICBBMjAwOiAjZWVmZjQxLFxuICBBNDAwOiAjYzZmZjAwLFxuICBBNzAwOiAjYWVlYTAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC15ZWxsb3c6IChcbiAgNTA6ICNmZmZkZTcsXG4gIDEwMDogI2ZmZjljNCxcbiAgMjAwOiAjZmZmNTlkLFxuICAzMDA6ICNmZmYxNzYsXG4gIDQwMDogI2ZmZWU1OCxcbiAgNTAwOiAjZmZlYjNiLFxuICA2MDA6ICNmZGQ4MzUsXG4gIDcwMDogI2ZiYzAyZCxcbiAgODAwOiAjZjlhODI1LFxuICA5MDA6ICNmNTdmMTcsXG4gIEExMDA6ICNmZmZmOGQsXG4gIEEyMDA6ICNmZmZmMDAsXG4gIEE0MDA6ICNmZmVhMDAsXG4gIEE3MDA6ICNmZmQ2MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYW1iZXI6IChcbiAgNTA6ICNmZmY4ZTEsXG4gIDEwMDogI2ZmZWNiMyxcbiAgMjAwOiAjZmZlMDgyLFxuICAzMDA6ICNmZmQ1NGYsXG4gIDQwMDogI2ZmY2EyOCxcbiAgNTAwOiAjZmZjMTA3LFxuICA2MDA6ICNmZmIzMDAsXG4gIDcwMDogI2ZmYTAwMCxcbiAgODAwOiAjZmY4ZjAwLFxuICA5MDA6ICNmZjZmMDAsXG4gIEExMDA6ICNmZmU1N2YsXG4gIEEyMDA6ICNmZmQ3NDAsXG4gIEE0MDA6ICNmZmM0MDAsXG4gIEE3MDA6ICNmZmFiMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtb3JhbmdlOiAoXG4gIDUwOiAjZmZmM2UwLFxuICAxMDA6ICNmZmUwYjIsXG4gIDIwMDogI2ZmY2M4MCxcbiAgMzAwOiAjZmZiNzRkLFxuICA0MDA6ICNmZmE3MjYsXG4gIDUwMDogI2ZmOTgwMCxcbiAgNjAwOiAjZmI4YzAwLFxuICA3MDA6ICNmNTdjMDAsXG4gIDgwMDogI2VmNmMwMCxcbiAgOTAwOiAjZTY1MTAwLFxuICBBMTAwOiAjZmZkMTgwLFxuICBBMjAwOiAjZmZhYjQwLFxuICBBNDAwOiAjZmY5MTAwLFxuICBBNzAwOiAjZmY2ZDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiBibGFjayxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLW9yYW5nZTogKFxuICA1MDogI2ZiZTllNyxcbiAgMTAwOiAjZmZjY2JjLFxuICAyMDA6ICNmZmFiOTEsXG4gIDMwMDogI2ZmOGE2NSxcbiAgNDAwOiAjZmY3MDQzLFxuICA1MDA6ICNmZjU3MjIsXG4gIDYwMDogI2Y0NTExZSxcbiAgNzAwOiAjZTY0YTE5LFxuICA4MDA6ICNkODQzMTUsXG4gIDkwMDogI2JmMzYwYyxcbiAgQTEwMDogI2ZmOWU4MCxcbiAgQTIwMDogI2ZmNmU0MCxcbiAgQTQwMDogI2ZmM2QwMCxcbiAgQTcwMDogI2RkMmMwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYnJvd246IChcbiAgNTA6ICNlZmViZTksXG4gIDEwMDogI2Q3Y2NjOCxcbiAgMjAwOiAjYmNhYWE0LFxuICAzMDA6ICNhMTg4N2YsXG4gIDQwMDogIzhkNmU2MyxcbiAgNTAwOiAjNzk1NTQ4LFxuICA2MDA6ICM2ZDRjNDEsXG4gIDcwMDogIzVkNDAzNyxcbiAgODAwOiAjNGUzNDJlLFxuICA5MDA6ICMzZTI3MjMsXG4gIEExMDA6ICNkN2NjYzgsXG4gIEEyMDA6ICNiY2FhYTQsXG4gIEE0MDA6ICM4ZDZlNjMsXG4gIEE3MDA6ICM1ZDQwMzcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZ3JleTogKFxuICA1MDogI2ZhZmFmYSxcbiAgMTAwOiAjZjVmNWY1LFxuICAyMDA6ICNlZWVlZWUsXG4gIDMwMDogI2UwZTBlMCxcbiAgNDAwOiAjYmRiZGJkLFxuICA1MDA6ICM5ZTllOWUsXG4gIDYwMDogIzc1NzU3NSxcbiAgNzAwOiAjNjE2MTYxLFxuICA4MDA6ICM0MjQyNDIsXG4gIDkwMDogIzIxMjEyMSxcbiAgQTEwMDogI2ZmZmZmZixcbiAgQTIwMDogI2VlZWVlZSxcbiAgQTQwMDogI2JkYmRiZCxcbiAgQTcwMDogIzYxNjE2MSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ncmF5OiAkbWF0LWdyZXk7XG5cbiRtYXQtYmx1ZS1ncmV5OiAoXG4gIDUwOiAjZWNlZmYxLFxuICAxMDA6ICNjZmQ4ZGMsXG4gIDIwMDogI2IwYmVjNSxcbiAgMzAwOiAjOTBhNGFlLFxuICA0MDA6ICM3ODkwOWMsXG4gIDUwMDogIzYwN2Q4YixcbiAgNjAwOiAjNTQ2ZTdhLFxuICA3MDA6ICM0NTVhNjQsXG4gIDgwMDogIzM3NDc0ZixcbiAgOTAwOiAjMjYzMjM4LFxuICBBMTAwOiAjY2ZkOGRjLFxuICBBMjAwOiAjYjBiZWM1LFxuICBBNDAwOiAjNzg5MDljLFxuICBBNzAwOiAjNDU1YTY0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbi8vIEFsaWFzIGZvciBhbHRlcm5hdGUgc3BlbGxpbmcuXG4kbWF0LWJsdWUtZ3JheTogJG1hdC1ibHVlLWdyZXk7XG5cblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4kbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICAgIG1hcC1nZXQoJG1hdC1ncmV5LCAxMDApLFxuICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNTApLFxuICBob3ZlcjogICAgICByZ2JhKGJsYWNrLCAwLjA0KSwgLy8gVE9ETyhrYXJhKTogY2hlY2sgc3R5bGUgd2l0aCBNYXRlcmlhbCBEZXNpZ24gVVhcbiAgY2FyZDogICAgICAgd2hpdGUsXG4gIGRpYWxvZzogICAgIHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcC1nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcC1nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwLWdldCgkbWF0LWdyZXksIDIwMCksXG4gIHRvb2x0aXA6IG1hcC1nZXQoJG1hdC1ncmV5LCA3MDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbiAgdG9vbHRpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiAgICAgICAgICAgICAgYmxhY2ssXG4gIGRpdmlkZXI6ICAgICAgICAgICAkZGFyay1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiAgICAgICAgIGJsYWNrLFxuICBoaW50LXRleHQ6ICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC41NCksXG4gIGljb25zOiAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgdGV4dDogICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItbWluOiAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEoYmxhY2ssIDAuMzgpLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgZGl2aWRlcjogICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgZGlzYWJsZWQtdGV4dDogICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRsaWdodC1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogICAgICAgICAgICAgIHdoaXRlLFxuICBpY29uczogICAgICAgICAgICAgd2hpdGUsXG4gIHRleHQ6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogICAgICAgIHdoaXRlLFxuICBzbGlkZXItb2ZmOiAgICAgICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEod2hpdGUsIDAuMyksXG4pO1xuXG5cbi8vIFdoZXRoZXIgZGVuc2l0eSBzaG91bGQgYmUgZ2VuZXJhdGVkIGJ5IGRlZmF1bHQuXG4kX21hdC10aGVtZS1nZW5lcmF0ZS1kZWZhdWx0LWRlbnNpdHk6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIEZvciBhIGdpdmVuIGh1ZSBpbiBhIHBhbGV0dGUsIHJldHVybiB0aGUgY29udHJhc3QgY29sb3IgZnJvbSB0aGUgbWFwIG9mIGNvbnRyYXN0IHBhbGV0dGVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkaHVlXG5AZnVuY3Rpb24gbWF0LWNvbnRyYXN0KCRwYWxldHRlLCAkaHVlKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRwYWxldHRlLCBjb250cmFzdCksICRodWUpO1xufVxuXG5cbi8vIENyZWF0ZXMgYSBtYXAgb2YgaHVlcyB0byBjb2xvcnMgZm9yIGEgdGhlbWUuIFRoaXMgaXMgdXNlZCB0byBkZWZpbmUgYSB0aGVtZSBwYWxldHRlIGluIHRlcm1zXG4vLyBvZiB0aGUgTWF0ZXJpYWwgRGVzaWduIGh1ZXMuXG4vLyBAcGFyYW0gJGNvbG9yLW1hcFxuLy8gQHBhcmFtICRwcmltYXJ5XG4vLyBAcGFyYW0gJGxpZ2h0ZXJcbkBmdW5jdGlvbiBtYXQtcGFsZXR0ZSgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdDogNTAwLCAkbGlnaHRlcjogMTAwLCAkZGFya2VyOiA3MDAsICR0ZXh0OiAkZGVmYXVsdCkge1xuICAkcmVzdWx0OiBtYXAtbWVyZ2UoJGJhc2UtcGFsZXR0ZSwgKFxuICAgIGRlZmF1bHQ6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGxpZ2h0ZXIpLFxuICAgIGRhcmtlcjogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKSxcbiAgICB0ZXh0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICR0ZXh0KSxcblxuICAgIGRlZmF1bHQtY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdCksXG4gICAgbGlnaHRlci1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKVxuICApKTtcblxuICAvLyBGb3IgZWFjaCBodWUgaW4gdGhlIHBhbGV0dGUsIGFkZCBhIFwiLWNvbnRyYXN0XCIgY29sb3IgdG8gdGhlIG1hcC5cbiAgQGVhY2ggJGh1ZSwgJGNvbG9yIGluICRiYXNlLXBhbGV0dGUge1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoXG4gICAgICAnI3skaHVlfS1jb250cmFzdCc6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkaHVlKVxuICAgICkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG5cbi8vIEdldHMgYSBjb2xvciBmcm9tIGEgdGhlbWUgcGFsZXR0ZSAodGhlIG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBUaGUgaHVlIGNhbiBiZSBvbmUgb2YgdGhlIHN0YW5kYXJkIHZhbHVlcyAoNTAwLCBBNDAwLCBldGMuKSwgb25lIG9mIHRoZSB0aHJlZSBwcmVjb25maWd1cmVkXG4vLyBodWVzIChkZWZhdWx0LCBsaWdodGVyLCBkYXJrZXIpLCBvciBhbnkgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHByZWZpeGVkIHdpdGggXCItY29udHJhc3RcIi5cbi8vXG4vLyBAcGFyYW0gJGNvbG9yLW1hcCBUaGUgdGhlbWUgcGFsZXR0ZSAob3V0cHV0IG9mIG1hdC1wYWxldHRlKS5cbi8vIEBwYXJhbSAkaHVlIFRoZSBodWUgZnJvbSB0aGUgcGFsZXR0ZSB0byB1c2UuIElmIHRoaXMgaXMgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEsIGl0IHdpbGxcbi8vICAgICBiZSB0cmVhdGVkIGFzIG9wYWNpdHkuXG4vLyBAcGFyYW0gJG9wYWNpdHkgVGhlIGFscGhhIGNoYW5uZWwgdmFsdWUgZm9yIHRoZSBjb2xvci5cbkBmdW5jdGlvbiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWU6IGRlZmF1bHQsICRvcGFjaXR5OiBudWxsKSB7XG4gIC8vIElmIGh1ZUtleSBpcyBhIG51bWJlciBiZXR3ZWVuIHplcm8gYW5kIG9uZSwgdGhlbiBpdCBhY3R1YWxseSBjb250YWlucyBhblxuICAvLyBvcGFjaXR5IHZhbHVlLCBzbyByZWNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSBkZWZhdWx0IGh1ZSBhbmQgdGhhdCBnaXZlbiBvcGFjaXR5LlxuICBAaWYgdHlwZS1vZigkaHVlKSA9PSBudW1iZXIgYW5kICRodWUgPj0gMCBhbmQgJGh1ZSA8PSAxIHtcbiAgICBAcmV0dXJuIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJGh1ZSk7XG4gIH1cblxuICAkY29sb3I6IG1hcC1nZXQoJHBhbGV0dGUsICRodWUpO1xuXG4gIEBpZiAodHlwZS1vZigkY29sb3IpICE9IGNvbG9yKSB7XG4gICAgLy8gSWYgdGhlICRjb2xvciByZXNvbHZlZCB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gYSBjb2xvciAoZS5nLiBhIENTUyB2YXJpYWJsZSksXG4gICAgLy8gd2UgY2FuJ3QgYXBwbHkgdGhlIG9wYWNpdHkgYW55d2F5IHNvIHdlIHJldHVybiB0aGUgdmFsdWUgYXMgaXMsIG90aGVyd2lzZSBTYXNzIGNhblxuICAgIC8vIHRocm93IGFuIGVycm9yIG9yIG91dHB1dCBzb21ldGhpbmcgaW52YWxpZC5cbiAgICBAcmV0dXJuICRjb2xvcjtcbiAgfVxuXG4gIEByZXR1cm4gcmdiYSgkY29sb3IsIGlmKCRvcGFjaXR5ID09IG51bGwsIG9wYWNpdHkoJGNvbG9yKSwgJG9wYWNpdHkpKTtcbn1cblxuLy8gVmFsaWRhdGVzIHRoZSBzcGVjaWZpZWQgdGhlbWUgYnkgZW5zdXJpbmcgdGhhdCB0aGUgb3B0aW9uYWwgY29sb3IgY29uZmlnIGRlZmluZXNcbi8vIGEgcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGUuIFJldHVybnMgdGhlIHRoZW1lIGlmIG5vIGZhaWx1cmVzIHdlcmUgZm91bmQuXG5AZnVuY3Rpb24gX21hdC12YWxpZGF0ZS10aGVtZSgkdGhlbWUpIHtcbiAgQGlmIG1hcC1nZXQoJHRoZW1lLCBjb2xvcikge1xuICAgICRjb2xvcjogbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgICBAaWYgbm90IG1hcC1nZXQoJGNvbG9yLCBwcmltYXJ5KSB7XG4gICAgICBAZXJyb3IgJ1RoZW1lIGRvZXMgbm90IGRlZmluZSBhIHZhbGlkIFwicHJpbWFyeVwiIHBhbGV0dGUuJztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1nZXQoJGNvbG9yLCBhY2NlbnQpIHtcbiAgICAgIEBlcnJvciAnVGhlbWUgZG9lcyBub3QgZGVmaW5lIGEgdmFsaWQgXCJhY2NlbnRcIiBwYWxldHRlLic7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtZ2V0KCRjb2xvciwgd2Fybikge1xuICAgICAgQGVycm9yICdUaGVtZSBkb2VzIG5vdCBkZWZpbmUgYSB2YWxpZCBcIndhcm5cIiBwYWxldHRlLic7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHRoZW1lO1xufVxuXG4vLyBDcmVhdGVzIGEgYmFja3dhcmRzIGNvbXBhdGlibGUgdGhlbWUuIFByZXZpb3VzbHkgaW4gQW5ndWxhciBNYXRlcmlhbCwgdGhlbWUgb2JqZWN0c1xuLy8gY29udGFpbmVkIHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGRpcmVjdGx5LiBXaXRoIHRoZSByZWNlbnQgcmVmYWN0b3Jpbmcgb2YgdGhlIHRoZW1pbmdcbi8vIHN5c3RlbSB0byBhbGxvdyBmb3IgZGVuc2l0eSBhbmQgdHlwb2dyYXBoeSBjb25maWd1cmF0aW9ucywgdGhpcyBpcyBubyBsb25nZXIgdGhlIGNhc2UuXG4vLyBUbyBlbnN1cmUgdGhhdCBjb25zdHJ1Y3RlZCB0aGVtZXMgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY3VzdG9tIHRoZW1lIG1peGlucyBkbyBub3QgYnJlYWssXG4vLyB3ZSBjb3B5IHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGFuZCBwdXQgaXRzIHByb3BlcnRpZXMgYXQgdGhlIHRvcC1sZXZlbCBvZiB0aGUgdGhlbWUgb2JqZWN0LlxuLy8gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgcGF0dGVybiB0aGF0IHNob3VsZCBzdGlsbCB3b3JrIHVudGlsIGl0J3Mgb2ZmaWNpYWxseSBtYXJrZWQgYXMgYVxuLy8gYnJlYWtpbmcgY2hhbmdlOlxuLy9cbi8vICAgIEBtaXhpbiBteS1jdXN0b20tY29tcG9uZW50LXRoZW1lKCR0aGVtZSkge1xuLy8gICAgICAubXktY29tcCB7XG4vLyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG4vLyAgICAgIH1cbi8vICAgIH1cbi8vXG4vLyBOb3RlIHRoYXQgdGhlIGAkdGhlbWUucHJpbWFyeWAga2V5IGRvZXMgdXN1YWxseSBub3QgZXhpc3Qgc2luY2UgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb25cbi8vIGlzIHN0b3JlZCBpbiBgJHRoZW1lLmNvbG9yYCB3aGljaCBjb250YWlucyBhIHByb3BlcnR5IGZvciBgcHJpbWFyeWAuIFRoaXMgbWV0aG9kIGNvcGllc1xuLy8gdGhlIG1hcCBmcm9tIGAkdGhlbWUuY29sb3JgIHRvIGAkdGhlbWVgIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbkBmdW5jdGlvbiBfbWF0LWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZSgkdGhlbWUpIHtcbiAgQGlmIG5vdCBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpIHtcbiAgICBAcmV0dXJuICR0aGVtZTtcbiAgfVxuICAkY29sb3I6IG1hcC1nZXQoJHRoZW1lLCBjb2xvcik7XG4gIEByZXR1cm4gbWFwLW1lcmdlKCR0aGVtZSwgJGNvbG9yKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGxpZ2h0LXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uIGZyb20gdGhlIHNwZWNpZmllZFxuLy8gcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGVzLlxuQGZ1bmN0aW9uIF9tYXQtY3JlYXRlLWxpZ2h0LWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG51bGwpIHtcbiAgQHJldHVybiAoXG4gICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgYWNjZW50OiAkYWNjZW50LFxuICAgIHdhcm46IGlmKCR3YXJuICE9IG51bGwsICR3YXJuLCBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpLFxuICAgIGlzLWRhcms6IGZhbHNlLFxuICAgIGZvcmVncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQsXG4gICk7XG59XG5cbi8vIENyZWF0ZXMgYSBkYXJrLXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uIGZyb20gdGhlIHNwZWNpZmllZFxuLy8gcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGVzLlxuQGZ1bmN0aW9uIF9tYXQtY3JlYXRlLWRhcmstY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybjogbnVsbCkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogaWYoJHdhcm4gIT0gbnVsbCwgJHdhcm4sIG1hdC1wYWxldHRlKCRtYXQtcmVkKSksXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuLy8gVE9ETzogUmVtb3ZlIGxlZ2FjeSBBUEkgYW5kIHJlbmFtZSBgJHByaW1hcnlgIHRvIGAkY29uZmlnYC4gQ3VycmVudGx5IGl0IGNhbm5vdCBiZSByZW5hbWVkXG4vLyBhcyBpdCB3b3VsZCBicmVhayBleGlzdGluZyBhcHBzIHRoYXQgc2V0IHRoZSBwYXJhbWV0ZXIgYnkgbmFtZS5cbkBmdW5jdGlvbiBtYXQtbGlnaHQtdGhlbWUoJHByaW1hcnksICRhY2NlbnQ6IG51bGwsICR3YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgdGhlIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy4gQ29uc3VtZXJzXG4gIC8vIGNhbiBjb25zdHJ1Y3Qgc3VjaCBhbiBvYmplY3QgYnkgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBvciBieSBidWlsZGluZyB0aGUgb2JqZWN0IG1hbnVhbGx5LlxuICAvLyBUaGVyZSBhcmUgdHdvIHBvc3NpYmxlIHdheXMgdG8gaW52b2tlIHRoaXMgZnVuY3Rpb24gaW4gb3JkZXIgdG8gY3JlYXRlIHN1Y2ggYW4gb2JqZWN0OlxuICAvL1xuICAvLyAgICAoMSkgUGFzc2luZyBpbiBhIG1hcCB0aGF0IGhvbGRzIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsIHBhcnRzIG9mIHRoZVxuICAvLyAgICAgICAgdGhlbWluZyBzeXN0ZW0uIEZvciBgY29sb3JgIGNvbmZpZ3VyYXRpb25zLCB0aGUgZnVuY3Rpb24gb25seSBleHBlY3RzIHRoZSBwYWxldHRlc1xuICAvLyAgICAgICAgZm9yIGBwcmltYXJ5YCBhbmQgYGFjY2VudGAgKGFuZCBvcHRpb25hbGx5IGB3YXJuYCkuIFRoZSBmdW5jdGlvbiB3aWxsIGV4cGFuZCB0aGVcbiAgLy8gICAgICAgIHNob3J0aGFuZCBpbnRvIGFuIGFjdHVhbCBjb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlIGNvbnN1bWVkIGluIGAtY29sb3JgIG1peGlucy5cbiAgLy8gICAgKDIpIExlZ2FjeSBwYXR0ZXJuOiBQYXNzaW5nIGluIHRoZSBwYWxldHRlcyBhcyBwYXJhbWV0ZXJzLiBUaGlzIGlzIG5vdCBhcyBmbGV4aWJsZVxuICAvLyAgICAgICAgYXMgcGFzc2luZyBpbiBhIGNvbmZpZ3VyYXRpb24gbWFwIGJlY2F1c2Ugb25seSB0aGUgYGNvbG9yYCBzeXN0ZW0gY2FuIGJlIGNvbmZpZ3VyZWQuXG4gIC8vXG4gIC8vIElmIHRoZSBsZWdhY3kgcGF0dGVybiBpcyB1c2VkLCB3ZSBnZW5lcmF0ZSBhIGNvbnRhaW5lciBvYmplY3Qgb25seSB3aXRoIGEgbGlnaHQtdGhlbWVkXG4gIC8vIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBgY29sb3JgIHRoZW1pbmcgcGFydC5cbiAgQGlmICRhY2NlbnQgIT0gbnVsbCB7XG4gICAgQHJldHVybiBfbWF0LWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKChcbiAgICAgIF9pcy1sZWdhY3ktdGhlbWU6IHRydWUsXG4gICAgICBjb2xvcjogX21hdC1jcmVhdGUtbGlnaHQtY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybiksXG4gICAgKSkpO1xuICB9XG4gIC8vIElmIHRoZSBtYXAgcGF0dGVybiBpcyB1c2VkICgxKSwgd2UganVzdCBwYXNzLXRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsXG4gIC8vIHBhcnRzIG9mIHRoZSB0aGVtaW5nIHN5c3RlbSwgYnV0IHVwZGF0ZSB0aGUgYGNvbG9yYCBjb25maWd1cmF0aW9uIGlmIHNldC4gQXMgZXhwbGFpbmVkXG4gIC8vIGFib3ZlLCB0aGUgY29sb3Igc2hvcnRoYW5kIHdpbGwgYmUgZXhwYW5kZWQgdG8gYW4gYWN0dWFsIGxpZ2h0LXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uLlxuICAkcmVzdWx0OiAkcHJpbWFyeTtcbiAgQGlmIG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKSB7XG4gICAgJGNvbG9yLXNldHRpbmdzOiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcik7XG4gICAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBwcmltYXJ5KTtcbiAgICAkYWNjZW50OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgYWNjZW50KTtcbiAgICAkd2FybjogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHdhcm4pO1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoY29sb3I6IF9tYXQtY3JlYXRlLWxpZ2h0LWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pKSk7XG4gIH1cbiAgQHJldHVybiBfbWF0LWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKCRyZXN1bHQpKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgZGFyayB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG4vLyBUT0RPOiBSZW1vdmUgbGVnYWN5IEFQSSBhbmQgcmVuYW1lIGAkcHJpbWFyeWAgdG8gYCRjb25maWdgLiBDdXJyZW50bHkgaXQgY2Fubm90IGJlIHJlbmFtZWRcbi8vIGFzIGl0IHdvdWxkIGJyZWFrIGV4aXN0aW5nIGFwcHMgdGhhdCBzZXQgdGhlIHBhcmFtZXRlciBieSBuYW1lLlxuQGZ1bmN0aW9uIG1hdC1kYXJrLXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50OiBudWxsLCAkd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIHRoZSBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuIENvbnN1bWVyc1xuICAvLyBjYW4gY29uc3RydWN0IHN1Y2ggYW4gb2JqZWN0IGJ5IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3IgYnkgYnVpbGRpbmcgdGhlIG9iamVjdCBtYW51YWxseS5cbiAgLy8gVGhlcmUgYXJlIHR3byBwb3NzaWJsZSB3YXlzIHRvIGludm9rZSB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGNyZWF0ZSBzdWNoIGFuIG9iamVjdDpcbiAgLy9cbiAgLy8gICAgKDEpIFBhc3NpbmcgaW4gYSBtYXAgdGhhdCBob2xkcyBvcHRpb25hbCBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbCBwYXJ0cyBvZiB0aGVcbiAgLy8gICAgICAgIHRoZW1pbmcgc3lzdGVtLiBGb3IgYGNvbG9yYCBjb25maWd1cmF0aW9ucywgdGhlIGZ1bmN0aW9uIG9ubHkgZXhwZWN0cyB0aGUgcGFsZXR0ZXNcbiAgLy8gICAgICAgIGZvciBgcHJpbWFyeWAgYW5kIGBhY2NlbnRgIChhbmQgb3B0aW9uYWxseSBgd2FybmApLiBUaGUgZnVuY3Rpb24gd2lsbCBleHBhbmQgdGhlXG4gIC8vICAgICAgICBzaG9ydGhhbmQgaW50byBhbiBhY3R1YWwgY29uZmlndXJhdGlvbiB0aGF0IGNhbiBiZSBjb25zdW1lZCBpbiBgLWNvbG9yYCBtaXhpbnMuXG4gIC8vICAgICgyKSBMZWdhY3kgcGF0dGVybjogUGFzc2luZyBpbiB0aGUgcGFsZXR0ZXMgYXMgcGFyYW1ldGVycy4gVGhpcyBpcyBub3QgYXMgZmxleGlibGVcbiAgLy8gICAgICAgIGFzIHBhc3NpbmcgaW4gYSBjb25maWd1cmF0aW9uIG1hcCBiZWNhdXNlIG9ubHkgdGhlIGBjb2xvcmAgc3lzdGVtIGNhbiBiZSBjb25maWd1cmVkLlxuICAvL1xuICAvLyBJZiB0aGUgbGVnYWN5IHBhdHRlcm4gaXMgdXNlZCwgd2UgZ2VuZXJhdGUgYSBjb250YWluZXIgb2JqZWN0IG9ubHkgd2l0aCBhIGRhcmstdGhlbWVkXG4gIC8vIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBgY29sb3JgIHRoZW1pbmcgcGFydC5cbiAgQGlmICRhY2NlbnQgIT0gbnVsbCB7XG4gICAgQHJldHVybiBfbWF0LWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKChcbiAgICAgIF9pcy1sZWdhY3ktdGhlbWU6IHRydWUsXG4gICAgICBjb2xvcjogX21hdC1jcmVhdGUtZGFyay1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSxcbiAgICApKSk7XG4gIH1cbiAgLy8gSWYgdGhlIG1hcCBwYXR0ZXJuIGlzIHVzZWQgKDEpLCB3ZSBqdXN0IHBhc3MtdGhyb3VnaCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWxcbiAgLy8gcGFydHMgb2YgdGhlIHRoZW1pbmcgc3lzdGVtLCBidXQgdXBkYXRlIHRoZSBgY29sb3JgIGNvbmZpZ3VyYXRpb24gaWYgc2V0LiBBcyBleHBsYWluZWRcbiAgLy8gYWJvdmUsIHRoZSBjb2xvciBzaG9ydGhhbmQgd2lsbCBiZSBleHBhbmRlZCB0byBhbiBhY3R1YWwgZGFyay10aGVtZWQgY29sb3IgY29uZmlndXJhdGlvbi5cbiAgJHJlc3VsdDogJHByaW1hcnk7XG4gIEBpZiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcikge1xuICAgICRjb2xvci1zZXR0aW5nczogbWFwLWdldCgkcHJpbWFyeSwgY29sb3IpO1xuICAgICRwcmltYXJ5OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgcHJpbWFyeSk7XG4gICAgJGFjY2VudDogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIGFjY2VudCk7XG4gICAgJHdhcm46IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCB3YXJuKTtcbiAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKGNvbG9yOiBfbWF0LWNyZWF0ZS1kYXJrLWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pKSk7XG4gIH1cbiAgQHJldHVybiBfbWF0LWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKCRyZXN1bHQpKTtcbn1cblxuLy8vIEdldHMgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gdGhlbWUgb3IgY29uZmlndXJhdGlvbi5cbkBmdW5jdGlvbiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUsICRkZWZhdWx0OiBudWxsKSB7XG4gIC8vIElmIGEgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBwYXNzZWQsIHJldHVybiB0aGUgY29uZmlnIGRpcmVjdGx5LlxuICBAaWYgbm90IF9tYXQtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZSkge1xuICAgIEByZXR1cm4gJHRoZW1lO1xuICB9XG4gIC8vIElmIHRoZSB0aGVtZSBoYXMgYmVlbiBjb25zdHJ1Y3RlZCB0aHJvdWdoIHRoZSBsZWdhY3kgdGhlbWluZyBBUEksIHdlIHVzZSB0aGUgdGhlbWUgb2JqZWN0XG4gIC8vIGFzIGNvbG9yIGNvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiB0aGUgZGVkaWNhdGVkIGBjb2xvcmAgcHJvcGVydHkuIFdlIGRvIHRoaXMgYmVjYXVzZSBmb3JcbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGNvcGllZCB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBmcm9tIGAkdGhlbWUuY29sb3JgIHRvIGAkdGhlbWVgLlxuICAvLyBIZW5jZSBkZXZlbG9wZXJzIGNvdWxkIGN1c3RvbWl6ZSB0aGUgY29sb3JzIGF0IHRvcC1sZXZlbCBhbmQgd2FudCB0byByZXNwZWN0IHRoZXNlIGNoYW5nZXNcbiAgLy8gVE9ETzogUmVtb3ZlIHdoZW4gbGVnYWN5IHRoZW1pbmcgQVBJIGlzIHJlbW92ZWQuXG4gIEBpZiBfbWF0LWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdGhlbWUpIHtcbiAgICBAcmV0dXJuICR0aGVtZTtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJHRoZW1lLCBjb2xvcikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gR2V0cyB0aGUgZGVuc2l0eSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGdpdmVuIHRoZW1lIG9yIGNvbmZpZ3VyYXRpb24uXG5AZnVuY3Rpb24gbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUtb3ItY29uZmlnLCAkZGVmYXVsdDogMCkge1xuICAvLyBJZiBhIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gcGFzc2VkLCByZXR1cm4gdGhlIGNvbmZpZyBkaXJlY3RseS5cbiAgQGlmIG5vdCBfbWF0LWlzLXRoZW1lLW9iamVjdCgkdGhlbWUtb3ItY29uZmlnKSB7XG4gICAgQHJldHVybiAkdGhlbWUtb3ItY29uZmlnO1xuICB9XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBoYXMgYmVlbiBwYXNzZWQsIGV4dHJhY3QgdGhlIGNvbmZpZ3VyYXRpb24gaWYgcHJlc2VudCxcbiAgLy8gb3IgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGRlbnNpdHkgY29uZmlnLlxuICBAaWYgbWFwLWhhcy1rZXkoJHRoZW1lLW9yLWNvbmZpZywgZGVuc2l0eSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtb3ItY29uZmlnLCBkZW5zaXR5KTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gR2V0cyB0aGUgdHlwb2dyYXBoeSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGdpdmVuIHRoZW1lIG9yIGNvbmZpZ3VyYXRpb24uXG4vLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB0eXBvZ3JhcGh5IGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LlxuQGZ1bmN0aW9uIG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lLW9yLWNvbmZpZywgJGRlZmF1bHQ6IG51bGwpIHtcbiAgLy8gSWYgYSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHBhc3NlZCwgcmV0dXJuIHRoZSBjb25maWcgZGlyZWN0bHkuXG4gIEBpZiBub3QgX21hdC1pcy10aGVtZS1vYmplY3QoJHRoZW1lLW9yLWNvbmZpZykge1xuICAgIEByZXR1cm4gJHRoZW1lLW9yLWNvbmZpZztcbiAgfVxuICAvLyBJbiBjYXNlIGEgdGhlbWUgaGFzIGJlZW4gcGFzc2VkLCBleHRyYWN0IHRoZSBjb25maWd1cmF0aW9uIGlmIHByZXNlbnQsXG4gIC8vIG9yIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCB0eXBvZ3JhcGh5IGNvbmZpZy5cbiAgQGlmIChtYXAtaGFzLWtleSgkdGhlbWUtb3ItY29uZmlnLCB0eXBvZ3JhcGh5KSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtb3ItY29uZmlnLCB0eXBvZ3JhcGh5KTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLyBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgcmVzb2x2ZXMgdG8gYSB0aGVtZSBvYmplY3QuIFRoZW1lIG9iamVjdHMgYXJlIGFsd2F5c1xuLy8gb2YgdHlwZSBgbWFwYCBhbmQgY2FuIG9wdGlvbmFsbHkgb25seSBzcGVjaWZ5IGBjb2xvcmAsIGBkZW5zaXR5YCBvciBgdHlwb2dyYXBoeWAuXG5AZnVuY3Rpb24gX21hdC1pcy10aGVtZS1vYmplY3QoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpID09ICdtYXAnIGFuZCAoXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCBjb2xvcikgb3JcbiAgICBtYXAtaGFzLWtleSgkdmFsdWUsIGRlbnNpdHkpIG9yXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCB0eXBvZ3JhcGh5KSBvclxuICAgIGxlbmd0aCgkdmFsdWUpID09IDBcbiAgKTtcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiB2YWx1ZSBjb3JyZXNwb25kcyB0byBhIGxlZ2FjeSBjb25zdHJ1Y3RlZCB0aGVtZS5cbkBmdW5jdGlvbiBfbWF0LWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ21hcCcgYW5kIG1hcC1nZXQoJHZhbHVlLCAnX2lzLWxlZ2FjeS10aGVtZScpO1xufVxuXG4vLyBHZXRzIHRoZSB0aGVtZSBmcm9tIHRoZSBnaXZlbiB2YWx1ZSB0aGF0IGlzIGVpdGhlciBhbHJlYWR5IGEgdGhlbWUsIG9yIGEgY29sb3IgY29uZmlndXJhdGlvbi5cbi8vIFRoaXMgaGFuZGxlcyB0aGUgbGVnYWN5IGNhc2Ugd2hlcmUgZGV2ZWxvcGVycyBwYXNzIGEgY29sb3IgY29uZmlndXJhdGlvbiBkaXJlY3RseSB0byB0aGVcbi8vIHRoZW1lIG1peGluLiBCZWZvcmUgd2UgaW50cm9kdWNlZCB0aGUgbmV3IHBhdHRlcm4gZm9yIGNvbnN0cnVjdGluZyBhIHRoZW1lLCBkZXZlbG9wZXJzIHBhc3NlZFxuLy8gdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkgdG8gdGhlIHRoZW1lIG1peGlucy4gVGhpcyBjYW4gYmUgc3RpbGwgdGhlIGNhc2UgaWYgZGV2ZWxvcGVyc1xuLy8gY29uc3RydWN0IGEgdGhlbWUgbWFudWFsbHkgYW5kIHBhc3MgaXQgdG8gYSB0aGVtZS4gV2Ugc3VwcG9ydCB0aGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbi8vIFRPRE8oZGV2dmVyc2lvbik6IHJlbW92ZSB0aGlzIGluIHRoZSBmdXR1cmUuIENvbnN0cnVjdGluZyB0aGVtZXMgbWFudWFsbHkgaXMgcmFyZSxcbi8vIGFuZCB0aGUgY29kZSBjYW4gYmUgZWFzaWx5IHVwZGF0ZWQgdG8gdGhlIG5ldyBBUEkuXG5AZnVuY3Rpb24gX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgQGlmIF9tYXQtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgICBAcmV0dXJuICR0aGVtZS1vci1jb2xvci1jb25maWc7XG4gIH1cbiAgQHJldHVybiBfbWF0LWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZSgoXG4gICAgX2lzLWxlZ2FjeS10aGVtZTogdHJ1ZSxcbiAgICBjb2xvcjogJHRoZW1lLW9yLWNvbG9yLWNvbmZpZ1xuICApKTtcbn1cblxuXG5cbi8vIFdoZXRoZXIgZHVwbGljYXRpb24gd2FybmluZ3Mgc2hvdWxkIGJlIGRpc2FibGVkLiBXYXJuaW5ncyBlbmFibGVkIGJ5IGRlZmF1bHQuXG4kbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdhcm5pbmcgdGhhdCB3aWxsIGJlIHByaW50ZWQgaWYgZHVwbGljYXRlZCBzdHlsZXMgYXJlIGdlbmVyYXRlZCBieSBhIHRoZW1lLlxuJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc6ICdSZWFkIG1vcmUgYWJvdXQgaG93IHN0eWxlIGR1cGxpY2F0aW9uIGNhbiBiZSBhdm9pZGVkIGluIGEgJyArXG4gICdkZWRpY2F0ZWQgZ3VpZGUuIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvZ3VpZGVzL2R1cGxpY2F0ZS10aGVtaW5nLXN0eWxlcy5tZCc7XG5cbi8vIFRoZXNlIHZhcmlhYmxlIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgb3ZlcnJpZGRlbiBleHRlcm5hbGx5LiBUaGV5IHVzZSBgIWRlZmF1bHRgIHRvXG4vLyBhdm9pZCBiZWluZyByZXNldCBldmVyeSB0aW1lIHRoaXMgZmlsZSBpcyBpbXBvcnRlZC5cbiRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3I6ICgpICFkZWZhdWx0O1xuJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5OiAoKSAhZGVmYXVsdDtcbiRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eTogKCkgIWRlZmF1bHQ7XG5cbi8vIENoZWNrcyBpZiBjb25maWd1cmF0aW9ucyB0aGF0IGhhdmUgYmVlbiBkZWNsYXJlZCBpbiB0aGUgZ2l2ZW4gdGhlbWUgaGF2ZSBiZWVuIGdlbmVyYXRlZFxuLy8gYmVmb3JlLiBJZiBzbywgd2FybmluZ3Mgd2lsbCBiZSByZXBvcnRlZC4gVGhpcyBzaG91bGQgbm90aWZ5IGRldmVsb3BlcnMgaW4gY2FzZSBkdXBsaWNhdGVcbi8vIHN0eWxlcyBhcmUgYWNjaWRlbnRhbGx5IGdlbmVyYXRlZCBkdWUgdG8gd3JvbmcgdXNhZ2Ugb2YgdGhlIGFsbC10aGVtZSBtaXhpbnMuXG4vL1xuLy8gQWRkaXRpb25hbGx5LCB0aGlzIG1peGluIGNvbnRyb2xzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgZGVuc2l0eSBjb25maWd1cmF0aW9uLiBCeVxuLy8gZGVmYXVsdCwgZGVuc2l0eSBzdHlsZXMgYXJlIGdlbmVyYXRlZCBhdCBzY2FsZSB6ZXJvLiBJZiB0aGUgc2FtZSBkZW5zaXR5IHN0eWxlcyB3b3VsZCBiZVxuLy8gZ2VuZXJhdGVkIGEgc2Vjb25kIHRpbWUgdGhvdWdoLCB0aGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGNoYW5nZSB0byBhdm9pZCBkdXBsaWNhdGUgc3R5bGVzLlxuLy9cbi8vIFRoZSBtaXhpbiBrZWVwcyB0cmFjayBvZiBhbGwgY29uZmlndXJhdGlvbnMgaW4gYSBsaXN0IHRoYXQgaXMgc2NvcGVkIHRvIHRoZSBzcGVjaWZpZWRcbi8vIGlkLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGEgZ2l2ZW4gdGhlbWUgY2FuIGJlIHBhc3NlZCB0byBtdWx0aXBsZSBkaXNqb2ludCB0aGVtZSBtaXhpbnNcbi8vIChlLmcuIGBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lYCBhbmQgYGFuZ3VsYXItbWF0ZXJpYWwtbWRjLXRoZW1lYCkgd2l0aG91dCBjYXVzaW5nIGFueVxuLy8gc3R5bGUgZHVwbGljYXRpb24uXG5AbWl4aW4gX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvci1jb25maWcsICRpZCkge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgJGNvbG9yLWNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgJGRlbnNpdHktY29uZmlnOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICR0eXBvZ3JhcGh5LWNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuICAvLyBMaXN0cyBvZiBwcmV2aW91cyBgY29sb3JgLCBgZGVuc2l0eWAgYW5kIGB0eXBvZ3JhcGh5YCBjb25maWd1cmF0aW9ucy5cbiAgJHByZXZpb3VzLWNvbG9yOiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3IsICRpZCkgb3IgKCk7XG4gICRwcmV2aW91cy10eXBvZ3JhcGh5OiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeSwgJGlkKSBvciAoKTtcbiAgJHByZXZpb3VzLWRlbnNpdHk6IG1hcC1nZXQoJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5LCAkaWQpIG9yICgpO1xuICAvLyBXaGV0aGVyIGR1cGxpY2F0ZSBsZWdhY3kgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZ2VuZXJhdGVkLlxuICAkZHVwbGljYXRlLWxlZ2FjeS1kZW5zaXR5OiBmYWxzZTtcblxuICAvLyBDaGVjayBpZiB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBnZW5lcmF0ZWQgYmVmb3JlLlxuICBAaWYgJGNvbG9yLWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLWNvbG9yLCAkY29sb3ItY29uZmlnKSAhPSBudWxsIGFuZFxuICAgICAgICBub3QgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3Mge1xuICAgICAgQHdhcm4gJ1RoZSBzYW1lIGNvbG9yIHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICB9XG4gICAgJHByZXZpb3VzLWNvbG9yOiBhcHBlbmQoJHByZXZpb3VzLWNvbG9yLCAkY29sb3ItY29uZmlnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0eXBvZ3JhcGh5IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICR0eXBvZ3JhcGh5LWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLXR5cG9ncmFwaHksICR0eXBvZ3JhcGh5LWNvbmZpZykgIT0gbnVsbCBhbmRcbiAgICAgICAgbm90ICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzIHtcbiAgICAgIEB3YXJuICdUaGUgc2FtZSB0eXBvZ3JhcGh5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICB9XG4gICAgJHByZXZpb3VzLXR5cG9ncmFwaHk6IGFwcGVuZCgkcHJldmlvdXMtdHlwb2dyYXBoeSwgJHR5cG9ncmFwaHktY29uZmlnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICRkZW5zaXR5LWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLWRlbnNpdHksICRkZW5zaXR5LWNvbmZpZykgIT0gbnVsbCB7XG4gICAgICAvLyBPbmx5IHJlcG9ydCBhIHdhcm5pbmcgaWYgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZHVwbGljYXRlZCBmb3Igbm9uLWxlZ2FjeSB0aGVtZVxuICAgICAgLy8gZGVmaW5pdGlvbnMuIEZvciBsZWdhY3kgdGhlbWVzLCB3ZSBoYXZlIGNvbXBhdGliaWxpdHkgbG9naWMgdGhhdCBhdm9pZHMgZHVwbGljYXRpb25cbiAgICAgIC8vIG9mIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMuIFdlIGRvbid0IHdhbnQgdG8gcmVwb3J0IGEgd2FybmluZyBpbiB0aG9zZSBjYXNlcy5cbiAgICAgIEBpZiBfbWF0LWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdGhlbWUpIHtcbiAgICAgICAgJGR1cGxpY2F0ZS1sZWdhY3ktZGVuc2l0eTogdHJ1ZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIG5vdCAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncyB7XG4gICAgICAgIEB3YXJuICdUaGUgc2FtZSBkZW5zaXR5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAgJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc7XG4gICAgICB9XG4gICAgfVxuICAgICRwcmV2aW91cy1kZW5zaXR5OiBhcHBlbmQoJHByZXZpb3VzLWRlbnNpdHksICRkZW5zaXR5LWNvbmZpZyk7XG4gIH1cblxuICAkX21hdC10aGVtZS1lbWl0dGVkLWNvbG9yOiBtYXAtbWVyZ2UoXG4gICAgICAkX21hdC10aGVtZS1lbWl0dGVkLWNvbG9yLCAoJGlkOiAkcHJldmlvdXMtY29sb3IpKSAhZ2xvYmFsO1xuICAkX21hdC10aGVtZS1lbWl0dGVkLWRlbnNpdHk6IG1hcC1tZXJnZShcbiAgICAgICRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eSwgKCRpZDogJHByZXZpb3VzLWRlbnNpdHkpKSAhZ2xvYmFsO1xuICAkX21hdC10aGVtZS1lbWl0dGVkLXR5cG9ncmFwaHk6IG1hcC1tZXJnZShcbiAgICAgICRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeSwgKCRpZDogJHByZXZpb3VzLXR5cG9ncmFwaHkpKSAhZ2xvYmFsO1xuXG4gIC8vIE9wdGlvbmFsbHksIGNvbnN1bWVycyBvZiB0aGlzIG1peGluIGNhbiB3cmFwIGNvbnRlbnRzIGluc2lkZSBzbyB0aGF0IG5lc3RlZFxuICAvLyBkdXBsaWNhdGUgc3R5bGUgY2hlY2tzIGRvIG5vdCByZXBvcnQgYW5vdGhlciB3YXJuaW5nLiBlLmcuIGlmIGRldmVsb3BlcnMgaW5jbHVkZVxuICAvLyB0aGUgYGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWVgIG1peGluIHR3aWNlLCBvbmx5IHRoZSB0b3AtbGV2ZWwgZHVwbGljYXRlIHN0eWxlcyBjaGVja1xuICAvLyBzaG91bGQgcmVwb3J0IGEgd2FybmluZy4gTm90IGFsbCBpbmRpdmlkdWFsIGNvbXBvbmVudHMgc2hvdWxkIHJlcG9ydCBhIHdhcm5pbmcgdG9vLlxuICAkb3JpZy1tYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncztcbiAgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M6IHRydWUgIWdsb2JhbDtcblxuICAvLyBJZiBkdXBsaWNhdGUgZGVmYXVsdCBkZW5zaXR5IHN0eWxlcyB3b3VsZCBiZSBnZW5lcmF0ZWQgZm9yIGEgbGVnYWN5IGNvbnN0cnVjdGVkIHRoZW1lLFxuICAvLyB3ZSBhZGp1c3QgdGhlIGRlbnNpdHkgZ2VuZXJhdGlvbiBzbyB0aGF0IG5vIGRlbnNpdHkgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdC5cbiAgLy8gSWYgbm8gZGVmYXVsdCBkZW5zaXR5IHN0eWxlcyBoYXZlIGJlZW4gZ2VuZXJhdGVkIHlldCwgd2UgZW5zdXJlIHRoYXQgdGhlIHN0eWxlc1xuICAvLyBhcmUgZ2VuZXJhdGVkIGF0IHJvb3QuIEZvciBsZWdhY3kgdGhlbWVzIG91ciBnb2FsIGlzIHRvIGdlbmVyYXRlIGRlZmF1bHQgZGVuc2l0eVxuICAvLyBzdHlsZXMgKipvbmNlKiogYW5kIGF0IHJvb3QuIFRoaXMgbWF0Y2hlcyB0aGUgb2xkIGJlaGF2aW9yIHdoZXJlIGRlbnNpdHkgc3R5bGVzIHdlcmVcbiAgLy8gcGFydCBvZiB0aGUgYmFzZSBjb21wb25lbnQgc3R5bGVzICh0aGF0IGRpZCBub3QgdXNlIHZpZXcgZW5jYXBzdWxhdGlvbikuXG4gIC8vIFRPRE86IFJlbW92ZSB0aGlzIGNvbXBhdGliaWxpdHkgbG9naWMgd2hlbiB0aGUgbGVnYWN5IHRoZW1pbmcgQVBJIGlzIHJlbW92ZWQuXG4gICRfbWF0LWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdDogX21hdC1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHRoZW1lKSAhZ2xvYmFsO1xuICAkX21hdC1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlczogbm90ICRkdXBsaWNhdGUtbGVnYWN5LWRlbnNpdHkgIWdsb2JhbDtcblxuICBAY29udGVudDtcbiAgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M6ICRvcmlnLW1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3MgIWdsb2JhbDtcblxuICAkX21hdC1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3Q6IGZhbHNlICFnbG9iYWw7XG4gICRfbWF0LWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzOiB0cnVlICFnbG9iYWw7XG59XG5cblxuXG4kbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5OiAwLjE7XG5cbkBtaXhpbiBtYXQtcmlwcGxlKCkge1xuXG4gIC8vIFRoZSBob3N0IGVsZW1lbnQgb2YgYW4gbWF0LXJpcHBsZSBkaXJlY3RpdmUgc2hvdWxkIGFsd2F5cyBoYXZlIGEgcG9zaXRpb24gb2YgXCJhYnNvbHV0ZVwiIG9yXG4gIC8vIFwicmVsYXRpdmVcIiBzbyB0aGF0IHRoZSByaXBwbGVzIGluc2lkZSBhcmUgY29ycmVjdGx5IHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY29udGFpbmVyLlxuICAubWF0LXJpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGV2ZXJ5IHJpcHBsZSBjb250YWluZXIgc2hvdWxkIGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIGluIGZhdm9yIG9mIGNyZWF0aW5nIGFuXG4gICAgLy8gZWFzeSBBUEkgZm9yIGRldmVsb3BlcnMgdXNpbmcgdGhlIE1hdFJpcHBsZSBkaXJlY3RpdmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gUHJvbW90ZSBjb250YWluZXJzIHRoYXQgaGF2ZSByaXBwbGVzIHRvIGEgbmV3IGxheWVyLiBXZSB3YW50IHRvIHRhcmdldCBgOm5vdCg6ZW1wdHkpYCxcbiAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgYWxsIHJpcHBsZSBjb250YWluZXJzIHRvIGhhdmUgdGhlaXIgb3duIGxheWVyIHNpbmNlIHRoZXkncmUgdXNlZCBpbiBhXG4gICAgLy8gbG90IG9mIHBsYWNlcyBhbmQgdGhlIGxheWVyIGlzIG9ubHkgcmVsZXZhbnQgd2hpbGUgYW5pbWF0aW5nLiBOb3RlIHRoYXQgaWRlYWxseSB3ZSdkIHVzZVxuICAgIC8vIHRoZSBgY29udGFpbmAgcHJvcGVydHkgaGVyZSAoc2VlICMxMzE3NSksIGJlY2F1c2UgYDplbXB0eWAgY2FuIGJlIGJyb2tlbiBieSBoYXZpbmcgZXh0cmFcbiAgICAvLyB0ZXh0IGluc2lkZSB0aGUgZWxlbWVudCwgYnV0IGl0IGlzbid0IHZlcnkgd2VsbCBzdXBwb3J0ZWQgeWV0LlxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cbiAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJpcHBsZSBpcyBvcGFxdWUsIGNhdXNpbmcgaXQgdG8gb2JzdHJ1Y3QgdGhlIGNvbnRlbnQuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIENvbG9ycyBmb3IgdGhlIHJpcHBsZSBlbGVtZW50cy4qL1xuQG1peGluIG1hdC1yaXBwbGUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRmb3JlZ3JvdW5kLWJhc2U6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIC8vIElmIHRoZSByaXBwbGUgY29sb3IgaXMgcmVzb2x2ZXMgdG8gYSBjb2xvciAqdHlwZSosIHdlIGNhbiB1c2UgaXQgZGlyZWN0bHksIG90aGVyd2lzZVxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSB3ZSBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIGNvbG9yIGFuZCBzZXR0aW5nIGFuIG9wYWNpdHkuXG4gICAgQGlmICh0eXBlLW9mKCRmb3JlZ3JvdW5kLWJhc2UpID09IGNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRmb3JlZ3JvdW5kLWJhc2UsICRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9yZWdyb3VuZC1iYXNlO1xuICAgICAgb3BhY2l0eTogJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1yaXBwbGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBUaGlzIG1peGluIGVuc3VyZXMgYW4gZWxlbWVudCBzcGFucyB0byBmaWxsIHRoZSBuZWFyZXN0IGFuY2VzdG9yIHdpdGggZGVmaW5lZCBwb3NpdGlvbmluZy5cbkBtaXhpbiBtYXQtZmlsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG5cbi8vLyBNaXhpbiB0aGF0IHR1cm5zIG9uIHN0cm9uZyBmb2N1cyBpbmRpY2F0b3JzLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5teS1hcHAge1xuLy8vICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZyk7XG4vLy8gICB9XG5AbWl4aW4gbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWc6ICgpKSB7XG4gIC8vIERlZmF1bHQgZm9jdXMgaW5kaWNhdG9yIGNvbmZpZy5cbiAgJGRlZmF1bHQtY29uZmlnOiAoXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCxcbiAgICBib3JkZXItd2lkdGg6IDNweCxcbiAgICBib3JkZXItcmFkaXVzOiA0cHgsXG4gICk7XG5cbiAgLy8gTWVyZ2UgZGVmYXVsdCBjb25maWcgd2l0aCB1c2VyIGNvbmZpZy5cbiAgJGNvbmZpZzogbWFwLW1lcmdlKCRkZWZhdWx0LWNvbmZpZywgJGNvbmZpZyk7XG4gICRib3JkZXItc3R5bGU6IG1hcC1nZXQoJGNvbmZpZywgYm9yZGVyLXN0eWxlKTtcbiAgJGJvcmRlci13aWR0aDogbWFwLWdldCgkY29uZmlnLCBib3JkZXItd2lkdGgpO1xuICAkYm9yZGVyLXJhZGl1czogbWFwLWdldCgkY29uZmlnLCBib3JkZXItcmFkaXVzKTtcblxuICAvLyBCYXNlIHN0eWxlcyBmb3IgZm9jdXMgaW5kaWNhdG9ycy5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWF0LWZpbGwoKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgLy8gQnkgZGVmYXVsdCwgYWxsIGZvY3VzIGluZGljYXRvcnMgYXJlIGZsdXNoIHdpdGggdGhlIGJvdW5kaW5nIGJveCBvZiB0aGVpclxuICAvLyBob3N0IGVsZW1lbnQuIEZvciBwYXJ0aWN1bGFyIGVsZW1lbnRzIChsaXN0ZWQgYmVsb3cpLCBkZWZhdWx0IGluc2V0L29mZnNldFxuICAvLyB2YWx1ZXMgYXJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdCB0aGUgZm9jdXMgaW5kaWNhdG9yIGlzIHN1ZmZpY2llbnRseVxuICAvLyBjb250cmFzdGl2ZSBhbmQgcmVuZGVycyBhcHByb3ByaWF0ZWx5LlxuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1mbGF0LWJ1dHRvbjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtcmFpc2VkLWJ1dHRvbjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtZmFiOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1taW5pLWZhYjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtY2hpcDo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyOjpiZWZvcmUge1xuICAgIG1hcmdpbjogLSgkYm9yZGVyLXdpZHRoICsgMnB4KTtcbiAgfVxuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1zdHJva2VkLWJ1dHRvbjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6OmJlZm9yZSB7XG4gICAgbWFyZ2luOiAtKCRib3JkZXItd2lkdGggKyAzcHgpO1xuICB9XG5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXRhYi1saW5rOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC10YWItbGFiZWw6OmJlZm9yZSB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cblxuICAvLyBSZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciBvbiBmb2N1cy4gRGVmaW5pbmcgYSBwc2V1ZG8gZWxlbWVudCdzXG4gIC8vIGNvbnRlbnQgd2lsbCBjYXVzZSBpdCB0byByZW5kZXIuXG5cbiAgLy8gQ2hlY2tib3hlcywgcmFkaW9zLCBhbmQgc2xpZGUgdG9nZ2xlcyByZW5kZXIgZm9jdXMgaW5kaWNhdG9ycyB3aGVuIHRoZVxuICAvLyBhc3NvY2lhdGVkIHZpc3VhbGx5LWhpZGRlbiBpbnB1dCBpcyBmb2N1c2VkLlxuICAubWF0LWNoZWNrYm94LWlucHV0OmZvY3VzIH4gLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcbiAgLm1hdC1yYWRpby1pbnB1dDpmb2N1cyB+IC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0OmZvY3VzIH4gLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG5cbiAgLy8gRm9yIG9wdGlvbnMsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGNsYXNzIC5tYXQtYWN0aXZlXG4gIC8vIGlzIHByZXNlbnQuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1vcHRpb24ubWF0LWFjdGl2ZTo6YmVmb3JlLFxuXG4gIC8vIEZvciBjYWxlbmRhciBjZWxscywgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igd2hlbiB0aGUgcGFyZW50IGNlbGwgaXNcbiAgLy8gZm9jdXNlZC5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6Zm9jdXMgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcblxuICAvLyBGb3IgYWxsIG90aGVyIGNvbXBvbmVudHMsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIG9uIGZvY3VzLlxuICAubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IGFwcGxpZXMgdGhlIGJvcmRlciBjb2xvciBmb3IgdGhlIGZvY3VzIGluZGljYXRvcnMuXG5AbWl4aW4gX21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1ib3JkZXItY29sb3IoJGNvbG9yKSB7XG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgQGluY2x1ZGUgX21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1ib3JkZXItY29sb3IobWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSkpKTtcbn1cblxuLy8vIE1peGluIHRoYXQgc2V0cyB0aGUgY29sb3Igb2YgdGhlIGZvY3VzIGluZGljYXRvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge2NvbG9yfG1hcH0gJHRoZW1lLW9yLWNvbG9yXG4vLy8gICBJZiB0aGVtZSwgZm9jdXMgaW5kaWNhdG9ycyBhcmUgc2V0IHRvIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSB0aGVtZS4gSWZcbi8vLyAgIGNvbG9yLCBmb2N1cyBpbmRpY2F0b3JzIGFyZSBzZXQgdG8gdGhhdCBjb2xvci5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAuZGVtby1kYXJrLXRoZW1lIHtcbi8vLyAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCRkYXJrLXRoZW1lLW1hcCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgLmRlbW8tcmVkLXRoZW1lIHtcbi8vLyAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCNmMDApO1xuLy8vICAgfVxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1hdGVyaWFsL3RoZW1lLW1peGluLWFwaSAqL1xuQG1peGluIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIHR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSAhPSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgX21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1ib3JkZXItY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgZW5zdXJlcyBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50cyBhcmUgcG9zaXRpb25lZCBzbyB0aGF0IHRoZSBmb2N1cyBpbmRpY2F0b3Jcbi8vIHBzZXVkbyBlbGVtZW50IHdpdGhpbiBpcyBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIHRoZSBob3N0LiBQcml2YXRlIG1peGluIGluY2x1ZGVkIHdpdGhpblxuLy8gYG1hdC1jb3JlYC5cbkBtaXhpbiBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXBvc2l0aW9uaW5nKCkge1xuICAubWF0LWZvY3VzLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cblxuXG5cbi8vIFV0aWxpdHkgZm9yIGZldGNoaW5nIGEgbmVzdGVkIHZhbHVlIGZyb20gYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgJG5hbWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgJGxldmVsKSwgJG5hbWUpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250IHNpemUgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1zaXplKTtcbn1cblxuLy8gR2V0cyB0aGUgbGluZSBoZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBsaW5lLWhlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgd2VpZ2h0IGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC13ZWlnaHQpO1xufVxuXG4vLyBHZXRzIHRoZSBsZXR0ZXIgc3BhY2luZyBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxldHRlci1zcGFjaW5nKTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udC1mYW1pbHkgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnIGFuZCByZW1vdmVzIHRoZSBxdW90ZXMgYXJvdW5kIGl0LlxuQGZ1bmN0aW9uIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCAkbGV2ZWw6IG51bGwpIHtcbiAgJGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRjb25maWcsIGZvbnQtZmFtaWx5KTtcblxuICBAaWYgJGxldmVsICE9IG51bGwge1xuICAgICRmb250LWZhbWlseTogX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtZmFtaWx5KTtcbiAgfVxuXG4gIC8vIEd1YXJkIGFnYWluc3QgdW5xdW90aW5nIG5vbi1zdHJpbmcgdmFsdWVzLCBiZWNhdXNlIGl0J3MgZGVwcmVjYXRlZC5cbiAgQHJldHVybiBpZih0eXBlLW9mKCRmb250LWZhbWlseSkgPT0gc3RyaW5nLCB1bnF1b3RlKCRmb250LWZhbWlseSksICRmb250LWZhbWlseSk7XG59XG5cbi8vIE91dHB1dHMgdGhlIHNob3J0aGFuZCBgZm9udGAgQ1NTIHByb3BlcnR5LCBiYXNlZCBvbiBhIHNldCBvZiB0eXBvZ3JhcGh5IHZhbHVlcy4gRmFsbHMgYmFjayB0b1xuLy8gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcyBpZiBhIHZhbHVlIHRoYXQgaXNuJ3QgYWxsb3dlZCBpbiB0aGUgc2hvcnRoYW5kIGlzIHBhc3NlZCBpbi5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KSB7XG4gIC8vIElmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSBzZXQgdG8gYGluaGVyaXRgLCB3ZSBjYW4ndCB1c2UgdGhlIHNob3J0aGFuZFxuICAvLyBzbyB3ZSBmYWxsIGJhY2sgdG8gcGFzc2luZyBpbiB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLlxuICBAaWYgKCRmb250LXNpemUgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBpbmhlcml0IG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXNpemUgPT0gbnVsbCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBudWxsIG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gbnVsbCkge1xuXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2UgdXNlIHRoZSBzaG9ydGhhbmQgYGZvbnRgLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGFtb3VudCBvZiBieXRlcy4gTm90ZVxuICAgIC8vIHRoYXQgd2UgbmVlZCB0byB1c2UgaW50ZXJwb2xhdGlvbiBmb3IgYGZvbnQtc2l6ZS9saW5lLWhlaWdodGAgaW4gb3JkZXIgdG8gcHJldmVudFxuICAgIC8vIFNhc3MgZnJvbSBkaXZpZGluZyB0aGUgdHdvIHZhbHVlcy5cbiAgICBmb250OiAkZm9udC13ZWlnaHQgI3skZm9udC1zaXplfS8jeyRsaW5lLWhlaWdodH0gJGZvbnQtZmFtaWx5O1xuICB9XG59XG5cbi8vIENvbnZlcnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBpbnRvIENTUyBzdHlsZXMuXG5AbWl4aW4gbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsICRsZXZlbCkge1xuICAkZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbCk7XG5cbiAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoJGZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0LCAkbGluZS1oZWlnaHQsICRmb250LWZhbWlseSk7XG4gIGxldHRlci1zcGFjaW5nOiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKTtcbn1cblxuXG5AbWl4aW4gbWF0LW9wdGlvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtb3B0aW9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICY6aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxcbiAgICAmOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gSW4gbXVsdGlwbGUgbW9kZSB0aGVyZSBpcyBhIGNoZWNrYm94IHRvIHNob3cgdGhhdCB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICYubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LW9wdGlvbiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LW9wdGlvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtb3B0aW9uJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGlvbi1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LW9wdGlvbi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LW9wdGdyb3VwLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW9wdGdyb3VwJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtb3B0Z3JvdXAtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuQG1peGluIG1hdC1wc2V1ZG8tY2hlY2tib3gtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAvLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBXaGlsZSB0aGUgc3BlYyBjYWxscyBmb3IgdHJhbnNsdWNlbnQgYmxhY2tzL3doaXRlcyBmb3IgZGlzYWJsZWQgY29sb3JzLFxuICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGVsZW1lbnRzIGxheWVyZWQgb24gdG9wIG9mIG9uZSBhbm90aGVyLiBUbyBnZXQgYXJvdW5kIHRoaXMgd2VcbiAgLy8gYmxlbmQgdGhlIGNvbG9ycyB0b2dldGhlciBiYXNlZCBvbiB0aGUgYmFzZSBjb2xvciBhbmQgdGhlIHRoZW1lIGJhY2tncm91bmQuXG4gICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcms6ICM2ODY4Njg7XG4gICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0OiAjYjBiMGIwO1xuICAkZGlzYWJsZWQtY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrLCAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodCk7XG4gICRjb2xvcmVkLWJveC1zZWxlY3RvcjogJy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUnO1xuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSk7XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIHRoZSBhY2NlbnQgY29sb3IuIE5vdGUgdGhhdCB0aGUgcHNldWRvIGNoZWNrYm94ZXMgYXJlIG1lYW50IHRvIGluaGVyaXQgdGhlXG4gIC8vIHRoZW1lIGZyb20gdGhlaXIgcGFyZW50LCByYXRoZXIgdGhhbiBpbXBsZW1lbnRpbmcgdGhlaXIgb3duIHRoZW1pbmcsIHdoaWNoIGlzIHdoeSB3ZVxuICAvLyBkb24ndCBhdHRhY2ggdG8gdGhlIGBtYXQtKmAgY2xhc3Nlcy4gQWxzbyBub3RlIHRoYXQgdGhpcyBuZWVkcyB0byBiZSBiZWxvdyBgLm1hdC1wcmltYXJ5YFxuICAvLyBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlIGNvbG9yIHRvIGJlIG92ZXJ3cml0dGVuIGlmIHRoZSBjaGVja2JveCBpcyBpbnNpZGUgYSBwYXJlbnQgdGhhdFxuICAvLyBoYXMgYG1hdC1hY2NlbnRgIGFuZCBpcyBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcGFyZW50IHRoYXQgaGFzIGBtYXQtcHJpbWFyeWAuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGFjY2VudCkpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXBzZXVkby1jaGVja2JveC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcHNldWRvLWNoZWNrYm94Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXBzZXVkby1jaGVja2JveC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFJlcHJlc2VudHMgYSB0eXBvZ3JhcGh5IGxldmVsIGZyb20gdGhlIE1hdGVyaWFsIGRlc2lnbiBzcGVjLlxuQGZ1bmN0aW9uIG1hdC10eXBvZ3JhcGh5LWxldmVsKFxuICAkZm9udC1zaXplLFxuICAkbGluZS1oZWlnaHQ6ICRmb250LXNpemUsXG4gICRmb250LXdlaWdodDogNDAwLFxuICAkZm9udC1mYW1pbHk6IG51bGwsXG4gICRsZXR0ZXItc3BhY2luZzogbm9ybWFsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF0ZXJpYWwvdGhlbWUtbWl4aW4tYXBpICovXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIFNlbGVjdGVkIG9wdGlvbnMgaW4gYXV0b2NvbXBsZXRlcyBzaG91bGQgbm90IGJlIGdyYXksIGJ1dCB3ZVxuICAgIC8vIG9ubHkgd2FudCB0byBvdmVycmlkZSB0aGUgYmFja2dyb3VuZCBmb3Igc2VsZWN0ZWQgb3B0aW9ucyBpZlxuICAgIC8vIHRoZXkgYXJlICpub3QqIGluIGhvdmVyIG9yIGZvY3VzIHN0YXRlLiBUaGlzIGNoYW5nZSBoYXMgdG8gYmVcbiAgICAvLyBtYWRlIGhlcmUgYmVjYXVzZSBiYXNlIG9wdGlvbiBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZVxuICAgIC8vIGF1dG9jb21wbGV0ZSBhbmQgdGhlIHNlbGVjdC5cbiAgICAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuXG4gICAgICAmOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1hdXRvY29tcGxldGUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWF1dG9jb21wbGV0ZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1hdXRvY29tcGxldGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG5cbiRtYXQtYmFkZ2UtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1iYWRnZS1mb250LXdlaWdodDogNjAwO1xuJG1hdC1iYWRnZS1kZWZhdWx0LXNpemU6IDIycHggIWRlZmF1bHQ7XG4kbWF0LWJhZGdlLXNtYWxsLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplIC0gNjtcbiRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgKyA2O1xuXG4vLyBNaXhpbiBmb3IgYnVpbGRpbmcgb2Zmc2V0IGdpdmVuIGRpZmZlcmVudCBzaXplc1xuQG1peGluIF9tYXQtYmFkZ2Utc2l6ZSgkc2l6ZSkge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgdG9wOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlbG93IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYm90dG9tOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWFjY2VudCB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS13YXJuIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtaGlkZGVuIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWRpc2FibGVkIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgJGFwcC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdiYWNrZ3JvdW5kJyk7XG4gICAgICAkYmFkZ2UtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgICAgLy8gVGhlIGRpc2FibGVkIGNvbG9yIHVzdWFsbHkgaGFzIHNvbWUga2luZCBvZiBvcGFjaXR5LCBidXQgYmVjYXVzZSB0aGUgYmFkZ2UgaXMgb3ZlcmxheWVkXG4gICAgICAvLyBvbiB0b3Agb2Ygc29tZXRoaW5nIGVsc2UsIGl0IHdvbid0IGxvb2sgZ29vZCBpZiBpdCdzIG9wYXF1ZS4gSWYgaXQgaXMgYSBjb2xvciAqdHlwZSosXG4gICAgICAvLyB3ZSBjb252ZXJ0IGl0IGludG8gYSBzb2xpZCBjb2xvciBieSB0YWtpbmcgdGhlIG9wYWNpdHkgZnJvbSB0aGUgcmdiYSB2YWx1ZSBhbmQgdXNpbmdcbiAgICAgIC8vIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZCB3aGVuXG4gICAgICAvLyBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci5cbiAgICAgIEBpZiAodHlwZS1vZigkYmFkZ2UtY29sb3IpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRhcHAtYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgICAgJGJhZGdlLW9wYWNpdHk6IG9wYWNpdHkoJGJhZGdlLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogbWl4KCRhcHAtYmFja2dyb3VuZCwgcmdiYSgkYmFkZ2UtY29sb3IsIDEpLCAoMSAtICRiYWRnZS1vcGFjaXR5KSAqIDEwMCUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LFxuICAubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgYWN0aXZlIGNsYXNzIGlzIGFkZGVkIGFmdGVyIHRoZSBlbGVtZW50IGlzIGFkZGVkXG4gIC8vIHNvIGl0IGNhbiBhbmltYXRlIHNjYWxlIHRvIGRlZmF1bHRcbiAgLm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmUge1xuICAgIC8vIFNjYWxlIHRvIGBub25lYCBpbnN0ZWFkIG9mIGAxYCB0byBhdm9pZCBibHVycnkgdGV4dCBpbiBzb21lIGJyb3dzZXJzLlxuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2Utc21hbGwge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLXNtYWxsLXNpemUpO1xuICB9XG4gIC5tYXQtYmFkZ2UtbWVkaXVtIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUpO1xuICB9XG4gIC5tYXQtYmFkZ2UtbGFyZ2Uge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWxhcmdlLXNpemUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgZm9udC13ZWlnaHQ6ICRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZTtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIC8vIFNldCB0aGUgZm9udCBzaXplIHRvIDc1JSBvZiB0aGUgb3JpZ2luYWwuXG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZSAqIDAuNzU7XG4gIH1cblxuICAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZSAqIDI7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYmFkZ2UtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYmFkZ2UnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYmFkZ2UtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1iYWRnZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJhZGdlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWJvdHRvbS1zaGVldC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxNiwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJvdHRvbS1zaGVldC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYm90dG9tLXNoZWV0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWJvdHRvbS1zaGVldC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbiRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eTogMC4xO1xuXG4vLyBBcHBsaWVzIGEgZm9jdXMgc3R5bGUgdG8gYW4gbWF0LWJ1dHRvbiBlbGVtZW50IGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGFsZXR0ZXMuXG5AbWl4aW4gX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vIEFwcGxpZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIGEgcmlwcGxlLiBJZiB0aGUgdmFsdWUgcHJvdmlkZWQgaXMgbm90IGEgU2FzcyBjb2xvcixcbi8vIHdlIGFzc3VtZSB0aGF0IHdlJ3ZlIGJlZW4gZ2l2ZW4gYSBDU1MgdmFyaWFibGUuIFNpbmNlIHdlIGNhbid0IHBlcmZvcm0gYWxwaGEtYmxlbmRpbmdcbi8vIG9uIGEgQ1NTIHZhcmlhYmxlLCB3ZSBpbnN0ZWFkIGFkZCB0aGUgb3BhY2l0eSBkaXJlY3RseSB0byB0aGUgcmlwcGxlIGVsZW1lbnQuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsICRodWUsICRvcGFjaXR5KSB7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWUsICRvcGFjaXR5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZC1jb2xvcikgIT0gY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCR0aGVtZSwgJGh1ZSwgJG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCRwcmltYXJ5LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJGFjY2VudCwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkd2FybiwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgYSBwcm9wZXJ0eSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICRwcm9wZXJ0eSwgJGh1ZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtYWNjZW50IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlKTtcbiAgfVxuICAmLm1hdC13YXJuIHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkd2FybiwgJGh1ZSk7XG4gIH1cblxuICAmLm1hdC1wcmltYXJ5LCAmLm1hdC1hY2NlbnQsICYubWF0LXdhcm4sICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICAvLyBCdXR0b25zIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBpbmhlcml0IHRoZSBmb250IGNvbG9yLiBUaGlzIGlzIG5lY2Vzc2FyeSB0b1xuICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgcmVhZGFibGUgb24gY3VzdG9tIGJhY2tncm91bmQgY29sb3JzLiBJdCdzIHdyb25nIHRvIGFsd2F5cyBhc3N1bWVcbiAgICAvLyB0aGF0IHRob3NlIGJ1dHRvbnMgYXJlIGFsd2F5cyBwbGFjZWQgaW5zaWRlIG9mIGNvbnRhaW5lcnMgd2l0aCB0aGUgZGVmYXVsdCBiYWNrZ3JvdW5kXG4gICAgLy8gY29sb3Igb2YgdGhlIHRoZW1lIChlLmcuIHRoZW1lZCB0b29sYmFycykuXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnY29sb3InLCB0ZXh0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCRjb25maWcpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgLy8gRGVmYXVsdCBmb250IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gbm90IHVzaW5nIGFueSBjb2xvciBwYWxldHRlLlxuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgcmFpc2VkLWJ1dHRvbik7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnY29sb3InLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkY29uZmlnLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b24sIC5tYXQtZmxhdC1idXR0b24ge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1yYWlzZWQtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigyLCAkY29uZmlnKTtcblxuICAgICY6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oOCwgJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig2LCAkY29uZmlnKTtcblxuICAgICY6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICRjb25maWcpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYnV0dG9uLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1idXR0b24nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUYWtlbiBmcm9tIG1hdC1kZW5zaXR5IHdpdGggc21hbGwgbW9kaWZpY2F0aW9ucyB0byBub3QgcmVseSBvbiB0aGUgbmV3IFNhc3MgbW9kdWxlXG4vLyBzeXN0ZW0sIGFuZCB0byBzdXBwb3J0IGFyYml0cmFyeSBwcm9wZXJ0aWVzIGluIGEgZGVuc2l0eSBjb25maWd1cmF0aW9uLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvYmxvYi9tYXN0ZXIvcGFja2FnZXMvbWRjLWRlbnNpdHlcblxuJF9tYXQtZGVuc2l0eS1pbnRlcnZhbDogNHB4ICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1taW5pbXVtLXNjYWxlOiBtaW5pbXVtICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1tYXhpbXVtLXNjYWxlOiBtYXhpbXVtICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzOiAoZGVmYXVsdCwgbWluaW11bSwgbWF4aW11bSkgIWRlZmF1bHQ7XG4kX21hdC1kZW5zaXR5LWRlZmF1bHQtc2NhbGU6IDAgIWRlZmF1bHQ7XG5cbi8vIFdoZXRoZXIgZGVuc2l0eSBzaG91bGQgYmUgZ2VuZXJhdGVkIGF0IHJvb3QuIFRoaXMgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gYHRydWVgXG4vLyB3aGVuZXZlciBkZW5zaXR5IHN0eWxlcyBmb3IgbGVnYWN5IHRoZW1lcyBhcmUgZ2VuZXJhdGVkLlxuJF9tYXQtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290OiBmYWxzZTtcbi8vIFdoZXRoZXIgZGVuc2l0eSBzdHlsZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gVGhpcyB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byBgZmFsc2VgIGlmXG4vLyBkdXBsaWNhdGUgZGVuc2l0eSBzdHlsZXMgZm9yIGEgbGVnYWN5IHRoZW1lIHdvdWxkIGJlIGdlbmVyYXRlZC4gRm9yIGxlZ2FjeSB0aGVtZXMsXG4vLyB3ZSBhbHdheXMgZ2VuZXJhdGUgdGhlIGRlZmF1bHQgZGVuc2l0eSAqKm9ubHkgb25jZSoqIGF0IHJvb3QuXG4kX21hdC1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlczogdHJ1ZTtcblxuLy8gTWl4aW4gdGhhdCBjYW4gYmUgdXNlZCB0byB3cmFwIGRlbnNpdHkgc3R5bGVzIG9mIGdpdmVuIGNvbXBvbmVudHMuIFRoZSBtaXhpbiB3aWxsXG4vLyBtb3ZlIHRoZSBkZW5zaXR5IHN0eWxlcyB0byByb290IGlmIHRoZSBgJF9tYXQtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290YCBnbG9iYWwgdmFyaWFibGVcbi8vIGlzIHNldC4gSWYgYCRfbWF0LWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzYCBpcyBzZXQgdG8gYGZhbHNlYCwgZ2VuZXJhdGlvbiBvZiBkZW5zaXR5XG4vLyBzdHlsZXMgd3JhcHBlZCBpbiB0aGlzIG1peGluIGlzIHNraXBwZWQuIFRoaXMgbWl4aW4gZXhpc3RzIHRvIGltcHJvdmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbi8vIG9mIHRoZSBuZXcgdGhlbWluZyBBUEkgd2hlcmUgZGVuc2l0eSBzdHlsZXMgYXJlIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlbWVzLiBQcmV2aW91c2x5LFxuLy8gZGVuc2l0eSBzdHlsZXMgb2YgY29tcG9uZW50cyB3ZXJlIHBhcnQgb2YgdGhlaXIgYmFzZSBzdHlsZXMuIFdpdGggdGhlIG5ldyBBUEksIHRoZXkgYXJlXG4vLyBwYXJ0IG9mIHRoZSB0aGVtaW5nIHN5c3RlbS4gVGhlIGA8Li4+LXRoZW1lYCBtaXhpbnMgZ2VuZXJhdGUgZGVuc2l0eSBieSBkZWZhdWx0IHVubGVzc1xuLy8gdGhlIGRlbnNpdHkgY29uZmlndXJhdGlvbiBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCBhcyBwZXIgbmV3IEFQSS4gVGhpcyBtZWFucywgdGhhdCBwcm9qZWN0c1xuLy8gdXNpbmcgYDwuLj4tdGhlbWVgIG1peGlucyBmb3Igc2VwYXJhdGUgdGhlbWVzIChsaWtlIGAuZGFyay10aGVtZWApIHdpbGwgY2F1c2UgZHVwbGljYXRlXG4vLyBkZW5zaXR5IHN0eWxlcy4gVGhpcyBpcyBicmVha2luZyBhcyBpdCBpbmNyZWFzZXMgc3BlY2lmaWNpdHkgb2YgZGVuc2l0eSBzdHlsZXMuIFRoaXMgbWl4aW5cbi8vIHByb3ZpZGVzIGFuIEFQSSB0byBjb250cm9sIGdlbmVyYXRpb24gb2YgZGVuc2l0eSBzdHlsZXMgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoZXkgYXJlIG9ubHlcbi8vIGNyZWF0ZWQgKm9uY2UqIGFuZCBhdCByb290LlxuQG1peGluIF9tYXQtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgQGlmICRfbWF0LWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzIGFuZCAkX21hdC1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3Qge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkX21hdC1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlcyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIF9tYXQtZGVuc2l0eS1wcm9wLXZhbHVlKCRkZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsICRwcm9wZXJ0eS1uYW1lKSB7XG4gIEBpZiAodHlwZS1vZigkZGVuc2l0eS1zY2FsZSkgPT0gJ3N0cmluZycgYW5kXG4gICAgICBpbmRleCgkbGlzdDogJF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzLCAkdmFsdWU6ICRkZW5zaXR5LXNjYWxlKSA9PSBudWxsKSB7XG4gICAgQGVycm9yICdtYXQtZGVuc2l0eTogU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGVzICN7JF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzfSwgJyAgK1xuICAgICAgJ2J1dCByZWNlaXZlZCAjeyRkZW5zaXR5LXNjYWxlfS4nO1xuICB9XG5cbiAgJHZhbHVlOiBudWxsO1xuICAkcHJvcGVydHktc2NhbGUtbWFwOiBtYXAtZ2V0KCRkZW5zaXR5LWNvbmZpZywgJHByb3BlcnR5LW5hbWUpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkcHJvcGVydHktc2NhbGUtbWFwLCAkZGVuc2l0eS1zY2FsZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkZGVuc2l0eS1zY2FsZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCBkZWZhdWx0KSArICRkZW5zaXR5LXNjYWxlICogJF9tYXQtZGVuc2l0eS1pbnRlcnZhbDtcbiAgfVxuXG4gICRtaW4tdmFsdWU6IG1hcC1nZXQoJHByb3BlcnR5LXNjYWxlLW1hcCwgJF9tYXQtZGVuc2l0eS1taW5pbXVtLXNjYWxlKTtcbiAgJG1heC12YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkX21hdC1kZW5zaXR5LW1heGltdW0tc2NhbGUpO1xuXG4gIEBpZiAoJHZhbHVlIDwgJG1pbi12YWx1ZSBvciAkdmFsdWUgPiAkbWF4LXZhbHVlKSB7XG4gICAgQGVycm9yICdtYXQtZGVuc2l0eTogI3skcHJvcGVydHktbmFtZX0gbXVzdCBiZSBiZXR3ZWVuICN7JG1pbi12YWx1ZX0gYW5kICcgK1xuICAgICAgJyN7JG1heC12YWx1ZX0gKGluY2x1c2l2ZSksIGJ1dCByZWNlaXZlZCAjeyR2YWx1ZX0uJztcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIGhpZ2hlc3QgZGVuc2l0eSBjYW4gdmFyeSBiYXNlZCBvbiB0aGUgY29udGVudCB0aGF0IGRldmVsb3BlcnNcbi8vIHByb2plY3QgaW50byBidXR0b24tdG9nZ2xlJ3MuIFdlIHVzZSBhIG1pbmltdW0gb2YgYDI0cHhgIHRob3VnaCBiZWNhdXNlIGNvbW1vbmx5XG4vLyBpY29ucyBvciB0ZXh0IGFyZSBkaXNwbGF5ZWQuIEljb25zIGJ5IGRlZmF1bHQgaGF2ZSBhIHNpemUgb2YgYDI0cHhgLlxuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1pbmltdW0taGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1heGltdW0taGVpZ2h0OiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRkaXZpZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDIsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZm9jdXNlZC1idXR0b24sIDEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxuXG4gIFtkaXI9J3J0bCddIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCB7XG4gICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWJ1dHRvbik7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpc2FibGVkLWJ1dHRvbi10b2dnbGUpO1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYnV0dG9uLXRvZ2dsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRzdGFuZGFyZC1oZWlnaHQ6IF9tYXQtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBfbWF0LWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgICAgbGluZS1oZWlnaHQ6ICRzdGFuZGFyZC1oZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWJ1dHRvbi10b2dnbGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10b2dnbGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1jYXJkIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigxLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gTmVlZHMgZXh0cmEgc3BlY2lmaWNpdHkgdG8gYmUgYWJsZSB0byBvdmVycmlkZSB0aGUgZWxldmF0aW9uIHNlbGVjdG9ycy5cbiAgICAmLm1hdC1jYXJkLWZsYXQge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2FyZC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWNhcmQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2FyZC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNhcmQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jYXJkLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1jaGVja2JveC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuXG4gIC8vIFRoZSBjb2xvciBvZiB0aGUgY2hlY2tib3gncyBjaGVja21hcmsgLyBtaXhlZG1hcmsuXG4gICRjaGVja2JveC1tYXJrLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcblxuICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgIGZpbGw6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaGVyZSBiZWNhdXNlIGEgc3Ryb2tlIG11c3QgYmUgc2V0IGFzIGFuXG4gICAgLy8gYXR0cmlidXRlIG9uIHRoZSBTVkcgaW4gb3JkZXIgZm9yIGxpbmUgYW5pbWF0aW9uIHRvIHdvcmsgcHJvcGVybHkuXG4gICAgc3Ryb2tlOiAkY2hlY2tib3gtbWFyay1jb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCksIGJhc2UpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSxcbiAgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2hlY2tib3gge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAvLyBUT0RPKGthcmEpOiBSZW1vdmUgdGhpcyBzdHlsZSB3aGVuIGZpeGluZyB2ZXJ0aWNhbCBiYXNlbGluZVxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2hlY2tib3gtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY2hlY2tib3gnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGVja2JveC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4kbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTogMThweDtcblxuQG1peGluIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKCRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuXG4gIC5tYXQtY2hpcC1yZW1vdmUge1xuICAgIGNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cbn1cblxuXG4vLyBBcHBsaWVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciBhIHJpcHBsZSBlbGVtZW50LlxuLy8gSWYgdGhlIGNvbG9yIHZhbHVlIHByb3ZpZGVkIGlzIG5vdCBhIFNhc3MgY29sb3IsXG4vLyB3ZSBhc3N1bWUgdGhhdCB3ZSd2ZSBiZWVuIGdpdmVuIGEgQ1NTIHZhcmlhYmxlLlxuLy8gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZyBvbiBhIENTUyB2YXJpYWJsZSxcbi8vIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWNoaXBzLXJpcHBsZS1iYWNrZ3JvdW5kKCRwYWxldHRlLCAkZGVmYXVsdC1jb250cmFzdCwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGRlZmF1bHQtY29udHJhc3QsICRvcGFjaXR5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZC1jb2xvcikgIT0gY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jaGlwLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCksIG1hdC1jb2xvcigkcGFsZXR0ZSkpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtY2hpcHMtcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHVuc2VsZWN0ZWQtY2hpcCk7XG4gICR1bnNlbGVjdGVkLWZvcmVncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICBAaW5jbHVkZSBfbWF0LWNoaXAtZWxlbWVudC1jb2xvcigkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kLCAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblxuICAgICY6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkge1xuICAgICAgJjphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigzLCAkY29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hpcC1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2hpcC10aGVtZS1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2hpcCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuXG4gICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4gICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRtYXQtY2hpcC1yZW1vdmUtZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jaGlwcy1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jaGlwcycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXBzLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRpdmlkZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1kaXZpZGVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1kaXZpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGl2aWRlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kaXZpZGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGl2aWRlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXRhYmxlIHRoZWFkLCAubWF0LXRhYmxlIHRib2R5LCAubWF0LXRhYmxlIHRmb290LFxuICBtYXQtaGVhZGVyLXJvdywgbWF0LXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIFttYXQtaGVhZGVyLXJvd10sIFttYXQtcm93XSwgW21hdC1mb290ZXItcm93XSxcbiAgLm1hdC10YWJsZS1zdGlja3kge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBtYXQtcm93LCBtYXQtaGVhZGVyLXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIHRoLm1hdC1oZWFkZXItY2VsbCwgdGQubWF0LWNlbGwsIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYmxlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10YWJsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRhYmxlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYmxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGFibGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG4kbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aDogMXB4O1xuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50OiAwLjY7XG4kbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQ6IDAuMjtcbiRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDogMC4yO1xuJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU6IDExcHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBfbWF0LWRhdGVwaWNrZXItY29sb3IoJHBhbGV0dGUpIHtcbiAgQGluY2x1ZGUgbWF0LWRhdGUtcmFuZ2UtY29sb3JzKFxuICAgIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJG1hdC1kYXRlcGlja2VyLXJhbmdlLWZhZGUtYW1vdW50KSk7XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICAkYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRiYWNrZ3JvdW5kLCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRvIGJhY2tncm91bmQgdG8gYSBjb2xvciAoZS5nLiBpdCdzIGEgQ1NTIHZhcmlhYmxlKSxcbiAgICAgIC8vIGZhbGwgYmFjayB0byBmYWRpbmcgdGhlIGNvbnRlbnQgb3V0IHZpYSBgb3BhY2l0eWAuXG4gICAgICBvcGFjaXR5OiAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aFxuICAgICAgICAgICAgICAgIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuLy8gVXRpbGl0eSBtaXhpbiB0byB0YXJnZXQgY2VsbHMgdGhhdCBhcmVuJ3Qgc2VsZWN0ZWQuIFVzZWQgdG8gbWFrZSBzZWxlY3RvciBlYXNpZXIgdG8gZm9sbG93LlxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAmOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQsXG4gIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlcixcbiAgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUsXG4gIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUge1xuICAgICYgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcHJldmlldyB7XG4gICAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgICBAaWYgdHlwZS1vZigkZGl2aWRlci1jb2xvcikgPT0gY29sb3Ige1xuICAgICAgLy8gVGhlIGRpdmlkZXIgY29sb3IgaXMgc2V0IHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQnbGwgYmUgdXNlZFxuICAgICAgLy8gZm9yIGEgc29saWQgYm9yZGVyLCBidXQgYmVjYXVzZSB3ZSdyZSB1c2luZyBhIGRhc2hlZCBib3JkZXIgZm9yIHRoZVxuICAgICAgLy8gcHJldmlldyByYW5nZSwgd2UgbmVlZCB0byBidW1wIGl0cyBvcGFjaXR5IHRvIGVuc3VyZSB0aGF0IGl0J3MgdmlzaWJsZS5cbiAgICAgIGNvbG9yOiByZ2JhKCRkaXZpZGVyLWNvbG9yLCBtaW4ob3BhY2l0eSgkZGl2aWRlci1jb2xvcikgKiAyLCAxKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkge1xuICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgLy8gTm90ZTogdGhvdWdoIGl0J3Mgbm90IHRleHQsIHRoZSBib3JkZXIgaXMgYSBoaW50IGFib3V0IHRoZSBmYWN0IHRoYXQgdGhpcyBpcyB0b2RheSdzIGRhdGUsXG4gICAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkge1xuICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgJGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG5cbiAgICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgICAvLyBmYWRlIGl0IG91dCBzbyB3ZSBmYWxsIGJhY2sgdG8gcmVkdWNpbmcgdGhlIGVsZW1lbnQgb3BhY2l0eS4gTm90ZSB0aGF0IHdlIGRvbid0IHVzZSB0aGVcbiAgICAgICAgLy8gJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50LCBiZWNhdXNlIGhpbnQgdGV4dCB1c3VhbGx5IGhhcyBzb21lIG9wYWNpdHkgYXBwbGllZFxuICAgICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHdhcm4pLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlLXJhbmdlLWNvbG9ycyhcbiAgJHJhbmdlLWNvbG9yLFxuICAkY29tcGFyaXNvbi1jb2xvcjogcmdiYSgjZjlhYjAwLCAkbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQpLFxuICAkb3ZlcmxhcC1jb2xvcjogI2E4ZGFiNSxcbiAgJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I6IGRhcmtlbigkb3ZlcmxhcC1jb2xvciwgMzAlKSkge1xuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRjb21wYXJpc29uLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsXG4gIFtkaXI9J3J0bCddIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcmFuZ2UtY29sb3IgNTAlLCAkY29tcGFyaXNvbi1jb2xvciA1MCUpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLFxuICBbZGlyPSdydGwnXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICRyYW5nZS1jb2xvciA1MCUsICRjb21wYXJpc29uLWNvbG9yIDUwJSk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2UgPiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXAtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGF0ZXBpY2tlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMjQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZGlhbG9nLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kaWFsb2cnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGlhbG9nLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGlhbG9nLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBEZWZhdWx0IG1pbmltdW0gYW5kIG1heGltdW0gaGVpZ2h0IGZvciBjb2xsYXBzZWQgcGFuZWwgaGVhZGVycy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1taW5pbXVtLWhlaWdodDogMzZweCAhZGVmYXVsdDtcbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWF4aW11bS1oZWlnaHQ6XG4gICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgbWluaW11bSBhbmQgbWF4aW11bSBoZWlnaHQgZm9yIGV4cGFuZGVkIHBhbmVsIGhlYWRlcnMuXG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtaGVpZ2h0OiA2NHB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1pbmltdW0taGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1heGltdW0taGVpZ2h0OlxuICAgICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQgIWRlZmF1bHQ7XG5cbi8vIERlbnNpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGV4cGFuc2lvbiBwYW5lbC4gQ2FwdHVyZXMgdGhlXG4vLyBoZWlnaHQgZm9yIGJvdGggZXhwYW5kZWQgYW5kIGNvbGxhcHNlZCBwYW5lbCBoZWFkZXJzLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGNvbGxhcHNlZC1oZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWluaW11bS1oZWlnaHQsXG4gICksXG4gIGV4cGFuZGVkLWhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuLy8gTm90ZTogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgYW5pbWF0aW9uIHRpbWluZyBmb3IgdGhlIHRvZ2dsZSBpbmRpY2F0b3Jcbi8vIGFuZCBib2R5IGV4cGFuc2lvbi4gVGhlc2UgYXJlIGFuaW1hdGVkIHVzaW5nIEFuZ3VsYXIgYW5pbWF0aW9ucy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10cmFuc2l0aW9uOiAyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuXG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWN0aW9uLXJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgICAmIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgICAmOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGUgdGhlIGhvdmVyIG9uIHRvdWNoIGRldmljZXMgc2luY2UgaXQgY2FuIGFwcGVhciBsaWtlIGl0IGlzIHN0dWNrLiBXZSBjYW4ndCB1c2VcbiAgLy8gYEBtZWRpYSAoaG92ZXIpYCBhYm92ZSwgYmVjYXVzZSB0aGUgZGVza3RvcCBzdXBwb3J0IGJyb3dzZXIgc3VwcG9ydCBpc24ndCBncmVhdC5cbiAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSlcbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4gIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1leHBhbnNpb24tcGFuZWwtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZXhwYW5kZWQtaGVpZ2h0OiBfbWF0LWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgZXhwYW5kZWQtaGVpZ2h0KTtcbiAgJGNvbGxhcHNlZC1oZWlnaHQ6IF9tYXQtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgY29sbGFwc2VkLWhlaWdodCk7XG5cbiAgQGluY2x1ZGUgX21hdC1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6ICRjb2xsYXBzZWQtaGVpZ2h0O1xuXG4gICAgICAmLm1hdC1leHBhbmRlZCB7XG4gICAgICAgIGhlaWdodDogJGV4cGFuZGVkLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1leHBhbnNpb24tcGFuZWwnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZXhwYW5zaW9uLXBhbmVsLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBNdXN0IHJlbW92ZSB3cmFwcGVyIHdoZW4gbGluZXMgYXJlIGVtcHR5IG9yIGl0IHRha2VzIHVwIGhvcml6b250YWxcbiAgLy8gc3BhY2UgYW5kIHB1c2hlcyBvdGhlciBlbGVtZW50cyB0byB0aGUgcmlnaHQuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8vIEluY2x1ZGUgdGhpcyBlbXB0eSBtaXhpbiBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgb3RoZXIgY29tcG9uZW50cy5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4gIC5tYXQtZ3JpZC10aWxlLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1ncmlkLWxpc3QtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWdyaWQtbGlzdCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1ncmlkLWxpc3QtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cbkBtaXhpbiBtYXQtaWNvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtaWNvbiB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWljb24tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1pY29uLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaWNvbicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pY29uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtaWNvbi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWljb24tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFJlbmRlcnMgYSBncmFkaWVudCBmb3Igc2hvd2luZyB0aGUgZGFzaGVkIGxpbmUgd2hlbiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuXG4vLyBVbmxpa2UgdXNpbmcgYSBib3JkZXIsIGEgZ3JhZGllbnQgYWxsb3dzIHVzIHRvIGFkanVzdCB0aGUgc3BhY2luZyBvZiB0aGUgZG90dGVkIGxpbmVcbi8vIHRvIG1hdGNoIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3BlYy5cbkBtaXhpbiBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGNvbG9yIDAlLCAkY29sb3IgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gRmlndXJlcyBvdXQgdGhlIGNvbG9yIG9mIHRoZSBwbGFjZWhvbGRlciBmb3IgYSBmb3JtIGNvbnRyb2wuXG4vLyBVc2VkIHByaW1hcmlseSB0byBwcmV2ZW50IHRoZSB2YXJpb3VzIGZvcm0gY29udHJvbHMgZnJvbVxuLy8gYmVjb21pbmcgb3V0IG9mIHN5bmMgc2luY2UgdGhlc2UgY29sb3JzIGFyZW4ndCBpbiBhIHBhbGV0dGUuXG5AZnVuY3Rpb24gX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCRjb25maWcpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICBAcmV0dXJuIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbn1cblxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBtYXRlcmlhbC9uby1wcmVmaXhlcyAqL1xuQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZSkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIC1tb3otdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1zLXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIHVzZXItc2VsZWN0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBpbnB1dC1wbGFjZWhvbGRlciB7XG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGN1cnNvci1ncmFiIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjtcbn1cblxuQG1peGluIGN1cnNvci1ncmFiYmluZyB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZhbHVlKSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZhbHVlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBwb3NpdGlvbi1zdGlja3kge1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cblxuXG5AbWl4aW4gbWF0LWlucHV0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcblxuICAgIEBpbmNsdWRlIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLy8gT24gZGFyayB0aGVtZXMgd2Ugc2V0IHRoZSBuYXRpdmUgYHNlbGVjdGAgY29sb3IgdG8gc29tZSBzaGFkZSBvZiB3aGl0ZSxcbiAgICAvLyBob3dldmVyIHRoZSBjb2xvciBwcm9wYWdhdGVzIHRvIGFsbCBvZiB0aGUgYG9wdGlvbmAgZWxlbWVudHMsIHdoaWNoIGFyZVxuICAgIC8vIGFsd2F5cyBvbiBhIHdoaXRlIGJhY2tncm91bmQgaW5zaWRlIHRoZSBkcm9wZG93biwgY2F1c2luZyB0aGVtIHRvIGJsZW5kIGluLlxuICAgIC8vIFNpbmNlIHdlIGNhbid0IGNoYW5nZSBiYWNrZ3JvdW5kIG9mIHRoZSBkcm9wZG93biwgd2UgbmVlZCB0byBleHBsaWNpdGx5XG4gICAgLy8gcmVzZXQgdGhlIGNvbG9yIG9mIHRoZSBvcHRpb25zIHRvIHNvbWV0aGluZyBkYXJrLlxuICAgIEBpZiAobWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWlucHV0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWlucHV0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWlucHV0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtaW5wdXQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWxpc3QtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1saXN0LW9wdGlvbik7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uLFxuICAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtLFxuICAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3ZlciwgMC4xMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG5cbiAgLm1hdC1saXN0LWl0ZW0ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSkpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlbnNlIGxpc3RcbiAgLm1hdC1saXN0LWJhc2VbZGVuc2VdIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1saXN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtbGlzdCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1saXN0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtbGlzdC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWxpc3QtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LW1lbnUtcGFuZWwge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAndGV4dCcpO1xuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgJiwgJjo6YWZ0ZXIge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4gIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbTpob3ZlcixcbiAgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkIHtcbiAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtbWVudS1pdGVtIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtbWVudS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtbWVudS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW1lbnUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbWVudS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LW1lbnUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1tZW51LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4kbWF0LXBhZ2luYXRvci1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4vLyBNaW5pbXVtIGhlaWdodCBmb3IgcGFnaW5hdG9yJ3MgaW4gdGhlIGhpZ2hlc3QgZGVuc2l0eSBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIGhvd1xuLy8gbXVjaCB0aGUgcGFnaW5hdG9yIGNhbiBzaHJpbmsgdW50aWwgdGhlIGNvbnRlbnQgZXhjZWVkcyAoaS5lLiBuYXZpZ2F0aW9uIGJ1dHRvbnMpLlxuJG1hdC1wYWdpbmF0b3ItbWluaW11bS1oZWlnaHQ6IDQwcHggIWRlZmF1bHQ7XG4kbWF0LXBhZ2luYXRvci1tYXhpbXVtLWhlaWdodDogJG1hdC1wYWdpbmF0b3ItaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LXBhZ2luYXRvci1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXBhZ2luYXRvci1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1wYWdpbmF0b3ItbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1wYWdpbmF0b3ItbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtcGFnaW5hdG9yIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvcixcbiAgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbiAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbiAgICAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4gICAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXBhZ2luYXRvcixcbiAgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtcGFnaW5hdG9yLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodDogX21hdC1kZW5zaXR5LXByb3AtdmFsdWUoJG1hdC1wYWdpbmF0b3ItZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIF9tYXQtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LXBhZ2luYXRvci1jb250YWluZXIge1xuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wYWdpbmF0b3InKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcGFnaW5hdG9yLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1wcm9ncmVzcy1iYXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXByb2dyZXNzLWJhcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1wcm9ncmVzcy1iYXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXByb2dyZXNzLXNwaW5uZXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wcm9ncmVzcy1zcGlubmVyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1wcm9ncmVzcy1zcGlubmVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBuZWVkcyBleHRyYSBzcGVjaWZpY2l0eSwgYmVjYXVzZSB0aGUgY2xhc3NlcyBhYm92ZSBhcmUgY29tYmluZWRcbiAgICAvLyAoZS5nLiBgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudGApIHdoaWNoIGluY3JlYXNlcyB0aGVpciBzcGVjaWZpY2l0eSBhIGxvdC5cbiAgICAvLyBUT0RPOiBjb25zaWRlciBtYWtpbmcgdGhlIHNlbGVjdG9ycyBpbnRvIGRlc2NlbmRhbnRzIChgLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tYnV0dG9uYCkuXG4gICAgJi5tYXQtcmFkaW8tZGlzYWJsZWQge1xuICAgICAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTd2l0Y2ggdGhpcyB0byBhIHNvbGlkIGNvbG9yIHNpbmNlIHdlJ3JlIHVzaW5nIGBvcGFjaXR5YFxuICAgIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJhZGlvLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1yYWRpby1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1yYWRpbycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1yYWRpby1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNlbGVjdC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuXG4gICAgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3ZlciwgMC4xMik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgICYubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC5tYXQtc2VsZWN0IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgaGVpZ2h0OiAkbGluZS1oZWlnaHQgKiAxZW07XG4gIH1cbn1cblxuQG1peGluIF9tYXQtc2VsZWN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zZWxlY3QnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2VsZWN0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zaWRlbmF2LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgJGRyYXdlci1iYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICRkcmF3ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6ICBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAkZHJhd2VyLXB1c2gtYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLXNpZGUtYm9yZGVyOiBzb2xpZCAxcHggbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LWRyYXdlci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWRyYXdlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtZHJhd2VyLXB1c2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICAgICAgLy8gVGhlIGVsZXZhdGlvbiBvZiB6LTE2IGlzIG5vdGVkIGluIHRoZSBkZXNpZ24gc3BlY2lmaWNhdGlvbnMuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWRyYXdlci5odG1sXG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxNiwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXNpZGVuYXYtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zaWRlbmF2Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zaWRlbmF2LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyazogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAvLyBDb2xvciBodWVzIGFyZSBiYXNlZCBvbiB0aGUgc3BlY3Mgd2hpY2ggYnJpZWZseSBzaG93IHRoZSBodWVzIHRoYXQgYXJlIGFwcGxpZWQgdG8gYSBzd2l0Y2guXG4gIC8vIFRoZSAyMDE4IHNwZWNzIG5vIGxvbmdlciBkZXNjcmliZSBob3cgZGFyayBzd2l0Y2hlcyBzaG91bGQgbG9vayBsaWtlLiBEdWUgdG8gdGhlIGxhY2sgb2ZcbiAgLy8gaW5mb3JtYXRpb24gZm9yIGRhcmsgdGhlbWVkIHN3aXRjaGVzLCB3ZSBwYXJ0aWFsbHkga2VlcCB0aGUgb2xkIGJlaGF2aW9yIHRoYXQgaXMgYmFzZWQgb25cbiAgLy8gdGhlIHByZXZpb3VzIHNwZWNpZmljYXRpb25zLiBGb3IgdGhlIGNoZWNrZWQgY29sb3Igd2UgYWx3YXlzIHVzZSB0aGUgYGRlZmF1bHRgIGh1ZSBiZWNhdXNlXG4gIC8vIHRoYXQgZm9sbG93cyBNREMgYW5kIGFsc28gbWFrZXMgaXQgZWFzaWVyIGZvciBwZW9wbGUgdG8gY3JlYXRlIGEgY3VzdG9tIHRoZW1lIHdpdGhvdXQgbmVlZGluZ1xuICAvLyB0byBzcGVjaWZ5IGVhY2ggaHVlIGluZGl2aWR1YWxseS5cbiAgJHRodW1iLXVuY2hlY2tlZC1odWU6IGlmKCRpcy1kYXJrLCA0MDAsIDUwKTtcbiAgJHRodW1iLWNoZWNrZWQtaHVlOiBkZWZhdWx0O1xuXG4gICRiYXItdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgJHJpcHBsZS11bmNoZWNrZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJGFjY2VudCwgJHRodW1iLWNoZWNrZWQtaHVlKTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkcHJpbWFyeSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHdhcm4sICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIC8vIFNldCBubyBvcGFjaXR5IGZvciB0aGUgcmlwcGxlcyBiZWNhdXNlIHRoZSByaXBwbGUgb3BhY2l0eSB3aWxsIGJlIGFkanVzdGVkIGR5bmFtaWNhbGx5XG4gICAgICAvLyBiYXNlZCBvbiB0aGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzbGlkZS10b2dnbGUgKGUuZy4gZm9yIGhvdmVyLCBmb2N1cylcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNsaWRlLXRvZ2dsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2xpZGUtdG9nZ2xlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAkb3BhY2l0eTogMC4yO1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LCAkb3BhY2l0eSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHk6IDAuNztcbiAgJG1hdC1zbGlkZXItdGljay1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHkpO1xuICAkbWF0LXNsaWRlci10aWNrLXNpemU6IDJweDtcblxuICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtY29sb3I7XG4gIH1cblxuICAubWF0LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJGFjY2VudCk7XG4gIH1cblxuICAubWF0LXdhcm4ge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHdhcm4pO1xuICB9XG5cbiAgLm1hdC1zbGlkZXI6aG92ZXIsXG4gIC5jZGstZm9jdXNlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1kaXNhYmxlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbiAgICAubWF0LXNsaWRlci10cmFjay1maWxsLFxuICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLW1pbi12YWx1ZSB7XG4gICAgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gICAgICAkb3BhY2l0eTogMC4xMjtcbiAgICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAkb3BhY2l0eSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykge1xuICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmNkay1mb2N1c2VkIHtcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItdGljay1jb2xvcjtcblxuICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgIEBpZiAodHlwZS1vZigkbWF0LXNsaWRlci10aWNrLWNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgb3BhY2l0eTogJG1hdC1zbGlkZXItdGljay1vcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gICAgLy8gRmlyZWZveCBkb2Vzbid0IGRyYXcgdGhlIGdyYWRpZW50IGNvcnJlY3RseSB3aXRoICd0byByaWdodCdcbiAgICAvLyAoc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTQzMTkpLlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNsaWRlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2xpZGVyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0OiA3MnB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIGhpZ2hlc3QgZGVuc2l0eSBzdGVwcGVyJ3MgaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiBob3cgbXVjaFxuLy8gc3RlcHBlciBoZWFkZXJzIGNhbiBzaHJpbmsgdW50aWwgdGhlIHN0ZXAgaWNvbiBvciBzdGVwIGxhYmVsIGV4Y2VlZC4gV2UgY2FuJ3QgdXNlXG4vLyBhIHZhbHVlIGJlbG93IGA0MnB4YCBiZWNhdXNlIHRoZSBvcHRpb25hbCBsYWJlbCBmb3Igc3RlcHMgd291bGQgb3RoZXJ3aXNlIGV4Y2VlZC5cbiRtYXQtc3RlcHBlci1oZWFkZXItbWluaW11bS1oZWlnaHQ6IDQycHggIWRlZmF1bHQ7XG4kbWF0LXN0ZXBwZXItaGVhZGVyLW1heGltdW0taGVpZ2h0OiAkbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC1zdGVwcGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtc3RlcHBlci1oZWFkZXItbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1zdGVwcGVyLWhlYWRlci1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuLy8gTm90ZTogVGhlc2UgdmFyaWFibGVzIGFyZSBub3QgZGVub3RlZCB3aXRoIGAhZGVmYXVsdGAgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGluIHRoZSBub24tdGhlbWVcbi8vIGNvbXBvbmVudCBzdHlsZXMuIE1vZGlmeWluZyB0aGVzZSB2YXJpYWJsZXMgZG9lcyBub3QgaGF2ZSB0aGUgZGVzaXJlZCBlZmZlY3QgZm9yIGNvbnN1bWVycy5cbiRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0OiAyNHB4O1xuJG1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbS10b3AtZ2FwOiAxNnB4O1xuJG1hdC1zdGVwcGVyLWxhYmVsLW1pbi13aWR0aDogNTBweDtcblxuJG1hdC12ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnQtbWFyZ2luOiAzNnB4O1xuXG4kbWF0LXN0ZXBwZXItc2lkZS1nYXA6IDI0cHg7XG4kbWF0LXN0ZXBwZXItbGluZS13aWR0aDogMXB4O1xuJG1hdC1zdGVwcGVyLWxpbmUtZ2FwOiA4cHg7XG5cbiRtYXQtc3RlcC1zdWItbGFiZWwtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1zdGVwLWhlYWRlci1pY29uLXNpemU6IDE2cHg7XG5cblxuQG1peGluIG1hdC1zdGVwcGVyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtc3RlcC1oZWFkZXIge1xuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gT24gdG91Y2ggZGV2aWNlcyB0aGUgOmhvdmVyIHN0YXRlIHdpbGwgbGluZ2VyIG9uIHRoZSBlbGVtZW50IGFmdGVyIGEgdGFwLlxuICAgIC8vIFJlc2V0IGl0IHZpYSBgQG1lZGlhYCBhZnRlciB0aGUgZGVjbGFyYXRpb24sIGJlY2F1c2UgdGhlIG1lZGlhIHF1ZXJ5IGlzbid0XG4gICAgLy8gc3VwcG9ydGVkIGJ5IGFsbCBicm93c2VycyB5ZXQuXG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLFxuICAgIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gICAgICAvLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBVcGRhdGUgdG8gdXNpbmcgYSBjb3JyZWN0ZWQgZGlzYWJsZWQtdGV4dCBjb250cmFzdFxuICAgICAgLy8gaW5zdGVhZCBvZiBzZWNvbmRhcnktdGV4dC5cbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAvLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBVcGRhdGUgdG8gdXNpbmcgYSBjb3JyZWN0ZWQgZGlzYWJsZWQtdGV4dCBjb250cmFzdFxuICAgICAgLy8gaW5zdGVhZCBvZiBzZWNvbmRhcnktdGV4dC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gIH1cblxuICAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuICAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9O1xuICB9XG5cbiAgLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWQge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1zdGVwcGVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodDogX21hdC1kZW5zaXR5LXByb3AtdmFsdWUoJG1hdC1zdGVwcGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcbiAgJHZlcnRpY2FsLXBhZGRpbmc6ICgkaGVpZ2h0IC0gJG1hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQpIC8gMjtcblxuICBAaW5jbHVkZSBfbWF0LWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcixcbiAgICAubWF0LXZlcnRpY2FsLXN0ZXBwZXItaGVhZGVyLCB7XG4gICAgICBwYWRkaW5nOiAkdmVydGljYWwtcGFkZGluZyAkbWF0LXN0ZXBwZXItc2lkZS1nYXA7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlcyB0aGF0IHRoZSB2ZXJ0aWNhbCBsaW5lcyBmb3IgdGhlIHN0ZXAgY29udGVudCBleGNlZWQgaW50byB0aGUgc3RlcFxuICAgIC8vIGhlYWRlcnMgd2l0aCBhIGdpdmVuIGRpc3RhbmNlIChgJG1hdC1zdGVwcGVyLWxpbmUtZ2FwYCkgdG8gdGhlIHN0ZXAgaWNvbi5cbiAgICAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgICAgIHRvcDogJG1hdC1zdGVwcGVyLWxpbmUtZ2FwIC0gJHZlcnRpY2FsLXBhZGRpbmc7XG4gICAgICBib3R0b206ICRtYXQtc3RlcHBlci1saW5lLWdhcCAtICR2ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9yaXpvbnRhbCBsaW5lcyBmb3IgdGhlIHN0ZXAgaGVhZGVyIGFyZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5LlxuICAgIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyIHtcbiAgICAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6ICR2ZXJ0aWNhbC1wYWRkaW5nICsgJG1hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9yaXpvbnRhbCBsaW5lIGZvciB0aGUgc3RlcCBjb250ZW50IGlzIGFsaWduZWQgY2VudGVyZWQgdmVydGljYWxseS5cbiAgICAubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgdG9wOiAkdmVydGljYWwtcGFkZGluZyArICRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0IC8gMjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc3RlcHBlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc3RlcHBlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cbkBtaXhpbiBtYXQtc29ydC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gICAgJHRhYmxlLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgICAkdGV4dC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAvLyBCZWNhdXNlIHRoZSBhcnJvdyBpcyBtYWRlIHVwIG9mIG11bHRpcGxlIGVsZW1lbnRzIHRoYXQgYXJlIHN0YWNrZWQgb24gdG9wIG9mIGVhY2ggb3RoZXIsXG4gICAgLy8gd2UgY2FuJ3QgdXNlIHRoZSBzZW1pLXRyYW5zcGFyZW50IGNvbG9yIGZyb20gdGhlIHRoZW1lIGRpcmVjdGx5LiBJZiB0aGUgdmFsdWUgaXMgYSBjb2xvclxuICAgIC8vICp0eXBlKiwgd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kXG4gICAgLy8gdXNpbmcgdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kXG4gICAgLy8gd2hlbiBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci4gT3RoZXJ3aXNlLCBpZiBpdCByZXNvbHZlcyB0byBzb21ldGhpbmcgZGlmZmVyZW50XG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpLCB3ZSB1c2UgdGhlIGNvbG9yIGRpcmVjdGx5LlxuICAgIEBpZiAodHlwZS1vZigkdGFibGUtYmFja2dyb3VuZCkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJHRleHQtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAkdGV4dC1vcGFjaXR5OiBvcGFjaXR5KCR0ZXh0LWNvbG9yKTtcbiAgICAgIGNvbG9yOiBtaXgoJHRhYmxlLWJhY2tncm91bmQsIHJnYmEoJHRleHQtY29sb3IsIDEpLCAoMSAtICR0ZXh0LW9wYWNpdHkpICogMTAwJSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zb3J0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtc29ydC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNvcnQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc29ydC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNvcnQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zb3J0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC10YWJzLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJzLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10YWJzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdGFicycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJzLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGFicy1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYnMtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIE1pbmltdW0gaGVpZ2h0IGZvciB0b29sYmFyJ3MgaW4gdGhlIGhpZ2hlc3QgZGVuc2l0eSBpcyBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lIGJlY2F1c2Vcbi8vIGRldmVsb3BlcnMgY2FuIHByb2plY3QgYXJiaXRyYXJ5IGNvbnRlbnQuIFdlIHVzZSBhIG1pbmltdW0gdmFsdWUgdGhhdCBlbnN1cmVzIHRoYXQgbW9zdFxuLy8gY29tbW9uIGNvbnRlbnQgKGUuZy4gaWNvbiBidXR0b25zKSBkb2VzIG5vdCBleGNlZWQgdGhlIHJvdyBib3VuZGFyaWVzIGluIGhpZ2hlc3QgZGVuc2l0eS5cbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodDogNDRweCAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wOiA2NHB4ICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LWRlc2t0b3A6ICRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcCAhZGVmYXVsdDtcbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1kZXNrdG9wOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlOiA1NnB4ICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LW1vYmlsZTogJG1hdC10b29sYmFyLWhlaWdodC1tb2JpbGUgIWRlZmF1bHQ7XG4kbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtbW9iaWxlOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1kZXNrdG9wLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcCxcbiAgICBtYXhpbXVtOiAkbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtZGVza3RvcCxcbiAgICBtaW5pbXVtOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtZGVza3RvcCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLW1vYmlsZS1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXRvb2xiYXItaGVpZ2h0LW1vYmlsZSxcbiAgICBtYXhpbXVtOiAkbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtbW9iaWxlLFxuICAgIG1pbmltdW06ICRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1tb2JpbGUsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodCkge1xuICAubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93cyB7XG4gICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgfVxuICAubWF0LXRvb2xiYXItcm93LCAubWF0LXRvb2xiYXItc2luZ2xlLXJvdyB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItY29sb3IoJHBhbGV0dGUpIHtcbiAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXMge1xuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LXNlbGVjdC12YWx1ZSxcbiAgLm1hdC1zZWxlY3QtYXJyb3csXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGFwcC1iYXIpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcztcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdG9vbGJhcixcbiAgLm1hdC10b29sYmFyIGgxLFxuICAubWF0LXRvb2xiYXIgaDIsXG4gIC5tYXQtdG9vbGJhciBoMyxcbiAgLm1hdC10b29sYmFyIGg0LFxuICAubWF0LXRvb2xiYXIgaDUsXG4gIC5tYXQtdG9vbGJhciBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQtZGVza3RvcDogX21hdC1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LXRvb2xiYXItZGVza3RvcC1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG4gICRoZWlnaHQtbW9iaWxlOiBfbWF0LWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtdG9vbGJhci1tb2JpbGUtZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIF9tYXQtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciB0aGUgdG9vbGJhci5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItaGVpZ2h0KCRoZWlnaHQtZGVza3RvcCk7XG5cbiAgICAvLyBBcyBwZXIgc3BlY3MsIHRvb2xiYXJzIHNob3VsZCBoYXZlIGEgZGlmZmVyZW50IGhlaWdodCBpbiBtb2JpbGUgZGV2aWNlcy4gVGhpcyBoYXMgYmVlblxuICAgIC8vIHNwZWNpZmllZCBpbiB0aGUgb2xkIGd1aWRlbGluZXMgYW5kIGlzIHN0aWxsIG9ic2VydmFibGUgaW4gdGhlIG5ldyBzcGVjaWZpY2F0aW9ucyBieVxuICAgIC8vIGxvb2tpbmcgYXQgdGhlIHNwZWMgaW1hZ2VzLiBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvYXBwLWJhcnMtdG9wLmh0bWwjYW5hdG9teVxuICAgIEBtZWRpYSAoJG1hdC14c21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodC1tb2JpbGUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10b29sYmFyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2xiYXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0OiAyMnB4O1xuJG1hdC10b29sdGlwLWZvbnQtc2l6ZTogMTBweDtcbiRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nOiAoJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtZm9udC1zaXplKSAvIDI7XG5cbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQ6IDMwcHg7XG4kbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemU6IDE0cHg7XG4kbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nOlxuICAgICgkbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0IC0gJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplKSAvIDI7XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgdG9vbHRpcCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10b29sdGlwLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdG9vbHRpcCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sdGlwLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbHRpcC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zbmFjay1iYXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgaW5oZXJpdCwgbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IGluaGVyaXQ7XG4gICAgICBzaXplOiBpbmhlcml0O1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtc25hY2stYmFyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zbmFjay1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IF9tYXQtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgX21hdC1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zbmFjay1iYXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc25hY2stYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBmaWxsIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkZmlsbC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjEsIDAuMDQpKTtcbiAgJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4wNSwgMC4wMikpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbiAgJGxhYmVsLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwge1xuICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWxsLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRsYWJlbC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGUpXG4gICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgcGFkZGluZyBvbiB0b3Agb2YgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy10b3A6IDAuMjVlbTtcbiAgLy8gVGhlIHBhZGRpbmcgYmVsb3cgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy1ib3R0b206IDAuNzVlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIGFtb3VudCB3ZSBvZmZzZXQgdGhlIGxhYmVsIGZyb20gdGhlIGlucHV0IHRleHQgaW4gdGhlIGZpbGwgYXBwZWFyYW5jZS5cbiAgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ6IC0wLjVlbTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmctdG9wIDAgJGluZml4LXBhZGRpbmctYm90dG9tIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZy10b3A7XG4gICAgICBtYXJnaW4tdG9wOiAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZy10b3AgKyAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtZmlsbC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1maWxsJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgJGxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjQyKSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWhpbnQge1xuICAgICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkdW5kZXJsaW5lLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICAvLyBXZSB1c2UgcGVyc3BlY3RpdmUgdG8gZml4IHRoZSB0ZXh0IGJsdXJyaW5lc3MgYXMgZGVzY3JpYmVkIGhlcmU6XG4gIC8vIGh0dHA6Ly93d3cudXNlcmFnZW50bWFuLmNvbS9ibG9nLzIwMTQvMDUvMDQvZml4aW5nLXR5cG9ncmFwaHktaW5zaWRlLW9mLTItZC1jc3MtdHJhbnNmb3Jtcy9cbiAgLy8gVGhpcyByZXN1bHRzIGluIGEgc21hbGwgaml0dGVyIGFmdGVyIHRoZSBsYWJlbCBmbG9hdHMgb24gRmlyZWZveCwgd2hpY2ggdGhlXG4gIC8vIHRyYW5zbGF0ZVogZml4ZXMuXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZykgc2NhbGUoJGZvbnQtc2NhbGUpIHBlcnNwZWN0aXZlKDEwMHB4KVxuICB0cmFuc2xhdGVaKDAuMDAxcHggKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSk7XG4gIC8vIFRoZSB0cmlja3MgYWJvdmUgdXNlZCB0byBzbW9vdGggb3V0IHRoZSBhbmltYXRpb24gb24gY2hyb21lIGFuZCBmaXJlZm94IGFjdHVhbGx5IG1ha2UgdGhpbmdzXG4gIC8vIHdvcnNlIG9uIElFLCBzbyB3ZSBkb24ndCBpbmNsdWRlIHRoZW0gaW4gdGhlIElFIHZlcnNpb24uXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcblxuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG4vLyBTYW1lIGFzIG1peGluIGFib3ZlLCBidXQgb21pdHMgdGhlIHRyYW5zbGF0ZVogZm9yIHByaW50aW5nIHB1cnBvc2VzLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpXG4gICAgICAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIC8vIFRoZSB0cmlja3MgYWJvdmUgdXNlZCB0byBzbW9vdGggb3V0IHRoZSBhbmltYXRpb24gb24gY2hyb21lIGFuZCBmaXJlZm94IGFjdHVhbGx5IG1ha2UgdGhpbmdzXG4gIC8vIHdvcnNlIG9uIElFLCBzbyB3ZSBkb24ndCBpbmNsdWRlIHRoZW0gaW4gdGhlIElFIHZlcnNpb24uXG4gICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiB0aGUgbGluZSBhbmQgdGhlIHRvcCBvZiB0aGUgYWN0dWFsIHRleHRcbiAgLy8gKGFzIGEgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZSkuXG4gICRsaW5lLXNwYWNpbmc6ICgkbGluZS1oZWlnaHQgLSAxKSAvIDI7XG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRoZSBpbmZpeC4gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCBzZWVtIHRvIG1lYXN1cmUgZnJvbSB0aGUgZWRnZVxuICAvLyBvZiB0aGUgdGV4dCBpdHNlbGYsIG5vdCB0aGUgZWRnZSBvZiB0aGUgbGluZTsgdGhlcmVmb3JlIHdlIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nLlxuICAkaW5maXgtcGFkZGluZzogMC41ZW0gLSAkbGluZS1zcGFjaW5nO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS4gV2UgYWdhaW4gbmVlZCB0byBzdWJ0cmFjdCBvZmYgdGhlIGxpbmUgc3BhY2luZyBzaW5jZSB0aGUgbW9ja3MgbWVhc3VyZSB0byB0aGUgZWRnZSBvZiB0aGVcbiAgLy8gdGV4dCwgbm90IHRoZSAgZWRnZSBvZiB0aGUgbGluZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZSAtICgkbGluZS1zcGFjaW5nICogMik7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHdpbGwgcmVseSBvbiBBdXRvZmlsbE1vbml0b3IgaW5zdGVhZC5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgLy8gV2Ugd2FudCB0aGUgdW5kZXJsaW5lIHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgICBib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAgIC8vIFdlIHdhbnQgdGhlIHN1YnNjcmlwdCB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50IChhZGp1c3RlZCBmb3IgdGhlIHNtYWxsZXIgZm9udCBzaXplKTtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyYW5zbGF0ZVogY2F1c2VzIHRoZSBsYWJlbCB0byBub3QgYXBwZWFyIHdoaWxlIHByaW50aW5nLCBzbyB3ZSBvdmVycmlkZSBpdCB0byBub3RcbiAgLy8gYXBwbHkgdHJhbnNsYXRlWiB3aGlsZSBwcmludGluZ1xuICBAbWVkaWEgcHJpbnQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHdpbGwgcmVseSBvbiBBdXRvZmlsbE1vbml0b3IgaW5zdGVhZC5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1sZWdhY3knKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIG91dGxpbmUgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1vdXRsaW5lJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjQyKSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1zdGFuZGFyZCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29sb3Igc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuXG4gIC8vIExhYmVsIGNvbG9ycy4gUmVxdWlyZWQgaXMgdXNlZCBmb3IgdGhlIGAqYCBzdGFyIHNob3duIGluIHRoZSBsYWJlbC5cbiAgJGxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0LCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjYpKTtcbiAgJGZvY3VzZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICRyZXF1aXJlZC1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuXG4gIC8vIFVuZGVybGluZSBjb2xvcnMuXG4gICR1bmRlcmxpbmUtY29sb3ItYmFzZTogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMSwgMC44NykpO1xuICAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWhpbnQge1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGZvY3VzZWQtbGFiZWwtY29sb3I7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgY29sb3I6ICRyZXF1aXJlZC1sYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYmFzZTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG5cbiAgICAgICYubWF0LWFjY2VudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGluZyBmb3IgdGhlIGVycm9yIHN0YXRlIG9mIHRoZSBmb3JtIGZpZWxkLiBOb3RlIHRoYXQgd2hpbGUgdGhlIHNhbWUgY2FuIGJlXG4gIC8vIGFjaGlldmVkIHdpdGggdGhlIG5nLSogY2xhc3Nlcywgd2UgdXNlIHRoaXMgYXBwcm9hY2ggaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIHNhbWVcbiAgLy8gbG9naWMgaXMgdXNlZCB0byBzdHlsZSB0aGUgZXJyb3Igc3RhdGUgYW5kIHRvIHNob3cgdGhlIGVycm9yIG1lc3NhZ2VzLlxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG5cbiAgICAgICYubWF0LWFjY2VudCxcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAubWF0LWVycm9yIHtcbiAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LWNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1jb2xvcigkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC1jb2xvcigkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS1jb2xvcigkY29uZmlnKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbiAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbiAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC10cmVlLW5vZGUtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIHRyZWUgbm9kZXMgaW4gaGlnaGVzdCBkZW5zaXR5IGlzIGRpZmZpY3VsdCB0byBkZXRlcm1pbmUgYXNcbi8vIGRldmVsb3BlcnMgY2FuIGRpc3BsYXkgYXJiaXRyYXJ5IGNvbnRlbnQuIFdlIHVzZSBhIG1pbmltdW0gaGVpZ2h0IHdoaWNoIGVuc3VyZXNcbi8vIHRoYXQgY29tbW9uIGNvbnRlbnQgcGxhY2VkIGluIHRyZWUgbm9kZXMgZG9lcyBub3QgZXhjZWVkIChlLmcuIGljb25zLCBjaGVja2JveGVzKS5cbiRtYXQtdHJlZS1ub2RlLW1pbmltdW0taGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuJG1hdC10cmVlLW5vZGUtbWF4aW11bS1oZWlnaHQ6ICRtYXQtdHJlZS1ub2RlLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC10cmVlLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtdHJlZS1ub2RlLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LXRyZWUtbm9kZS1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LXRyZWUtbm9kZS1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gbWF0LXRyZWUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdHJlZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRyZWUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXRyZWUtbm9kZSxcbiAgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdHJlZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQ6IF9tYXQtZGVuc2l0eS1wcm9wLXZhbHVlKCRtYXQtdHJlZS1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgX21hdC1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtdHJlZS1ub2RlIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogX21hdC1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBfbWF0LWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRyZWUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdHJlZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRyZWUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZTogbnVsbCkge1xuICAkY29uZmlnOiBpZihfbWF0LWlzLXRoZW1lLW9iamVjdCgkY29uZmlnLW9yLXRoZW1lKSxcbiAgICAgIG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSksICRjb25maWctb3ItdGhlbWUpO1xuXG4gIC8vIElmIG5vIGFjdHVhbCBjb2xvciBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHNwZWNpZmllZCwgY3JlYXRlIGEgZGVmYXVsdCBvbmUuXG4gIEBpZiBub3QgJGNvbmZpZyB7XG4gICAgJGNvbmZpZzogbWF0LXR5cG9ncmFwaHktY29uZmlnKCk7XG4gIH1cblxuICAvLyBUT0RPOiBDT01QLTMwOTogRG8gbm90IHVzZSBpbmRpdmlkdWFsIG1peGlucy4gSW5zdGVhZCwgdXNlIHRoZSBhbGwtdGhlbWUgbWl4aW4gYW5kIG9ubHlcbiAgLy8gc3BlY2lmeSBhIGB0eXBvZ3JhcGh5YCBjb25maWcgd2hpbGUgc2V0dGluZyBgY29sb3JgIGFuZCBgZGVuc2l0eWAgdG8gYG51bGxgLiBUaGlzIGlzIGN1cnJlbnRseVxuICAvLyBub3QgcG9zc2libGUgYXMgaXQgd291bGQgaW50cm9kdWNlIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3IgdHlwb2dyYXBoeSBiZWNhdXNlIHRoZSBgbWF0LWNvcmVgXG4gIC8vIG1peGluIHRoYXQgaXMgdHJhbnNpdGl2ZWx5IGxvYWRlZCBieSB0aGUgYGFsbC10aGVtZWAgZmlsZSwgaW1wb3J0cyBgYWxsLXR5cG9ncmFwaHlgIHdoaWNoXG4gIC8vIHdvdWxkIHRoZW4gbG9hZCBgYWxsLXRoZW1lYCBhZ2Fpbi4gVGhpcyB1bHRpbWF0ZWx5IHJlc3VsdHMgYSBjaXJjdWxhciBkZXBlbmRlbmN5LlxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1kaXZpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcblxuICBAaW5jbHVkZSBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXBvc2l0aW9uaW5nKCk7XG4gIEBpbmNsdWRlIF9tYXQtbWRjLWNvcmUoKTtcbn1cblxuQG1peGluIG1hdC1jb3JlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYXJrZXIgdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhZGRlZCBhIHRoZW1lIHRvIHRoZWlyIHBhZ2UuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBfbWF0LWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIC8vIFdyYXAgdGhlIHN1Yi10aGVtZSBpbmNsdWRlcyBpbiB0aGUgZHVwbGljYXRlIHRoZW1lIHN0eWxlcyBtaXhpbi4gVGhpcyBlbnN1cmVzIHRoYXRcbiAgLy8gdGhlcmUgd29uJ3QgYmUgbXVsdGlwbGUgd2FybmluZ3MuIGUuZy4gaWYgYG1hdC1jb3JlLXRoZW1lYCByZXBvcnRzIGEgd2FybmluZywgdGhlblxuICAvLyB0aGUgaW1wb3J0ZWQgdGhlbWVzIChzdWNoIGFzIGBtYXQtcmlwcGxlLXRoZW1lYCkgc2hvdWxkIG5vdCByZXBvcnQgYWdhaW4uXG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY29yZScpIHtcbiAgICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gICAgQGluY2x1ZGUgbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUpO1xuICAgIEBpbmNsdWRlIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUpO1xuICAgIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvcmUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBNREMgc3R5bGVzLiBQcml2YXRlIG1peGluIGluY2x1ZGVkIHdpdGggYG1hdC1jb3JlYC5cbkBtaXhpbiBfbWF0LW1kYy1jb3JlKCkge1xuICBAaW5jbHVkZSBfbWF0LW1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1wb3NpdGlvbmluZygpO1xufVxuXG4vLyBNaXhpbiB0aGF0IGVuc3VyZXMgZm9jdXMgaW5kaWNhdG9yIGhvc3QgZWxlbWVudHMgYXJlIHBvc2l0aW9uZWQgc28gdGhhdCB0aGUgZm9jdXMgaW5kaWNhdG9yXG4vLyBwc2V1ZG8gZWxlbWVudCB3aXRoaW4gaXMgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGUgaG9zdC4gUHJpdmF0ZSBtaXhpbiBpbmNsdWRlZCB3aXRoaW5cbi8vIGBfbWF0LW1kYy1jb3JlYC5cbkBtaXhpbiBfbWF0LW1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1wb3NpdGlvbmluZygpIHtcbiAgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gQ3JlYXRlIGEgdGhlbWUuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gIEBpbmNsdWRlIF9tYXQtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUtb3ItY29sb3ItY29uZmlnLCAnYW5ndWxhci1tYXRlcmlhbC10aGVtZScpIHtcbiAgICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgfVxufVxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgY29sb3Igc3R5bGVzLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAvLyBJbiBjYXNlIGEgdGhlbWUgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbnN0ZWFkIG9mIGEgY29uZmlndXJhdGlvbiBmb3JcbiAgLy8gdGhlIGNvbG9yIHN5c3RlbSwgZXh0cmFjdCB0aGUgY29sb3IgY29uZmlnIGZyb20gdGhlIHRoZW1lIG9iamVjdC5cbiAgJGNvbmZpZzogaWYoX21hdC1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKSwgJGNvbmZpZy1vci10aGVtZSk7XG5cbiAgQGlmICRjb25maWcgPT0gbnVsbCB7XG4gICAgQGVycm9yICdObyBjb2xvciBjb25maWd1cmF0aW9uIHNwZWNpZmllZC4nO1xuICB9XG5cbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgoXG4gICAgY29sb3I6ICRjb25maWcsXG4gICAgdHlwb2dyYXBoeTogbnVsbCxcbiAgICBkZW5zaXR5OiBudWxsLFxuICApKTtcbn1cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgZGVuc2l0eSBzdHlsZXMuXG5AbWl4aW4gX2FuZ3VsYXItbWF0ZXJpYWwtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBvYmplY3QgaGFzIGJlZW4gcGFzc2VkIGluc3RlYWQgb2YgYSBjb25maWd1cmF0aW9uIGZvclxuICAvLyB0aGUgZGVuc2l0eSBzeXN0ZW0sIGV4dHJhY3QgdGhlIGRlbnNpdHkgY29uZmlnIGZyb20gdGhlIHRoZW1lIG9iamVjdC5cbiAgJGNvbmZpZzogaWYoX21hdC1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpLCAkY29uZmlnLW9yLXRoZW1lKTtcblxuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ05vIGRlbnNpdHkgY29uZmlndXJhdGlvbiBzcGVjaWZpZWQuJztcbiAgfVxuXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoKFxuICAgIGNvbG9yOiBudWxsLFxuICAgIHR5cG9ncmFwaHk6IG51bGwsXG4gICAgZGVuc2l0eTogJGNvbmZpZyxcbiAgKSk7XG59XG5cblxuXG4iLCIvLyBXZSB3YW50IG92ZXJsYXlzIHRvIGFsd2F5cyBhcHBlYXIgb3ZlciB1c2VyIGNvbnRlbnQsIHNvIHNldCBhIGJhc2VsaW5lXG4vLyB2ZXJ5IGhpZ2ggei1pbmRleCBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLCB3aGljaCBpcyB3aGVyZSB3ZSBjcmVhdGUgdGhlIG5ld1xuLy8gc3RhY2tpbmcgY29udGV4dCBmb3IgYWxsIG92ZXJsYXlzLlxuJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyOiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXk6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDogMTAwMCAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYWxsIG9mIHRoZSBiYWNrZHJvcHNcbiRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgYmFja2Ryb3AgYW5pbWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3dpZnQtZWFzZS1vdXQuXG4kYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gY2RrLW92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAvLyBIaWRlIHRoZSBlbGVtZW50IHdoZW4gaXQgZG9lc24ndCBoYXZlIGFueSBjaGlsZCBub2Rlcy4gVGhpcyBkb2Vzbid0XG4gICAgICAvLyBpbmNsdWRlIG92ZXJsYXlzIHRoYXQgaGF2ZSBiZWVuIGRldGFjaGVkLCByYXRoZXIgdGhhbiBkaXNwb3NlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGFuIGV4dHJhIHdyYXBwZXIgZWxlbWVudCBpbiBvcmRlciB0byB1c2UgbWFrZSB0aGUgb3ZlcmxheSBpdHNlbGYgYSBmbGV4IGl0ZW0uXG4gIC8vIFRoaXMgbWFrZXMgY2VudGVyaW5nIHRoZSBvdmVybGF5IGVhc3kgd2l0aG91dCBydW5uaW5nIGludG8gdGhlIHN1YnBpeGVsIHJlbmRlcmluZ1xuICAvLyBwcm9ibGVtcyB0aWVkIHRvIHVzaW5nIGB0cmFuc2Zvcm1gIGFuZCB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggdGhlIG90aGVyIHBvc2l0aW9uXG4gIC8vIHN0cmF0ZWdpZXMuXG4gIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG4gIH1cblxuICAvLyBBIHNpbmdsZSBvdmVybGF5IHBhbmUuXG4gIC5jZGstb3ZlcmxheS1wYW5lIHtcbiAgICAvLyBOb3RlOiBpdCdzIGltcG9ydGFudCBmb3IgdGhpcyBvbmUgdG8gc3RhcnQgb2ZmIGBhYnNvbHV0ZWAsXG4gICAgLy8gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIGFibGUgdG8gbWVhc3VyZSBpdCBjb3JyZWN0bHkuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbiAkYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmdiYSBiYWNrZ3JvdW5kIHdpbGwgYmVjb21lIHNvbGlkIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrXG4gICAgICAvLyB0byBtYWtpbmcgaXQgb3BhcXVlIHVzaW5nIGBvcGFjaXR5YC4gTm90ZSB0aGF0IHdlIGNhbid0IHVzZSB0aGUgYGNkay1oaWdoLWNvbnRyYXN0YFxuICAgICAgLy8gbWl4aW4sIGJlY2F1c2Ugd2UgY2FuJ3Qgbm9ybWFsaXplIHRoZSBpbXBvcnQgcGF0aCB0byB0aGUgX2ExMXkuc2NzcyBib3RoIGZvciB0aGVcbiAgICAgIC8vIHNvdXJjZSBhbmQgd2hlbiB0aGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQuIFNlZSAjMTA5MDguXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQ6ICRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIE5vdGU6IGFzIG9mIEZpcmVmb3ggNTcsIGhhdmluZyB0aGUgYmFja2Ryb3AgYmUgYGJhY2tncm91bmQ6IG5vbmVgIHdpbGwgcHJldmVudCBpdCBmcm9tXG4gICAgLy8gY2FwdHVyaW5nIHRoZSB1c2VyJ3MgbW91c2Ugc2Nyb2xsIGV2ZW50cy4gU2luY2Ugd2UgYWxzbyBjYW4ndCB1c2Ugc29tZXRoaW5nIGxpa2VcbiAgICAvLyBgcmdiYSgwLCAwLCAwLCAwKWAsIHdlIHdvcmsgYXJvdW5kIHRoZSBpbmNvbnNpc3RlbmN5IGJ5IG5vdCBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGF0XG4gICAgLy8gYWxsIGFuZCB1c2luZyBgb3BhY2l0eWAgdG8gbWFrZSB0aGUgZWxlbWVudCB0cmFuc3BhcmVudC5cbiAgICAmLCAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIFdlIHVzZSBgZGlzcGxheTogZmxleGAgb24gdGhpcyBlbGVtZW50IGV4Y2x1c2l2ZWx5IGZvciBjZW50ZXJpbmcgY29ubmVjdGVkIG92ZXJsYXlzLlxuICAgIC8vIFdoZW4gKm5vdCogY2VudGVyaW5nLCBhIHRvcC9sZWZ0L2JvdHRvbS9yaWdodCB3aWxsIGJlIHNldCB3aGljaCBvdmVycmlkZXMgdGhlIG5vcm1hbFxuICAgIC8vIGZsZXggbGF5b3V0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAvLyBXZSB1c2UgdGhlIGBjb2x1bW5gIGRpcmVjdGlvbiBoZXJlIHRvIGF2b2lkIHNvbWUgZmxleGJveCBpc3N1ZXMgaW4gRWRnZVxuICAgIC8vIHdoZW4gdXNpbmcgdGhlIFwiZ3JvdyBhZnRlciBvcGVuXCIgb3B0aW9ucy5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gQWRkIHNvbWUgZGltZW5zaW9ucyBzbyB0aGUgZWxlbWVudCBoYXMgYW4gYGlubmVyVGV4dGAgd2hpY2ggc29tZSBwZW9wbGUgZGVwZW5kIG9uIGluIHRlc3RzLlxuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxuXG4gIC8vIFVzZWQgd2hlbiBkaXNhYmxpbmcgZ2xvYmFsIHNjcm9sbGluZy5cbiAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcblxuICAgIC8vIE5lY2Vzc2FyeSBmb3IgdGhlIGNvbnRlbnQgbm90IHRvIGxvc2UgaXRzIHdpZHRoLiBOb3RlIHRoYXQgd2UncmUgdXNpbmcgMTAwJSwgaW5zdGVhZCBvZlxuICAgIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IGhhZCBiZWZvcmUgd2UgbWFkZSBpdCBgZml4ZWRgLlxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gICAgLy8gcG90ZW50aWFsbHkgcmVzdWx0IGluIGRvdWJsZSBzY3JvbGxiYXJzLiBJdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUsIGJlY2F1c2Ugd2Ugd29uJ3RcbiAgICAvLyBibG9jayBzY3JvbGxpbmcgb24gYSBwYWdlIHRoYXQgZG9lc24ndCBoYXZlIGEgc2Nyb2xsYmFyIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cbiJdfQ== */
