/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/TaxonomyPicker.vue?vue&type=style&index=0&id=02210786&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.taxonomy-picker.display-errors .item-choice.invalid > .content:not(.as-btn):not(.expanded) .title {
  color: var(--color-error);
}
.taxonomy-picker.display-errors .item-choice.invalid > .content:not(.as-btn):not(.expanded) [type=checkbox]:checked + label:before {
  border-right-color: var(--color-error);
  border-bottom-color: var(--color-error);
}
.taxonomy-picker.display-errors .item-choice.invalid > .content.as-btn {
  background-color: var(--color-error);
}
.taxonomy-picker.display-errors .error-message {
  display: inline-flex;
}
.field-container + .field-container.field-taxonomy {
  margin-top: 0.5rem;
}
.field-container.field-taxonomy + .field-container:not(.field-taxonomy):not(.field-separator) {
  margin-top: 2rem;
}
.categories-info p {
  margin: 0;
}
.sonata-ba-field .taxonomy-picker .content {
  min-height: 0;
  padding: 0;
  margin: 0;
}
.sonata-ba-field .taxonomy-picker input[type=checkbox] {
  margin: -2px 8px 0 0;
}
.sonata-ba-field .taxonomy-picker input[type=checkbox] + label {
  display: none !important;
}
.sonata-ba-field .taxonomy-picker input.description {
  border: none;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/OptionValue.vue?vue&type=style&index=0&id=2048a076&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.children:not(.dragging) > div > .option-value.draggable > .content .drag-zone:hover,
.option-value.sortable-ghost > .content .drag-zone {
  color: var(--color-primary);
}
.children:not(.dragging) > div > .option-value.draggable > .content .drag-zone:hover .option-icon,
.option-value.sortable-ghost > .content .drag-zone .option-icon {
  color: var(--color-primary) !important;
}
.children:not(.dragging) > div > .option-value > .content .delete-icon:hover {
  font-weight: bold;
  opacity: 1;
  color: var(--color-error);
}
.option-value.draggable > .content .drag-zone:hover {
  cursor: grab;
}
.option-value > .content {
  height: 2rem;
  display: flex;
  align-items: center;
}
.option-value > .content .drag-zone {
  display: flex;
  align-items: center;
  transition: all 0.1s;
  flex-shrink: 0;
}
.option-value > .content .option-icon {
  width: 1.1rem;
  font-size: 1em;
  text-align: center;
  margin-right: 0.5rem;
}
.option-value > .content .delete-icon {
  padding-left: 0.25em;
  width: 1.2em;
  cursor: pointer;
  margin-top: 2px;
  opacity: 0.4;
  transition: all 0.1s;
}
.option-value > .content .button-add {
  margin-left: 0.3rem;
  margin-top: 1px;
  font-size: 0.95em;
}
.option-value > .content input.description {
  margin: 0 0.25em 0 0.7em;
  height: auto;
  border-bottom: 1px solid var(--color-light-soft);
  padding: 0;
  margin-top: 0.15em;
  font-size: 0.85rem;
  color: var(--color-text-soft);
}
.option-value > .content input.description:focus {
  color: var(--color-text);
  box-shadow: none;
  border-color: var(--color-neutral);
  outline: none;
}
.option-value:not(.root) .option-value-children {
  margin-left: 0.5rem;
  margin-bottom: 0.25em;
  border-left: 1px var(--color-light-soft) solid;
  padding-left: 1.2rem;
}
.option-value.root > .option-value-children {
  margin-top: 2rem;
}
.category-value[data-depth="0"]:not(.inline-children) .option-value[data-depth="0"] {
  margin-bottom: 1.5rem;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/ItemChoiceExpandIcon.vue?vue&type=style&index=0&id=41cc3cee&lang=scss&scoped=true ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.expand-container[data-v-41cc3cee] {
  text-align: right;
}
.category-choice > .content .expand-container[data-v-41cc3cee] {
  width: 1em;
}
.option-choice > .content .expand-container[data-v-41cc3cee] {
  width: 2em;
  margin-left: auto;
}
.expand-icon[data-v-41cc3cee],
.invalid-icon[data-v-41cc3cee] {
  font-size: 0.75em;
  width: 0.8em;
  text-align: right;
}
.expand-icon.active[data-v-41cc3cee], .item-choice > .content.child-display-floating.expanded .expand-icon[data-v-41cc3cee], .item-choice .title:hover .expand-icon[data-v-41cc3cee] {
  color: var(--color-primary);
}
.expand-icon.chevron-down[data-v-41cc3cee]:before, .option-choice > .content.child-display-block.expanded .expand-icon[data-v-41cc3cee]:before {
  content: "\f078";
}
.expand-icon.chevron-right[data-v-41cc3cee]:before, .option-choice > .content.child-display-floating .expand-icon[data-v-41cc3cee]:before, .option-choice > .content.child-display-block .expand-icon[data-v-41cc3cee]:before {
  content: "\f054";
}
.expand-icon.caret-down[data-v-41cc3cee]:before, .category-choice > .content.child-display-floating .expand-icon[data-v-41cc3cee]:before, .category-choice > .content.child-display-block.expanded .expand-icon[data-v-41cc3cee]:before {
  content: "\f0d7";
}
.expand-icon.caret-right[data-v-41cc3cee]:before, .category-choice > .content.child-display-block .expand-icon[data-v-41cc3cee]:before {
  content: "\f0da";
}
.item-choice > .content.child-display-floating .expand-container[data-v-41cc3cee] {
  margin-left: auto;
}
.invalid-icon[data-v-41cc3cee] {
  display: none;
  color: var(--color-error);
}
.option-choice > .content.invalid .invalid-icon[data-v-41cc3cee] {
  display: inline-block;
}
.option-choice > .content.invalid .expand-icon[data-v-41cc3cee] {
  color: var(--color-error) !important;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/CategoryChoice.vue?vue&type=style&index=0&id=59a0b086&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.category-choice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
}
.category-choice.with-name {
  margin-top: 0.25em;
}
.category-choice.as-btn + .category-choice.as-btn, .category-picker.display-block > .category-choice > .category-choice.content.expanded:not(.as-btn) + .category-choice.as-btn, .category-picker.display-block > .category-choice > .category-choice.as-btn + .category-choice.content.expanded:not(.as-btn), .category-picker.display-block > .category-choice > .category-choice.content.expanded:not(.as-btn) + .category-choice.content.expanded:not(.as-btn) {
  margin-top: 0.5em;
}
.category-choice.child-display-block.expanded + .category-choice {
  margin-top: 1em;
}
.category-choice > .content {
  display: flex;
  align-items: center;
  width: 100%;
  height: 25px;
  white-space: nowrap;
  cursor: pointer;
  transition: top 600s;
}
.category-choice > .content .name {
  font-weight: bold;
}
.category-choice > .content.as-btn, .category-picker.display-block > .category-choice > .content.expanded:not(.as-btn) {
  border-radius: 3px;
  height: 30px;
  background-color: var(--color-dark-soft);
  color: var(--color-light);
}
.category-choice > .content.as-btn.expanded, .category-picker.display-block > .category-choice > .content.expanded:not(.as-btn) {
  background-color: var(--color-primary);
}
.category-choice > .content.as-btn .expand-container, .category-picker.display-block > .category-choice > .content.expanded:not(.as-btn) .expand-container {
  margin-left: auto;
}
.category-choice > .content.as-btn .expand-container .expand-icon, .category-picker.display-block > .category-choice > .content.expanded:not(.as-btn) .expand-container .expand-icon {
  color: inherit !important;
}
.category-choice > .content.mandatory.invalid .name:after {
  content: "*";
  font-weight: normal;
  padding: 0 4px;
  color: var(--color-error);
}
.category-choice > .content.child-display-floating {
  margin-bottom: 0;
}
.category-choice > .content:not(.as-btn).child-display-floating.expanded {
  color: var(--color-primary);
}
.category-picker.display-block > .category-choice > .content:not(.as-btn).expanded {
  background-color: var(--color-light-soft);
  color: var(--color-text);
}
.taxonomy-picker .category-picker[data-depth="0"].display-block.children-display-block .content.expanded {
  position: sticky;
}
.taxonomy-picker .category-picker[data-depth="0"].display-block.children-display-block .option-choice > .content.expanded {
  height: 30px;
}
.taxonomy-picker .category-picker[data-depth="0"].display-block.children-display-block .option-choice > .content.expanded + .item-picker {
  margin-top: -0.25em;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/CategoryValue.vue?vue&type=style&index=0&id=99c005c8&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.taxonomy-picker-container .taxonomy-picker .category-value {
  width: 100%;
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content {
  height: 1.7rem;
  display: inline-flex;
  align-items: center;
  padding: 0 0.5em;
  border-radius: 3px;
  margin: 0.2em 0.5em 0.5em -0.3em;
  background-color: #f6f6f6;
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content.invalid {
  background-color: var(--color-error);
  color: var(--color-light);
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content .name {
  font-weight: 600;
  font-size: 0.95em;
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content .fa {
  opacity: 0.4;
  margin-left: 0.4em;
  font-size: 0.85em;
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content:hover {
  cursor: pointer;
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content:hover:not(.invalid) {
  background-color: var(--color-light-soft);
}
.taxonomy-picker-container .taxonomy-picker .category-value > .content:hover .fa {
  opacity: 1;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children {
  transition: opacity 0.15s;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children.inline {
  display: inline-flex;
  margin-right: 0.25em;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children.inline .option-value {
  display: inline-flex;
  color: inherit !important;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children.inline .option-value > .content .name {
  font-weight: normal;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children.inline .option-value > .content .option-icon {
  display: none;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children.inline .option-value:not(:last-child):after {
  content: "•";
  font-size: 0.8em;
  margin: 0 0.5rem;
  align-items: center;
  display: inline-flex;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add {
  display: inline-flex;
  align-items: baseline;
  cursor: pointer;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add .fa {
  font-size: 0.9em;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add:not(.opened) .fa {
  opacity: 0.4;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add:hover .fa {
  opacity: 1;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add.invalid {
  color: var(--color-error);
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add.invalid .fa {
  opacity: 1 !important;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add .invalid-icon {
  margin-left: 0.25em;
}
.taxonomy-picker-container .taxonomy-picker .category-value .button-add .error-message {
  display: none;
  margin-right: 0.5rem;
}
.taxonomy-picker-container .taxonomy-picker .category-value[data-depth="0"] > .button-add {
  margin-left: 0.5em;
  margin-bottom: 1rem !important;
}
.taxonomy-picker-container .taxonomy-picker .category-value .children:not(.inline) + .button-add {
  padding-left: 2px;
  margin-bottom: 0.4em;
}
.category-value[data-depth="1"] .category-value {
  font-size: 0.85rem;
}
.category-value + .category-value > .content {
  margin-top: 0.25em;
}
.category-value[data-depth="0"] > .children {
  margin: 0.5rem 0 0.5rem 0.5rem;
}
.category-choice > .content.child-display-floating.expanded ~ .category-value:not(:hover) > .children {
  opacity: 0.4;
}
.category-choice > .content.child-display-block.expanded ~ .category-value > .children {
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-light-soft);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/OptionChoice.vue?vue&type=style&index=0&id=97495a06&lang=scss&scoped=true ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.option-choice[data-v-97495a06] {
  display: flex;
  flex-direction: column;
  position: relative;
  transition: 0.2s margin ease-in-out;
}
.option-choice .content[data-v-97495a06] {
  display: flex;
  align-items: center;
  height: 25px;
  transition: 0.2s height ease-in-out, 0.2 margin ease-in-out;
  background-color: var(--color-content-background);
}
.option-choice .content input[type=checkbox] + label[data-v-97495a06] {
  font-size: 1em;
  line-height: 0;
  padding-left: 0;
  width: 1.8em;
  display: inline-flex;
  align-items: center;
}
.option-choice .content input[type=checkbox] + label[data-v-97495a06]:before {
  margin: 0;
  position: relative;
}
.option-choice .content input[type=checkbox]:not(:checked) + label[data-v-97495a06]:before {
  width: 1em;
  height: 1em;
  border-radius: 0.15em;
  margin-top: -2px;
}
.option-choice .content input[type=checkbox]:checked + label[data-v-97495a06]:before {
  width: 0.6em;
  height: 1em;
  margin-top: 2px;
}
.option-choice .content .index[data-v-97495a06] {
  opacity: 0;
  width: 0;
  overflow: hidden;
  transition: opacity 0.2s;
}
.option-choice .content.checked .index[data-v-97495a06] {
  opacity: 1;
  position: absolute;
  cursor: pointer;
  font-size: 0.65em;
  left: 1em;
  top: -1px;
  width: 1em;
  text-align: center;
  color: var(--color-neutral);
}
.option-choice .content .title[data-v-97495a06] {
  cursor: pointer;
  display: flex;
  flex-grow: 1;
  align-items: center;
  white-space: nowrap;
}
.option-choice .content .title input.description[data-v-97495a06] {
  height: auto;
  border: 1px solid var(--color-light-soft);
  border-radius: 3px;
  padding: 0em 0.5em;
  margin: 0 0 0 0.5em;
  background-color: rgba(0, 0, 0, 0.0196078431);
  font-size: 0.9em;
  color: var(--color-text-soft);
}
.option-choice .content .title input.description[data-v-97495a06]:focus {
  color: var(--color-text);
  box-shadow: none;
  border-color: var(--color-light-soft);
  outline: none;
}
.option-choice .content.expanded .title[data-v-97495a06] {
  color: var(--color-primary);
}
.option-choice .content .option-icon[data-v-97495a06] {
  width: 1.5em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.5em;
}
.option-choice .content .textHelper[data-v-97495a06] {
  cursor: help;
  font-weight: normal;
  margin-left: 5px;
  opacity: 0.6;
}
.category-choice.single-option > .option-picker > .option-choice > .content input[type=checkbox]:not(:checked) + label[data-v-97495a06]:before {
  border-radius: 50%;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/element-form/taxonomy-picker/ItemPicker.vue?vue&type=style&index=0&id=3842f448&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.taxonomy-picker .item-picker {
  display: inline-flex;
  flex-direction: column;
  font-size: 1rem;
  font-weight: normal;
}
.taxonomy-picker .item-picker.child-expanded.children-display-floating {
  overflow: visible !important;
}
.taxonomy-picker .item-picker .item-choice > .content {
  padding: 0 0.8em 0 0.6em;
}
.taxonomy-picker .item-picker.display-floating {
  position: absolute;
  left: 100%;
  top: calc(-0.5em - 1px);
  z-index: 50000;
  background-color: white;
  border: 1px solid #eee;
  border-radius: 5px;
  box-shadow: 3px 2px 13px 0 rgba(0, 0, 0, 0.05);
}
.taxonomy-picker .item-picker.display-floating > .item-choice:first-child {
  margin-top: 0.25em;
}
.taxonomy-picker .item-picker.display-floating > .item-choice:last-child {
  margin-bottom: 0.5em;
}
.taxonomy-picker .item-picker.display-floating[data-depth="0"] {
  left: 0;
  top: 30px;
  margin: 0;
}
.taxonomy-picker .item-picker.display-floating[data-depth="0"].no-children {
  right: 0;
}
.taxonomy-picker .item-picker.display-floating[data-depth="0"] > .item-choice:first-child {
  margin-top: 0.5em;
}
.category-picker.display-block {
  display: flex;
}
.option-picker .category-picker.display-block {
  margin-left: 1em;
  border-left: 1px var(--color-light-soft) solid;
  padding-left: 0.8em;
  font-size: calc(1em - 0.25px);
}
.option-picker .child-display-block.expanded + .option-choice {
  margin-top: 0.7em;
}
.option-picker {
  margin-top: 0.25em;
}
.option-picker[data-depth="0"] {
  margin-top: 0.4em;
}
.option-picker[data-depth="0"].display-block {
  margin-left: -0.25em;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/common/components/CollapseTransition.vue?vue&type=style&index=0&id=b2f23b02&scoped=true&lang=css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************/

.collapse-transition[data-v-b2f23b02] {
  transition: 0.2s height ease-in-out, 0.2s padding-top ease-in-out,
    0.2s padding-bottom ease-in-out, 0.2s margin-top ease-in-out,
    0.2s margin-bottom ease-in-out;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQUo7QUFFSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUFOO0FBRUk7RUFDRTtFQUNBO0FBQU47QUFFSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBQU47QUFFSTtFQUNFO0VBQ0E7RUFDQTtBQUFOO0FBR0k7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBQUROO0FBSUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFGTjtBQUtJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUhOO0FBS007RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBSFI7QUFJUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBRlY7QUFPSTtFQUNFO0FBTE47QUFRSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFOTjtBQVNJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFQTjtBQWFBO0VBTUU7QUFmRixDOzs7O0FDOUZBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFBRjtBQUVFO0VBQ0U7QUFBSjtBQUdFO0VBQ0U7QUFESjtBQUlFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUZKO0FBS0k7RUFDRTtBQUhOO0FBS0k7RUFDRTtBQUhOO0FBTUk7RUFDRTtFQUNBO0VBQ0E7QUFKTjtBQUtNO0VBQ0U7QUFIUjtBQUtNO0VBQ0U7QUFIUjtBQVNBO0VBQ0U7QUFORjtBQVNBO0VBQ0U7RUFFQTtFQUNBO0VBQ0E7QUFQRjtBQVNBO0VBQ0U7QUFORjtBQVNBO0VBQ0U7QUFORjtBQU9FO0VBQ0U7QUFMSjtBQU1JO0VBQ0U7QUFKTixDOzs7OztBQytDQTtFQUNFOztrQ0FFZ0M7QUFDbEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9nb2dvY2FydG8vLi9hc3NldHMvanMvZWxlbWVudC1mb3JtL3RheG9ub215LXBpY2tlci9UYXhvbm9teVBpY2tlci52dWUiLCJ3ZWJwYWNrOi8vZ29nb2NhcnRvLy4vYXNzZXRzL2pzL2VsZW1lbnQtZm9ybS90YXhvbm9teS1waWNrZXIvT3B0aW9uVmFsdWUudnVlIiwid2VicGFjazovL2dvZ29jYXJ0by8uL2Fzc2V0cy9qcy9lbGVtZW50LWZvcm0vdGF4b25vbXktcGlja2VyL0l0ZW1DaG9pY2VFeHBhbmRJY29uLnZ1ZSIsIndlYnBhY2s6Ly9nb2dvY2FydG8vLi9hc3NldHMvanMvZWxlbWVudC1mb3JtL3RheG9ub215LXBpY2tlci9DYXRlZ29yeUNob2ljZS52dWUiLCJ3ZWJwYWNrOi8vZ29nb2NhcnRvLy4vYXNzZXRzL2pzL2VsZW1lbnQtZm9ybS90YXhvbm9teS1waWNrZXIvQ2F0ZWdvcnlWYWx1ZS52dWUiLCJ3ZWJwYWNrOi8vZ29nb2NhcnRvLy4vYXNzZXRzL2pzL2VsZW1lbnQtZm9ybS90YXhvbm9teS1waWNrZXIvT3B0aW9uQ2hvaWNlLnZ1ZSIsIndlYnBhY2s6Ly9nb2dvY2FydG8vLi9hc3NldHMvanMvZWxlbWVudC1mb3JtL3RheG9ub215LXBpY2tlci9JdGVtUGlja2VyLnZ1ZSIsIndlYnBhY2s6Ly9nb2dvY2FydG8vLi9hc3NldHMvanMvY29tbW9uL2NvbXBvbmVudHMvQ29sbGFwc2VUcmFuc2l0aW9uLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbi50YXhvbm9teS1waWNrZXIuZGlzcGxheS1lcnJvcnMgLml0ZW0tY2hvaWNlLmludmFsaWQge1xuICAmID4gLmNvbnRlbnQ6bm90KC5hcy1idG4pOm5vdCguZXhwYW5kZWQpIHtcbiAgICAudGl0bGUge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgICB9XG4gICAgW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgICB9XG4gIH1cbiAgJiA+IC5jb250ZW50LmFzLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xuICB9XG59XG4udGF4b25vbXktcGlja2VyLmRpc3BsYXktZXJyb3JzIC5lcnJvci1tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5maWVsZC1jb250YWluZXIgKyAuZmllbGQtY29udGFpbmVyLmZpZWxkLXRheG9ub215IHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuLmZpZWxkLWNvbnRhaW5lci5maWVsZC10YXhvbm9teVxuICArIC5maWVsZC1jb250YWluZXI6bm90KC5maWVsZC10YXhvbm9teSk6bm90KC5maWVsZC1zZXBhcmF0b3IpIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLmNhdGVnb3JpZXMtaW5mbyBwIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyBGaXggY29uZmxpY3RzIHdpdGggc29uYXRhIENTU1xuLnNvbmF0YS1iYS1maWVsZCAudGF4b25vbXktcGlja2VyIHtcbiAgLmNvbnRlbnQge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gICAgbWFyZ2luOiAtMnB4IDhweCAwIDA7XG4gICAgJiArIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgaW5wdXQuZGVzY3JpcHRpb24ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuIiwiXG4uY2hpbGRyZW46bm90KC5kcmFnZ2luZylcbiAgPiBkaXZcbiAgPiAub3B0aW9uLXZhbHVlLmRyYWdnYWJsZVxuICA+IC5jb250ZW50XG4gIC5kcmFnLXpvbmU6aG92ZXIsXG4ub3B0aW9uLXZhbHVlLnNvcnRhYmxlLWdob3N0ID4gLmNvbnRlbnQgLmRyYWctem9uZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgLm9wdGlvbi1pY29uIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgfVxufVxuLmNoaWxkcmVuOm5vdCguZHJhZ2dpbmcpID4gZGl2ID4gLm9wdGlvbi12YWx1ZSA+IC5jb250ZW50IC5kZWxldGUtaWNvbjpob3ZlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xufVxuXG4ub3B0aW9uLXZhbHVlIHtcbiAgJi5kcmFnZ2FibGUgPiAuY29udGVudCAuZHJhZy16b25lOmhvdmVyIHtcbiAgICBjdXJzb3I6IGdyYWI7XG4gIH1cblxuICAmID4gLmNvbnRlbnQge1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuZHJhZy16b25lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMXM7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAub3B0aW9uLWljb24ge1xuICAgICAgd2lkdGg6IDEuMXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLmRlbGV0ZS1pY29uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC4yNWVtO1xuICAgICAgd2lkdGg6IDEuMmVtO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMXM7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1hZGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgIGZvbnQtc2l6ZTogMC45NWVtO1xuICAgIH1cblxuICAgIGlucHV0LmRlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbjogMCAwLjI1ZW0gMCAwLjdlbTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1saWdodC1zb2Z0KTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwLjE1ZW07XG4gICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zb2Z0KTtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbCk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLnJvb3QpIC5vcHRpb24tdmFsdWUtY2hpbGRyZW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggdmFyKC0tY29sb3ItbGlnaHQtc29mdCkgc29saWQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjJyZW07XG4gIH1cblxuICAmLnJvb3QgPiAub3B0aW9uLXZhbHVlLWNoaWxkcmVuIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICB9XG59XG5cbi5jYXRlZ29yeS12YWx1ZVtkYXRhLWRlcHRoPScwJ106bm90KC5pbmxpbmUtY2hpbGRyZW4pIHtcbiAgLm9wdGlvbi12YWx1ZVtkYXRhLWRlcHRoPScwJ10ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxufVxuIiwiXG4uZXhwYW5kLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmNhdGVnb3J5LWNob2ljZSA+IC5jb250ZW50IC5leHBhbmQtY29udGFpbmVyIHtcbiAgd2lkdGg6IDFlbTtcbn1cbi5vcHRpb24tY2hvaWNlID4gLmNvbnRlbnQgLmV4cGFuZC1jb250YWluZXIge1xuICB3aWR0aDogMmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi5leHBhbmQtaWNvbixcbi5pbnZhbGlkLWljb24ge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgd2lkdGg6IDAuOGVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmV4cGFuZC1pY29uIHtcbiAgJi5hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgfVxuICAvLyByZWRlY2xhcmUgZm9udC1hd2Vzb21lIGNsYXNzIHNvIHdlIGNhbiB1c2UgQGV4dGVuZCwgdGhlbiBpY29ucyBjYW4gYmUgZWFzaWx5IGNoYW5nZWRcbiAgJi5jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxmMDc4JztcbiAgfVxuICAmLmNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxmMDU0JztcbiAgfVxuICAmLmNhcmV0LWRvd246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxmMGQ3JztcbiAgfVxuICAmLmNhcmV0LXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcZjBkYSc7XG4gIH1cbn1cblxuLml0ZW0tY2hvaWNlIC50aXRsZTpob3ZlciAuZXhwYW5kLWljb24ge1xuICBAZXh0ZW5kIC5hY3RpdmU7XG59XG5cbi8vIEJsb2NrIGRpc3BsYXkgOiBjYXJldCBmb3IgY2F0ZWdvcnksIGNoZXZyb24gZm9yIG9wdGlvblxuLy8gaWNvbiBnb2VzIGRvd24gd2hlbiBjaGlsZHJlbiBleHBhbmRlZFxuLmNhdGVnb3J5LWNob2ljZSA+IC5jb250ZW50LmNoaWxkLWRpc3BsYXktYmxvY2sgLmV4cGFuZC1pY29uIHtcbiAgQGV4dGVuZCAuY2FyZXQtcmlnaHQ7XG59XG4uY2F0ZWdvcnktY2hvaWNlID4gLmNvbnRlbnQuY2hpbGQtZGlzcGxheS1ibG9jay5leHBhbmRlZCAuZXhwYW5kLWljb24ge1xuICBAZXh0ZW5kIC5jYXJldC1kb3duO1xufVxuLm9wdGlvbi1jaG9pY2UgPiAuY29udGVudC5jaGlsZC1kaXNwbGF5LWJsb2NrIC5leHBhbmQtaWNvbiB7XG4gIEBleHRlbmQgLmNoZXZyb24tcmlnaHQ7XG59XG4ub3B0aW9uLWNob2ljZSA+IC5jb250ZW50LmNoaWxkLWRpc3BsYXktYmxvY2suZXhwYW5kZWQgLmV4cGFuZC1pY29uIHtcbiAgQGV4dGVuZCAuY2hldnJvbi1kb3duO1xufVxuXG4vLyBGbG9hdGluZyBkaXNwbGF5IDogYWx3YXlzIGNoZXZyb24gcmlnaHQsIHJpZ2h0IGFsaWduZWRcbi5vcHRpb24tY2hvaWNlID4gLmNvbnRlbnQuY2hpbGQtZGlzcGxheS1mbG9hdGluZyAuZXhwYW5kLWljb24ge1xuICBAZXh0ZW5kIC5jaGV2cm9uLXJpZ2h0O1xufVxuLmNhdGVnb3J5LWNob2ljZSA+IC5jb250ZW50LmNoaWxkLWRpc3BsYXktZmxvYXRpbmcgLmV4cGFuZC1pY29uIHtcbiAgQGV4dGVuZCAuY2FyZXQtZG93bjtcbn1cbi5pdGVtLWNob2ljZSA+IC5jb250ZW50LmNoaWxkLWRpc3BsYXktZmxvYXRpbmcgLmV4cGFuZC1jb250YWluZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi5pdGVtLWNob2ljZSA+IC5jb250ZW50LmNoaWxkLWRpc3BsYXktZmxvYXRpbmcuZXhwYW5kZWQgLmV4cGFuZC1pY29uIHtcbiAgQGV4dGVuZCAuYWN0aXZlO1xufVxuXG4uaW52YWxpZC1pY29uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbn1cbi5vcHRpb24tY2hvaWNlID4gLmNvbnRlbnQuaW52YWxpZCB7XG4gIC5pbnZhbGlkLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZXhwYW5kLWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcikgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiXG4uY2F0ZWdvcnktY2hvaWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJi53aXRoLW5hbWUge1xuICAgIG1hcmdpbi10b3A6IDAuMjVlbTtcbiAgfVxuXG4gICYuYXMtYnRuICsgLmNhdGVnb3J5LWNob2ljZS5hcy1idG4ge1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICB9XG4gICYuY2hpbGQtZGlzcGxheS1ibG9jay5leHBhbmRlZCArIC5jYXRlZ29yeS1jaG9pY2Uge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgfVxuXG4gICYgPiAuY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjVweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0b3AgNjAwczsgLy8gc21hbGwgaGFjayB0byBhdm9pZCBhIGdsaXRjaCB3aGVuIHRvcCB0cmFuc2l0aW9uIHRvIDAgd2hlbiBhbmltYXRpbmcgY29sbGFwc2VcblxuICAgIC5uYW1lIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgICYuYXMtYnRuIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWRhcmstc29mdCk7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbGlnaHQpO1xuXG4gICAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgICB9XG5cbiAgICAgIC5leHBhbmQtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIC5leHBhbmQtaWNvbiB7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYubWFuZGF0b3J5LmludmFsaWQgLm5hbWU6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyonO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgICB9XG5cbiAgICAmLmNoaWxkLWRpc3BsYXktZmxvYXRpbmcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgJjpub3QoLmFzLWJ0bikuY2hpbGQtZGlzcGxheS1mbG9hdGluZy5leHBhbmRlZCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgfVxuICB9XG59XG5cbi5jYXRlZ29yeS1waWNrZXIuZGlzcGxheS1ibG9jayA+IC5jYXRlZ29yeS1jaG9pY2UgPiAuY29udGVudDpub3QoLmFzLWJ0bikge1xuICAmLmV4cGFuZGVkIHtcbiAgICBAZXh0ZW5kIC5hcy1idG47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbGlnaHQtc29mdCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuICB9XG59XG5cbi8vIFdoZW4gYWxsIGRpc3BsYXkgaW4gYmxvY2ssIGFjdGl2YXRlIHN0aWNreVxuLnRheG9ub215LXBpY2tlclxuICAuY2F0ZWdvcnktcGlja2VyW2RhdGEtZGVwdGg9JzAnXS5kaXNwbGF5LWJsb2NrLmNoaWxkcmVuLWRpc3BsYXktYmxvY2sge1xuICAuY29udGVudC5leHBhbmRlZCB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgfVxuICAub3B0aW9uLWNob2ljZSA+IC5jb250ZW50LmV4cGFuZGVkIHtcbiAgICBoZWlnaHQ6IDMwcHg7IC8vIG1ha2UgaXQgYmlnZ2VyIGZvciB0aGUgc3RpY2t5IHBvc2l0aW9uXG4gICAgJiArIC5pdGVtLXBpY2tlciB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC4yNWVtO1xuICAgIH1cbiAgfVxufVxuIiwiXG4udGF4b25vbXktcGlja2VyLWNvbnRhaW5lciAudGF4b25vbXktcGlja2VyIC5jYXRlZ29yeS12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYgPiAuY29udGVudCB7XG4gICAgaGVpZ2h0OiAxLjdyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBtYXJnaW46IDAuMmVtIDAuNWVtIDAuNWVtIC0wLjNlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY2O1xuICAgICYuaW52YWxpZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbGlnaHQpO1xuICAgIH1cblxuICAgIC5uYW1lIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDAuOTVlbTtcbiAgICB9XG5cbiAgICAuZmEge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNGVtO1xuICAgICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAmOm5vdCguaW52YWxpZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1zb2Z0KTtcbiAgICAgIH1cblxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLmZhIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2hpbGRyZW4ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXM7XG4gIH1cbiAgLmNoaWxkcmVuLmlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG5cbiAgICAub3B0aW9uLXZhbHVlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcblxuICAgICAgJiA+IC5jb250ZW50IHtcbiAgICAgICAgLm5hbWUge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgICAgLm9wdGlvbi1pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5idXR0b24tYWRkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgfVxuICAgICY6bm90KC5vcGVuZWQpIC5mYSB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuICAgICY6aG92ZXIgLmZhIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgICYuaW52YWxpZCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xuICAgICAgLmZhIHtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgICAuaW52YWxpZC1pY29uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1ZW07XG4gICAgfVxuICAgIC5lcnJvci1tZXNzYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG4gIH1cbiAgJltkYXRhLWRlcHRoPScwJ10gPiAuYnV0dG9uLWFkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY2hpbGRyZW46bm90KC5pbmxpbmUpICsgLmJ1dHRvbi1hZGQge1xuICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDAuNGVtO1xuICB9XG59XG4uY2F0ZWdvcnktdmFsdWVbZGF0YS1kZXB0aD0nMSddIC5jYXRlZ29yeS12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5jYXRlZ29yeS12YWx1ZSArIC5jYXRlZ29yeS12YWx1ZSA+IC5jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtO1xufVxuLmNhdGVnb3J5LXZhbHVlW2RhdGEtZGVwdGg9JzAnXSA+IC5jaGlsZHJlbiB7XG4gIG1hcmdpbjogMC41cmVtIDAgMC41cmVtIDAuNXJlbTtcbn1cbi5jYXRlZ29yeS1jaG9pY2VcbiAgPiAuY29udGVudC5jaGlsZC1kaXNwbGF5LWZsb2F0aW5nLmV4cGFuZGVkXG4gIH4gLmNhdGVnb3J5LXZhbHVlOm5vdCg6aG92ZXIpXG4gID4gLmNoaWxkcmVuIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmNhdGVnb3J5LWNob2ljZVxuICA+IC5jb250ZW50LmNoaWxkLWRpc3BsYXktYmxvY2suZXhwYW5kZWRcbiAgfiAuY2F0ZWdvcnktdmFsdWVcbiAgPiAuY2hpbGRyZW4ge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItbGlnaHQtc29mdCk7XG59XG4iLCJcbi5vcHRpb24tY2hvaWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiAwLjJzIG1hcmdpbiBlYXNlLWluLW91dDtcblxuICAuY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMjVweDtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGhlaWdodCBlYXNlLWluLW91dCwgMC4yIG1hcmdpbiBlYXNlLWluLW91dDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jb250ZW50LWJhY2tncm91bmQpOyAvLyBmb3Igc3RpY2t5IHBvc2l0aW9uXG5cbiAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMWVtO1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjE1ZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgd2lkdGg6IDAuNmVtO1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgfVxuXG4gICAgLmluZGV4IHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgfVxuXG4gICAgJi5jaGVja2VkIC5pbmRleCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAwLjY1ZW07XG4gICAgICBsZWZ0OiAxZW07XG4gICAgICB0b3A6IC0xcHg7XG4gICAgICB3aWR0aDogMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwpO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgIGlucHV0LmRlc2NyaXB0aW9uIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1saWdodC1zb2Z0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBwYWRkaW5nOiAwZW0gMC41ZW07XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMC41ZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAwNTtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc29mdCk7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbGlnaHQtc29mdCk7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgLnRpdGxlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAub3B0aW9uLWljb24ge1xuICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgIH1cblxuICAgIC50ZXh0SGVscGVyIHtcbiAgICAgIGN1cnNvcjogaGVscDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbiAgfVxufVxuXG4vLyB0dXJuIGNoZWNrYm94ZXMgaW50byByYWRpbyBidXR0b25zIHdoZW4gb25seSBvbmNlIG9wdGlvbiBzZWxlY3RhYmxlXG4uY2F0ZWdvcnktY2hvaWNlLnNpbmdsZS1vcHRpb25cbiAgPiAub3B0aW9uLXBpY2tlclxuICA+IC5vcHRpb24tY2hvaWNlXG4gID4gLmNvbnRlbnRcbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpXG4gICsgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuIiwiXG4udGF4b25vbXktcGlja2VyIC5pdGVtLXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LXNpemU6IDFyZW07IC8vIHJlc2V0IHN0eWxlXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IC8vIHJlc2V0IHN0eWxlXG5cbiAgJi5jaGlsZC1leHBhbmRlZC5jaGlsZHJlbi1kaXNwbGF5LWZsb2F0aW5nIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAvLyBmaXggYnVnIHdpdGggY29sbGFwc2UgdHJhbnNpdGlvbiByZXN1bHRpbmcgaW4gYXBwbHlpbmcgb3ZlcmZsb3cgaGlkZGVuXG4gIH1cblxuICAuaXRlbS1jaG9pY2UgPiAuY29udGVudCB7XG4gICAgcGFkZGluZzogMCAwLjhlbSAwIDAuNmVtO1xuICB9XG5cbiAgJi5kaXNwbGF5LWZsb2F0aW5nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTAwJTtcbiAgICB0b3A6IGNhbGMoLTAuNWVtIC0gMXB4KTtcbiAgICB6LWluZGV4OiA1MDAwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3gtc2hhZG93OiAzcHggMnB4IDEzcHggMCByZ2IoMCAwIDAgLyA1JSk7XG5cbiAgICAvLyBVc2UgdGhpcyBraW5kIG9mIG1hcmdpbiBvbiBjaGlsZHJlbiBzbyB0aGUgYW5pbWF0aW9uIHdvcmtzIGJldHRlclxuICAgICYgPiAuaXRlbS1jaG9pY2U6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMC4yNWVtO1xuICAgIH1cbiAgICAmID4gLml0ZW0tY2hvaWNlOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxuXG4gICAgJltkYXRhLWRlcHRoPScwJ10ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMzBweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgICYubm8tY2hpbGRyZW4ge1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICAgICYgPiAuaXRlbS1jaG9pY2U6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhdGVnb3J5LXBpY2tlci5kaXNwbGF5LWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm9wdGlvbi1waWNrZXIgLmNhdGVnb3J5LXBpY2tlci5kaXNwbGF5LWJsb2NrIHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcblxuICBib3JkZXItbGVmdDogMXB4IHZhcigtLWNvbG9yLWxpZ2h0LXNvZnQpIHNvbGlkO1xuICBwYWRkaW5nLWxlZnQ6IDAuOGVtO1xuICBmb250LXNpemU6IGNhbGMoMWVtIC0gMC4yNXB4KTtcbn1cbi5vcHRpb24tcGlja2VyIC5jaGlsZC1kaXNwbGF5LWJsb2NrLmV4cGFuZGVkICsgLm9wdGlvbi1jaG9pY2Uge1xuICBtYXJnaW4tdG9wOiAwLjdlbTsgLy8gYWRkIG1hcmdpbiBvbiBjaGlsZHJlbiB0byBpbXByb3ZlIGFuaW1hdGlvblxufVxuXG4ub3B0aW9uLXBpY2tlciB7XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbiAgJltkYXRhLWRlcHRoPScwJ10ge1xuICAgIG1hcmdpbi10b3A6IDAuNGVtO1xuICAgICYuZGlzcGxheS1ibG9jayB7XG4gICAgICBtYXJnaW4tbGVmdDogLTAuMjVlbTtcbiAgICB9XG4gIH1cbn1cbiIsIjx0ZW1wbGF0ZT5cbiAgPCEtLSBDb2RlIGZyb20gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdnVlLWNvbGxhcHNlLXRyYW5zaXRpb24gLS0+XG4gIDx0cmFuc2l0aW9uXG4gICAgQGJlZm9yZUVudGVyPVwiYmVmb3JlRW50ZXJcIlxuICAgIEBlbnRlcj1cImVudGVyXCJcbiAgICBAYWZ0ZXJFbnRlcj1cImFmdGVyRW50ZXJcIlxuICAgIEBiZWZvcmVMZWF2ZT1cImJlZm9yZUxlYXZlXCJcbiAgICBAbGVhdmU9XCJsZWF2ZVwiXG4gICAgQGFmdGVyTGVhdmU9XCJhZnRlckVudGVyXCJcbiAgPlxuICAgIDxzbG90IC8+XG4gIDwvdHJhbnNpdGlvbj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiBbJ2Rpc2FibGVkJ10sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyYW5zaXRpb25fY2xhc3NOYW1lOiAnY29sbGFwc2UtdHJhbnNpdGlvbicsXG4gICAgfVxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgYmVmb3JlRW50ZXIoZWxlKSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG5cbiAgICAgIGVsZS5jbGFzc0xpc3QuYWRkKHRoaXMudHJhbnNpdGlvbl9jbGFzc05hbWUpXG4gICAgICBpZiAoIWVsZS5kYXRhc2V0KSBlbGUuZGF0YXNldCA9IHt9XG4gICAgICBlbGUuZGF0YXNldC5vbGRQYWRkaW5nVG9wID0gZWxlLnN0eWxlLnBhZGRpbmdUb3BcbiAgICAgIGVsZS5kYXRhc2V0Lm9sZFBhZGRpbmdCb3R0b20gPSBlbGUuc3R5bGUucGFkZGluZ0JvdHRvbVxuXG4gICAgICBPYmplY3QuYXNzaWduKGVsZS5zdHlsZSwge1xuICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgcGFkZGluZ1RvcDogJzAnLFxuICAgICAgICBwYWRkaW5nQm90dG9tOiAnMCcsXG4gICAgICB9KVxuICAgIH0sXG5cbiAgICBlbnRlcihlbGUpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cblxuICAgICAgZWxlLmRhdGFzZXQub2xkT3ZlcmZsb3cgPSBlbGUuc3R5bGUub3ZlcmZsb3dcbiAgICAgIGlmIChlbGUuc2Nyb2xsSGVpZ2h0ICE9PSAwKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZWxlLnN0eWxlLCB7XG4gICAgICAgICAgaGVpZ2h0OiBlbGUuc2Nyb2xsSGVpZ2h0ICsgJ3B4JyxcbiAgICAgICAgICBwYWRkaW5nVG9wOiBlbGUuZGF0YXNldC5vbGRQYWRkaW5nVG9wLFxuICAgICAgICAgIHBhZGRpbmdCb3R0b206IGVsZS5kYXRhc2V0Lm9sZFBhZGRpbmdCb3R0b20sXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3QuYXNzaWduKGVsZS5zdHlsZSwge1xuICAgICAgICAgIGhlaWdodDogJycsXG4gICAgICAgICAgcGFkZGluZ1RvcDogZWxlLmRhdGFzZXQub2xkUGFkZGluZ1RvcCxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tOiBlbGUuZGF0YXNldC5vbGRQYWRkaW5nQm90dG9tLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBlbGUuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJ1xuICAgIH0sXG5cbiAgICBhZnRlckVudGVyKGVsZSkge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVyblxuICAgICAgLy8gZm9yIHNhZmFyaTogcmVtb3ZlIGNsYXNzIHRoZW4gcmVzZXQgaGVpZ2h0IGlzIG5lY2Vzc2FyeVxuICAgICAgZWxlLmNsYXNzTGlzdC5yZW1vdmUodGhpcy50cmFuc2l0aW9uX2NsYXNzTmFtZSlcbiAgICAgIGVsZS5zdHlsZS5oZWlnaHQgPSAnJ1xuICAgICAgZWxlLnN0eWxlLm92ZXJmbG93ID0gZWxlLmRhdGFzZXQub2xkT3ZlcmZsb3dcbiAgICB9LFxuXG4gICAgYmVmb3JlTGVhdmUoZWxlKSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG5cbiAgICAgIGlmICghZWxlLmRhdGFzZXQpIGVsZS5kYXRhc2V0ID0ge31cbiAgICAgIGVsZS5kYXRhc2V0Lm9sZFBhZGRpbmdUb3AgPSBlbGUuc3R5bGUucGFkZGluZ1RvcFxuICAgICAgZWxlLmRhdGFzZXQub2xkUGFkZGluZ0JvdHRvbSA9IGVsZS5zdHlsZS5wYWRkaW5nQm90dG9tXG4gICAgICBlbGUuZGF0YXNldC5vbGRPdmVyZmxvdyA9IGVsZS5zdHlsZS5vdmVyZmxvd1xuXG4gICAgICBlbGUuc3R5bGUuaGVpZ2h0ID0gZWxlLnNjcm9sbEhlaWdodCArICdweCdcbiAgICAgIGVsZS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nXG4gICAgfSxcblxuICAgIGxlYXZlKGVsZSkge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVyblxuXG4gICAgICBpZiAoZWxlLnNjcm9sbEhlaWdodCAhPT0gMCkge1xuICAgICAgICAvLyBmb3Igc2FmYXJpOiBhZGQgY2xhc3MgYWZ0ZXIgc2V0IGhlaWdodCwgb3IgaXQgd2lsbCBqdW1wIHRvIHplcm8gaGVpZ2h0IHN1ZGRlbmx5LCB3ZWlyZWRcbiAgICAgICAgZWxlLmNsYXNzTGlzdC5hZGQodGhpcy50cmFuc2l0aW9uX2NsYXNzTmFtZSlcblxuICAgICAgICBPYmplY3QuYXNzaWduKGVsZS5zdHlsZSwge1xuICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgIHBhZGRpbmdUb3A6ICcwJyxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tOiAnMCcsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcblxuICAgIGFmdGVyTGVhdmUoZWxlKSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG5cbiAgICAgIGVsZS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMudHJhbnNpdGlvbl9jbGFzc05hbWUpXG4gICAgICBPYmplY3QuYXNzaWduKGVsZS5zdHlsZSwge1xuICAgICAgICBoZWlnaHQ6ICcnLFxuICAgICAgICBvdmVyZmxvdzogZWxlLmRhdGFzZXQub2xkT3ZlcmZsb3csXG4gICAgICAgIHBhZGRpbmdUb3A6IGVsZS5kYXRhc2V0Lm9sZFBhZGRpbmdUb3AsXG4gICAgICAgIHBhZGRpbmdCb3R0b206IGVsZS5kYXRhc2V0Lm9sZFBhZGRpbmdCb3R0b20sXG4gICAgICB9KVxuICAgIH0sXG4gIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5jb2xsYXBzZS10cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogMC4ycyBoZWlnaHQgZWFzZS1pbi1vdXQsIDAuMnMgcGFkZGluZy10b3AgZWFzZS1pbi1vdXQsXG4gICAgMC4ycyBwYWRkaW5nLWJvdHRvbSBlYXNlLWluLW91dCwgMC4ycyBtYXJnaW4tdG9wIGVhc2UtaW4tb3V0LFxuICAgIDAuMnMgbWFyZ2luLWJvdHRvbSBlYXNlLWluLW91dDtcbn1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/