capibara 1.3.12 → 1.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -103,7 +103,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
103
103
|
/*! no static exports found */
|
|
104
104
|
/***/ (function(module, exports, __webpack_require__) {
|
|
105
105
|
|
|
106
|
-
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nexports.push([module.i, \"@import url(https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;0,900;1,300;1,400;1,500;1,700;1,900&display=swap);\"]);\n// Module\nexports.push([module.i, \":root{--header-top-height:40px;--header-height:98px;--header-labels-height:50px;--header-day-height:24px;--ex-header-height:110px;--header-input-height:20px;--nav-width:200px;--nav-item-col-width:60px;--initial-nav-width:0px;--ex-nav-width:0px;--btn-nav-width:117px;--nav-right-width:300px;--item-min-width:100px;--item-height:45px;--day-width:45px;--font-size:16px}@-webkit-keyframes pulseMessage{0%{border-color:rgba(211,47,47,.3) rgba(211,47,47,.3) transparent transparent}to{border-color:#d32f2f #d32f2f transparent transparent}}@keyframes pulseMessage{0%{border-color:rgba(211,47,47,.3) rgba(211,47,47,.3) transparent transparent}to{border-color:#d32f2f #d32f2f transparent transparent}}@-webkit-keyframes pulseBackground{0%{background:rgba(211,47,47,.3)}to{background:#d32f2f}}@keyframes pulseBackground{0%{background:rgba(211,47,47,.3)}to{background:#d32f2f}}@-webkit-keyframes loading-fast1{0%{transform:translateX(-100%)}40%{transform:translateX(-100%)}to{transform:translateX(200%)}}@keyframes loading-fast1{0%{transform:translateX(-100%)}40%{transform:translateX(-100%)}to{transform:translateX(200%)}}@-webkit-keyframes loading-fast2{0%{transform:translateX(-100%)}15%{transform:translateX(-100%)}to{transform:translateX(200%)}}@keyframes loading-fast2{0%{transform:translateX(-100%)}15%{transform:translateX(-100%)}to{transform:translateX(200%)}}.capibara.c-red:not(.dark-theme){scrollbar-color:#df554b transparent}.capibara.c-red:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#df554b}.capibara.c-red:not(.dark-theme) .header-top{background:#fdfaf9}.capibara.c-red:not(.dark-theme) .corner{background:#fdfaf9;border-color:#f99d97}.capibara.c-red:not(.dark-theme) .container-tl header{background:#fdfaf9;border-bottom-color:#f99d97}.capibara.c-red:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#fdfaf9)!important}.capibara.c-red:not(.dark-theme) nav.right{border-color:#f99d97}.capibara.c-red.dark-theme .header-top,.capibara.c-red.dark-theme nav.right{border-color:#ba160a}.capibara.c-red.dark-theme .container-tl header,.capibara.c-red.dark-theme .corner{border-bottom-color:#ba160a}.capibara.c-red.dark-theme ::-moz-selection,.capibara.c-red ::-moz-selection{background-color:rgba(244,67,54,.2)!important}.capibara.c-red.dark-theme ::selection,.capibara.c-red ::selection{background-color:rgba(244,67,54,.2)!important}.capibara.c-red.dark-theme .progress-bar,.capibara.c-red .progress-bar{background-color:rgba(244,67,54,.2)!important}.capibara.c-red.dark-theme .progress-bar:after,.capibara.c-red.dark-theme .progress-bar:before,.capibara.c-red .progress-bar:after,.capibara.c-red .progress-bar:before{background-color:#f44336!important}.capibara.c-red.dark-theme select.tabs-select,.capibara.c-red select.tabs-select{background-color:rgba(244,67,54,.7)!important;border-color:#f44336!important}.capibara.c-red.dark-theme .time,.capibara.c-red .time{border-color:rgba(244,67,54,.6)}.capibara.c-red.dark-theme .time .symbol,.capibara.c-red .time .symbol{color:#f44336}.capibara.c-red.dark-theme .time input:active,.capibara.c-red.dark-theme .time input:focus,.capibara.c-red .time input:active,.capibara.c-red .time input:focus{border-color:#f44336;box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red.dark-theme .input-box,.capibara.c-red.dark-theme .input-section select.input-select,.capibara.c-red .input-box,.capibara.c-red .input-section select.input-select{border-color:rgba(244,67,54,.6)}.capibara.c-red.dark-theme .input-section select.input-select:active,.capibara.c-red.dark-theme .input-section select.input-select:focus,.capibara.c-red .input-section select.input-select:active,.capibara.c-red .input-section select.input-select:focus{border-color:#f44336;box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red.dark-theme .input-section .nav-input-file,.capibara.c-red.dark-theme .input-section input.nav-input,.capibara.c-red .input-section .nav-input-file,.capibara.c-red .input-section input.nav-input{border-color:rgba(244,67,54,.6)}.capibara.c-red.dark-theme .input-section .nav-input-file:active,.capibara.c-red.dark-theme .input-section .nav-input-file:focus,.capibara.c-red.dark-theme .input-section input.nav-input:active,.capibara.c-red.dark-theme .input-section input.nav-input:focus,.capibara.c-red .input-section .nav-input-file:active,.capibara.c-red .input-section .nav-input-file:focus,.capibara.c-red .input-section input.nav-input:active,.capibara.c-red .input-section input.nav-input:focus{border-color:#f44336;box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-red .input-section.msj-input-container textarea.msj{border:2px solid #f44336}.capibara.c-red.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-red.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-red .input-section.msj-input-container textarea.msj:active,.capibara.c-red .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red .cap-btn-raised,.capibara.c-red.dark-theme .cap-btn-raised{border-color:#f44336;background:rgba(244,67,54,.8)}.capibara.c-red .cap-btn-outline,.capibara.c-red.dark-theme .cap-btn-outline{border-color:#f44336;color:#f44336}.capibara.c-red .cap-btn-outline.selected,.capibara.c-red.dark-theme .cap-btn-outline.selected{background:rgba(244,67,54,.8)}.capibara.c-red.dark-theme .select-container .selected-day,.capibara.c-red .select-container .selected-day{background:rgba(244,67,54,.3);box-shadow:inset 0 0 10px rgba(244,67,54,.5)}.capibara .c-red--background{background:#f44336!important}.capibara .c-red-d--background{background:#d2190b!important}.capibara .c-red-l--background{background:#f8877f!important}.capibara .c-red--text{color:#f44336!important}.capibara .c-red-d--text{color:#d2190b!important}.capibara .c-red-l--text{color:#f8877f!important}.capibara .detail-day .list-detail .item-detail.c-red{background:rgba(244,67,54,.2);border:1px solid #f44336}.capibara .detail-day .list-detail .item-detail.c-red .left-icon{background:#f44336}.capibara .detail-day .list-detail .item-detail.c-red .left-icon.outlined{border:1px solid #f44336;box-shadow:inset 0 0 0 1px rgba(244,67,54,.7)}.capibara .detail-day .list-detail .item-detail.c-red .name{color:#f44336}.capibara .float-box-container .float-box span.data.c-red{--local-color:#f44336;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-red,.capibara .float-box-container .float-box .dot.c-red,.capibara .float-box-container .float-box .rowdot--row.c-red .rowdot--dot{--local-color:#f44336}.capibara .header-top .tabs-container .tab:not(.disabled).c-red.active{background:rgba(244,67,54,.7);border-color:rgba(244,67,54,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-red.active:hover{background:rgba(244,67,54,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-red:hover{background:rgba(244,67,54,.2);border-color:rgba(244,67,54,.9)}.capibara .input-box .mini-input-section--icon.c-red{background:#f44336}.capibara.c-pink:not(.dark-theme){scrollbar-color:#d0376b transparent}.capibara.c-pink:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#d0376b}.capibara.c-pink:not(.dark-theme) .header-top{background:#f0e3e7}.capibara.c-pink:not(.dark-theme) .corner{background:#f0e3e7;border-color:#f27ba3}.capibara.c-pink:not(.dark-theme) .container-tl header{background:#f0e3e7;border-bottom-color:#f27ba3}.capibara.c-pink:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f0e3e7)!important}.capibara.c-pink:not(.dark-theme) nav.right{border-color:#f27ba3}.capibara.c-pink.dark-theme .header-top,.capibara.c-pink.dark-theme nav.right{border-color:#930e3b}.capibara.c-pink.dark-theme .container-tl header,.capibara.c-pink.dark-theme .corner{border-bottom-color:#930e3b}.capibara.c-pink.dark-theme ::-moz-selection,.capibara.c-pink ::-moz-selection{background-color:rgba(233,30,99,.2)!important}.capibara.c-pink.dark-theme ::selection,.capibara.c-pink ::selection{background-color:rgba(233,30,99,.2)!important}.capibara.c-pink.dark-theme .progress-bar,.capibara.c-pink .progress-bar{background-color:rgba(233,30,99,.2)!important}.capibara.c-pink.dark-theme .progress-bar:after,.capibara.c-pink.dark-theme .progress-bar:before,.capibara.c-pink .progress-bar:after,.capibara.c-pink .progress-bar:before{background-color:#e91e63!important}.capibara.c-pink.dark-theme select.tabs-select,.capibara.c-pink select.tabs-select{background-color:rgba(233,30,99,.7)!important;border-color:#e91e63!important}.capibara.c-pink.dark-theme .time,.capibara.c-pink .time{border-color:rgba(233,30,99,.6)}.capibara.c-pink.dark-theme .time .symbol,.capibara.c-pink .time .symbol{color:#e91e63}.capibara.c-pink.dark-theme .time input:active,.capibara.c-pink.dark-theme .time input:focus,.capibara.c-pink .time input:active,.capibara.c-pink .time input:focus{border-color:#e91e63;box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink.dark-theme .input-box,.capibara.c-pink.dark-theme .input-section select.input-select,.capibara.c-pink .input-box,.capibara.c-pink .input-section select.input-select{border-color:rgba(233,30,99,.6)}.capibara.c-pink.dark-theme .input-section select.input-select:active,.capibara.c-pink.dark-theme .input-section select.input-select:focus,.capibara.c-pink .input-section select.input-select:active,.capibara.c-pink .input-section select.input-select:focus{border-color:#e91e63;box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink.dark-theme .input-section .nav-input-file,.capibara.c-pink.dark-theme .input-section input.nav-input,.capibara.c-pink .input-section .nav-input-file,.capibara.c-pink .input-section input.nav-input{border-color:rgba(233,30,99,.6)}.capibara.c-pink.dark-theme .input-section .nav-input-file:active,.capibara.c-pink.dark-theme .input-section .nav-input-file:focus,.capibara.c-pink.dark-theme .input-section input.nav-input:active,.capibara.c-pink.dark-theme .input-section input.nav-input:focus,.capibara.c-pink .input-section .nav-input-file:active,.capibara.c-pink .input-section .nav-input-file:focus,.capibara.c-pink .input-section input.nav-input:active,.capibara.c-pink .input-section input.nav-input:focus{border-color:#e91e63;box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-pink .input-section.msj-input-container textarea.msj{border:2px solid #e91e63}.capibara.c-pink.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-pink.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-pink .input-section.msj-input-container textarea.msj:active,.capibara.c-pink .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink .cap-btn-raised,.capibara.c-pink.dark-theme .cap-btn-raised{border-color:#e91e63;background:rgba(233,30,99,.8)}.capibara.c-pink .cap-btn-outline,.capibara.c-pink.dark-theme .cap-btn-outline{border-color:#e91e63;color:#e91e63}.capibara.c-pink .cap-btn-outline.selected,.capibara.c-pink.dark-theme .cap-btn-outline.selected{background:rgba(233,30,99,.8)}.capibara.c-pink.dark-theme .select-container .selected-day,.capibara.c-pink .select-container .selected-day{background:rgba(233,30,99,.3);box-shadow:inset 0 0 10px rgba(233,30,99,.5)}.capibara .c-pink--background{background:#e91e63!important}.capibara .c-pink-d--background{background:#aa1145!important}.capibara .c-pink-l--background{background:#f06493!important}.capibara .c-pink--text{color:#e91e63!important}.capibara .c-pink-d--text{color:#aa1145!important}.capibara .c-pink-l--text{color:#f06493!important}.capibara .detail-day .list-detail .item-detail.c-pink{background:rgba(233,30,99,.2);border:1px solid #e91e63}.capibara .detail-day .list-detail .item-detail.c-pink .left-icon{background:#e91e63}.capibara .detail-day .list-detail .item-detail.c-pink .left-icon.outlined{border:1px solid #e91e63;box-shadow:inset 0 0 0 1px rgba(233,30,99,.7)}.capibara .detail-day .list-detail .item-detail.c-pink .name{color:#e91e63}.capibara .float-box-container .float-box span.data.c-pink{--local-color:#e91e63;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-pink,.capibara .float-box-container .float-box .dot.c-pink,.capibara .float-box-container .float-box .rowdot--row.c-pink .rowdot--dot{--local-color:#e91e63}.capibara .header-top .tabs-container .tab:not(.disabled).c-pink.active{background:rgba(233,30,99,.7);border-color:rgba(233,30,99,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-pink.active:hover{background:rgba(233,30,99,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-pink:hover{background:rgba(233,30,99,.2);border-color:rgba(233,30,99,.9)}.capibara .input-box .mini-input-section--icon.c-pink{background:#e91e63}.capibara.c-purple:not(.dark-theme){scrollbar-color:#8d3d9b transparent}.capibara.c-purple:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#8d3d9b}.capibara.c-purple:not(.dark-theme) .header-top{background:#d6cbd8}.capibara.c-purple:not(.dark-theme) .corner{background:#d6cbd8;border-color:#ca61dc}.capibara.c-purple:not(.dark-theme) .container-tl header{background:#d6cbd8;border-bottom-color:#ca61dc}.capibara.c-purple:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#d6cbd8)!important}.capibara.c-purple:not(.dark-theme) nav.right{border-color:#ca61dc}.capibara.c-purple.dark-theme .header-top,.capibara.c-purple.dark-theme nav.right{border-color:#52145d}.capibara.c-purple.dark-theme .container-tl header,.capibara.c-purple.dark-theme .corner{border-bottom-color:#52145d}.capibara.c-purple.dark-theme ::-moz-selection,.capibara.c-purple ::-moz-selection{background-color:rgba(156,39,176,.2)!important}.capibara.c-purple.dark-theme ::selection,.capibara.c-purple ::selection{background-color:rgba(156,39,176,.2)!important}.capibara.c-purple.dark-theme .progress-bar,.capibara.c-purple .progress-bar{background-color:rgba(156,39,176,.2)!important}.capibara.c-purple.dark-theme .progress-bar:after,.capibara.c-purple.dark-theme .progress-bar:before,.capibara.c-purple .progress-bar:after,.capibara.c-purple .progress-bar:before{background-color:#9c27b0!important}.capibara.c-purple.dark-theme select.tabs-select,.capibara.c-purple select.tabs-select{background-color:rgba(156,39,176,.7)!important;border-color:#9c27b0!important}.capibara.c-purple.dark-theme .time,.capibara.c-purple .time{border-color:rgba(156,39,176,.6)}.capibara.c-purple.dark-theme .time .symbol,.capibara.c-purple .time .symbol{color:#9c27b0}.capibara.c-purple.dark-theme .time input:active,.capibara.c-purple.dark-theme .time input:focus,.capibara.c-purple .time input:active,.capibara.c-purple .time input:focus{border-color:#9c27b0;box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple.dark-theme .input-box,.capibara.c-purple.dark-theme .input-section select.input-select,.capibara.c-purple .input-box,.capibara.c-purple .input-section select.input-select{border-color:rgba(156,39,176,.6)}.capibara.c-purple.dark-theme .input-section select.input-select:active,.capibara.c-purple.dark-theme .input-section select.input-select:focus,.capibara.c-purple .input-section select.input-select:active,.capibara.c-purple .input-section select.input-select:focus{border-color:#9c27b0;box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple.dark-theme .input-section .nav-input-file,.capibara.c-purple.dark-theme .input-section input.nav-input,.capibara.c-purple .input-section .nav-input-file,.capibara.c-purple .input-section input.nav-input{border-color:rgba(156,39,176,.6)}.capibara.c-purple.dark-theme .input-section .nav-input-file:active,.capibara.c-purple.dark-theme .input-section .nav-input-file:focus,.capibara.c-purple.dark-theme .input-section input.nav-input:active,.capibara.c-purple.dark-theme .input-section input.nav-input:focus,.capibara.c-purple .input-section .nav-input-file:active,.capibara.c-purple .input-section .nav-input-file:focus,.capibara.c-purple .input-section input.nav-input:active,.capibara.c-purple .input-section input.nav-input:focus{border-color:#9c27b0;box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-purple .input-section.msj-input-container textarea.msj{border:2px solid #9c27b0}.capibara.c-purple.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-purple.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-purple .input-section.msj-input-container textarea.msj:active,.capibara.c-purple .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple .cap-btn-raised,.capibara.c-purple.dark-theme .cap-btn-raised{border-color:#9c27b0;background:rgba(156,39,176,.8)}.capibara.c-purple .cap-btn-outline,.capibara.c-purple.dark-theme .cap-btn-outline{border-color:#9c27b0;color:#9c27b0}.capibara.c-purple .cap-btn-outline.selected,.capibara.c-purple.dark-theme .cap-btn-outline.selected{background:rgba(156,39,176,.8)}.capibara.c-purple.dark-theme .select-container .selected-day,.capibara.c-purple .select-container .selected-day{background:rgba(156,39,176,.3);box-shadow:inset 0 0 10px rgba(156,39,176,.5)}.capibara .c-purple--background{background:#9c27b0!important}.capibara .c-purple-d--background{background:#641971!important}.capibara .c-purple-l--background{background:#c34cd7!important}.capibara .c-purple--text{color:#9c27b0!important}.capibara .c-purple-d--text{color:#641971!important}.capibara .c-purple-l--text{color:#c34cd7!important}.capibara .detail-day .list-detail .item-detail.c-purple{background:rgba(156,39,176,.2);border:1px solid #9c27b0}.capibara .detail-day .list-detail .item-detail.c-purple .left-icon{background:#9c27b0}.capibara .detail-day .list-detail .item-detail.c-purple .left-icon.outlined{border:1px solid #9c27b0;box-shadow:inset 0 0 0 1px rgba(156,39,176,.7)}.capibara .detail-day .list-detail .item-detail.c-purple .name{color:#9c27b0}.capibara .float-box-container .float-box span.data.c-purple{--local-color:#9c27b0;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-purple,.capibara .float-box-container .float-box .dot.c-purple,.capibara .float-box-container .float-box .rowdot--row.c-purple .rowdot--dot{--local-color:#9c27b0}.capibara .header-top .tabs-container .tab:not(.disabled).c-purple.active{background:rgba(156,39,176,.7);border-color:rgba(156,39,176,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-purple.active:hover{background:rgba(156,39,176,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-purple:hover{background:rgba(156,39,176,.2);border-color:rgba(156,39,176,.9)}.capibara .input-box .mini-input-section--icon.c-purple{background:#9c27b0}.capibara.c-deep-purple:not(.dark-theme){scrollbar-color:#6e529f transparent}.capibara.c-deep-purple:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#6e529f}.capibara.c-deep-purple:not(.dark-theme) .header-top{background:#dededf}.capibara.c-deep-purple:not(.dark-theme) .corner{background:#dededf;border-color:#9f80d7}.capibara.c-deep-purple:not(.dark-theme) .container-tl header{background:#dededf;border-bottom-color:#9f80d7}.capibara.c-deep-purple:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#dededf)!important}.capibara.c-deep-purple:not(.dark-theme) nav.right{border-color:#9f80d7}.capibara.c-deep-purple.dark-theme .header-top,.capibara.c-deep-purple.dark-theme nav.right{border-color:#3b216a}.capibara.c-deep-purple.dark-theme .container-tl header,.capibara.c-deep-purple.dark-theme .corner{border-bottom-color:#3b216a}.capibara.c-deep-purple.dark-theme ::-moz-selection,.capibara.c-deep-purple ::-moz-selection{background-color:rgba(103,58,183,.2)!important}.capibara.c-deep-purple.dark-theme ::selection,.capibara.c-deep-purple ::selection{background-color:rgba(103,58,183,.2)!important}.capibara.c-deep-purple.dark-theme .progress-bar,.capibara.c-deep-purple .progress-bar{background-color:rgba(103,58,183,.2)!important}.capibara.c-deep-purple.dark-theme .progress-bar:after,.capibara.c-deep-purple.dark-theme .progress-bar:before,.capibara.c-deep-purple .progress-bar:after,.capibara.c-deep-purple .progress-bar:before{background-color:#673ab7!important}.capibara.c-deep-purple.dark-theme select.tabs-select,.capibara.c-deep-purple select.tabs-select{background-color:rgba(103,58,183,.7)!important;border-color:#673ab7!important}.capibara.c-deep-purple.dark-theme .time,.capibara.c-deep-purple .time{border-color:rgba(103,58,183,.6)}.capibara.c-deep-purple.dark-theme .time .symbol,.capibara.c-deep-purple .time .symbol{color:#673ab7}.capibara.c-deep-purple.dark-theme .time input:active,.capibara.c-deep-purple.dark-theme .time input:focus,.capibara.c-deep-purple .time input:active,.capibara.c-deep-purple .time input:focus{border-color:#673ab7;box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple.dark-theme .input-box,.capibara.c-deep-purple.dark-theme .input-section select.input-select,.capibara.c-deep-purple .input-box,.capibara.c-deep-purple .input-section select.input-select{border-color:rgba(103,58,183,.6)}.capibara.c-deep-purple.dark-theme .input-section select.input-select:active,.capibara.c-deep-purple.dark-theme .input-section select.input-select:focus,.capibara.c-deep-purple .input-section select.input-select:active,.capibara.c-deep-purple .input-section select.input-select:focus{border-color:#673ab7;box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple.dark-theme .input-section .nav-input-file,.capibara.c-deep-purple.dark-theme .input-section input.nav-input,.capibara.c-deep-purple .input-section .nav-input-file,.capibara.c-deep-purple .input-section input.nav-input{border-color:rgba(103,58,183,.6)}.capibara.c-deep-purple.dark-theme .input-section .nav-input-file:active,.capibara.c-deep-purple.dark-theme .input-section .nav-input-file:focus,.capibara.c-deep-purple.dark-theme .input-section input.nav-input:active,.capibara.c-deep-purple.dark-theme .input-section input.nav-input:focus,.capibara.c-deep-purple .input-section .nav-input-file:active,.capibara.c-deep-purple .input-section .nav-input-file:focus,.capibara.c-deep-purple .input-section input.nav-input:active,.capibara.c-deep-purple .input-section input.nav-input:focus{border-color:#673ab7;box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-deep-purple .input-section.msj-input-container textarea.msj{border:2px solid #673ab7}.capibara.c-deep-purple.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-purple.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-deep-purple .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-purple .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple .cap-btn-raised,.capibara.c-deep-purple.dark-theme .cap-btn-raised{border-color:#673ab7;background:rgba(103,58,183,.8)}.capibara.c-deep-purple .cap-btn-outline,.capibara.c-deep-purple.dark-theme .cap-btn-outline{border-color:#673ab7;color:#673ab7}.capibara.c-deep-purple .cap-btn-outline.selected,.capibara.c-deep-purple.dark-theme .cap-btn-outline.selected{background:rgba(103,58,183,.8)}.capibara.c-deep-purple.dark-theme .select-container .selected-day,.capibara.c-deep-purple .select-container .selected-day{background:rgba(103,58,183,.3);box-shadow:inset 0 0 10px rgba(103,58,183,.5)}.capibara .c-deep-purple--background{background:#673ab7!important}.capibara .c-deep-purple-d--background{background:#46287d!important}.capibara .c-deep-purple-l--background{background:#916dd1!important}.capibara .c-deep-purple--text{color:#673ab7!important}.capibara .c-deep-purple-d--text{color:#46287d!important}.capibara .c-deep-purple-l--text{color:#916dd1!important}.capibara .detail-day .list-detail .item-detail.c-deep-purple{background:rgba(103,58,183,.2);border:1px solid #673ab7}.capibara .detail-day .list-detail .item-detail.c-deep-purple .left-icon{background:#673ab7}.capibara .detail-day .list-detail .item-detail.c-deep-purple .left-icon.outlined{border:1px solid #673ab7;box-shadow:inset 0 0 0 1px rgba(103,58,183,.7)}.capibara .detail-day .list-detail .item-detail.c-deep-purple .name{color:#673ab7}.capibara .float-box-container .float-box span.data.c-deep-purple{--local-color:#673ab7;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-deep-purple,.capibara .float-box-container .float-box .dot.c-deep-purple,.capibara .float-box-container .float-box .rowdot--row.c-deep-purple .rowdot--dot{--local-color:#673ab7}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-purple.active{background:rgba(103,58,183,.7);border-color:rgba(103,58,183,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-purple.active:hover{background:rgba(103,58,183,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-purple:hover{background:rgba(103,58,183,.2);border-color:rgba(103,58,183,.9)}.capibara .input-box .mini-input-section--icon.c-deep-purple{background:#673ab7}.capibara.c-indigo:not(.dark-theme){scrollbar-color:#57629d transparent}.capibara.c-indigo:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#57629d}.capibara.c-indigo:not(.dark-theme) .header-top{background:#e0e0e0}.capibara.c-indigo:not(.dark-theme) .corner{background:#e0e0e0;border-color:#8591d5}.capibara.c-indigo:not(.dark-theme) .container-tl header{background:#e0e0e0;border-bottom-color:#8591d5}.capibara.c-indigo:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#e0e0e0)!important}.capibara.c-indigo:not(.dark-theme) nav.right{border-color:#8591d5}.capibara.c-indigo.dark-theme .header-top,.capibara.c-indigo.dark-theme nav.right{border-color:#252f69}.capibara.c-indigo.dark-theme .container-tl header,.capibara.c-indigo.dark-theme .corner{border-bottom-color:#252f69}.capibara.c-indigo.dark-theme ::-moz-selection,.capibara.c-indigo ::-moz-selection{background-color:rgba(63,81,181,.2)!important}.capibara.c-indigo.dark-theme ::selection,.capibara.c-indigo ::selection{background-color:rgba(63,81,181,.2)!important}.capibara.c-indigo.dark-theme .progress-bar,.capibara.c-indigo .progress-bar{background-color:rgba(63,81,181,.2)!important}.capibara.c-indigo.dark-theme .progress-bar:after,.capibara.c-indigo.dark-theme .progress-bar:before,.capibara.c-indigo .progress-bar:after,.capibara.c-indigo .progress-bar:before{background-color:#3f51b5!important}.capibara.c-indigo.dark-theme select.tabs-select,.capibara.c-indigo select.tabs-select{background-color:rgba(63,81,181,.7)!important;border-color:#3f51b5!important}.capibara.c-indigo.dark-theme .time,.capibara.c-indigo .time{border-color:rgba(63,81,181,.6)}.capibara.c-indigo.dark-theme .time .symbol,.capibara.c-indigo .time .symbol{color:#3f51b5}.capibara.c-indigo.dark-theme .time input:active,.capibara.c-indigo.dark-theme .time input:focus,.capibara.c-indigo .time input:active,.capibara.c-indigo .time input:focus{border-color:#3f51b5;box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo.dark-theme .input-box,.capibara.c-indigo.dark-theme .input-section select.input-select,.capibara.c-indigo .input-box,.capibara.c-indigo .input-section select.input-select{border-color:rgba(63,81,181,.6)}.capibara.c-indigo.dark-theme .input-section select.input-select:active,.capibara.c-indigo.dark-theme .input-section select.input-select:focus,.capibara.c-indigo .input-section select.input-select:active,.capibara.c-indigo .input-section select.input-select:focus{border-color:#3f51b5;box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo.dark-theme .input-section .nav-input-file,.capibara.c-indigo.dark-theme .input-section input.nav-input,.capibara.c-indigo .input-section .nav-input-file,.capibara.c-indigo .input-section input.nav-input{border-color:rgba(63,81,181,.6)}.capibara.c-indigo.dark-theme .input-section .nav-input-file:active,.capibara.c-indigo.dark-theme .input-section .nav-input-file:focus,.capibara.c-indigo.dark-theme .input-section input.nav-input:active,.capibara.c-indigo.dark-theme .input-section input.nav-input:focus,.capibara.c-indigo .input-section .nav-input-file:active,.capibara.c-indigo .input-section .nav-input-file:focus,.capibara.c-indigo .input-section input.nav-input:active,.capibara.c-indigo .input-section input.nav-input:focus{border-color:#3f51b5;box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-indigo .input-section.msj-input-container textarea.msj{border:2px solid #3f51b5}.capibara.c-indigo.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-indigo.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-indigo .input-section.msj-input-container textarea.msj:active,.capibara.c-indigo .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo .cap-btn-raised,.capibara.c-indigo.dark-theme .cap-btn-raised{border-color:#3f51b5;background:rgba(63,81,181,.8)}.capibara.c-indigo .cap-btn-outline,.capibara.c-indigo.dark-theme .cap-btn-outline{border-color:#3f51b5;color:#3f51b5}.capibara.c-indigo .cap-btn-outline.selected,.capibara.c-indigo.dark-theme .cap-btn-outline.selected{background:rgba(63,81,181,.8)}.capibara.c-indigo.dark-theme .select-container .selected-day,.capibara.c-indigo .select-container .selected-day{background:rgba(63,81,181,.3);box-shadow:inset 0 0 10px rgba(63,81,181,.5)}.capibara .c-indigo--background{background:#3f51b5!important}.capibara .c-indigo-d--background{background:#2b387c!important}.capibara .c-indigo-l--background{background:#7280ce!important}.capibara .c-indigo--text{color:#3f51b5!important}.capibara .c-indigo-d--text{color:#2b387c!important}.capibara .c-indigo-l--text{color:#7280ce!important}.capibara .detail-day .list-detail .item-detail.c-indigo{background:rgba(63,81,181,.2);border:1px solid #3f51b5}.capibara .detail-day .list-detail .item-detail.c-indigo .left-icon{background:#3f51b5}.capibara .detail-day .list-detail .item-detail.c-indigo .left-icon.outlined{border:1px solid #3f51b5;box-shadow:inset 0 0 0 1px rgba(63,81,181,.7)}.capibara .detail-day .list-detail .item-detail.c-indigo .name{color:#3f51b5}.capibara .float-box-container .float-box span.data.c-indigo{--local-color:#3f51b5;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-indigo,.capibara .float-box-container .float-box .dot.c-indigo,.capibara .float-box-container .float-box .rowdot--row.c-indigo .rowdot--dot{--local-color:#3f51b5}.capibara .header-top .tabs-container .tab:not(.disabled).c-indigo.active{background:rgba(63,81,181,.7);border-color:rgba(63,81,181,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-indigo.active:hover{background:rgba(63,81,181,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-indigo:hover{background:rgba(63,81,181,.2);border-color:rgba(63,81,181,.9)}.capibara .input-box .mini-input-section--icon.c-indigo{background:#3f51b5}.capibara.c-blue:not(.dark-theme){scrollbar-color:#3176bb transparent}.capibara.c-blue:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#3176bb}.capibara.c-blue:not(.dark-theme) .header-top{background:#d1dce6}.capibara.c-blue:not(.dark-theme) .corner{background:#d1dce6;border-color:#64a9ed}.capibara.c-blue:not(.dark-theme) .container-tl header{background:#d1dce6;border-bottom-color:#64a9ed}.capibara.c-blue:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#d1dce6)!important}.capibara.c-blue:not(.dark-theme) nav.right{border-color:#64a9ed}.capibara.c-blue.dark-theme .header-top,.capibara.c-blue.dark-theme nav.right{border-color:#0e4377}.capibara.c-blue.dark-theme .container-tl header,.capibara.c-blue.dark-theme .corner{border-bottom-color:#0e4377}.capibara.c-blue.dark-theme ::-moz-selection,.capibara.c-blue ::-moz-selection{background-color:rgba(25,118,210,.2)!important}.capibara.c-blue.dark-theme ::selection,.capibara.c-blue ::selection{background-color:rgba(25,118,210,.2)!important}.capibara.c-blue.dark-theme .progress-bar,.capibara.c-blue .progress-bar{background-color:rgba(25,118,210,.2)!important}.capibara.c-blue.dark-theme .progress-bar:after,.capibara.c-blue.dark-theme .progress-bar:before,.capibara.c-blue .progress-bar:after,.capibara.c-blue .progress-bar:before{background-color:#1976d2!important}.capibara.c-blue.dark-theme select.tabs-select,.capibara.c-blue select.tabs-select{background-color:rgba(25,118,210,.7)!important;border-color:#1976d2!important}.capibara.c-blue.dark-theme .time,.capibara.c-blue .time{border-color:rgba(25,118,210,.6)}.capibara.c-blue.dark-theme .time .symbol,.capibara.c-blue .time .symbol{color:#1976d2}.capibara.c-blue.dark-theme .time input:active,.capibara.c-blue.dark-theme .time input:focus,.capibara.c-blue .time input:active,.capibara.c-blue .time input:focus{border-color:#1976d2;box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue.dark-theme .input-box,.capibara.c-blue.dark-theme .input-section select.input-select,.capibara.c-blue .input-box,.capibara.c-blue .input-section select.input-select{border-color:rgba(25,118,210,.6)}.capibara.c-blue.dark-theme .input-section select.input-select:active,.capibara.c-blue.dark-theme .input-section select.input-select:focus,.capibara.c-blue .input-section select.input-select:active,.capibara.c-blue .input-section select.input-select:focus{border-color:#1976d2;box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue.dark-theme .input-section .nav-input-file,.capibara.c-blue.dark-theme .input-section input.nav-input,.capibara.c-blue .input-section .nav-input-file,.capibara.c-blue .input-section input.nav-input{border-color:rgba(25,118,210,.6)}.capibara.c-blue.dark-theme .input-section .nav-input-file:active,.capibara.c-blue.dark-theme .input-section .nav-input-file:focus,.capibara.c-blue.dark-theme .input-section input.nav-input:active,.capibara.c-blue.dark-theme .input-section input.nav-input:focus,.capibara.c-blue .input-section .nav-input-file:active,.capibara.c-blue .input-section .nav-input-file:focus,.capibara.c-blue .input-section input.nav-input:active,.capibara.c-blue .input-section input.nav-input:focus{border-color:#1976d2;box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-blue .input-section.msj-input-container textarea.msj{border:2px solid #1976d2}.capibara.c-blue.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-blue.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-blue .input-section.msj-input-container textarea.msj:active,.capibara.c-blue .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue .cap-btn-raised,.capibara.c-blue.dark-theme .cap-btn-raised{border-color:#1976d2;background:rgba(25,118,210,.8)}.capibara.c-blue .cap-btn-outline,.capibara.c-blue.dark-theme .cap-btn-outline{border-color:#1976d2;color:#1976d2}.capibara.c-blue .cap-btn-outline.selected,.capibara.c-blue.dark-theme .cap-btn-outline.selected{background:rgba(25,118,210,.8)}.capibara.c-blue.dark-theme .select-container .selected-day,.capibara.c-blue .select-container .selected-day{background:rgba(25,118,210,.3);box-shadow:inset 0 0 10px rgba(25,118,210,.5)}.capibara .c-blue--background{background:#1976d2!important}.capibara .c-blue-d--background{background:#11508e!important}.capibara .c-blue-l--background{background:#4e9cea!important}.capibara .c-blue--text{color:#1976d2!important}.capibara .c-blue-d--text{color:#11508e!important}.capibara .c-blue-l--text{color:#4e9cea!important}.capibara .detail-day .list-detail .item-detail.c-blue{background:rgba(25,118,210,.2);border:1px solid #1976d2}.capibara .detail-day .list-detail .item-detail.c-blue .left-icon{background:#1976d2}.capibara .detail-day .list-detail .item-detail.c-blue .left-icon.outlined{border:1px solid #1976d2;box-shadow:inset 0 0 0 1px rgba(25,118,210,.7)}.capibara .detail-day .list-detail .item-detail.c-blue .name{color:#1976d2}.capibara .float-box-container .float-box span.data.c-blue{--local-color:#1976d2;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-blue,.capibara .float-box-container .float-box .dot.c-blue,.capibara .float-box-container .float-box .rowdot--row.c-blue .rowdot--dot{--local-color:#1976d2}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue.active{background:rgba(25,118,210,.7);border-color:rgba(25,118,210,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue.active:hover{background:rgba(25,118,210,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue:hover{background:rgba(25,118,210,.2);border-color:rgba(25,118,210,.9)}.capibara .input-box .mini-input-section--icon.c-blue{background:#1976d2}.capibara.c-light-blue:not(.dark-theme){scrollbar-color:#1ca0db transparent}.capibara.c-light-blue:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#1ca0db}.capibara.c-light-blue:not(.dark-theme) .header-top{background:#d3e7f0}.capibara.c-light-blue:not(.dark-theme) .corner{background:#d3e7f0;border-color:#60ccfd}.capibara.c-light-blue:not(.dark-theme) .container-tl header{background:#d3e7f0;border-bottom-color:#60ccfd}.capibara.c-light-blue:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#d3e7f0)!important}.capibara.c-light-blue:not(.dark-theme) nav.right{border-color:#60ccfd}.capibara.c-light-blue.dark-theme .header-top,.capibara.c-light-blue.dark-theme nav.right{border-color:#02638f}.capibara.c-light-blue.dark-theme .container-tl header,.capibara.c-light-blue.dark-theme .corner{border-bottom-color:#02638f}.capibara.c-light-blue.dark-theme ::-moz-selection,.capibara.c-light-blue ::-moz-selection{background-color:rgba(3,169,244,.2)!important}.capibara.c-light-blue.dark-theme ::selection,.capibara.c-light-blue ::selection{background-color:rgba(3,169,244,.2)!important}.capibara.c-light-blue.dark-theme .progress-bar,.capibara.c-light-blue .progress-bar{background-color:rgba(3,169,244,.2)!important}.capibara.c-light-blue.dark-theme .progress-bar:after,.capibara.c-light-blue.dark-theme .progress-bar:before,.capibara.c-light-blue .progress-bar:after,.capibara.c-light-blue .progress-bar:before{background-color:#03a9f4!important}.capibara.c-light-blue.dark-theme select.tabs-select,.capibara.c-light-blue select.tabs-select{background-color:rgba(3,169,244,.7)!important;border-color:#03a9f4!important}.capibara.c-light-blue.dark-theme .time,.capibara.c-light-blue .time{border-color:rgba(3,169,244,.6)}.capibara.c-light-blue.dark-theme .time .symbol,.capibara.c-light-blue .time .symbol{color:#03a9f4}.capibara.c-light-blue.dark-theme .time input:active,.capibara.c-light-blue.dark-theme .time input:focus,.capibara.c-light-blue .time input:active,.capibara.c-light-blue .time input:focus{border-color:#03a9f4;box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue.dark-theme .input-box,.capibara.c-light-blue.dark-theme .input-section select.input-select,.capibara.c-light-blue .input-box,.capibara.c-light-blue .input-section select.input-select{border-color:rgba(3,169,244,.6)}.capibara.c-light-blue.dark-theme .input-section select.input-select:active,.capibara.c-light-blue.dark-theme .input-section select.input-select:focus,.capibara.c-light-blue .input-section select.input-select:active,.capibara.c-light-blue .input-section select.input-select:focus{border-color:#03a9f4;box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue.dark-theme .input-section .nav-input-file,.capibara.c-light-blue.dark-theme .input-section input.nav-input,.capibara.c-light-blue .input-section .nav-input-file,.capibara.c-light-blue .input-section input.nav-input{border-color:rgba(3,169,244,.6)}.capibara.c-light-blue.dark-theme .input-section .nav-input-file:active,.capibara.c-light-blue.dark-theme .input-section .nav-input-file:focus,.capibara.c-light-blue.dark-theme .input-section input.nav-input:active,.capibara.c-light-blue.dark-theme .input-section input.nav-input:focus,.capibara.c-light-blue .input-section .nav-input-file:active,.capibara.c-light-blue .input-section .nav-input-file:focus,.capibara.c-light-blue .input-section input.nav-input:active,.capibara.c-light-blue .input-section input.nav-input:focus{border-color:#03a9f4;box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-light-blue .input-section.msj-input-container textarea.msj{border:2px solid #03a9f4}.capibara.c-light-blue.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-light-blue.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-light-blue .input-section.msj-input-container textarea.msj:active,.capibara.c-light-blue .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue .cap-btn-raised,.capibara.c-light-blue.dark-theme .cap-btn-raised{border-color:#03a9f4;background:rgba(3,169,244,.8)}.capibara.c-light-blue .cap-btn-outline,.capibara.c-light-blue.dark-theme .cap-btn-outline{border-color:#03a9f4;color:#03a9f4}.capibara.c-light-blue .cap-btn-outline.selected,.capibara.c-light-blue.dark-theme .cap-btn-outline.selected{background:rgba(3,169,244,.8)}.capibara.c-light-blue.dark-theme .select-container .selected-day,.capibara.c-light-blue .select-container .selected-day{background:rgba(3,169,244,.3);box-shadow:inset 0 0 10px rgba(3,169,244,.5)}.capibara .c-light-blue--background{background:#03a9f4!important}.capibara .c-light-blue-d--background{background:#0275a8!important}.capibara .c-light-blue-l--background{background:#47c4fd!important}.capibara .c-light-blue--text{color:#03a9f4!important}.capibara .c-light-blue-d--text{color:#0275a8!important}.capibara .c-light-blue-l--text{color:#47c4fd!important}.capibara .detail-day .list-detail .item-detail.c-light-blue{background:rgba(3,169,244,.2);border:1px solid #03a9f4}.capibara .detail-day .list-detail .item-detail.c-light-blue .left-icon{background:#03a9f4}.capibara .detail-day .list-detail .item-detail.c-light-blue .left-icon.outlined{border:1px solid #03a9f4;box-shadow:inset 0 0 0 1px rgba(3,169,244,.7)}.capibara .detail-day .list-detail .item-detail.c-light-blue .name{color:#03a9f4}.capibara .float-box-container .float-box span.data.c-light-blue{--local-color:#03a9f4;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-light-blue,.capibara .float-box-container .float-box .dot.c-light-blue,.capibara .float-box-container .float-box .rowdot--row.c-light-blue .rowdot--dot{--local-color:#03a9f4}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-blue.active{background:rgba(3,169,244,.7);border-color:rgba(3,169,244,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-blue.active:hover{background:rgba(3,169,244,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-blue:hover{background:rgba(3,169,244,.2);border-color:rgba(3,169,244,.9)}.capibara .input-box .mini-input-section--icon.c-light-blue{background:#03a9f4}.capibara.c-cyan:not(.dark-theme){scrollbar-color:#15acbf transparent}.capibara.c-cyan:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#15acbf}.capibara.c-cyan:not(.dark-theme) .header-top{background:#b9e2e8}.capibara.c-cyan:not(.dark-theme) .corner{background:#b9e2e8;border-color:#3be9ff}.capibara.c-cyan:not(.dark-theme) .container-tl header{background:#b9e2e8;border-bottom-color:#3be9ff}.capibara.c-cyan:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#b9e2e8)!important}.capibara.c-cyan:not(.dark-theme) nav.right{border-color:#3be9ff}.capibara.c-cyan.dark-theme .header-top,.capibara.c-cyan.dark-theme nav.right{border-color:#00626e}.capibara.c-cyan.dark-theme .container-tl header,.capibara.c-cyan.dark-theme .corner{border-bottom-color:#00626e}.capibara.c-cyan.dark-theme ::-moz-selection,.capibara.c-cyan ::-moz-selection{background-color:rgba(0,188,212,.2)!important}.capibara.c-cyan.dark-theme ::selection,.capibara.c-cyan ::selection{background-color:rgba(0,188,212,.2)!important}.capibara.c-cyan.dark-theme .progress-bar,.capibara.c-cyan .progress-bar{background-color:rgba(0,188,212,.2)!important}.capibara.c-cyan.dark-theme .progress-bar:after,.capibara.c-cyan.dark-theme .progress-bar:before,.capibara.c-cyan .progress-bar:after,.capibara.c-cyan .progress-bar:before{background-color:#00bcd4!important}.capibara.c-cyan.dark-theme select.tabs-select,.capibara.c-cyan select.tabs-select{background-color:rgba(0,188,212,.7)!important;border-color:#00bcd4!important}.capibara.c-cyan.dark-theme .time,.capibara.c-cyan .time{border-color:rgba(0,188,212,.6)}.capibara.c-cyan.dark-theme .time .symbol,.capibara.c-cyan .time .symbol{color:#00bcd4}.capibara.c-cyan.dark-theme .time input:active,.capibara.c-cyan.dark-theme .time input:focus,.capibara.c-cyan .time input:active,.capibara.c-cyan .time input:focus{border-color:#00bcd4;box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan.dark-theme .input-box,.capibara.c-cyan.dark-theme .input-section select.input-select,.capibara.c-cyan .input-box,.capibara.c-cyan .input-section select.input-select{border-color:rgba(0,188,212,.6)}.capibara.c-cyan.dark-theme .input-section select.input-select:active,.capibara.c-cyan.dark-theme .input-section select.input-select:focus,.capibara.c-cyan .input-section select.input-select:active,.capibara.c-cyan .input-section select.input-select:focus{border-color:#00bcd4;box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan.dark-theme .input-section .nav-input-file,.capibara.c-cyan.dark-theme .input-section input.nav-input,.capibara.c-cyan .input-section .nav-input-file,.capibara.c-cyan .input-section input.nav-input{border-color:rgba(0,188,212,.6)}.capibara.c-cyan.dark-theme .input-section .nav-input-file:active,.capibara.c-cyan.dark-theme .input-section .nav-input-file:focus,.capibara.c-cyan.dark-theme .input-section input.nav-input:active,.capibara.c-cyan.dark-theme .input-section input.nav-input:focus,.capibara.c-cyan .input-section .nav-input-file:active,.capibara.c-cyan .input-section .nav-input-file:focus,.capibara.c-cyan .input-section input.nav-input:active,.capibara.c-cyan .input-section input.nav-input:focus{border-color:#00bcd4;box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-cyan .input-section.msj-input-container textarea.msj{border:2px solid #00bcd4}.capibara.c-cyan.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-cyan.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-cyan .input-section.msj-input-container textarea.msj:active,.capibara.c-cyan .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan .cap-btn-raised,.capibara.c-cyan.dark-theme .cap-btn-raised{border-color:#00bcd4;background:rgba(0,188,212,.8)}.capibara.c-cyan .cap-btn-outline,.capibara.c-cyan.dark-theme .cap-btn-outline{border-color:#00bcd4;color:#00bcd4}.capibara.c-cyan .cap-btn-outline.selected,.capibara.c-cyan.dark-theme .cap-btn-outline.selected{background:rgba(0,188,212,.8)}.capibara.c-cyan.dark-theme .select-container .selected-day,.capibara.c-cyan .select-container .selected-day{background:rgba(0,188,212,.3);box-shadow:inset 0 0 10px rgba(0,188,212,.5)}.capibara .c-cyan--background{background:#00bcd4!important}.capibara .c-cyan-d--background{background:#007888!important}.capibara .c-cyan-l--background{background:#22e6ff!important}.capibara .c-cyan--text{color:#00bcd4!important}.capibara .c-cyan-d--text{color:#007888!important}.capibara .c-cyan-l--text{color:#22e6ff!important}.capibara .detail-day .list-detail .item-detail.c-cyan{background:rgba(0,188,212,.2);border:1px solid #00bcd4}.capibara .detail-day .list-detail .item-detail.c-cyan .left-icon{background:#00bcd4}.capibara .detail-day .list-detail .item-detail.c-cyan .left-icon.outlined{border:1px solid #00bcd4;box-shadow:inset 0 0 0 1px rgba(0,188,212,.7)}.capibara .detail-day .list-detail .item-detail.c-cyan .name{color:#00bcd4}.capibara .float-box-container .float-box span.data.c-cyan{--local-color:#00bcd4;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-cyan,.capibara .float-box-container .float-box .dot.c-cyan,.capibara .float-box-container .float-box .rowdot--row.c-cyan .rowdot--dot{--local-color:#00bcd4}.capibara .header-top .tabs-container .tab:not(.disabled).c-cyan.active{background:rgba(0,188,212,.7);border-color:rgba(0,188,212,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-cyan.active:hover{background:rgba(0,188,212,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-cyan:hover{background:rgba(0,188,212,.2);border-color:rgba(0,188,212,.9)}.capibara .input-box .mini-input-section--icon.c-cyan{background:#00bcd4}.capibara.c-teal:not(.dark-theme){scrollbar-color:#0f877c transparent}.capibara.c-teal:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#0f877c}.capibara.c-teal:not(.dark-theme) .header-top{background:#8ad8d1}.capibara.c-teal:not(.dark-theme) .corner{background:#8ad8d1;border-color:#00fce4}.capibara.c-teal:not(.dark-theme) .container-tl header{background:#8ad8d1;border-bottom-color:#00fce4}.capibara.c-teal:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#8ad8d1)!important}.capibara.c-teal:not(.dark-theme) nav.right{border-color:#00fce4}.capibara.c-teal.dark-theme .header-top,.capibara.c-teal.dark-theme nav.right{border-color:#00302c}.capibara.c-teal.dark-theme .container-tl header,.capibara.c-teal.dark-theme .corner{border-bottom-color:#00302c}.capibara.c-teal.dark-theme ::-moz-selection,.capibara.c-teal ::-moz-selection{background-color:rgba(0,150,136,.2)!important}.capibara.c-teal.dark-theme ::selection,.capibara.c-teal ::selection{background-color:rgba(0,150,136,.2)!important}.capibara.c-teal.dark-theme .progress-bar,.capibara.c-teal .progress-bar{background-color:rgba(0,150,136,.2)!important}.capibara.c-teal.dark-theme .progress-bar:after,.capibara.c-teal.dark-theme .progress-bar:before,.capibara.c-teal .progress-bar:after,.capibara.c-teal .progress-bar:before{background-color:#009688!important}.capibara.c-teal.dark-theme select.tabs-select,.capibara.c-teal select.tabs-select{background-color:rgba(0,150,136,.7)!important;border-color:#009688!important}.capibara.c-teal.dark-theme .time,.capibara.c-teal .time{border-color:rgba(0,150,136,.6)}.capibara.c-teal.dark-theme .time .symbol,.capibara.c-teal .time .symbol{color:#009688}.capibara.c-teal.dark-theme .time input:active,.capibara.c-teal.dark-theme .time input:focus,.capibara.c-teal .time input:active,.capibara.c-teal .time input:focus{border-color:#009688;box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal.dark-theme .input-box,.capibara.c-teal.dark-theme .input-section select.input-select,.capibara.c-teal .input-box,.capibara.c-teal .input-section select.input-select{border-color:rgba(0,150,136,.6)}.capibara.c-teal.dark-theme .input-section select.input-select:active,.capibara.c-teal.dark-theme .input-section select.input-select:focus,.capibara.c-teal .input-section select.input-select:active,.capibara.c-teal .input-section select.input-select:focus{border-color:#009688;box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal.dark-theme .input-section .nav-input-file,.capibara.c-teal.dark-theme .input-section input.nav-input,.capibara.c-teal .input-section .nav-input-file,.capibara.c-teal .input-section input.nav-input{border-color:rgba(0,150,136,.6)}.capibara.c-teal.dark-theme .input-section .nav-input-file:active,.capibara.c-teal.dark-theme .input-section .nav-input-file:focus,.capibara.c-teal.dark-theme .input-section input.nav-input:active,.capibara.c-teal.dark-theme .input-section input.nav-input:focus,.capibara.c-teal .input-section .nav-input-file:active,.capibara.c-teal .input-section .nav-input-file:focus,.capibara.c-teal .input-section input.nav-input:active,.capibara.c-teal .input-section input.nav-input:focus{border-color:#009688;box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-teal .input-section.msj-input-container textarea.msj{border:2px solid #009688}.capibara.c-teal.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-teal.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-teal .input-section.msj-input-container textarea.msj:active,.capibara.c-teal .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal .cap-btn-raised,.capibara.c-teal.dark-theme .cap-btn-raised{border-color:#009688;background:rgba(0,150,136,.8)}.capibara.c-teal .cap-btn-outline,.capibara.c-teal.dark-theme .cap-btn-outline{border-color:#009688;color:#009688}.capibara.c-teal .cap-btn-outline.selected,.capibara.c-teal.dark-theme .cap-btn-outline.selected{background:rgba(0,150,136,.8)}.capibara.c-teal.dark-theme .select-container .selected-day,.capibara.c-teal .select-container .selected-day{background:rgba(0,150,136,.3);box-shadow:inset 0 0 10px rgba(0,150,136,.5)}.capibara .c-teal--background{background:#009688!important}.capibara .c-teal-d--background{background:#004a43!important}.capibara .c-teal-l--background{background:#00e3cd!important}.capibara .c-teal--text{color:#009688!important}.capibara .c-teal-d--text{color:#004a43!important}.capibara .c-teal-l--text{color:#00e3cd!important}.capibara .detail-day .list-detail .item-detail.c-teal{background:rgba(0,150,136,.2);border:1px solid #009688}.capibara .detail-day .list-detail .item-detail.c-teal .left-icon{background:#009688}.capibara .detail-day .list-detail .item-detail.c-teal .left-icon.outlined{border:1px solid #009688;box-shadow:inset 0 0 0 1px rgba(0,150,136,.7)}.capibara .detail-day .list-detail .item-detail.c-teal .name{color:#009688}.capibara .float-box-container .float-box span.data.c-teal{--local-color:#009688;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-teal,.capibara .float-box-container .float-box .dot.c-teal,.capibara .float-box-container .float-box .rowdot--row.c-teal .rowdot--dot{--local-color:#009688}.capibara .header-top .tabs-container .tab:not(.disabled).c-teal.active{background:rgba(0,150,136,.7);border-color:rgba(0,150,136,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-teal.active:hover{background:rgba(0,150,136,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-teal:hover{background:rgba(0,150,136,.2);border-color:rgba(0,150,136,.9)}.capibara .input-box .mini-input-section--icon.c-teal{background:#009688}.capibara.c-green:not(.dark-theme){scrollbar-color:#3f6c41 transparent}.capibara.c-green:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#3f6c41}.capibara.c-green:not(.dark-theme) .header-top{background:#bcbcbc}.capibara.c-green:not(.dark-theme) .corner{background:#bcbcbc;border-color:#52bf57}.capibara.c-green:not(.dark-theme) .container-tl header{background:#bcbcbc;border-bottom-color:#52bf57}.capibara.c-green:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#bcbcbc)!important}.capibara.c-green:not(.dark-theme) nav.right{border-color:#52bf57}.capibara.c-green.dark-theme .header-top,.capibara.c-green.dark-theme nav.right{border-color:#133214}.capibara.c-green.dark-theme .container-tl header,.capibara.c-green.dark-theme .corner{border-bottom-color:#133214}.capibara.c-green.dark-theme ::-moz-selection,.capibara.c-green ::-moz-selection{background-color:rgba(46,125,50,.2)!important}.capibara.c-green.dark-theme ::selection,.capibara.c-green ::selection{background-color:rgba(46,125,50,.2)!important}.capibara.c-green.dark-theme .progress-bar,.capibara.c-green .progress-bar{background-color:rgba(46,125,50,.2)!important}.capibara.c-green.dark-theme .progress-bar:after,.capibara.c-green.dark-theme .progress-bar:before,.capibara.c-green .progress-bar:after,.capibara.c-green .progress-bar:before{background-color:#2e7d32!important}.capibara.c-green.dark-theme select.tabs-select,.capibara.c-green select.tabs-select{background-color:rgba(46,125,50,.7)!important;border-color:#2e7d32!important}.capibara.c-green.dark-theme .time,.capibara.c-green .time{border-color:rgba(46,125,50,.6)}.capibara.c-green.dark-theme .time .symbol,.capibara.c-green .time .symbol{color:#2e7d32}.capibara.c-green.dark-theme .time input:active,.capibara.c-green.dark-theme .time input:focus,.capibara.c-green .time input:active,.capibara.c-green .time input:focus{border-color:#2e7d32;box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green.dark-theme .input-box,.capibara.c-green.dark-theme .input-section select.input-select,.capibara.c-green .input-box,.capibara.c-green .input-section select.input-select{border-color:rgba(46,125,50,.6)}.capibara.c-green.dark-theme .input-section select.input-select:active,.capibara.c-green.dark-theme .input-section select.input-select:focus,.capibara.c-green .input-section select.input-select:active,.capibara.c-green .input-section select.input-select:focus{border-color:#2e7d32;box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green.dark-theme .input-section .nav-input-file,.capibara.c-green.dark-theme .input-section input.nav-input,.capibara.c-green .input-section .nav-input-file,.capibara.c-green .input-section input.nav-input{border-color:rgba(46,125,50,.6)}.capibara.c-green.dark-theme .input-section .nav-input-file:active,.capibara.c-green.dark-theme .input-section .nav-input-file:focus,.capibara.c-green.dark-theme .input-section input.nav-input:active,.capibara.c-green.dark-theme .input-section input.nav-input:focus,.capibara.c-green .input-section .nav-input-file:active,.capibara.c-green .input-section .nav-input-file:focus,.capibara.c-green .input-section input.nav-input:active,.capibara.c-green .input-section input.nav-input:focus{border-color:#2e7d32;box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-green .input-section.msj-input-container textarea.msj{border:2px solid #2e7d32}.capibara.c-green.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-green.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-green .input-section.msj-input-container textarea.msj:active,.capibara.c-green .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green .cap-btn-raised,.capibara.c-green.dark-theme .cap-btn-raised{border-color:#2e7d32;background:rgba(46,125,50,.8)}.capibara.c-green .cap-btn-outline,.capibara.c-green.dark-theme .cap-btn-outline{border-color:#2e7d32;color:#2e7d32}.capibara.c-green .cap-btn-outline.selected,.capibara.c-green.dark-theme .cap-btn-outline.selected{background:rgba(46,125,50,.8)}.capibara.c-green.dark-theme .select-container .selected-day,.capibara.c-green .select-container .selected-day{background:rgba(46,125,50,.3);box-shadow:inset 0 0 10px rgba(46,125,50,.5)}.capibara .c-green--background{background:#2e7d32!important}.capibara .c-green-d--background{background:#19451c!important}.capibara .c-green-l--background{background:#43b548!important}.capibara .c-green--text{color:#2e7d32!important}.capibara .c-green-d--text{color:#19451c!important}.capibara .c-green-l--text{color:#43b548!important}.capibara .detail-day .list-detail .item-detail.c-green{background:rgba(46,125,50,.2);border:1px solid #2e7d32}.capibara .detail-day .list-detail .item-detail.c-green .left-icon{background:#2e7d32}.capibara .detail-day .list-detail .item-detail.c-green .left-icon.outlined{border:1px solid #2e7d32;box-shadow:inset 0 0 0 1px rgba(46,125,50,.7)}.capibara .detail-day .list-detail .item-detail.c-green .name{color:#2e7d32}.capibara .float-box-container .float-box span.data.c-green{--local-color:#2e7d32;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-green,.capibara .float-box-container .float-box .dot.c-green,.capibara .float-box-container .float-box .rowdot--row.c-green .rowdot--dot{--local-color:#2e7d32}.capibara .header-top .tabs-container .tab:not(.disabled).c-green.active{background:rgba(46,125,50,.7);border-color:rgba(46,125,50,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-green.active:hover{background:rgba(46,125,50,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-green:hover{background:rgba(46,125,50,.2);border-color:rgba(46,125,50,.9)}.capibara .input-box .mini-input-section--icon.c-green{background:#2e7d32}.capibara.c-light-green:not(.dark-theme){scrollbar-color:#89ab62 transparent}.capibara.c-light-green:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#89ab62}.capibara.c-light-green:not(.dark-theme) .header-top{background:#ededec}.capibara.c-light-green:not(.dark-theme) .corner{background:#ededec;border-color:#bcdc97}.capibara.c-light-green:not(.dark-theme) .container-tl header{background:#ededec;border-bottom-color:#bcdc97}.capibara.c-light-green:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#ededec)!important}.capibara.c-light-green:not(.dark-theme) nav.right{border-color:#bcdc97}.capibara.c-light-green.dark-theme .header-top,.capibara.c-light-green.dark-theme nav.right{border-color:#577d2a}.capibara.c-light-green.dark-theme .container-tl header,.capibara.c-light-green.dark-theme .corner{border-bottom-color:#577d2a}.capibara.c-light-green.dark-theme ::-moz-selection,.capibara.c-light-green ::-moz-selection{background-color:rgba(139,195,74,.2)!important}.capibara.c-light-green.dark-theme ::selection,.capibara.c-light-green ::selection{background-color:rgba(139,195,74,.2)!important}.capibara.c-light-green.dark-theme .progress-bar,.capibara.c-light-green .progress-bar{background-color:rgba(139,195,74,.2)!important}.capibara.c-light-green.dark-theme .progress-bar:after,.capibara.c-light-green.dark-theme .progress-bar:before,.capibara.c-light-green .progress-bar:after,.capibara.c-light-green .progress-bar:before{background-color:#8bc34a!important}.capibara.c-light-green.dark-theme select.tabs-select,.capibara.c-light-green select.tabs-select{background-color:rgba(139,195,74,.7)!important;border-color:#8bc34a!important}.capibara.c-light-green.dark-theme .time,.capibara.c-light-green .time{border-color:rgba(139,195,74,.6)}.capibara.c-light-green.dark-theme .time .symbol,.capibara.c-light-green .time .symbol{color:#8bc34a}.capibara.c-light-green.dark-theme .time input:active,.capibara.c-light-green.dark-theme .time input:focus,.capibara.c-light-green .time input:active,.capibara.c-light-green .time input:focus{border-color:#8bc34a;box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green.dark-theme .input-box,.capibara.c-light-green.dark-theme .input-section select.input-select,.capibara.c-light-green .input-box,.capibara.c-light-green .input-section select.input-select{border-color:rgba(139,195,74,.6)}.capibara.c-light-green.dark-theme .input-section select.input-select:active,.capibara.c-light-green.dark-theme .input-section select.input-select:focus,.capibara.c-light-green .input-section select.input-select:active,.capibara.c-light-green .input-section select.input-select:focus{border-color:#8bc34a;box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green.dark-theme .input-section .nav-input-file,.capibara.c-light-green.dark-theme .input-section input.nav-input,.capibara.c-light-green .input-section .nav-input-file,.capibara.c-light-green .input-section input.nav-input{border-color:rgba(139,195,74,.6)}.capibara.c-light-green.dark-theme .input-section .nav-input-file:active,.capibara.c-light-green.dark-theme .input-section .nav-input-file:focus,.capibara.c-light-green.dark-theme .input-section input.nav-input:active,.capibara.c-light-green.dark-theme .input-section input.nav-input:focus,.capibara.c-light-green .input-section .nav-input-file:active,.capibara.c-light-green .input-section .nav-input-file:focus,.capibara.c-light-green .input-section input.nav-input:active,.capibara.c-light-green .input-section input.nav-input:focus{border-color:#8bc34a;box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-light-green .input-section.msj-input-container textarea.msj{border:2px solid #8bc34a}.capibara.c-light-green.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-light-green.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-light-green .input-section.msj-input-container textarea.msj:active,.capibara.c-light-green .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green .cap-btn-raised,.capibara.c-light-green.dark-theme .cap-btn-raised{border-color:#8bc34a;background:rgba(139,195,74,.8)}.capibara.c-light-green .cap-btn-outline,.capibara.c-light-green.dark-theme .cap-btn-outline{border-color:#8bc34a;color:#8bc34a}.capibara.c-light-green .cap-btn-outline.selected,.capibara.c-light-green.dark-theme .cap-btn-outline.selected{background:rgba(139,195,74,.8)}.capibara.c-light-green.dark-theme .select-container .selected-day,.capibara.c-light-green .select-container .selected-day{background:rgba(139,195,74,.3);box-shadow:inset 0 0 10px rgba(139,195,74,.5)}.capibara .c-light-green--background{background:#8bc34a!important}.capibara .c-light-green-d--background{background:#649130!important}.capibara .c-light-green-l--background{background:#b0d683!important}.capibara .c-light-green--text{color:#8bc34a!important}.capibara .c-light-green-d--text{color:#649130!important}.capibara .c-light-green-l--text{color:#b0d683!important}.capibara .detail-day .list-detail .item-detail.c-light-green{background:rgba(139,195,74,.2);border:1px solid #8bc34a}.capibara .detail-day .list-detail .item-detail.c-light-green .left-icon{background:#8bc34a}.capibara .detail-day .list-detail .item-detail.c-light-green .left-icon.outlined{border:1px solid #8bc34a;box-shadow:inset 0 0 0 1px rgba(139,195,74,.7)}.capibara .detail-day .list-detail .item-detail.c-light-green .name{color:#8bc34a}.capibara .float-box-container .float-box span.data.c-light-green{--local-color:#8bc34a;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-light-green,.capibara .float-box-container .float-box .dot.c-light-green,.capibara .float-box-container .float-box .rowdot--row.c-light-green .rowdot--dot{--local-color:#8bc34a}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-green.active{background:rgba(139,195,74,.7);border-color:rgba(139,195,74,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-green.active:hover{background:rgba(139,195,74,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-green:hover{background:rgba(139,195,74,.2);border-color:rgba(139,195,74,.9)}.capibara .input-box .mini-input-section--icon.c-light-green{background:#8bc34a}.capibara.c-lime:not(.dark-theme){scrollbar-color:#bac550 transparent}.capibara.c-lime:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#bac550}.capibara.c-lime:not(.dark-theme) .header-top{background:#f3f3ee}.capibara.c-lime:not(.dark-theme) .corner{background:#f3f3ee;border-color:#e3eb90}.capibara.c-lime:not(.dark-theme) .container-tl header{background:#f3f3ee;border-bottom-color:#e3eb90}.capibara.c-lime:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f3f3ee)!important}.capibara.c-lime:not(.dark-theme) nav.right{border-color:#e3eb90}.capibara.c-lime.dark-theme .header-top,.capibara.c-lime.dark-theme nav.right{border-color:#89951a}.capibara.c-lime.dark-theme .container-tl header,.capibara.c-lime.dark-theme .corner{border-bottom-color:#89951a}.capibara.c-lime.dark-theme ::-moz-selection,.capibara.c-lime ::-moz-selection{background-color:rgba(205,220,57,.2)!important}.capibara.c-lime.dark-theme ::selection,.capibara.c-lime ::selection{background-color:rgba(205,220,57,.2)!important}.capibara.c-lime.dark-theme .progress-bar,.capibara.c-lime .progress-bar{background-color:rgba(205,220,57,.2)!important}.capibara.c-lime.dark-theme .progress-bar:after,.capibara.c-lime.dark-theme .progress-bar:before,.capibara.c-lime .progress-bar:after,.capibara.c-lime .progress-bar:before{background-color:#cddc39!important}.capibara.c-lime.dark-theme select.tabs-select,.capibara.c-lime select.tabs-select{background-color:rgba(205,220,57,.7)!important;border-color:#cddc39!important}.capibara.c-lime.dark-theme .time,.capibara.c-lime .time{border-color:rgba(205,220,57,.6)}.capibara.c-lime.dark-theme .time .symbol,.capibara.c-lime .time .symbol{color:#cddc39}.capibara.c-lime.dark-theme .time input:active,.capibara.c-lime.dark-theme .time input:focus,.capibara.c-lime .time input:active,.capibara.c-lime .time input:focus{border-color:#cddc39;box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime.dark-theme .input-box,.capibara.c-lime.dark-theme .input-section select.input-select,.capibara.c-lime .input-box,.capibara.c-lime .input-section select.input-select{border-color:rgba(205,220,57,.6)}.capibara.c-lime.dark-theme .input-section select.input-select:active,.capibara.c-lime.dark-theme .input-section select.input-select:focus,.capibara.c-lime .input-section select.input-select:active,.capibara.c-lime .input-section select.input-select:focus{border-color:#cddc39;box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime.dark-theme .input-section .nav-input-file,.capibara.c-lime.dark-theme .input-section input.nav-input,.capibara.c-lime .input-section .nav-input-file,.capibara.c-lime .input-section input.nav-input{border-color:rgba(205,220,57,.6)}.capibara.c-lime.dark-theme .input-section .nav-input-file:active,.capibara.c-lime.dark-theme .input-section .nav-input-file:focus,.capibara.c-lime.dark-theme .input-section input.nav-input:active,.capibara.c-lime.dark-theme .input-section input.nav-input:focus,.capibara.c-lime .input-section .nav-input-file:active,.capibara.c-lime .input-section .nav-input-file:focus,.capibara.c-lime .input-section input.nav-input:active,.capibara.c-lime .input-section input.nav-input:focus{border-color:#cddc39;box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-lime .input-section.msj-input-container textarea.msj{border:2px solid #cddc39}.capibara.c-lime.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-lime.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-lime .input-section.msj-input-container textarea.msj:active,.capibara.c-lime .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime .cap-btn-raised,.capibara.c-lime.dark-theme .cap-btn-raised{border-color:#cddc39;background:rgba(205,220,57,.8)}.capibara.c-lime .cap-btn-outline,.capibara.c-lime.dark-theme .cap-btn-outline{border-color:#cddc39;color:#cddc39}.capibara.c-lime .cap-btn-outline.selected,.capibara.c-lime.dark-theme .cap-btn-outline.selected{background:rgba(205,220,57,.8)}.capibara.c-lime.dark-theme .select-container .selected-day,.capibara.c-lime .select-container .selected-day{background:rgba(205,220,57,.3);box-shadow:inset 0 0 10px rgba(205,220,57,.5)}.capibara .c-lime--background{background:#cddc39!important}.capibara .c-lime-d--background{background:#9daa1e!important}.capibara .c-lime-l--background{background:#dde77a!important}.capibara .c-lime--text{color:#cddc39!important}.capibara .c-lime-d--text{color:#9daa1e!important}.capibara .c-lime-l--text{color:#dde77a!important}.capibara .detail-day .list-detail .item-detail.c-lime{background:rgba(205,220,57,.2);border:1px solid #cddc39}.capibara .detail-day .list-detail .item-detail.c-lime .left-icon{background:#cddc39}.capibara .detail-day .list-detail .item-detail.c-lime .left-icon.outlined{border:1px solid #cddc39;box-shadow:inset 0 0 0 1px rgba(205,220,57,.7)}.capibara .detail-day .list-detail .item-detail.c-lime .name{color:#cddc39}.capibara .float-box-container .float-box span.data.c-lime{--local-color:#cddc39;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-lime,.capibara .float-box-container .float-box .dot.c-lime,.capibara .float-box-container .float-box .rowdot--row.c-lime .rowdot--dot{--local-color:#cddc39}.capibara .header-top .tabs-container .tab:not(.disabled).c-lime.active{background:rgba(205,220,57,.7);border-color:rgba(205,220,57,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-lime.active:hover{background:rgba(205,220,57,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-lime:hover{background:rgba(205,220,57,.2);border-color:rgba(205,220,57,.9)}.capibara .input-box .mini-input-section--icon.c-lime{background:#cddc39}.capibara.c-yellow:not(.dark-theme){scrollbar-color:#ebdb4f transparent}.capibara.c-yellow:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#ebdb4f}.capibara.c-yellow:not(.dark-theme) .header-top{background:#fff}.capibara.c-yellow:not(.dark-theme) .corner{background:#fff;border-color:#fff5a1}.capibara.c-yellow:not(.dark-theme) .container-tl header{background:#fff;border-bottom-color:#fff5a1}.capibara.c-yellow:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#fff)!important}.capibara.c-yellow:not(.dark-theme) nav.right{border-color:#fff5a1}.capibara.c-yellow.dark-theme .header-top,.capibara.c-yellow.dark-theme nav.right{border-color:#d4be00}.capibara.c-yellow.dark-theme .container-tl header,.capibara.c-yellow.dark-theme .corner{border-bottom-color:#d4be00}.capibara.c-yellow.dark-theme ::-moz-selection,.capibara.c-yellow ::-moz-selection{background-color:rgba(255,235,59,.2)!important}.capibara.c-yellow.dark-theme ::selection,.capibara.c-yellow ::selection{background-color:rgba(255,235,59,.2)!important}.capibara.c-yellow.dark-theme .progress-bar,.capibara.c-yellow .progress-bar{background-color:rgba(255,235,59,.2)!important}.capibara.c-yellow.dark-theme .progress-bar:after,.capibara.c-yellow.dark-theme .progress-bar:before,.capibara.c-yellow .progress-bar:after,.capibara.c-yellow .progress-bar:before{background-color:#ffeb3b!important}.capibara.c-yellow.dark-theme select.tabs-select,.capibara.c-yellow select.tabs-select{background-color:rgba(255,235,59,.7)!important;border-color:#ffeb3b!important}.capibara.c-yellow.dark-theme .time,.capibara.c-yellow .time{border-color:rgba(255,235,59,.6)}.capibara.c-yellow.dark-theme .time .symbol,.capibara.c-yellow .time .symbol{color:#ffeb3b}.capibara.c-yellow.dark-theme .time input:active,.capibara.c-yellow.dark-theme .time input:focus,.capibara.c-yellow .time input:active,.capibara.c-yellow .time input:focus{border-color:#ffeb3b;box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow.dark-theme .input-box,.capibara.c-yellow.dark-theme .input-section select.input-select,.capibara.c-yellow .input-box,.capibara.c-yellow .input-section select.input-select{border-color:rgba(255,235,59,.6)}.capibara.c-yellow.dark-theme .input-section select.input-select:active,.capibara.c-yellow.dark-theme .input-section select.input-select:focus,.capibara.c-yellow .input-section select.input-select:active,.capibara.c-yellow .input-section select.input-select:focus{border-color:#ffeb3b;box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow.dark-theme .input-section .nav-input-file,.capibara.c-yellow.dark-theme .input-section input.nav-input,.capibara.c-yellow .input-section .nav-input-file,.capibara.c-yellow .input-section input.nav-input{border-color:rgba(255,235,59,.6)}.capibara.c-yellow.dark-theme .input-section .nav-input-file:active,.capibara.c-yellow.dark-theme .input-section .nav-input-file:focus,.capibara.c-yellow.dark-theme .input-section input.nav-input:active,.capibara.c-yellow.dark-theme .input-section input.nav-input:focus,.capibara.c-yellow .input-section .nav-input-file:active,.capibara.c-yellow .input-section .nav-input-file:focus,.capibara.c-yellow .input-section input.nav-input:active,.capibara.c-yellow .input-section input.nav-input:focus{border-color:#ffeb3b;box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-yellow .input-section.msj-input-container textarea.msj{border:2px solid #ffeb3b}.capibara.c-yellow.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-yellow.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-yellow .input-section.msj-input-container textarea.msj:active,.capibara.c-yellow .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow .cap-btn-raised,.capibara.c-yellow.dark-theme .cap-btn-raised{border-color:#ffeb3b;background:rgba(255,235,59,.8)}.capibara.c-yellow .cap-btn-outline,.capibara.c-yellow.dark-theme .cap-btn-outline{border-color:#ffeb3b;color:#ffeb3b}.capibara.c-yellow .cap-btn-outline.selected,.capibara.c-yellow.dark-theme .cap-btn-outline.selected{background:rgba(255,235,59,.8)}.capibara.c-yellow.dark-theme .select-container .selected-day,.capibara.c-yellow .select-container .selected-day{background:rgba(255,235,59,.3);box-shadow:inset 0 0 10px rgba(255,235,59,.5)}.capibara .c-yellow--background{background:#ffeb3b!important}.capibara .c-yellow-d--background{background:#eed500!important}.capibara .c-yellow-l--background{background:#fff388!important}.capibara .c-yellow--text{color:#ffeb3b!important}.capibara .c-yellow-d--text{color:#eed500!important}.capibara .c-yellow-l--text{color:#fff388!important}.capibara .detail-day .list-detail .item-detail.c-yellow{background:rgba(255,235,59,.2);border:1px solid #ffeb3b}.capibara .detail-day .list-detail .item-detail.c-yellow .left-icon{background:#ffeb3b}.capibara .detail-day .list-detail .item-detail.c-yellow .left-icon.outlined{border:1px solid #ffeb3b;box-shadow:inset 0 0 0 1px rgba(255,235,59,.7)}.capibara .detail-day .list-detail .item-detail.c-yellow .name{color:#ffeb3b}.capibara .float-box-container .float-box span.data.c-yellow{--local-color:#ffeb3b;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-yellow,.capibara .float-box-container .float-box .dot.c-yellow,.capibara .float-box-container .float-box .rowdot--row.c-yellow .rowdot--dot{--local-color:#ffeb3b}.capibara .header-top .tabs-container .tab:not(.disabled).c-yellow.active{background:rgba(255,235,59,.7);border-color:rgba(255,235,59,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-yellow.active:hover{background:rgba(255,235,59,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-yellow:hover{background:rgba(255,235,59,.2);border-color:rgba(255,235,59,.9)}.capibara .input-box .mini-input-section--icon.c-yellow{background:#ffeb3b}.capibara.c-amber:not(.dark-theme){scrollbar-color:#e6b520 transparent}.capibara.c-amber:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#e6b520}.capibara.c-amber:not(.dark-theme) .header-top{background:#f4efde}.capibara.c-amber:not(.dark-theme) .corner{background:#f4efde;border-color:#ffdb6d}.capibara.c-amber:not(.dark-theme) .container-tl header{background:#f4efde;border-bottom-color:#ffdb6d}.capibara.c-amber:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f4efde)!important}.capibara.c-amber:not(.dark-theme) nav.right{border-color:#ffdb6d}.capibara.c-amber.dark-theme .header-top,.capibara.c-amber.dark-theme nav.right{border-color:#a07800}.capibara.c-amber.dark-theme .container-tl header,.capibara.c-amber.dark-theme .corner{border-bottom-color:#a07800}.capibara.c-amber.dark-theme ::-moz-selection,.capibara.c-amber ::-moz-selection{background-color:rgba(255,193,7,.2)!important}.capibara.c-amber.dark-theme ::selection,.capibara.c-amber ::selection{background-color:rgba(255,193,7,.2)!important}.capibara.c-amber.dark-theme .progress-bar,.capibara.c-amber .progress-bar{background-color:rgba(255,193,7,.2)!important}.capibara.c-amber.dark-theme .progress-bar:after,.capibara.c-amber.dark-theme .progress-bar:before,.capibara.c-amber .progress-bar:after,.capibara.c-amber .progress-bar:before{background-color:#ffc107!important}.capibara.c-amber.dark-theme select.tabs-select,.capibara.c-amber select.tabs-select{background-color:rgba(255,193,7,.7)!important;border-color:#ffc107!important}.capibara.c-amber.dark-theme .time,.capibara.c-amber .time{border-color:rgba(255,193,7,.6)}.capibara.c-amber.dark-theme .time .symbol,.capibara.c-amber .time .symbol{color:#ffc107}.capibara.c-amber.dark-theme .time input:active,.capibara.c-amber.dark-theme .time input:focus,.capibara.c-amber .time input:active,.capibara.c-amber .time input:focus{border-color:#ffc107;box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber.dark-theme .input-box,.capibara.c-amber.dark-theme .input-section select.input-select,.capibara.c-amber .input-box,.capibara.c-amber .input-section select.input-select{border-color:rgba(255,193,7,.6)}.capibara.c-amber.dark-theme .input-section select.input-select:active,.capibara.c-amber.dark-theme .input-section select.input-select:focus,.capibara.c-amber .input-section select.input-select:active,.capibara.c-amber .input-section select.input-select:focus{border-color:#ffc107;box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber.dark-theme .input-section .nav-input-file,.capibara.c-amber.dark-theme .input-section input.nav-input,.capibara.c-amber .input-section .nav-input-file,.capibara.c-amber .input-section input.nav-input{border-color:rgba(255,193,7,.6)}.capibara.c-amber.dark-theme .input-section .nav-input-file:active,.capibara.c-amber.dark-theme .input-section .nav-input-file:focus,.capibara.c-amber.dark-theme .input-section input.nav-input:active,.capibara.c-amber.dark-theme .input-section input.nav-input:focus,.capibara.c-amber .input-section .nav-input-file:active,.capibara.c-amber .input-section .nav-input-file:focus,.capibara.c-amber .input-section input.nav-input:active,.capibara.c-amber .input-section input.nav-input:focus{border-color:#ffc107;box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-amber .input-section.msj-input-container textarea.msj{border:2px solid #ffc107}.capibara.c-amber.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-amber.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-amber .input-section.msj-input-container textarea.msj:active,.capibara.c-amber .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber .cap-btn-raised,.capibara.c-amber.dark-theme .cap-btn-raised{border-color:#ffc107;background:rgba(255,193,7,.8)}.capibara.c-amber .cap-btn-outline,.capibara.c-amber.dark-theme .cap-btn-outline{border-color:#ffc107;color:#ffc107}.capibara.c-amber .cap-btn-outline.selected,.capibara.c-amber.dark-theme .cap-btn-outline.selected{background:rgba(255,193,7,.8)}.capibara.c-amber.dark-theme .select-container .selected-day,.capibara.c-amber .select-container .selected-day{background:rgba(255,193,7,.3);box-shadow:inset 0 0 10px rgba(255,193,7,.5)}.capibara .c-amber--background{background:#ffc107!important}.capibara .c-amber-d--background{background:#ba8b00!important}.capibara .c-amber-l--background{background:#ffd454!important}.capibara .c-amber--text{color:#ffc107!important}.capibara .c-amber-d--text{color:#ba8b00!important}.capibara .c-amber-l--text{color:#ffd454!important}.capibara .detail-day .list-detail .item-detail.c-amber{background:rgba(255,193,7,.2);border:1px solid #ffc107}.capibara .detail-day .list-detail .item-detail.c-amber .left-icon{background:#ffc107}.capibara .detail-day .list-detail .item-detail.c-amber .left-icon.outlined{border:1px solid #ffc107;box-shadow:inset 0 0 0 1px rgba(255,193,7,.7)}.capibara .detail-day .list-detail .item-detail.c-amber .name{color:#ffc107}.capibara .float-box-container .float-box span.data.c-amber{--local-color:#ffc107;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-amber,.capibara .float-box-container .float-box .dot.c-amber,.capibara .float-box-container .float-box .rowdot--row.c-amber .rowdot--dot{--local-color:#ffc107}.capibara .header-top .tabs-container .tab:not(.disabled).c-amber.active{background:rgba(255,193,7,.7);border-color:rgba(255,193,7,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-amber.active:hover{background:rgba(255,193,7,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-amber:hover{background:rgba(255,193,7,.2);border-color:rgba(255,193,7,.9)}.capibara .input-box .mini-input-section--icon.c-amber{background:#ffc107}.capibara.c-orange:not(.dark-theme){scrollbar-color:#e6931a transparent}.capibara.c-orange:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#e6931a}.capibara.c-orange:not(.dark-theme) .header-top{background:#f2e8d9}.capibara.c-orange:not(.dark-theme) .corner{background:#f2e8d9;border-color:#ffc166}.capibara.c-orange:not(.dark-theme) .container-tl header{background:#f2e8d9;border-bottom-color:#ffc166}.capibara.c-orange:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f2e8d9)!important}.capibara.c-orange:not(.dark-theme) nav.right{border-color:#ffc166}.capibara.c-orange.dark-theme .header-top,.capibara.c-orange.dark-theme nav.right{border-color:#995b00}.capibara.c-orange.dark-theme .container-tl header,.capibara.c-orange.dark-theme .corner{border-bottom-color:#995b00}.capibara.c-orange.dark-theme ::-moz-selection,.capibara.c-orange ::-moz-selection{background-color:rgba(255,152,0,.2)!important}.capibara.c-orange.dark-theme ::selection,.capibara.c-orange ::selection{background-color:rgba(255,152,0,.2)!important}.capibara.c-orange.dark-theme .progress-bar,.capibara.c-orange .progress-bar{background-color:rgba(255,152,0,.2)!important}.capibara.c-orange.dark-theme .progress-bar:after,.capibara.c-orange.dark-theme .progress-bar:before,.capibara.c-orange .progress-bar:after,.capibara.c-orange .progress-bar:before{background-color:#ff9800!important}.capibara.c-orange.dark-theme select.tabs-select,.capibara.c-orange select.tabs-select{background-color:rgba(255,152,0,.7)!important;border-color:#ff9800!important}.capibara.c-orange.dark-theme .time,.capibara.c-orange .time{border-color:rgba(255,152,0,.6)}.capibara.c-orange.dark-theme .time .symbol,.capibara.c-orange .time .symbol{color:#ff9800}.capibara.c-orange.dark-theme .time input:active,.capibara.c-orange.dark-theme .time input:focus,.capibara.c-orange .time input:active,.capibara.c-orange .time input:focus{border-color:#ff9800;box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange.dark-theme .input-box,.capibara.c-orange.dark-theme .input-section select.input-select,.capibara.c-orange .input-box,.capibara.c-orange .input-section select.input-select{border-color:rgba(255,152,0,.6)}.capibara.c-orange.dark-theme .input-section select.input-select:active,.capibara.c-orange.dark-theme .input-section select.input-select:focus,.capibara.c-orange .input-section select.input-select:active,.capibara.c-orange .input-section select.input-select:focus{border-color:#ff9800;box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange.dark-theme .input-section .nav-input-file,.capibara.c-orange.dark-theme .input-section input.nav-input,.capibara.c-orange .input-section .nav-input-file,.capibara.c-orange .input-section input.nav-input{border-color:rgba(255,152,0,.6)}.capibara.c-orange.dark-theme .input-section .nav-input-file:active,.capibara.c-orange.dark-theme .input-section .nav-input-file:focus,.capibara.c-orange.dark-theme .input-section input.nav-input:active,.capibara.c-orange.dark-theme .input-section input.nav-input:focus,.capibara.c-orange .input-section .nav-input-file:active,.capibara.c-orange .input-section .nav-input-file:focus,.capibara.c-orange .input-section input.nav-input:active,.capibara.c-orange .input-section input.nav-input:focus{border-color:#ff9800;box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-orange .input-section.msj-input-container textarea.msj{border:2px solid #ff9800}.capibara.c-orange.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-orange.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-orange .input-section.msj-input-container textarea.msj:active,.capibara.c-orange .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange .cap-btn-raised,.capibara.c-orange.dark-theme .cap-btn-raised{border-color:#ff9800;background:rgba(255,152,0,.8)}.capibara.c-orange .cap-btn-outline,.capibara.c-orange.dark-theme .cap-btn-outline{border-color:#ff9800;color:#ff9800}.capibara.c-orange .cap-btn-outline.selected,.capibara.c-orange.dark-theme .cap-btn-outline.selected{background:rgba(255,152,0,.8)}.capibara.c-orange.dark-theme .select-container .selected-day,.capibara.c-orange .select-container .selected-day{background:rgba(255,152,0,.3);box-shadow:inset 0 0 10px rgba(255,152,0,.5)}.capibara .c-orange--background{background:#ff9800!important}.capibara .c-orange-d--background{background:#b36a00!important}.capibara .c-orange-l--background{background:#ffb74d!important}.capibara .c-orange--text{color:#ff9800!important}.capibara .c-orange-d--text{color:#b36a00!important}.capibara .c-orange-l--text{color:#ffb74d!important}.capibara .detail-day .list-detail .item-detail.c-orange{background:rgba(255,152,0,.2);border:1px solid #ff9800}.capibara .detail-day .list-detail .item-detail.c-orange .left-icon{background:#ff9800}.capibara .detail-day .list-detail .item-detail.c-orange .left-icon.outlined{border:1px solid #ff9800;box-shadow:inset 0 0 0 1px rgba(255,152,0,.7)}.capibara .detail-day .list-detail .item-detail.c-orange .name{color:#ff9800}.capibara .float-box-container .float-box span.data.c-orange{--local-color:#ff9800;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-orange,.capibara .float-box-container .float-box .dot.c-orange,.capibara .float-box-container .float-box .rowdot--row.c-orange .rowdot--dot{--local-color:#ff9800}.capibara .header-top .tabs-container .tab:not(.disabled).c-orange.active{background:rgba(255,152,0,.7);border-color:rgba(255,152,0,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-orange.active:hover{background:rgba(255,152,0,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-orange:hover{background:rgba(255,152,0,.2);border-color:rgba(255,152,0,.9)}.capibara .input-box .mini-input-section--icon.c-orange{background:#ff9800}.capibara.c-deep-orange:not(.dark-theme){scrollbar-color:#cd5733 transparent}.capibara.c-deep-orange:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#cd5733}.capibara.c-deep-orange:not(.dark-theme) .header-top{background:#ede1de}.capibara.c-deep-orange:not(.dark-theme) .corner{background:#ede1de;border-color:#f09275}.capibara.c-deep-orange:not(.dark-theme) .container-tl header{background:#ede1de;border-bottom-color:#f09275}.capibara.c-deep-orange:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#ede1de)!important}.capibara.c-deep-orange:not(.dark-theme) nav.right{border-color:#f09275}.capibara.c-deep-orange.dark-theme .header-top,.capibara.c-deep-orange.dark-theme nav.right{border-color:#8a2c0f}.capibara.c-deep-orange.dark-theme .container-tl header,.capibara.c-deep-orange.dark-theme .corner{border-bottom-color:#8a2c0f}.capibara.c-deep-orange.dark-theme ::-moz-selection,.capibara.c-deep-orange ::-moz-selection{background-color:rgba(230,74,25,.2)!important}.capibara.c-deep-orange.dark-theme ::selection,.capibara.c-deep-orange ::selection{background-color:rgba(230,74,25,.2)!important}.capibara.c-deep-orange.dark-theme .progress-bar,.capibara.c-deep-orange .progress-bar{background-color:rgba(230,74,25,.2)!important}.capibara.c-deep-orange.dark-theme .progress-bar:after,.capibara.c-deep-orange.dark-theme .progress-bar:before,.capibara.c-deep-orange .progress-bar:after,.capibara.c-deep-orange .progress-bar:before{background-color:#e64a19!important}.capibara.c-deep-orange.dark-theme select.tabs-select,.capibara.c-deep-orange select.tabs-select{background-color:rgba(230,74,25,.7)!important;border-color:#e64a19!important}.capibara.c-deep-orange.dark-theme .time,.capibara.c-deep-orange .time{border-color:rgba(230,74,25,.6)}.capibara.c-deep-orange.dark-theme .time .symbol,.capibara.c-deep-orange .time .symbol{color:#e64a19}.capibara.c-deep-orange.dark-theme .time input:active,.capibara.c-deep-orange.dark-theme .time input:focus,.capibara.c-deep-orange .time input:active,.capibara.c-deep-orange .time input:focus{border-color:#e64a19;box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange.dark-theme .input-box,.capibara.c-deep-orange.dark-theme .input-section select.input-select,.capibara.c-deep-orange .input-box,.capibara.c-deep-orange .input-section select.input-select{border-color:rgba(230,74,25,.6)}.capibara.c-deep-orange.dark-theme .input-section select.input-select:active,.capibara.c-deep-orange.dark-theme .input-section select.input-select:focus,.capibara.c-deep-orange .input-section select.input-select:active,.capibara.c-deep-orange .input-section select.input-select:focus{border-color:#e64a19;box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange.dark-theme .input-section .nav-input-file,.capibara.c-deep-orange.dark-theme .input-section input.nav-input,.capibara.c-deep-orange .input-section .nav-input-file,.capibara.c-deep-orange .input-section input.nav-input{border-color:rgba(230,74,25,.6)}.capibara.c-deep-orange.dark-theme .input-section .nav-input-file:active,.capibara.c-deep-orange.dark-theme .input-section .nav-input-file:focus,.capibara.c-deep-orange.dark-theme .input-section input.nav-input:active,.capibara.c-deep-orange.dark-theme .input-section input.nav-input:focus,.capibara.c-deep-orange .input-section .nav-input-file:active,.capibara.c-deep-orange .input-section .nav-input-file:focus,.capibara.c-deep-orange .input-section input.nav-input:active,.capibara.c-deep-orange .input-section input.nav-input:focus{border-color:#e64a19;box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-deep-orange .input-section.msj-input-container textarea.msj{border:2px solid #e64a19}.capibara.c-deep-orange.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-orange.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-deep-orange .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-orange .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange .cap-btn-raised,.capibara.c-deep-orange.dark-theme .cap-btn-raised{border-color:#e64a19;background:rgba(230,74,25,.8)}.capibara.c-deep-orange .cap-btn-outline,.capibara.c-deep-orange.dark-theme .cap-btn-outline{border-color:#e64a19;color:#e64a19}.capibara.c-deep-orange .cap-btn-outline.selected,.capibara.c-deep-orange.dark-theme .cap-btn-outline.selected{background:rgba(230,74,25,.8)}.capibara.c-deep-orange.dark-theme .select-container .selected-day,.capibara.c-deep-orange .select-container .selected-day{background:rgba(230,74,25,.3);box-shadow:inset 0 0 10px rgba(230,74,25,.5)}.capibara .c-deep-orange--background{background:#e64a19!important}.capibara .c-deep-orange-d--background{background:#a13412!important}.capibara .c-deep-orange-l--background{background:#ee805e!important}.capibara .c-deep-orange--text{color:#e64a19!important}.capibara .c-deep-orange-d--text{color:#a13412!important}.capibara .c-deep-orange-l--text{color:#ee805e!important}.capibara .detail-day .list-detail .item-detail.c-deep-orange{background:rgba(230,74,25,.2);border:1px solid #e64a19}.capibara .detail-day .list-detail .item-detail.c-deep-orange .left-icon{background:#e64a19}.capibara .detail-day .list-detail .item-detail.c-deep-orange .left-icon.outlined{border:1px solid #e64a19;box-shadow:inset 0 0 0 1px rgba(230,74,25,.7)}.capibara .detail-day .list-detail .item-detail.c-deep-orange .name{color:#e64a19}.capibara .float-box-container .float-box span.data.c-deep-orange{--local-color:#e64a19;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-deep-orange,.capibara .float-box-container .float-box .dot.c-deep-orange,.capibara .float-box-container .float-box .rowdot--row.c-deep-orange .rowdot--dot{--local-color:#e64a19}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-orange.active{background:rgba(230,74,25,.7);border-color:rgba(230,74,25,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-orange.active:hover{background:rgba(230,74,25,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-orange:hover{background:rgba(230,74,25,.2);border-color:rgba(230,74,25,.9)}.capibara .input-box .mini-input-section--icon.c-deep-orange{background:#e64a19}.capibara.c-brown:not(.dark-theme){scrollbar-color:#665e5b transparent}.capibara.c-brown:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#665e5b}.capibara.c-brown:not(.dark-theme) .header-top{background:#c7c7c7}.capibara.c-brown:not(.dark-theme) .corner{background:#c7c7c7;border-color:#af8778}.capibara.c-brown:not(.dark-theme) .container-tl header{background:#c7c7c7;border-bottom-color:#af8778}.capibara.c-brown:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#c7c7c7)!important}.capibara.c-brown:not(.dark-theme) nav.right{border-color:#af8778}.capibara.c-brown.dark-theme .header-top,.capibara.c-brown.dark-theme nav.right{border-color:#392822}.capibara.c-brown.dark-theme .container-tl header,.capibara.c-brown.dark-theme .corner{border-bottom-color:#392822}.capibara.c-brown.dark-theme ::-moz-selection,.capibara.c-brown ::-moz-selection{background-color:rgba(121,85,72,.2)!important}.capibara.c-brown.dark-theme ::selection,.capibara.c-brown ::selection{background-color:rgba(121,85,72,.2)!important}.capibara.c-brown.dark-theme .progress-bar,.capibara.c-brown .progress-bar{background-color:rgba(121,85,72,.2)!important}.capibara.c-brown.dark-theme .progress-bar:after,.capibara.c-brown.dark-theme .progress-bar:before,.capibara.c-brown .progress-bar:after,.capibara.c-brown .progress-bar:before{background-color:#795548!important}.capibara.c-brown.dark-theme select.tabs-select,.capibara.c-brown select.tabs-select{background-color:rgba(121,85,72,.7)!important;border-color:#795548!important}.capibara.c-brown.dark-theme .time,.capibara.c-brown .time{border-color:rgba(121,85,72,.6)}.capibara.c-brown.dark-theme .time .symbol,.capibara.c-brown .time .symbol{color:#795548}.capibara.c-brown.dark-theme .time input:active,.capibara.c-brown.dark-theme .time input:focus,.capibara.c-brown .time input:active,.capibara.c-brown .time input:focus{border-color:#795548;box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown.dark-theme .input-box,.capibara.c-brown.dark-theme .input-section select.input-select,.capibara.c-brown .input-box,.capibara.c-brown .input-section select.input-select{border-color:rgba(121,85,72,.6)}.capibara.c-brown.dark-theme .input-section select.input-select:active,.capibara.c-brown.dark-theme .input-section select.input-select:focus,.capibara.c-brown .input-section select.input-select:active,.capibara.c-brown .input-section select.input-select:focus{border-color:#795548;box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown.dark-theme .input-section .nav-input-file,.capibara.c-brown.dark-theme .input-section input.nav-input,.capibara.c-brown .input-section .nav-input-file,.capibara.c-brown .input-section input.nav-input{border-color:rgba(121,85,72,.6)}.capibara.c-brown.dark-theme .input-section .nav-input-file:active,.capibara.c-brown.dark-theme .input-section .nav-input-file:focus,.capibara.c-brown.dark-theme .input-section input.nav-input:active,.capibara.c-brown.dark-theme .input-section input.nav-input:focus,.capibara.c-brown .input-section .nav-input-file:active,.capibara.c-brown .input-section .nav-input-file:focus,.capibara.c-brown .input-section input.nav-input:active,.capibara.c-brown .input-section input.nav-input:focus{border-color:#795548;box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-brown .input-section.msj-input-container textarea.msj{border:2px solid #795548}.capibara.c-brown.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-brown.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-brown .input-section.msj-input-container textarea.msj:active,.capibara.c-brown .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown .cap-btn-raised,.capibara.c-brown.dark-theme .cap-btn-raised{border-color:#795548;background:rgba(121,85,72,.8)}.capibara.c-brown .cap-btn-outline,.capibara.c-brown.dark-theme .cap-btn-outline{border-color:#795548;color:#795548}.capibara.c-brown .cap-btn-outline.selected,.capibara.c-brown.dark-theme .cap-btn-outline.selected{background:rgba(121,85,72,.8)}.capibara.c-brown.dark-theme .select-container .selected-day,.capibara.c-brown .select-container .selected-day{background:rgba(121,85,72,.3);box-shadow:inset 0 0 10px rgba(121,85,72,.5)}.capibara .c-brown--background{background:#795548!important}.capibara .c-brown-d--background{background:#49332b!important}.capibara .c-brown-l--background{background:#a57868!important}.capibara .c-brown--text{color:#795548!important}.capibara .c-brown-d--text{color:#49332b!important}.capibara .c-brown-l--text{color:#a57868!important}.capibara .detail-day .list-detail .item-detail.c-brown{background:rgba(121,85,72,.2);border:1px solid #795548}.capibara .detail-day .list-detail .item-detail.c-brown .left-icon{background:#795548}.capibara .detail-day .list-detail .item-detail.c-brown .left-icon.outlined{border:1px solid #795548;box-shadow:inset 0 0 0 1px rgba(121,85,72,.7)}.capibara .detail-day .list-detail .item-detail.c-brown .name{color:#795548}.capibara .float-box-container .float-box span.data.c-brown{--local-color:#795548;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-brown,.capibara .float-box-container .float-box .dot.c-brown,.capibara .float-box-container .float-box .rowdot--row.c-brown .rowdot--dot{--local-color:#795548}.capibara .header-top .tabs-container .tab:not(.disabled).c-brown.active{background:rgba(121,85,72,.7);border-color:rgba(121,85,72,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-brown.active:hover{background:rgba(121,85,72,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-brown:hover{background:rgba(121,85,72,.2);border-color:rgba(121,85,72,.9)}.capibara .input-box .mini-input-section--icon.c-brown{background:#795548}.capibara.c-blue_grey:not(.dark-theme){scrollbar-color:#767676 transparent}.capibara.c-blue_grey:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#767676}.capibara.c-blue_grey:not(.dark-theme) .header-top{background:#dcdcdc}.capibara.c-blue_grey:not(.dark-theme) .corner{background:#dcdcdc;border-color:#99aeb8}.capibara.c-blue_grey:not(.dark-theme) .container-tl header{background:#dcdcdc;border-bottom-color:#99aeb8}.capibara.c-blue_grey:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#dcdcdc)!important}.capibara.c-blue_grey:not(.dark-theme) nav.right{border-color:#99aeb8}.capibara.c-blue_grey.dark-theme .header-top,.capibara.c-blue_grey.dark-theme nav.right{border-color:#36474f}.capibara.c-blue_grey.dark-theme .container-tl header,.capibara.c-blue_grey.dark-theme .corner{border-bottom-color:#36474f}.capibara.c-blue_grey.dark-theme ::-moz-selection,.capibara.c-blue_grey ::-moz-selection{background-color:rgba(96,125,139,.2)!important}.capibara.c-blue_grey.dark-theme ::selection,.capibara.c-blue_grey ::selection{background-color:rgba(96,125,139,.2)!important}.capibara.c-blue_grey.dark-theme .progress-bar,.capibara.c-blue_grey .progress-bar{background-color:rgba(96,125,139,.2)!important}.capibara.c-blue_grey.dark-theme .progress-bar:after,.capibara.c-blue_grey.dark-theme .progress-bar:before,.capibara.c-blue_grey .progress-bar:after,.capibara.c-blue_grey .progress-bar:before{background-color:#607d8b!important}.capibara.c-blue_grey.dark-theme select.tabs-select,.capibara.c-blue_grey select.tabs-select{background-color:rgba(96,125,139,.7)!important;border-color:#607d8b!important}.capibara.c-blue_grey.dark-theme .time,.capibara.c-blue_grey .time{border-color:rgba(96,125,139,.6)}.capibara.c-blue_grey.dark-theme .time .symbol,.capibara.c-blue_grey .time .symbol{color:#607d8b}.capibara.c-blue_grey.dark-theme .time input:active,.capibara.c-blue_grey.dark-theme .time input:focus,.capibara.c-blue_grey .time input:active,.capibara.c-blue_grey .time input:focus{border-color:#607d8b;box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey.dark-theme .input-box,.capibara.c-blue_grey.dark-theme .input-section select.input-select,.capibara.c-blue_grey .input-box,.capibara.c-blue_grey .input-section select.input-select{border-color:rgba(96,125,139,.6)}.capibara.c-blue_grey.dark-theme .input-section select.input-select:active,.capibara.c-blue_grey.dark-theme .input-section select.input-select:focus,.capibara.c-blue_grey .input-section select.input-select:active,.capibara.c-blue_grey .input-section select.input-select:focus{border-color:#607d8b;box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey.dark-theme .input-section .nav-input-file,.capibara.c-blue_grey.dark-theme .input-section input.nav-input,.capibara.c-blue_grey .input-section .nav-input-file,.capibara.c-blue_grey .input-section input.nav-input{border-color:rgba(96,125,139,.6)}.capibara.c-blue_grey.dark-theme .input-section .nav-input-file:active,.capibara.c-blue_grey.dark-theme .input-section .nav-input-file:focus,.capibara.c-blue_grey.dark-theme .input-section input.nav-input:active,.capibara.c-blue_grey.dark-theme .input-section input.nav-input:focus,.capibara.c-blue_grey .input-section .nav-input-file:active,.capibara.c-blue_grey .input-section .nav-input-file:focus,.capibara.c-blue_grey .input-section input.nav-input:active,.capibara.c-blue_grey .input-section input.nav-input:focus{border-color:#607d8b;box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-blue_grey .input-section.msj-input-container textarea.msj{border:2px solid #607d8b}.capibara.c-blue_grey.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-blue_grey.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-blue_grey .input-section.msj-input-container textarea.msj:active,.capibara.c-blue_grey .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey .cap-btn-raised,.capibara.c-blue_grey.dark-theme .cap-btn-raised{border-color:#607d8b;background:rgba(96,125,139,.8)}.capibara.c-blue_grey .cap-btn-outline,.capibara.c-blue_grey.dark-theme .cap-btn-outline{border-color:#607d8b;color:#607d8b}.capibara.c-blue_grey .cap-btn-outline.selected,.capibara.c-blue_grey.dark-theme .cap-btn-outline.selected{background:rgba(96,125,139,.8)}.capibara.c-blue_grey.dark-theme .select-container .selected-day,.capibara.c-blue_grey .select-container .selected-day{background:rgba(96,125,139,.3);box-shadow:inset 0 0 10px rgba(96,125,139,.5)}.capibara .c-blue_grey--background{background:#607d8b!important}.capibara .c-blue_grey-d--background{background:#41545e!important}.capibara .c-blue_grey-l--background{background:#8aa2ae!important}.capibara .c-blue_grey--text{color:#607d8b!important}.capibara .c-blue_grey-d--text{color:#41545e!important}.capibara .c-blue_grey-l--text{color:#8aa2ae!important}.capibara .detail-day .list-detail .item-detail.c-blue_grey{background:rgba(96,125,139,.2);border:1px solid #607d8b}.capibara .detail-day .list-detail .item-detail.c-blue_grey .left-icon{background:#607d8b}.capibara .detail-day .list-detail .item-detail.c-blue_grey .left-icon.outlined{border:1px solid #607d8b;box-shadow:inset 0 0 0 1px rgba(96,125,139,.7)}.capibara .detail-day .list-detail .item-detail.c-blue_grey .name{color:#607d8b}.capibara .float-box-container .float-box span.data.c-blue_grey{--local-color:#607d8b;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-blue_grey,.capibara .float-box-container .float-box .dot.c-blue_grey,.capibara .float-box-container .float-box .rowdot--row.c-blue_grey .rowdot--dot{--local-color:#607d8b}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue_grey.active{background:rgba(96,125,139,.7);border-color:rgba(96,125,139,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue_grey.active:hover{background:rgba(96,125,139,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue_grey:hover{background:rgba(96,125,139,.2);border-color:rgba(96,125,139,.9)}.capibara .input-box .mini-input-section--icon.c-blue_grey{background:#607d8b}.capibara *,.capibara :after,.capibara :before{box-sizing:border-box}.capibara input{outline:none}.capibara input[type=number]{-moz-appearance:textfield}.capibara input[type=number]::-webkit-inner-spin-button,.capibara input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.capibara input[type=number]::-moz-placeholder{opacity:1}.capibara input[type=number]:-ms-input-placeholder{opacity:1}.capibara input[type=number]::placeholder{opacity:1}.capibara.dark-theme .hide-dark,.capibara:not(.dark-theme) .hide-light{display:none!important}.capibara .truncate{width:100%;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capibara .hide{display:none!important}.capibara .text-title{font-size:1.25em;font-weight:700;margin:.5em .3em}.capibara .text-subtitle{font-size:.875em;font-weight:700;margin:.5em .3em;flex:0 0 auto}.capibara .text-hint{font-size:.75em;margin:.3em;text-align:left;align-self:flex-start}.capibara .text-subtitle-2{font-size:.75em;margin:.5em .3em;flex:0 0 auto}.capibara .d-inline-block{display:inline-block}.capibara .d-block{display:block}.capibara .d-flex{display:flex;flex-direction:column;align-items:center}@media screen and (min-width:960px){.capibara .c-d-desktop-none{display:none!important}.capibara .c-d-desktop-inline-block{display:inline-block!important}.capibara .c-d-desktop-block{display:block!important}.capibara .c-d-desktop-flex{display:flex!important}}@media screen and (max-width:959px){.capibara .c-d-mobile-none{display:none!important}.capibara .c-d-mobile-block{display:block!important}.capibara .c-d-mobile-inline-block{display:inline-block!important}.capibara .c-d-mobile-flex{display:flex!important}}.capibara{scrollbar-width:auto}.capibara ::-webkit-scrollbar{width:12px;height:12px;opacity:.5}.capibara ::-webkit-scrollbar-corner,.capibara ::-webkit-scrollbar-track{background:transparent}.capibara ::-webkit-scrollbar-thumb{border-radius:5px;background:grey}.capibara.dark-theme ::-webkit-scrollbar-corner,.capibara.dark-theme ::-webkit-scrollbar-track{background:transparent}.capibara.dark-theme ::-webkit-scrollbar-thumb{background:#bdbdbd}.capibara{position:relative;font-family:Roboto,sans-serif;height:inherit;max-height:inherit;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;font-size:var(--font-size)}.capibara pre{font-family:Roboto,sans-serif!important}.capibara{color:#37474f;background:#f5f5f5}.capibara.dark-theme{color:#f0f0f0;background:#222837}.capibara .container-tl{width:100%;height:calc(100% - var(--header-top-height));max-height:calc(100% - var(--header-top-height));position:relative;overflow:scroll;margin:0;will-change:scroll-position}.capibara.extended-right .container-tl{width:calc(100% - var(--nav-right-width))}.capibara .container-tl{background:#f5f5f5}.capibara.dark-theme .container-tl{background:#222837}.capibara .container-tl .today-line{width:0;position:absolute}.capibara .container-tl .today-line.disable-line,.capibara .container-tl .today-line.disable-line:after{display:none!important}.capibara .container-tl .today-line:after{margin-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width) + 1px);position:absolute;display:block;left:0;top:0;content:\\\"\\\";width:2px;height:100%;background:rgba(183,28,28,.4)}.capibara .container-tl.header-extended .container-tl .today-line:after{height:calc(100vh - var(--header-height) + var(--ex-header-height) + var(--header-top-height))}.capibara .corner{position:absolute;top:var(--header-top-height);z-index:4;height:var(--header-height);border:solid rgba(0,0,0,.4);border-width:0 0 2px;padding-left:8px}.capibara .corner:not(.right){left:0;border-right-width:1px;width:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width))}.capibara .corner.right{right:0;width:var(--nav-right-width);display:none}.capibara .corner>div:not([class]){width:inherit;height:inherit}.capibara .corner .btn-container{padding-top:.5em}.capibara .corner .btn-container .corner-btn{font-size:.825em;margin:0 4px;padding:4px 8px}.capibara .corner .corner-title{height:inherit;display:block;text-align:left;position:relative}.capibara .corner .corner-title span.bottom-text{position:absolute;left:0;bottom:8px}@media screen and (max-width:959px){.capibara .corner .corner-title{font-size:.75em}}.capibara .corner .initial-corner{position:absolute;left:var(--nav-width);top:0;width:var(--initial-nav-width);height:var(--header-height);overflow:hidden;display:block}.capibara .corner .initial-corner .initial-corner-title{height:inherit;width:inherit;display:inline-block;margin-right:-1px;box-sizing:border-box;vertical-align:top;position:relative}.capibara .corner .initial-corner .initial-corner-title .bottom-container{position:absolute;left:0;bottom:8px;width:100%;box-sizing:border-box;display:flex;align-items:center}.capibara .corner .initial-corner .initial-corner-title .bottom-container .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;display:inline-block;font-size:.75em}.capibara .corner .extend-corner{position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width));top:0;width:var(--ex-nav-width);height:var(--header-height);overflow:hidden;display:block}.capibara .corner .extend-corner .ex-corner-title{height:inherit;width:inherit;display:inline-block;margin-right:-1px;box-sizing:border-box;vertical-align:top;position:relative}.capibara .corner .extend-corner .ex-corner-title .bottom-container{position:absolute;left:0;bottom:8px;width:100%;box-sizing:border-box;display:flex;align-items:center}.capibara .corner .extend-corner .ex-corner-title .bottom-container .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;display:inline-block;font-size:.75em}.capibara .corner .cap-btn-nav-corner{position:absolute;right:0;top:0;width:var(--btn-nav-width);height:var(--header-height);min-width:100px;padding-top:var(--header-labels-height)}.capibara .corner .cap-btn-nav-corner .input-titles{text-align:right;display:flex;flex-direction:column;position:absolute;right:0;top:var(--header-labels-height)}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container{position:relative;border-radius:3px}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent){display:none}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container.input-title--accent .input-title{color:#fff;background:grey}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container span.average{font-weight:700;margin-right:4px;padding:3px}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container .input-title{height:calc(var(--header-input-height) + 2px);line-height:calc(var(--header-input-height) + 2px);padding-right:8px;display:inline-block;font-size:.75em}.capibara.extended-right .corner.right{display:block}.capibara.header-extended .corner,.capibara.header-extended .corner .cap-btn-nav-corner,.capibara.header-extended .corner .extend-corner,.capibara.header-extended .corner .initial-corner{height:calc(var(--header-height) + var(--ex-header-height))}.capibara.header-extended .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent){display:unset}.capibara.header-extended .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent) .average-box{visibility:visible}.capibara.header-extended .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent) .input-title{visibility:visible;height:auto}.capibara .corner{background:#f1fffe}.capibara.dark-theme .corner{background:#313b50;border-color:rgba(64,78,105,.6)}.capibara.dark-theme .corner .input-titles .input-title-container .input-title{color:hsla(0,0%,100%,.8)!important}.capibara .header-top{position:relative;width:100%;height:var(--header-top-height);padding:0 .5em;display:flex;flex-flow:row wrap;z-index:5}.capibara .header-top .spacer{flex:1 0 auto}.capibara .header-top .tabs-container{display:flex;border-right:1px solid hsla(0,0%,43.5%,.3);margin-right:.5em}.capibara .header-top .tabs-container:not(:empty){padding:0}.capibara .header-top .tabs-container button.tab{cursor:pointer;padding:.25em 1em;font-weight:700;border:1px solid transparent;margin:.5em .5em 0 0;border-radius:30px;transition:background .2s ease;background:transparent}.capibara .header-top .tabs-container button.tab:focus{box-shadow:0 0 0 3px rgba(0,0,0,.3)}.capibara .header-top .tabs-container button.tab.disabled{color:grey}.capibara .header-top .tabs-container button.tab:hover{border-color:grey}.capibara .header-top .legends-container{display:flex}.capibara .header-top .legends-container .legend{display:flex;flex-direction:row;margin-right:1em;cursor:pointer;padding:.8em .5em .5em 0}.capibara .header-top .legends-container .legend:not(.active){opacity:.5}.capibara .header-top .legends-container .legend:not(.active) .icon-legend{background:grey!important}.capibara .header-top .legends-container .legend .icon-legend{width:.825em;height:.825em;margin:2px .5em 2px 0;background:grey;box-shadow:0 1px 2px rgba(0,0,0,.4);display:inline-block;border-radius:1px;border:1px solid rgba(0,0,0,.4)}.capibara .header-top .legends-container .legend .icon-legend.circle{border-radius:50%}.capibara .header-top .legends-container .legend:hover span{text-decoration:underline}.capibara .header-top .legends-container.force-mobile-style{position:absolute;left:2em;top:2em;background:inherit;color:inherit;flex-direction:column;z-index:6;border:1px solid rgba(0,0,0,.4);border-radius:3px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.capibara .header-top .legends-container.force-mobile-style .legend{font-size:16px;padding:.5em}@media screen and (max-width:959px){.capibara .header-top .legends-container{position:absolute;left:2em;top:2em;background:inherit;color:inherit;flex-direction:column;z-index:6;border:1px solid rgba(0,0,0,.4);border-radius:3px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.capibara .header-top .legends-container .legend{font-size:16px;padding:.5em}}.capibara .header-top{background:#f1fffe}.capibara .header-top .tabs-container .tab{color:#313b50}.capibara .header-top .tabs-container .tab.disabled{color:rgba(49,59,80,.5)}.capibara.dark-theme .header-top{background:#313b50}.capibara.dark-theme .header-top .tabs-container .tab{color:hsla(0,0%,100%,.8)}.capibara.dark-theme .header-top .tabs-container .tab.disabled{color:hsla(0,0%,100%,.4)}.capibara .corner-footer{position:-webkit-sticky;position:sticky;left:0;bottom:0;z-index:3;width:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));height:var(--item-height);margin-bottom:calc(var(--item-height)*-1);box-sizing:border-box}.capibara .corner-footer .corner-title{line-height:30px;height:inherit;display:block;text-align:left;box-sizing:border-box;position:relative;font-weight:700;padding:4px 8px}.capibara .corner-footer{background:#78909c;color:#fff}.capibara.dark-theme .corner-footer{background:#313b50;color:#f0f0f0}.capibara nav.right{position:absolute;right:0;top:calc(var(--header-height) + var(--header-top-height));height:calc(100% - var(--header-height) - var(--header-top-height));overflow-y:scroll;overflow-x:hidden;z-index:5;display:none;border-left:1px solid red}.capibara nav.right,.capibara nav.right .child-nav-item,.capibara nav.right .nav-item{width:var(--nav-right-width)}.capibara nav.right .nav-input-container{text-align:center}.capibara nav.right .nav-input-container .button-section{padding-bottom:.75em;padding-top:.75em;position:-webkit-sticky;position:sticky;bottom:0}.capibara nav.left{min-height:calc(100% - var(--header-height));position:-webkit-sticky;position:sticky;left:0;width:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));height:auto;z-index:2;border-right:1px solid #b0bec5;overflow:visible;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.capibara nav.left .child-nav-item,.capibara nav.left .nav-item{width:var(--nav-width)}.capibara nav.left .detail-nav-item{min-width:250px;max-width:500px;width:-webkit-max-content;width:-moz-max-content;width:max-content;min-height:70px;position:absolute;left:3rem;top:0;border:1px solid grey;z-index:2;border-radius:5px;padding:16px;transition:all .3s ease;flex-flow:column nowrap;box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);transform:translateY(calc(.5rem + var(--item-height)))}.capibara nav.left .detail-nav-item.to-bottom{transform:translateY(calc(-100% - .5rem))}.capibara nav.left .detail-nav-item .header-detail .detail-title{font-size:1.125em;font-weight:700;margin-bottom:8px;max-width:100%;width:100%;padding-right:80px}.capibara nav.left .detail-nav-item .header-detail .detail-subtitle{font-size:.875;margin-bottom:8px}.capibara nav.left .detail-nav-item .header-detail .header-chip{position:absolute;right:16px;top:16px;padding:2px 8px;border:3px solid grey;border-radius:5px}.capibara nav.left .detail-nav-item .detail-container>div{margin:6px 0}.capibara nav.left .initial-nav-list{width:var(--initial-nav-width);position:absolute;left:var(--nav-width);top:0;overflow:hidden;display:block}.capibara nav.left .initial-nav-list .child-initial-nav-item,.capibara nav.left .initial-nav-list .initial-nav-item{border-bottom:1px solid #b0bec5;height:var(--item-height);box-sizing:border-box;display:flex;line-height:34px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-title,.capibara nav.left .initial-nav-list .initial-nav-item .item-title{flex:1 0 auto;padding:4px 8px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col,.capibara nav.left .initial-nav-list .initial-nav-item .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;padding:4px 8px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input{padding:0}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>.hour-input,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>.hour-input{font-size:.875em;width:calc(100% - 8px);border:1px solid grey;border-radius:3px;height:24px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>input,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>input{text-align:center;font-size:.875em;width:calc(100% - 8px);display:block;border:1px solid grey;border-radius:3px;height:24px;margin:8px 4px 4px;background:hsla(0,0%,100%,.2)}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>input:active,.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>input:focus,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>input:active,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>input:focus{background:hsla(0,0%,100%,.8)}.capibara nav.left .extend-nav-list{width:var(--ex-nav-width);position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width));top:0;overflow:hidden;display:block}.capibara nav.left .extend-nav-list .child-ex-nav-item,.capibara nav.left .extend-nav-list .ex-nav-item{border-bottom:1px solid #b0bec5;height:var(--item-height);box-sizing:border-box;display:flex;line-height:1.75rem}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-title,.capibara nav.left .extend-nav-list .ex-nav-item .item-title{flex:1 0 auto;padding:4px 8px}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col,.capibara nav.left .extend-nav-list .ex-nav-item .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;padding:4px 8px}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input{padding:0}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input>input,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input>input{text-align:center;font-size:.875em;width:calc(100% - 8px);display:block;border:1px solid grey;border-radius:3px;height:24px;margin:8px 4px 4px;background:hsla(0,0%,100%,.2)}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input>input:active,.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input>input:focus,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input>input:active,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input>input:focus{background:hsla(0,0%,100%,.8)}.capibara nav.left .cap-btn-nav-list{left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width));width:var(--btn-nav-width);position:absolute;top:0;overflow:hidden}.capibara nav.left .cap-btn-nav-list .cap-btn-child-nav-item .cap-btn-nav-item-content,.capibara nav.left .cap-btn-nav-list .cap-btn-nav-item .cap-btn-nav-item-content{height:var(--item-height);width:inherit;padding:4px 6px;border-bottom:1px solid #b0bec5;text-align:right}.capibara nav.left .nav-item-total-footer{padding-top:3px}.capibara nav .cap-btn-nav-item.parent,.capibara nav .ex-nav-item.parent,.capibara nav .initial-nav-item.parent,.capibara nav .nav-item-container.parent{background:rgba(25,118,210,.1)}.capibara nav .cap-btn-nav-item.parent>.item-title,.capibara nav .ex-nav-item.parent>.item-title,.capibara nav .initial-nav-item.parent>.item-title,.capibara nav .nav-item-container.parent>.item-title{max-width:calc(var(--nav-width) + var(--ex-nav-width) + var(--initial-nav-width) + var(--btn-nav-width) - 60px);width:auto}.capibara nav .nav-item-list .child-nav-item,.capibara nav .nav-item-list .nav-item{min-height:var(--item-height);box-sizing:border-box;position:relative}.capibara nav .nav-item-list .child-nav-item .nav-item-container,.capibara nav .nav-item-list .nav-item .nav-item-container{display:flex;border-bottom:1px solid #b0bec5;height:var(--item-height)}.capibara nav .nav-item-list .child-nav-item .nav-item-container .tree-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .tree-icon{transition:all .5s ease;background:transparent;border:none;width:34px;flex:0 0 34px;font-size:1.5em;text-align:center;cursor:pointer}.capibara nav .nav-item-list .child-nav-item .nav-item-container .tree-icon:focus,.capibara nav .nav-item-list .nav-item .nav-item-container .tree-icon:focus{box-shadow:0 0 0 3px rgba(0,0,0,.3)}.capibara nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .nav-item-icon{flex:0 0 34px;font-size:1.125em;vertical-align:middle;text-align:center;line-height:40px;margin-top:12px}.capibara nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon path,.capibara nav .nav-item-list .nav-item .nav-item-container .nav-item-icon path{width:20px;height:20px}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title{flex:1 1 auto;display:grid;font-size:1em;line-height:34px;padding:4px 8px}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.full-width,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.full-width{flex:1 0 auto;display:inline-block}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.clickeable,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.clickeable{cursor:pointer}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.clickeable:hover,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.clickeable:hover{background:hsla(0,0%,39.2%,.2)!important;text-decoration:underline}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.hoverable:hover,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.hoverable:hover{background:hsla(0,0%,39.2%,.2)!important}.capibara.extended-right nav.right{display:block}.capibara.header-extended nav.left{min-height:calc(100% - var(--header-height) + var(--ex-header-height))}.capibara.header-extended nav.right{top:calc(var(--header-height) + var(--header-top-height) + var(--ex-header-height));height:calc(100% - var(--header-height) - var(--header-top-height) - var(--ex-header-height))}.capibara nav.left,.capibara nav.right,.capibara nav.right .button-section{background:#fafafa}.capibara nav.left .detail-nav-item{border-color:rgba(0,0,0,.2);background:#fff}.capibara nav.left .detail-nav-item .header-chip.red-light{border-color:#f84747}.capibara nav.left .detail-nav-item .header-chip.yellow-light{border-color:#fdd835}.capibara nav.left .detail-nav-item .header-chip.green-light{border-color:#38993d}.capibara nav .nav-item-list .child-nav-item .nav-item-container .tree-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .tree-icon{color:#37474f}.capibara nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .nav-item-icon{color:rgba(55,71,79,.2)}.capibara.dark-theme nav.right,.capibara.dark-theme nav.right .button-section{background:#222837}.capibara.dark-theme nav.left{background:#222837;border-color:rgba(64,78,105,.6)}.capibara.dark-theme nav.left .detail-nav-item{border-color:#404e69;background:#222837}.capibara.dark-theme nav.left .detail-nav-item .header-chip{color:#f0f0f0}.capibara.dark-theme nav.left .detail-nav-item .header-chip.red-light{border-color:#aa1a1a}.capibara.dark-theme nav.left .detail-nav-item .header-chip.yellow-light{border-color:#fbcd00}.capibara.dark-theme nav.left .detail-nav-item .header-chip.green-light{border-color:#388e3c}.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item{border-color:rgba(64,78,105,.6)}.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input input{background:#404e69;color:#f0f0f0}.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input input:focus{background:hsla(0,0%,100%,.2)}.capibara.dark-theme nav.left .cap-btn-nav-list .cap-btn-child-nav-item .cap-btn-nav-item-content,.capibara.dark-theme nav.left .cap-btn-nav-list .cap-btn-nav-item .cap-btn-nav-item-content,.capibara.dark-theme nav .nav-item-list .child-nav-item .nav-item-container,.capibara.dark-theme nav .nav-item-list .nav-item .nav-item-container{border-color:rgba(64,78,105,.6)}.capibara.dark-theme nav .nav-item-list .child-nav-item .nav-item-container .tree-icon,.capibara.dark-theme nav .nav-item-list .nav-item .nav-item-container .tree-icon{color:#f0f0f0}.capibara.dark-theme nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon,.capibara.dark-theme nav .nav-item-list .nav-item .nav-item-container .nav-item-icon{color:hsla(0,0%,94.1%,.2)}.capibara .container-tl header{height:var(--header-height);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;top:0;min-width:100%;position:-webkit-sticky;position:sticky;z-index:3;border-bottom:2px solid grey;box-sizing:border-box;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.capibara .container-tl header .header-container-extended{height:auto;position:relative;padding-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));width:100%;box-sizing:border-box;display:flex;flex-direction:column}.capibara .container-tl header .header-container-extended .input-list{padding:1px 0;flex:0 0 auto;display:flex;flex-direction:row}.capibara .container-tl header .header-container-extended .input-list:not(.persistent){display:none}.capibara .container-tl header .header-container-extended .input-list>div{width:var(--day-width)}.capibara .container-tl header .header-container-extended .input-list>div>span{display:block;width:inherit;line-height:var(--header-input-height);height:var(--header-input-height);text-align:center;font-size:.875em}.capibara .container-tl header .header-container-extended .input-list .dia-input input{width:inherit;height:var(--header-input-height);border:1px solid grey;border-left-width:0;border-radius:0;background:hsla(0,0%,100%,.5);text-align:center;font-size:.875em}.capibara .container-tl header .header-container-extended .input-list .dia-input input:active,.capibara .container-tl header .header-container-extended .input-list .dia-input input:focus{background:hsla(0,0%,100%,.8)}.capibara .container-tl header .header-container{position:relative;padding-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));width:100%;display:flex;height:var(--header-labels-height)}.capibara .container-tl header .header-container .header-item{padding:6px 8px;min-width:var(--item-min-width);height:var(--header-height);text-align:center;box-sizing:border-box;position:relative;border-left:1px solid rgba(0,0,0,.1)}.capibara .container-tl header .header-container .header-item span.bottom-text{position:absolute;left:0;bottom:8px;width:100%}.capibara .container-tl header .agno-calendario{display:inline-block;width:-webkit-max-content;width:-moz-max-content;width:max-content}.capibara .container-tl header .agno-calendario .agno{position:-webkit-sticky;position:sticky;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));display:inline-block;padding-left:8px;padding-right:32px;font-size:.75em;margin-top:4px}.capibara .container-tl header .agno-calendario .meses{display:block;display:flex}.capibara .container-tl header .agno-calendario .mes-calendario{display:inline-block;min-width:var(--day-width)}.capibara .container-tl header .agno-calendario .mes-calendario .mes{display:inline-block;position:-webkit-sticky;position:sticky;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--btn-nav-width));padding-left:.5em;padding-right:2em;font-size:.875em;margin-top:6px}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced{width:var(--day-width);max-width:var(--day-width);overflow:hidden}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced.mes-reduced-2{width:calc(var(--day-width)*2);max-width:calc(var(--day-width)*2)}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced.mes-reduced-3{width:calc(var(--day-width)*3);max-width:calc(var(--day-width)*3)}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced.mes-reduced-4{width:calc(var(--day-width)*4);max-width:calc(var(--day-width)*4)}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced .mes-label{width:-webkit-max-content;width:-moz-max-content;width:max-content}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced:after{content:\\\"\\\";background:linear-gradient(90deg,transparent,red);position:absolute;right:0;top:0;height:100%;width:calc(var(--day-width)/2)}.capibara .container-tl header .agno-calendario .mes-calendario .dias{display:flex;margin-top:5px}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario{width:var(--day-width);height:var(--header-day-height);vertical-align:bottom;font-size:.875em;border-right:1px solid rgba(0,0,0,.1);box-sizing:border-box;padding:4px 6px;text-align:center}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable{cursor:pointer}.capibara.header-extended .container-tl header{height:calc(var(--header-height) + var(--ex-header-height))}.capibara.header-extended .container-tl header .header-container-extended .input-list:not(.persistent){display:flex}.capibara .container-tl header{background:#f1fffe;color:#37474f}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f1fffe)}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.weekend{background:rgba(0,0,0,.1);color:#263238}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.today{background:rgba(229,57,53,.9);color:#fff}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.active{background:green;color:#fff}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:hover{background:hsla(0,0%,39.2%,.4)}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:active{background:hsla(0,0%,39.2%,.6)}.capibara .container-tl header .header-container-extended .input-list .dia-input input,.capibara .container-tl header .header-container-extended .input-list div>span{color:#313b50}.capibara.dark-theme .container-tl header{background:#313b50;color:#f0f0f0;border-color:rgba(64,78,105,.6)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#313b50)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario{border-color:rgba(64,78,105,.6)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.weekend{background:#222837;color:#f0f0f0}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.today{background:rgba(183,28,28,.6);color:#f0f0f0}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.active{background:rgba(56,142,60,.6);color:#f0f0f0}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:hover{background:hsla(0,0%,39.2%,.4)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:active{background:hsla(0,0%,39.2%,.6)}.capibara.dark-theme .container-tl header .header-container-extended .input-list div>span{color:hsla(0,0%,100%,.8)!important}.capibara.dark-theme .container-tl header .header-container-extended .input-list .dia-input input{background:rgba(64,78,105,.6);color:hsla(0,0%,100%,.8)!important;border-color:#313b50}.capibara.dark-theme .container-tl header .header-container-extended .input-list .dia-input input:active,.capibara.dark-theme .container-tl header .header-container-extended .input-list .dia-input input:focus{background:hsla(0,0%,100%,.2)}.capibara .container-tl .plot-vertical-container{height:0;width:0;position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width))}.capibara .container-tl .plot-vertical-container .plot-vertical{background:rgba(0,0,0,.3);width:var(--day-width);height:calc(100vh - var(--header-height) - var(--header-top-height));position:absolute;top:0;left:0}.capibara .container-tl .plot-vertical-container .plot-vertical.rain{background:repeating-linear-gradient(53deg,rgba(3,155,229,.2),rgba(3,155,229,.2) 5px,transparent 0,transparent 12px)}.capibara .container-tl .plot-horizontal-container{height:0;width:0;position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width))}.capibara .container-tl .plot-horizontal-container .plot-horizontal{background:rgba(0,0,0,.3);width:100vw;height:var(--item-height);position:absolute;top:0;left:0}.capibara .container-tl .plot-horizontal-container .plot-horizontal.plot-parent{background:rgba(25,118,210,.1)}.capibara .container-tl.extended-right .container-tl .plot-container .plot-vertical{height:calc(100vh - var(--header-height) + var(--ex-header-height) + var(--header-top-height))}.capibara .container-tl footer{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;bottom:0;min-width:100%;height:var(--item-height);position:-webkit-sticky;position:sticky;z-index:2;box-sizing:border-box}.capibara .container-tl footer .footer-container{position:relative;padding-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));box-sizing:border-box;min-width:100%;display:flex}.capibara .container-tl footer .footer-container .footer-item{padding:10px 2px;width:var(--day-width);cursor:default;border-left:1px solid rgba(0,0,0,.1);box-sizing:border-box;height:var(--item-height);text-align:center}.capibara .container-tl footer{background:#78909c;color:#fff}.capibara .container-tl.dark-theme footer{background:#313b50;color:#f0f0f0}.capibara .container-tl .table{position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));top:var(--header-height);width:calc(100% - var(--nav-width) - var(--initial-nav-width) - var(--ex-nav-width) - var(--btn-nav-width));max-height:calc(100% - var(--header-height));height:calc(100% - var(--header-height));margin-top:-1px}.capibara .container-tl .table .day-mouse-over{position:absolute;left:0;top:0;width:var(--day-width);height:var(--item-height);border:3px solid rgba(245,124,0,.5);box-shadow:0 0 2px #f57c00,inset 0 0 3px #f57c00;transition:transform .1s ease;overflow:visible;will-change:transform}.capibara .container-tl .table .day-mouse-over:after,.capibara .container-tl .table .day-mouse-over:before{position:absolute;background:rgba(245,124,0,.1);content:\\\"\\\";display:block}.capibara .container-tl .table .day-mouse-over:after{width:var(--day-width);height:100vh;right:-4px;bottom:calc(var(--item-height) - 2px)}.capibara .container-tl .table .day-mouse-over:before{height:var(--item-height);width:100vw;right:calc(var(--day-width) - 2px);bottom:-4px}.capibara .container-tl .table .background-grid{width:calc(var(--day-width)*20);height:calc(var(--item-height)*20);position:absolute;left:0;top:1px;background-repeat:repeat;background-size:var(--day-width) var(--item-height),calc(var(--day-width)*7) var(--item-height),calc(var(--day-width)*7) var(--item-height);background-image:linear-gradient(90deg,rgba(80,80,80,.3) 1px,transparent 0),linear-gradient(0deg,rgba(80,80,80,.3) 1px,transparent 0),linear-gradient(90deg,transparent calc(var(--day-width)*5),rgba(80,80,80,.1) 0);background-position:0 0,0 0,0 0}.capibara .container-tl .table .draw-box{position:relative}.capibara .container-tl .table .draw-box canvas{position:absolute;left:0;top:0}.capibara.header-extended .container-tl .table{top:calc(var(--header-height) + var(--ex-header-height))}.capibara .select-container{overflow:visible;position:absolute;left:0;top:0;width:0;height:0}.capibara .select-container .selected-day{width:var(--day-width);height:var(--item-height);position:absolute;background:hsla(0,0%,74.1%,.4);box-shadow:inset 0 0 5px hsla(0,0%,74.1%,.8)}.capibara .select-container .selected-day[cap-badge]:after{content:attr(cap-badge);display:block;position:absolute;right:-3px;top:-3px;background:#1565c0;font-size:.75em;color:#fff;width:1.5em;height:1.5em;border-radius:50%;z-index:2;text-align:center;font-weight:700;padding:2px;box-shadow:0 1px 3px rgba(0,0,0,.3)}.capibara .detail-day{min-height:50px;min-width:250px;max-width:400px;border:1px solid grey;padding:.75em;display:flex;flex-flow:column nowrap;margin:0 0 0 1em;box-sizing:border-box;box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);position:absolute;border-radius:5px;transition:all .3s ease;will-change:transform,left,top;transform:translateY(calc(var(--item-height)/2*-1));z-index:4;opacity:1}.capibara .detail-day:after{content:\\\"\\\";background:inherit;width:20px;height:20px;display:block;position:absolute;left:-11px;top:calc(var(--item-height)/2 + 7px);transform:rotate(45deg);border-color:grey;border-style:solid;border-width:0 0 1px 1px}.capibara .detail-day.dd-hide{display:none}.capibara .detail-day.has-right-arrow{margin:0 16px 0 0;transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(calc(var(--item-height)/2*-1))}.capibara .detail-day.has-right-arrow:after{border-width:1px 1px 0 0;left:unset;right:-11px}.capibara .detail-day.has-ceil-arrow{transform:translateY(-7px)}.capibara .detail-day.has-ceil-arrow:after{top:6px}.capibara .detail-day.has-ceil-arrow.has-right-arrow{transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(-7px)}.capibara .detail-day.has-ceil-arrow.has-right-arrow:after{left:unset;right:-11px}.capibara .detail-day.has-middle-arrow{transform:translateY(calc(-50% + var(--item-height)/2))}.capibara .detail-day.has-middle-arrow:after{top:calc(50% - 10px)}.capibara .detail-day.has-middle-arrow.has-right-arrow{transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(calc(-50% + var(--item-height)/2))}.capibara .detail-day.has-middle-arrow.has-right-arrow:after{left:unset;right:-11px}.capibara .detail-day.has-bottom-arrow{transform:translateY(calc(-100% + var(--item-height)))}.capibara .detail-day.has-bottom-arrow:after{top:unset;bottom:4px}.capibara .detail-day.has-bottom-arrow.has-right-arrow{transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(calc(-100% + var(--item-height)))}.capibara .detail-day.has-bottom-arrow.has-right-arrow:after{left:unset;right:-11px}.capibara .detail-day .header-detail .title{font-size:1.25em;font-weight:700;margin-bottom:.25em;min-width:10em;max-width:20em;line-height:unset}.capibara .detail-day .header-detail .subtitle{font-size:.875em;margin-bottom:8px;min-width:10em}.capibara .detail-day .list-detail{margin:0;flex:0 0 auto}.capibara .detail-day .list-detail.list .item-detail{margin:0;font-size:.875em;position:relative;padding:.5em .5em .5em 1em;border-radius:0;box-sizing:border-box;overflow:hidden;background:transparent;border:unset;border-top:1px solid rgba(0,0,0,.1);display:flex;flex-direction:row}.capibara .detail-day .list-detail.list .item-detail .left-icon{width:8px;height:8px;min-height:unset!important;left:1px;top:10px;border-radius:50%}.capibara .detail-day .list-detail.list .item-detail .left-icon.diamond{border-radius:0;transform:rotate(45deg) skew(10deg,10deg)}.capibara .detail-day .list-detail.list .item-detail .left-icon.outlined{background:transparent}.capibara .detail-day .list-detail.list .item-detail .left-icon.triangle{border-radius:0;transform:rotate(45deg) skew(10deg,10deg) translate(3px,3px);width:0;height:0;border-width:5px;border-style:solid;background-color:transparent}.capibara .detail-day .list-detail.list .item-detail .name{flex:0 1 40%;font-weight:700;margin-bottom:0;padding-right:1em}.capibara .detail-day .list-detail.list .item-detail .item-description{flex:1 1 auto;display:flex;flex-direction:column;align-items:start}.capibara .detail-day .list-detail.list .item-detail .item-description .desc{display:flex;margin-bottom:3px;align-items:baseline}.capibara .detail-day .list-detail.list .item-detail .item-description .desc.desc-column{flex-direction:column;align-items:start;width:100%;border-bottom-width:1px;border-bottom-style:solid;margin-bottom:0;padding-bottom:0}.capibara .detail-day .list-detail.list .item-detail .item-description .desc.desc-column:last-child{border-color:transparent}.capibara .detail-day .list-detail.list .item-detail .item-description .desc.desc-column .label{margin-right:0}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .label{display:inline-block;flex:1 1 65%;font-weight:700;margin-right:.5em}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .val{display:flex;align-items:baseline;margin-left:1em}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .prefix,.capibara .detail-day .list-detail.list .item-detail .item-description .desc .suffix{font-size:.85em;flex:0 0 auto}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .value:not(empty){margin-right:.2em}.capibara .detail-day .list-detail.list .item-detail .item-description .desc sup{top:-1em!important}.capibara .detail-day .list-detail.flex{display:flex;flex-flow:row wrap;align-content:flex-start;display:inline-flex;flex-flow:wrap;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;max-height:25%}.capibara .detail-day .list-detail.flex .item-detail{flex:0 0 auto;min-width:8em;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb}.capibara .detail-day .list-detail.column{-moz-columns:7em 3;columns:7em 3;min-width:30em}.capibara .detail-day .list-detail.column .item-detail{display:inline-block;width:100%}.capibara .detail-day .list-detail .item-detail{margin:4px;position:relative;padding:.5em 1em;border-radius:6px;box-sizing:border-box;overflow:hidden}.capibara .detail-day .list-detail .item-detail .name{font-weight:700;margin-bottom:.5em;color:var(--local-color-font,inherit)}.capibara .detail-day .list-detail .item-detail .item-description .desc .label{display:inline-block;font-weight:700}.capibara .detail-day .list-detail .item-detail .left-icon{width:6px;min-height:10px;height:100%;position:absolute;left:0;top:0;background:var(--local-color,inherit)}.capibara .detail-day .list-detail .item-detail .left-icon.outlined{border:1px solid var(--local-color,inherit);box-shadow:inset 0 0 0 1px var(--local-color,inherit)}.capibara .detail-day .list-detail .item-detail .left-icon.triangle{background:transparent;border-color:var(--local-color,inherit) transparent transparent var(--local-color,inherit)}.capibara .detail-day .elements-detail{padding:.5em 0 .25em;display:flex;flex-wrap:wrap}.capibara .detail-day .elements-detail .name{flex:1 0 100%;font-weight:700}.capibara .detail-day .elements-detail .elements-list{margin:4px -4px}.capibara .detail-day .elements-detail .elements-list .element-detail{display:inline-block;padding:.25em .875em;border-radius:3px;color:#fff;margin:.25em}.capibara .detail-day .alert{padding:.5em 0 .25em 2em;position:relative;min-width:15em;min-width:10em;max-width:30em}.capibara .detail-day .alert .alert-icon{max-width:2em;font-size:1.75em;position:absolute;left:0;top:.5em;color:grey}.capibara .detail-day .alert .red{color:#f44336}.capibara .detail-day .msj-container{margin:0 -.78em -.75em;border:1px solid grey;z-index:2}.capibara .detail-day .msj-container pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.capibara .detail-day .msj-container .msj{min-width:10em;max-width:30em;margin:0 0 .5em;padding:.75em;font-size:.875em}.capibara .detail-day .msj-container .msj-detail{display:flex;flex-direction:column;padding:.25em .5em}.capibara .detail-day .msj-container .msj-detail .email{font-size:.875em;font-style:italic;opacity:.5}.capibara .detail-day .msj-container .msj-detail .date{font-size:.725em}.capibara .detail-day{color:#37474f;background:#fff}.capibara .detail-day,.capibara .detail-day .list-detail.list .item-detail,.capibara .detail-day .list-detail.list .item-detail .desc-column,.capibara .detail-day:after{border-color:rgba(0,0,0,.2)}.capibara .detail-day .elements-detail .elements-list .element-detail{background:rgba(55,71,79,.8)}.capibara .detail-day .msj-container{background:#ffecb3;border-color:#ffca28}.capibara .detail-day .msj-container .msj-detail{background:#ffe082;border-color:#ffca28}.capibara.dark-theme .detail-day{color:#f0f0f0;border-color:#404e69;background:#222837}.capibara.dark-theme .detail-day:after{border-color:#404e69}.capibara.dark-theme .detail-day .list-detail .item-detail{background:transparent!important}.capibara.dark-theme .detail-day .list-detail.list .item-detail,.capibara.dark-theme .detail-day .list-detail.list .item-detail .desc-column{border-color:#404e69}.capibara.dark-theme .detail-day .elements-detail .elements-list .element-detail{background:#293243}.capibara.dark-theme .detail-day .msj-container{background:#293243;border-color:rgba(251,192,45,.4)}.capibara.dark-theme .detail-day .msj-container .msj-detail{background:rgba(251,192,45,.1)}.capibara .cap-context-menu-container{position:absolute;left:0;top:0;z-index:10;will-change:transform,left,top}.capibara .cap-context-menu-container.cm-hide .cap-context-menu{visibility:hidden;opacity:0}.capibara .cap-context-menu-container .cap-context-menu{position:absolute;min-width:250px;z-index:2;border-radius:5px;border:1px solid grey;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);font-size:.75em;transition:all .1s linear;visibility:visible;opacity:1;padding:.4em 0;vertical-align:middle}.capibara .cap-context-menu-container .cap-context-menu_item{padding:.5em 1em;flex:0 0 auto;display:flex;flex-direction:row;align-items:center;cursor:pointer}.capibara .cap-context-menu-container .cap-context-menu_item:hover{background:rgba(20,20,20,.2)}.capibara .cap-context-menu-container .cap-context-menu_item.is-disabled{opacity:.5;cursor:unset}.capibara .cap-context-menu-container .cap-context-menu_item.is-disabled:hover{background:none}.capibara .cap-context-menu-container .cap-context-menu_item.is-divider{cursor:unset;height:0;border-bottom:1px solid rgba(20,20,20,.2);padding:0;margin:.3em 1em}.capibara .cap-context-menu-container .cap-context-menu_item_icon{display:inline-block;flex:0 0 auto;padding-right:.5em}.capibara .cap-context-menu-container .cap-context-menu_item_icon svg{width:16px;height:16px}.capibara .cap-context-menu-container .cap-context-menu{color:#37474f;border-color:rgba(0,0,0,.2);background:#fff}.capibara .cap-context-menu-container .cap-context-menu svg path{fill:#37474f}.capibara.dark-theme .cap-context-menu-container .cap-context-menu{color:#f0f0f0;border-color:#404e69;background:#222837}.capibara.dark-theme .cap-context-menu-container .cap-context-menu svg path{fill:#f0f0f0}.capibara .hour-input{border:1px solid grey;border-radius:3px;display:flex;justify-content:center;align-items:center;height:24px;margin:8px 4px;overflow:hidden}.capibara .hour-input input{width:50%;height:inherit;border:1px solid transparent;background:transparent;font-size:.875em}.capibara .hour-input input:active,.capibara .hour-input input:focus{border:1px solid rgba(0,0,0,.1)}.capibara .hour-input span{width:8px;text-align:center}.capibara .hour-input .hh{text-align:right}.capibara .time{border-radius:6px;display:inline-block;font-size:0}.capibara .time .symbol{display:inline-block;height:auto;width:20px;font-size:2rem;text-align:center;vertical-align:center}.capibara .time input{border-radius:6px;border:2px solid transparent;width:52px;text-align:center;font-size:2rem;position:relative;transition:all .1s ease;outline:none;background:transparent;padding:6px}.capibara .time input:active,.capibara .time input:focus{transform:scale(1.03)}.capibara .buttons-group{display:flex;flex-direction:row}.capibara .buttons-group button.cap-btn-outline{border-radius:0;margin:0 -2px 0 0}.capibara .buttons-group button.cap-btn-outline:first-of-type{border-radius:6px 0 0 6px;margin-left:4px}.capibara .buttons-group button.cap-btn-outline:last-of-type{border-radius:0 6px 6px 0;margin-right:4px}.capibara .input-box-tab-container{display:flex;width:100%;flex-wrap:nowrap;border-radius:6px 6px 0 0;border:solid grey;border-width:2px 2px 0}.capibara .input-box-tab-container .input-box-tab{flex:1 1 auto;padding:.3em 1em;font-size:.9em;border-right:1px solid grey;cursor:pointer}.capibara .input-box-tab-container .input-box-tab.active{background:hsla(0,0%,58.8%,.3)}.capibara .input-box-tab-container .input-box-tab:last-child{border-right:none}.capibara .input-box-tab-container+.input-box{border-radius:0 0 6px 6px}.capibara .input-box{margin:0 16px;min-height:180px;border:2px solid grey;border-radius:6px;overflow-y:scroll;padding-bottom:60px;width:100%;max-height:300px}.capibara .input-box .search-input-container{padding:.3em;max-width:100%;text-align:center;border-bottom:1px solid hsla(0,0%,39.2%,.3);position:relative}.capibara .input-box .search-input-container .search-input{border:1px solid #646464;border-radius:13px;height:26px;padding:.5em 1em;max-width:100%;width:100%;font-size:.8em;color:inherit}.capibara .input-box .search-input-container .search-input:-moz-placeholder-shown+.search-input-clear{display:none}.capibara .input-box .search-input-container .search-input:-ms-input-placeholder+.search-input-clear{display:none}.capibara .input-box .search-input-container .search-input:placeholder-shown+.search-input-clear{display:none}.capibara .input-box .search-input-container .search-input-clear{position:absolute;right:1em;top:.4em;color:hsla(0,0%,39.2%,.6);background-color:transparent;border-style:none}.capibara .input-box .mini-input-section{padding:.5em 2em .5em .5em;text-align:left;width:100%;position:relative;border-bottom:1px solid hsla(0,0%,39.2%,.3)}.capibara .input-box .mini-input-section.has-icon{padding:.5em 2em .5em 1.5em}.capibara .input-box .mini-input-section.clickeable{cursor:pointer}.capibara .input-box .mini-input-section.clickeable:hover label{cursor:pointer;text-decoration:underline}.capibara .input-box .mini-input-section.is-title{background:hsla(0,0%,39.2%,.1)}.capibara .input-box .mini-input-section.is-title .mini-input-section--title{opacity:.6}.capibara .input-box .mini-input-section--tooltip{position:absolute;right:0;top:1.5em;display:none;padding:.5em;margin:1em;color:#000;border-radius:3px;z-index:2;box-shadow:0 2px 5px rgba(0,0,0,.3)}.capibara .input-box .mini-input-section label{display:flex;flex-direction:row;flex-wrap:nowrap;font-size:.875em;align-items:baseline}.capibara .input-box .mini-input-section--titles{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:start;max-width:100%;flex:0 1 auto}.capibara .input-box .mini-input-section--content{display:flex;flex-direction:row;justify-content:end;flex:1 0 auto;font-size:1em;padding:0 .5em}.capibara .input-box .mini-input-section--subtitle,.capibara .input-box .mini-input-section--title{position:relative;width:unset;max-width:100%;flex-grow:1}.capibara .input-box .mini-input-section--subtitle{font-size:.875em}.capibara .input-box .mini-input-section--suffix{flex:0 0 auto;font-size:.875em;display:flex;flex-direction:column}.capibara .input-box .mini-input-section--icon{display:inline-block;position:absolute;left:.5em;top:.75em;width:.75em;height:.75em;border-radius:50%;background:var(--local-color,grey);box-shadow:0 1px 3px rgba(0,0,0,.3)}.capibara .input-box .mini-input-section--link{opacity:.6;color:#2196f3;display:inline-block;position:absolute;right:.5em;top:.75em}.capibara .input-box .mini-input-section--link svg{width:18px!important;height:18px!important}.capibara .input-box .mini-input-section:hover .mini-input-section--tooltip{display:block}.capibara .input-box .mini-input-section input{text-align:center;width:4em;margin-right:.5em;border:1px solid grey;border-radius:3px;background:hsla(0,0%,100%,.2);font-size:1em;flex:0 0 4em}.capibara .input-box .mini-input-section input:active,.capibara .input-box .mini-input-section input:focus{background:hsla(0,0%,100%,.8)}.capibara .input-box .mini-input-section--footer{margin-top:.25em;display:flex;justify-content:space-between}.capibara select.input-select{padding:.3em 1em;width:100%;flex:1 0 100%;border:1px solid grey;border-radius:6px;background:inherit;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.capibara select.input-select option{padding:.3em;color:inherit;background:inherit}.capibara .input-section-list{margin:16px 0}.capibara .input-section-list .input-section-title{margin-bottom:8px}.capibara .input-section-list .input-section{margin:0 16px 8px}.capibara .input-section{margin:16px;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;position:relative}.capibara .input-section.to-right{align-items:end}.capibara .input-section .small-close{position:absolute;right:-10px;top:-10px;width:1.2em;height:1.2em;font-size:.9em;border:1px solid #fff;box-shadow:1px 1px 2px rgba(0,0,0,.4);text-align:center;color:#fff;background:red;border-radius:50%;vertical-align:middle}.capibara .input-section .text-subtitle{text-align:center;align-self:center}.capibara .input-section .input-section-title{flex:1 1 100%;width:100%;margin:0 auto;display:flex;flex-direction:row;justify-content:center;align-items:center}.capibara .input-section .input-section-title button{margin-left:auto;flex:0 0 auto;display:flex;flex-wrap:nowrap}.capibara .input-section .input-section-link{flex:1 1 100%;display:flex;flex-direction:row;justify-content:center;align-items:baseline;padding-top:.25em}.capibara .input-section .input-section-link a{color:#2196f3;margin-top:.75rem}.capibara .input-section.is-invalid .input-box,.capibara .input-section.is-invalid input.nav-input{border:2px solid red!important;box-shadow:0 0 3px red!important}.capibara .input-section.dense input.nav-input{width:50%;font-size:1em;padding:3px 6px}.capibara .input-section input.nav-input{border:2px solid hsla(0,0%,50.2%,.7);border-radius:6px;width:100%;min-width:130px;max-width:170px;font-size:2em;text-align:center;padding:3px 6px;background:transparent;outline:none;transition:all .1s ease;margin-bottom:8px}.capibara .input-section input.nav-input:active,.capibara .input-section input.nav-input:focus{border:2px solid grey;box-shadow:0 4px 6px hsla(0,0%,50.2%,.2)}.capibara .input-section input.nav-input.small{font-size:1.3em}.capibara .input-section .nav-input-file{border:2px solid hsla(0,0%,50.2%,.7);border-radius:6px;width:70%;min-width:130px;padding:3px 6px;text-align:center;background:transparent;outline:none;transition:all .1s ease;position:relative}.capibara .input-section .nav-input-file:active,.capibara .input-section .nav-input-file:focus{border:2px solid grey;box-shadow:0 4px 6px hsla(0,0%,50.2%,.2)}.capibara .input-section .nav-input-file label{flex:1 1 auto}.capibara .input-section .nav-input-file input[type=file]{display:none}.capibara .input-section .input-section-col{width:auto;position:relative;flex:1 1 10%}.capibara .input-section .input-section-col input.nav-input{min-width:unset;width:calc(100% - 1rem);max-width:7rem}.capibara .input-section.msj-input-container textarea.msj{outline:none;border-radius:6px;border:2px solid grey;width:100%;min-width:100%;max-width:100%;min-height:100px;transition:all .1s ease;padding:8px;box-sizing:border-box}.capibara .input-section.msj-input-container textarea.msj:active,.capibara .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,160,0,.2)}.capibara .input-section input[type=checkbox]{width:18px;height:18px;vertical-align:middle}.capibara .time{border:2px solid rgba(0,128,0,.7);color:green}.capibara .time .symbol,.capibara .time input{color:#37474f}.capibara .time input:active,.capibara .time input:focus{border-color:green;box-shadow:0 4px 6px rgba(0,128,0,.2)}.capibara .input-box-tab-container,.capibara .input-box-tab-container .input-box-tab{border-color:green}.capibara .input-box{color:#37474f;border:2px solid green}.capibara .input-box .mini-input-section input:active,.capibara .input-box .mini-input-section input:focus{background:#fafafa}.capibara .input-box .mini-input-section--tooltip{background:#fafafa;color:#37474f;border:1px solid #37474f}.capibara .input-section select.input-select{color:#37474f;border:2px solid rgba(0,128,0,.7)}.capibara .input-section select.input-select:active,.capibara .input-section select.input-select:focus{border:2px solid green;box-shadow:0 4px 6px rgba(0,128,0,.2)}.capibara .input-section select.input-select option{background:#fafafa;color:#37474f}.capibara .input-section .nav-input-file,.capibara .input-section input.nav-input{color:#37474f;border:2px solid rgba(0,128,0,.7)}.capibara .input-section .nav-input-file:active,.capibara .input-section .nav-input-file:focus,.capibara .input-section input.nav-input:active,.capibara .input-section input.nav-input:focus{border:2px solid green;box-shadow:0 4px 6px rgba(0,128,0,.2)}.capibara .input-section.msj-input-container textarea.msj{background:rgba(255,249,196,.6);border:2px solid rgba(0,0,0,.4)}.capibara .input-section.msj-input-container textarea.msj:active,.capibara .input-section.msj-input-container textarea.msj:focus{background:rgba(255,249,196,.8);box-shadow:0 4px 6px transparent}.capibara.dark-theme .time{border:2px solid rgba(64,78,105,.7);color:#404e69}.capibara.dark-theme .time .symbol,.capibara.dark-theme .time input{color:#f0f0f0}.capibara.dark-theme .time input:active,.capibara.dark-theme .time input:focus{border-color:#404e69;box-shadow:0 4px 6px rgba(64,78,105,.2)}.capibara.dark-theme .input-box-tab-container,.capibara.dark-theme .input-box-tab-container .input-box-tab{border-color:#404e69}.capibara.dark-theme .input-box{color:#f0f0f0;border:2px solid #404e69}.capibara.dark-theme .input-box .mini-input-section input{background:#404e69;color:#f0f0f0}.capibara.dark-theme .input-box .mini-input-section input:active,.capibara.dark-theme .input-box .mini-input-section input:focus{background:#222837}.capibara.dark-theme .input-box .mini-input-section--tooltip{background:#222837;color:#f0f0f0;border:1px solid #f0f0f0}.capibara.dark-theme .input-section select.input-select{color:#f0f0f0;border:2px solid rgba(64,78,105,.7)}.capibara.dark-theme .input-section select.input-select:active,.capibara.dark-theme .input-section select.input-select:focus{border:2px solid #404e69;box-shadow:0 4px 6px rgba(64,78,105,.2)}.capibara.dark-theme .input-section select.input-select option{background:#222837;color:#f0f0f0}.capibara.dark-theme .input-section .nav-input-file,.capibara.dark-theme .input-section input.nav-input{color:#f0f0f0;border:2px solid rgba(64,78,105,.7)}.capibara.dark-theme .input-section .nav-input-file:active,.capibara.dark-theme .input-section .nav-input-file:focus,.capibara.dark-theme .input-section input.nav-input:active,.capibara.dark-theme .input-section input.nav-input:focus{border:2px solid #404e69;box-shadow:0 4px 6px rgba(64,78,105,.2)}.capibara.dark-theme .input-section.msj-input-container textarea.msj{background:rgba(251,192,45,.1);border:2px solid #9e9e9e;color:#f0f0f0}.capibara.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.dark-theme .input-section.msj-input-container textarea.msj:focus{background:rgba(251,192,45,.3);box-shadow:0 4px 6px hsla(0,0%,62%,.2)}.capibara button{outline:none;cursor:pointer}.capibara button.cap-rotate .mdi:before,.capibara button.cap-rotate svg{transform:rotate(180deg)}.capibara .cap-btn-icon:focus,.capibara .cap-btn-outline:focus,.capibara .cap-btn-raised:focus,.capibara .cap-btn-shape:focus{box-shadow:0 0 0 3px rgba(0,0,0,.3)}.capibara .cap-btn-icon:disabled,.capibara .cap-btn-outline:disabled,.capibara .cap-btn-raised:disabled,.capibara .cap-btn-shape:disabled{opacity:.6}.capibara button.cap-btn-sm{font-size:.75em;margin:4px;padding:4px 8px}.capibara .cap-btn-outline{cursor:pointer;color:grey;border:2px solid grey;padding:8px 16px;margin:0 8px;border-radius:6px;font-weight:700}.capibara .cap-btn-outline.selected{background:grey}.capibara .cap-btn-raised{cursor:pointer;padding:8px 16px;margin:0 8px;border-radius:6px;background:grey;border:2px solid grey;font-weight:700}.capibara .cap-btn-icon{display:inline-block;height:32px;width:32px;outline:none;cursor:pointer;vertical-align:middle;margin-right:16px;margin-top:4px;background:transparent;border:none;padding:4px;font-size:18px;color:grey;border-radius:50%;position:relative}.capibara .cap-btn-icon svg{fill:grey}.capibara .cap-btn-icon.cap-btn-has-badge:after{content:\\\"\\\";display:block;position:absolute;right:-.2em;top:-.2em;width:.8em;height:.8em;background:grey;border-radius:50%}.capibara .cap-btn-icon.cap-btn-icon-raised{background:#fff;border:none}.capibara .cap-btn-icon.cap-btn-icon-outline{border:1px solid grey}.capibara .cap-btn-icon.cap-btn-toggle-sidebar{position:absolute;right:10px;top:10px;z-index:2;margin:0}.capibara .cap-btn-icon .mdi{font-size:24px}.capibara .cap-btn-icon .loading-icon{display:none;position:absolute;left:0;top:0}.capibara .cap-btn-icon.loading>:not(.loading-icon){display:none}.capibara .cap-btn-icon.loading .loading-icon{display:unset}.capibara .cap-btn-shape{display:inline-block;width:24px;height:24px;outline:none;cursor:pointer;vertical-align:middle;margin:4px;background:transparent;border:none;padding:0;font-size:14px}.capibara .cap-btn-shape .mdi{font-size:24px}.capibara .cap-btn-shape.cap-btn-circle{position:relative;border:none;padding:0}.capibara .cap-btn-shape.cap-btn-circle:before{content:\\\"\\\";display:block;position:absolute;left:2px;top:2px;border-radius:50%;background:grey;width:22px;height:22px}.capibara .cap-btn-shape.cap-btn-circle span{position:absolute;left:1px;top:6px;width:100%;display:inline-block;color:#fff;text-align:center}.capibara .cap-btn-shape.cap-btn-circle-outline{position:relative;border:none;padding:0}.capibara .cap-btn-shape.cap-btn-circle-outline:before{content:\\\"\\\";display:block;position:absolute;left:2px;top:3px;border-radius:50%;border:2px solid grey;width:22px;height:22px}.capibara .cap-btn-shape.cap-btn-circle-outline span{position:absolute;left:1px;top:6px;width:100%;display:inline-block;color:grey;text-align:center}.capibara .cap-btn-shape.cap-btn-drop{position:relative;border:none;padding:0}.capibara .cap-btn-shape.cap-btn-drop:before{content:\\\"\\\";display:block;position:absolute;left:4px;top:0;border-radius:0 50% 50% 50%;background:grey;width:20px;height:20px;transform:translate(-2px,4px) rotate(45deg)}.capibara .cap-btn-shape.cap-btn-drop span{position:absolute;left:0;top:6px;width:100%;display:inline-block;color:#fff;text-align:center}.capibara.extended-right [toggle-sidebar-right] svg,.capibara.header-extended [toggle-header] svg{transform:rotate(180deg)}.capibara .cap-btn-raised{background:#00f;border:2px solid #00f;color:#fff}.capibara .cap-btn-outline{background:transparent;border:2px solid #00f;color:#00f}.capibara .cap-btn-outline.selected{background:#00f;color:#fff}.capibara .cap-btn-shape{color:#37474f}.capibara .cap-btn-shape.cap-btn-circle,.capibara .cap-btn-shape.cap-btn-drop{color:#fff}.capibara .cap-btn-shape.cap-btn-circle:before,.capibara .cap-btn-shape.cap-btn-drop:before{background:#388e3c}.capibara .cap-btn-shape.cap-btn-circle.is-empty:before,.capibara .cap-btn-shape.cap-btn-drop.is-empty:before{background:#616161}.capibara .cap-btn-shape.cap-btn-circle-outline:before{border-color:#388e3c}.capibara .cap-btn-icon,.capibara .cap-btn-shape.cap-btn-circle-outline span{color:#37474f}.capibara .cap-btn-icon.cap-btn-has-badge:after{background:rgba(245,124,0,.8)}.capibara .cap-btn-icon.cap-btn-icon-raised{background:rgba(84,110,122,.1);border-color:#546e7a;color:#546e7a}.capibara .cap-btn-icon.cap-btn-icon-raised:active{background:#546e7a}.capibara .cap-btn-icon.cap-btn-icon-raised:focus,.capibara .cap-btn-icon.cap-btn-icon-raised:hover{background:rgba(84,110,122,.3)}.capibara .cap-btn-icon.cap-btn-icon-outline{background:transparent;border-color:#546e7a;color:#546e7a}.capibara .cap-btn-icon.cap-btn-icon-outline:active{background:rgba(84,110,122,.3)}.capibara .cap-btn-icon.cap-btn-icon-outline:focus,.capibara .cap-btn-icon.cap-btn-icon-outline:hover{background:rgba(84,110,122,.1)}.capibara.dark-theme .cap-btn-raised{background:#404e69;border:2px solid #f0f0f0;color:#f0f0f0}.capibara.dark-theme .cap-btn-outline{background:transparent;border:2px solid #f0f0f0;color:#f0f0f0}.capibara.dark-theme .cap-btn-outline.selected{background:#404e69;color:#f0f0f0}.capibara.dark-theme .cap-btn-shape,.capibara.dark-theme .cap-btn-shape.cap-btn-circle,.capibara.dark-theme .cap-btn-shape.cap-btn-drop{color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-shape.cap-btn-circle:before,.capibara.dark-theme .cap-btn-shape.cap-btn-drop:before{background:#2e7d32}.capibara.dark-theme .cap-btn-shape.cap-btn-circle.is-empty:before,.capibara.dark-theme .cap-btn-shape.cap-btn-drop.is-empty:before{background:#616161}.capibara.dark-theme .cap-btn-shape.cap-btn-circle-outline:before{border-color:#2e7d32}.capibara.dark-theme .cap-btn-icon,.capibara.dark-theme .cap-btn-shape.cap-btn-circle-outline span{color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-has-badge:after{background:rgba(56,142,60,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised{background:hsla(0,0%,94.1%,.1);border-color:hsla(0,0%,94.1%,.8);color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised:active{background:#f0f0f0}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised:focus,.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised:hover{background:hsla(0,0%,94.1%,.3)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline{background:transparent;border-color:hsla(0,0%,94.1%,.8);color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline:active{background:hsla(0,0%,94.1%,.1)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline:focus,.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline:hover{background:hsla(0,0%,94.1%,0)}.capibara [cap-tooltip]{position:relative;display:inline-block}.capibara [cap-tooltip]:hover:before{padding:8px;opacity:1;border-width:1px;height:auto}.capibara [cap-tooltip]:before{opacity:.3;height:0;padding:0 8px;text-align:left;overflow:hidden;font-size:14px;font-weight:400;position:absolute;top:calc(100% + 18px);left:50%;transform:translatex(-50%);background-color:rgba(0,0,0,.7);border:0 solid #000;border-radius:5px;color:#fff;content:attr(cap-tooltip);text-transform:none;min-width:100px;z-index:5}.capibara .float-box-container{overflow:visible;position:absolute;left:0;top:0;width:0;height:0}.capibara .float-box-container:hover .float-box-ext .long-bar-container .long-bar{opacity:.3}.capibara .float-box-container .float-box{width:var(--day-width);max-width:var(--day-width);min-width:var(--day-width);height:var(--item-height);max-height:var(--item-height);min-height:var(--item-height);position:absolute;overflow:hidden;cursor:default;transition:box-shadow .2s ease;display:flex;flex-direction:column;will-change:display}.capibara .float-box-container .float-box[data-is-visible=false]{display:none!important}.capibara .float-box-container .float-box:hover{z-index:2}.capibara .float-box-container .float-box:hover+.float-box-ext .long-bar{z-index:6;opacity:1}.capibara .float-box-container .float-box.has-message:after{content:\\\"\\\";display:block;position:absolute;width:0;height:0;right:0;top:0;border-color:red red transparent transparent;border-style:solid;border-width:6px}.capibara .float-box-container .float-box.has-errors:before{content:\\\"\\\";display:block;position:absolute;width:7px;height:7px;left:1px;top:1px;border-radius:50%;background:#d32f2f;z-index:1}.capibara .float-box-container .float-box .dot-container-bottom,.capibara .float-box-container .float-box .dot-container-middle,.capibara .float-box-container .float-box .dot-container-top{position:absolute;left:0;width:100%;overflow:visible;height:0;display:flex;justify-content:center}.capibara .float-box-container .float-box .dot-container-top{top:1px}.capibara .float-box-container .float-box .dot-container-top .dot{border-radius:0 0 50% 50%}.capibara .float-box-container .float-box .dot-container-middle{top:calc(50% - 4px)}.capibara .float-box-container .float-box .dot-container-bottom{bottom:5px}.capibara .float-box-container .float-box .dot-container-bottom .dot{border-radius:0 0 50% 50%}.capibara .float-box-container .float-box .dot{width:8px;min-width:8px;height:8px;border-radius:50%;margin:1px;vertical-align:middle;border:1px solid var(--local-color,hsla(0,0%,100%,.8));background:var(--local-color,hsla(0,0%,39.2%,.5))}.capibara .float-box-container .float-box .dot.diamond{border-radius:0;transform:rotate(45deg) skew(10deg,10deg)}.capibara .float-box-container .float-box .dot.outlined{background-color:transparent}.capibara .float-box-container .float-box .dot.triangle{width:0;height:0;transform:rotate(45deg) skew(10deg,10deg) translate(1px,1px);border-left:5px solid var(--local-color,hsla(0,0%,39.2%,.8));border-bottom:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--local-color,hsla(0,0%,39.2%,.8));border-radius:0;background-color:transparent}.capibara .float-box-container .float-box span.data{width:100%;display:block;position:relative;font-size:.875em;text-align:center;box-sizing:border-box;height:calc(var(--item-height)/2);line-height:calc(var(--item-height)/2);margin-bottom:2px;font-weight:700;box-shadow:inset 0 0 10px hsla(0,0%,100%,.2);border-radius:3px;color:var(--local-color-font,#fff);-webkit-backdrop-filter:opacity(20%);backdrop-filter:opacity(20%);background:var(--local-color,rgba(0,0,0,.4));border:2px solid var(--local-color,rgba(0,0,0,.2))}.capibara .float-box-container .float-box span.data.shape-outlined{background-color:transparent!important}.capibara .float-box-container .float-box span.data.shape-outlined:before{content:\\\"\\\";opacity:.3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:var(--local-color,inherit);position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block;z-index:-1}.capibara .float-box-container .float-box span.data.shape-bar{height:calc(var(--item-height)/4 - 1.5px);width:calc(var(--day-width) - 6px);line-height:0;color:transparent;border-radius:1px;margin:0 3px}.capibara .float-box-container .float-box span.data.shape-bar:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.data.shape-bar-outlined{height:calc(var(--item-height)/4 - 1.5px);width:calc(var(--day-width) - 6px);line-height:0;color:transparent;border-radius:1px;margin:0 3px;background-color:transparent!important}.capibara .float-box-container .float-box span.data.shape-bar-outlined:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.data.shape-bar-outlined:before{content:\\\"\\\";opacity:.3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:var(--local-color,inherit);position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block}.capibara .float-box-container .float-box span.data.shape-bar-dashed{height:calc(var(--item-height)/4 - 1.5px);width:calc(var(--day-width) - 6px);line-height:0;color:transparent;border-radius:1px;margin:0 3px;background-color:transparent!important}.capibara .float-box-container .float-box span.data.shape-bar-dashed:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.data.shape-bar-dashed:before{content:\\\"\\\";background:var(--local-color,inherit);position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block;background-color:transparent;background-size:10px 10px;background-image:repeating-linear-gradient(45deg,var(--local-color,inherit),var(--local-color,inherit) 3px,transparent 0,transparent 50%)}.capibara .float-box-container .float-box span.rowdot--row{display:flex;max-height:calc(var(--item-height)/4 - 1px);height:calc(var(--item-height)/4 - 1px);width:calc(var(--day-width) - 2px);line-height:0;color:transparent;margin:1px;border-color:var(--local-color,rgba(0,0,0,.2))}.capibara .float-box-container .float-box span.rowdot--row:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.rowdot--row:empty{display:none!important}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot{width:calc(var(--day-width)/4 - 2px);height:calc(var(--item-height)/4 - 2px);margin-right:1px;vertical-align:middle;border:3px solid var(--local-color,hsla(0,0%,100%,.8));background:var(--local-color,hsla(0,0%,39.2%,.8));box-shadow:0 0 1px 1px rgba(0,0,0,.2)}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot.shape-outlined{background-color:hsla(0,0%,39.2%,.2)}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot.shape-rounded{border-radius:50%;width:calc(var(--item-height)/4 - .5px)}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot.shape-outlined-rounded{border-radius:50%;background-color:transparent;width:calc(var(--item-height)/4 - .5px)}.capibara .float-box-container .float-box .plot-floatbox-container{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}.capibara .float-box-container .float-box .plot-floatbox-container .plot-floatbox{position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--local-color,rgba(0,0,0,.4));transition:opacity .2s ease}.capibara .float-box-container .float-box .plot-floatbox-container .plot-floatbox.stripe{background:repeating-linear-gradient(53deg,var(--local-color,rgba(0,0,0,.4)),var(--local-color,rgba(0,0,0,.4)) 5px,transparent 0,transparent 12px)}.capibara .float-box-container .float-box .plot-floatbox-container .plot-floatbox.stripe-inverse{background:repeating-linear-gradient(127deg,var(--local-color,rgba(0,0,0,.4)),var(--local-color,rgba(0,0,0,.4)) 5px,transparent 0,transparent 12px)}.capibara .float-box-container .float-box-ext{position:absolute;overflow:visible;cursor:default;transition:box-shadow .2s ease;will-change:display;pointer-events:none}.capibara .float-box-container .float-box-ext .long-bar-container{position:absolute;left:var(--day-width);top:0;display:flex;flex-direction:column;justify-content:start;align-items:start}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar{width:calc(var(--day-width, 0)*var(--long, 0) - var(--day-width, 0)*0.5);min-width:calc(var(--day-width, 0)*var(--long, 0) - var(--day-width, 0)*0.5);height:calc(var(--item-height)/4 - 3.5px);line-height:0;color:transparent;background:var(--local-color,rgba(0,0,0,.4));border-radius:0 3px 3px 0;margin-left:-3px;margin-top:1px;margin-bottom:1px;opacity:var(--local-opacity,1);border:2px solid rgba(0,0,0,.2);border-left-width:0;transition:opacity .2s ease}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar:hover{z-index:10}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar.solid{opacity:1}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar:first-of-type{margin-top:4px}.capibara .float-box-container .float-box:hover{box-shadow:0 0 2px 7px rgba(113,189,255,.4)}.capibara .float-box-container .float-box:hover+.float-box-ext .long-bar{box-shadow:0 0 2px 4px rgba(113,189,255,.4)}.capibara .float-box-container .float-box+.float-box-ext .long-bar.red-light{background:#f84747}.capibara .float-box-container .float-box+.float-box-ext .long-bar.yellow-light{background:#fdd835}.capibara .float-box-container .float-box+.float-box-ext .long-bar.green-light{background:#38993d}.capibara .float-box-container .float-box span.data.shape-bar{border-color:rgba(0,0,0,.2)}.capibara.dark-theme .float-box-container .float-box:hover{box-shadow:0 0 2px 7px hsla(0,0%,47.8%,.6)}.capibara.dark-theme .float-box-container .float-box:hover+.float-box-ext .long-bar{box-shadow:0 0 2px 4px hsla(0,0%,47.8%,.6)}.capibara.dark-theme .float-box-container .float-box+.float-box-ext .long-bar.red-light{background:#aa1a1a}.capibara.dark-theme .float-box-container .float-box+.float-box-ext .long-bar.yellow-light{background:#fbcd00}.capibara.dark-theme .float-box-container .float-box+.float-box-ext .long-bar.green-light{background:#388e3c}.capibara.dark-theme .float-box-container .float-box span.data.shape-bar{border-color:rgba(0,0,0,.3)}.capibara .progress-bar{width:100%;height:4px;background-color:hsla(0,0%,86.7%,.2);overflow:hidden;position:absolute;left:0;bottom:0;transition:height 1s ease}.capibara .progress-bar.hide-progress{height:0}.capibara .progress-bar:before{-webkit-animation-name:loading-fast1;animation-name:loading-fast1;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.capibara .progress-bar:after,.capibara .progress-bar:before{content:\\\"\\\";position:absolute;transform:translateX(-100%);width:62.5%;height:100%;background-color:#292929;-webkit-animation-duration:2s;animation-duration:2s}.capibara .progress-bar:after{-webkit-animation-name:loading-fast2;animation-name:loading-fast2;-webkit-animation-delay:1.3s;animation-delay:1.3s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}span.mdi{min-width:14px;min-height:14px;display:inline-block}span.mdi.mdi-subdirectory-arrow-right{color:rgba(0,0,0,.2)}.capibara .light{display:block;width:18px;height:18px;flex:0 0 18px;border-radius:50%;margin:12px 8px;border:2px solid rgba(0,0,0,.3);background:var(--light-color,unset);border-color:hsla(0,0%,100%,.8)}.capibara .light.red-light{background:#f84747}.capibara .light.yellow-light{background:#fdd835}.capibara .light.green-light{background:#38993d}.capibara .light.disabled-light{background:#737373}.capibara .light.blue-light{background:#0277bd}.capibara.dark-theme .light{border-color:#404e69}.capibara.dark-theme .light.red-light{background:#aa1a1a}.capibara.dark-theme .light.yellow-light{background:#fbcd00}.capibara.dark-theme .light.green-light{background:#388e3c}.capibara select.tabs-select{background:grey;color:#fff;font-size:16px;outline:none;width:100px;padding:3px 18px;font-weight:700;border:1px solid transparent;margin:8px;border-radius:30px;transition:background .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.capibara select.tabs-select option{color:grey;background:#fff;padding:15px}.capibara select.tabs-select:after{content:\\\"\\\";display:block;position:absolute;right:10px;top:4px;border-width:4px;border-color:#fff;z-index:2}.capibara select.tabs-select.disabled{color:grey}.capibara select.tabs-select:hover{border-color:grey}\", \"\"]);\n// Exports\nmodule.exports = exports;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvc2Nzcy9zdHlsZS5zY3NzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2FwaWJhcmEvLi9zcmMvc2Nzcy9zdHlsZS5zY3NzPzQxM2YiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xudmFyIF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyA9IHJlcXVpcmUoXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpO1xuZXhwb3J0cyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhmYWxzZSk7XG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCJAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCwzMDA7MCw0MDA7MCw1MDA7MCw3MDA7MCw5MDA7MSwzMDA7MSw0MDA7MSw1MDA7MSw3MDA7MSw5MDAmZGlzcGxheT1zd2FwKTtcIl0pO1xuLy8gTW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCI6cm9vdHstLWhlYWRlci10b3AtaGVpZ2h0OjQwcHg7LS1oZWFkZXItaGVpZ2h0Ojk4cHg7LS1oZWFkZXItbGFiZWxzLWhlaWdodDo1MHB4Oy0taGVhZGVyLWRheS1oZWlnaHQ6MjRweDstLWV4LWhlYWRlci1oZWlnaHQ6MTEwcHg7LS1oZWFkZXItaW5wdXQtaGVpZ2h0OjIwcHg7LS1uYXYtd2lkdGg6MjAwcHg7LS1uYXYtaXRlbS1jb2wtd2lkdGg6NjBweDstLWluaXRpYWwtbmF2LXdpZHRoOjBweDstLWV4LW5hdi13aWR0aDowcHg7LS1idG4tbmF2LXdpZHRoOjExN3B4Oy0tbmF2LXJpZ2h0LXdpZHRoOjMwMHB4Oy0taXRlbS1taW4td2lkdGg6MTAwcHg7LS1pdGVtLWhlaWdodDo0NXB4Oy0tZGF5LXdpZHRoOjQ1cHg7LS1mb250LXNpemU6MTZweH1ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2VNZXNzYWdlezAle2JvcmRlci1jb2xvcjpyZ2JhKDIxMSw0Nyw0NywuMykgcmdiYSgyMTEsNDcsNDcsLjMpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fXRve2JvcmRlci1jb2xvcjojZDMyZjJmICNkMzJmMmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9fUBrZXlmcmFtZXMgcHVsc2VNZXNzYWdlezAle2JvcmRlci1jb2xvcjpyZ2JhKDIxMSw0Nyw0NywuMykgcmdiYSgyMTEsNDcsNDcsLjMpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fXRve2JvcmRlci1jb2xvcjojZDMyZjJmICNkMzJmMmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9fUAtd2Via2l0LWtleWZyYW1lcyBwdWxzZUJhY2tncm91bmR7MCV7YmFja2dyb3VuZDpyZ2JhKDIxMSw0Nyw0NywuMyl9dG97YmFja2dyb3VuZDojZDMyZjJmfX1Aa2V5ZnJhbWVzIHB1bHNlQmFja2dyb3VuZHswJXtiYWNrZ3JvdW5kOnJnYmEoMjExLDQ3LDQ3LC4zKX10b3tiYWNrZ3JvdW5kOiNkMzJmMmZ9fUAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nLWZhc3QxezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX00MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpfX1Aa2V5ZnJhbWVzIGxvYWRpbmctZmFzdDF7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfTQwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSl9fUAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nLWZhc3QyezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0xNSV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpfX1Aa2V5ZnJhbWVzIGxvYWRpbmctZmFzdDJ7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfTE1JXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSl9fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojZGY1NTRiIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojZGY1NTRifS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2ZkZmFmOX0uY2FwaWJhcmEuYy1yZWQ6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2ZkZmFmOTtib3JkZXItY29sb3I6I2Y5OWQ5N30uY2FwaWJhcmEuYy1yZWQ6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNmZGZhZjk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZjk5ZDk3fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2ZkZmFmOSkhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2Y5OWQ5N30uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNiYTE2MGF9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiNiYTE2MGF9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1yZWQgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtcmVkIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyLC5jYXBpYmFyYS5jLXJlZCAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLXJlZCAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXJlZCAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzYhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1yZWQgc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6I2Y0NDMzNiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtcmVkIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1yZWQgLnRpbWUgLnN5bWJvbHtjb2xvcjojZjQ0MzM2fS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXJlZCAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2Y0NDMzNjtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI0NCw2Nyw1NCwuMil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLXJlZCAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXJlZCAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmNDQzMzY7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNDQsNjcsNTQsLjIpfS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0e2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZjQ0MzM2O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjQ0LDY3LDU0LC4yKX0uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjZjQ0MzM2fS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLXJlZCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI0NCw2Nyw1NCwuMil9LmNhcGliYXJhLmMtcmVkIC5jYXAtYnRuLXJhaXNlZCwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiNmNDQzMzY7YmFja2dyb3VuZDpyZ2JhKDI0NCw2Nyw1NCwuOCl9LmNhcGliYXJhLmMtcmVkIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6I2Y0NDMzNjtjb2xvcjojZjQ0MzM2fS5jYXBpYmFyYS5jLXJlZCAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDI0NCw2Nyw1NCwuOCl9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1yZWQgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMjQ0LDY3LDU0LC41KX0uY2FwaWJhcmEgLmMtcmVkLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2Y0NDMzNiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2QyMTkwYiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2Y4ODc3ZiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC0tdGV4dHtjb2xvcjojZjQ0MzM2IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcmVkLWQtLXRleHR7Y29sb3I6I2QyMTkwYiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC1sLS10ZXh0e2NvbG9yOiNmODg3N2YhaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtcmVke2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjIpO2JvcmRlcjoxcHggc29saWQgI2Y0NDMzNn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXJlZCAubGVmdC1pY29ue2JhY2tncm91bmQ6I2Y0NDMzNn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXJlZCAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgI2Y0NDMzNjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI0NCw2Nyw1NCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1yZWQgLm5hbWV7Y29sb3I6I2Y0NDMzNn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy1yZWR7LS1sb2NhbC1jb2xvcjojZjQ0MzM2Oy0tbG9jYWwtY29sb3ItZm9udDojZmZmfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuYy1yZWQsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLXJlZCwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy1yZWQgLnJvd2RvdC0tZG90ey0tbG9jYWwtY29sb3I6I2Y0NDMzNn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1yZWQuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1yZWQuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXJlZDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKTtib3JkZXItY29sb3I6cmdiYSgyNDQsNjcsNTQsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1yZWR7YmFja2dyb3VuZDojZjQ0MzM2fS5jYXBpYmFyYS5jLXBpbms6bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6I2QwMzc2YiB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1waW5rOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiNkMDM3NmJ9LmNhcGliYXJhLmMtcGluazpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2YwZTNlN30uY2FwaWJhcmEuYy1waW5rOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNmMGUzZTc7Ym9yZGVyLWNvbG9yOiNmMjdiYTN9LmNhcGliYXJhLmMtcGluazpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2YwZTNlNztib3JkZXItYm90dG9tLWNvbG9yOiNmMjdiYTN9LmNhcGliYXJhLmMtcGluazpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2YwZTNlNykhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbms6bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNmMjdiYTN9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiM5MzBlM2J9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzkzMGUzYn0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1waW5rIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMywzMCw5OSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1waW5rIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzMsMzAsOTksLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1waW5rIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMywzMCw5OSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1waW5rIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtcGluayAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtcGluayBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMywzMCw5OSwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojZTkxZTYzIWltcG9ydGFudH0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtcGluayAudGltZXtib3JkZXItY29sb3I6cmdiYSgyMzMsMzAsOTksLjYpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLXBpbmsgLnRpbWUgLnN5bWJvbHtjb2xvcjojZTkxZTYzfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLXBpbmsgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXBpbmsgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNlOTFlNjM7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMzMsMzAsOTksLjIpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLXBpbmsgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LC42KX0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNlOTFlNjM7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMzMsMzAsOTksLjIpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgyMzMsMzAsOTksLjYpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXBpbmsgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZTkxZTYzO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjMzLDMwLDk5LC4yKX0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICNlOTFlNjN9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIzMywzMCw5OSwuMil9LmNhcGliYXJhLmMtcGluayAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6I2U5MWU2MztiYWNrZ3JvdW5kOnJnYmEoMjMzLDMwLDk5LC44KX0uY2FwaWJhcmEuYy1waW5rIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiNlOTFlNjM7Y29sb3I6I2U5MWU2M30uY2FwaWJhcmEuYy1waW5rIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDIzMywzMCw5OSwuOCl9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtcGluayAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyMzMsMzAsOTksLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSgyMzMsMzAsOTksLjUpfS5jYXBpYmFyYSAuYy1waW5rLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2U5MWU2MyFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXBpbmstZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNhYTExNDUhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1waW5rLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZjA2NDkzIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcGluay0tdGV4dHtjb2xvcjojZTkxZTYzIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcGluay1kLS10ZXh0e2NvbG9yOiNhYTExNDUhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1waW5rLWwtLXRleHR7Y29sb3I6I2YwNjQ5MyFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1waW5re2JhY2tncm91bmQ6cmdiYSgyMzMsMzAsOTksLjIpO2JvcmRlcjoxcHggc29saWQgI2U5MWU2M30uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXBpbmsgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiNlOTFlNjN9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1waW5rIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjZTkxZTYzO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjMzLDMwLDk5LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXBpbmsgLm5hbWV7Y29sb3I6I2U5MWU2M30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy1waW5rey0tbG9jYWwtY29sb3I6I2U5MWU2MzstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtcGluaywuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtcGluaywuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy1waW5rIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiNlOTFlNjN9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtcGluay5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDIzMywzMCw5OSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXBpbmsuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyMzMsMzAsOTksLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXBpbms6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDIzMywzMCw5OSwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtcGlua3tiYWNrZ3JvdW5kOiNlOTFlNjN9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM4ZDNkOWIgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM4ZDNkOWJ9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZDZjYmQ4fS5jYXBpYmFyYS5jLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZDZjYmQ4O2JvcmRlci1jb2xvcjojY2E2MWRjfS5jYXBpYmFyYS5jLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2Q2Y2JkODtib3JkZXItYm90dG9tLWNvbG9yOiNjYTYxZGN9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZDZjYmQ4KSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojY2E2MWRjfS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzUyMTQ1ZH0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzUyMTQ1ZH0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLXB1cnBsZSA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTYsMzksMTc2LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtcHVycGxlIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTYsMzksMTc2LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1wdXJwbGUgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU2LDM5LDE3NiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtcHVycGxlIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtcHVycGxlIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzljMjdiMCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLXB1cnBsZSBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzljMjdiMCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtcHVycGxlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsLjYpfS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtcHVycGxlIC50aW1lIC5zeW1ib2x7Y29sb3I6IzljMjdiMH0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtcHVycGxlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1wdXJwbGUgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5YzI3YjA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxNTYsMzksMTc2LC4yKX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMTU2LDM5LDE3NiwuNil9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5YzI3YjA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxNTYsMzksMTc2LC4yKX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxNTYsMzksMTc2LC42KX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5YzI3YjA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxNTYsMzksMTc2LC4yKX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjOWMyN2IwfS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDE1NiwzOSwxNzYsLjIpfS5jYXBpYmFyYS5jLXB1cnBsZSAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojOWMyN2IwO2JhY2tncm91bmQ6cmdiYSgxNTYsMzksMTc2LC44KX0uY2FwaWJhcmEuYy1wdXJwbGUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojOWMyN2IwO2NvbG9yOiM5YzI3YjB9LmNhcGliYXJhLmMtcHVycGxlIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMTU2LDM5LDE3NiwuOCl9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1wdXJwbGUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMTU2LDM5LDE3NiwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDE1NiwzOSwxNzYsLjUpfS5jYXBpYmFyYSAuYy1wdXJwbGUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojOWMyN2IwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNjQxOTcxIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojYzM0Y2Q3IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLS10ZXh0e2NvbG9yOiM5YzI3YjAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1wdXJwbGUtZC0tdGV4dHtjb2xvcjojNjQxOTcxIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLWwtLXRleHR7Y29sb3I6I2MzNGNkNyFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1wdXJwbGV7YmFja2dyb3VuZDpyZ2JhKDE1NiwzOSwxNzYsLjIpO2JvcmRlcjoxcHggc29saWQgIzljMjdiMH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXB1cnBsZSAubGVmdC1pY29ue2JhY2tncm91bmQ6IzljMjdiMH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXB1cnBsZSAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzljMjdiMDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDE1NiwzOSwxNzYsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtcHVycGxlIC5uYW1le2NvbG9yOiM5YzI3YjB9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtcHVycGxley0tbG9jYWwtY29sb3I6IzljMjdiMDstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtcHVycGxlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1wdXJwbGUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtcHVycGxlIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM5YzI3YjB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtcHVycGxlLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMTU2LDM5LDE3NiwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMTU2LDM5LDE3NiwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1wdXJwbGUuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgxNTYsMzksMTc2LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1wdXJwbGU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDE1NiwzOSwxNzYsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1wdXJwbGV7YmFja2dyb3VuZDojOWMyN2IwfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM2ZTUyOWYgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzZlNTI5Zn0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2RlZGVkZn0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZGVkZWRmO2JvcmRlci1jb2xvcjojOWY4MGQ3fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZGVkZWRmO2JvcmRlci1ib3R0b20tY29sb3I6IzlmODBkN30uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2RlZGVkZikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojOWY4MGQ3fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMzYjIxNmF9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojM2IyMTZhfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDMsNTgsMTgzLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAzLDU4LDE4MywuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDMsNTgsMTgzLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjchaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAzLDU4LDE4MywuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojNjczYWI3IWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDEwMyw1OCwxODMsLjYpfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAudGltZSAuc3ltYm9se2NvbG9yOiM2NzNhYjd9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM2NzNhYjc7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMDMsNTgsMTgzLC4yKX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLC42KX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojNjczYWI3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTAzLDU4LDE4MywuMil9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLC42KX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNjczYWI3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTAzLDU4LDE4MywuMil9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICM2NzNhYjd9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMDMsNTgsMTgzLC4yKX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiM2NzNhYjc7YmFja2dyb3VuZDpyZ2JhKDEwMyw1OCwxODMsLjgpfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojNjczYWI3O2NvbG9yOiM2NzNhYjd9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDEwMyw1OCwxODMsLjgpfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgxMDMsNTgsMTgzLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMTAzLDU4LDE4MywuNSl9LmNhcGliYXJhIC5jLWRlZXAtcHVycGxlLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzY3M2FiNyFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtcHVycGxlLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNDYyODdkIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1wdXJwbGUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM5MTZkZDEhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1kZWVwLXB1cnBsZS0tdGV4dHtjb2xvcjojNjczYWI3IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1wdXJwbGUtZC0tdGV4dHtjb2xvcjojNDYyODdkIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1wdXJwbGUtbC0tdGV4dHtjb2xvcjojOTE2ZGQxIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtcHVycGxle2JhY2tncm91bmQ6cmdiYSgxMDMsNTgsMTgzLC4yKTtib3JkZXI6MXB4IHNvbGlkICM2NzNhYjd9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLXB1cnBsZSAubGVmdC1pY29ue2JhY2tncm91bmQ6IzY3M2FiN30uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtcHVycGxlIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjNjczYWI3O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMTAzLDU4LDE4MywuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLXB1cnBsZSAubmFtZXtjb2xvcjojNjczYWI3fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWRlZXAtcHVycGxley0tbG9jYWwtY29sb3I6IzY3M2FiNzstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtZGVlcC1wdXJwbGUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWRlZXAtcHVycGxlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWRlZXAtcHVycGxlIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM2NzNhYjd9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZGVlcC1wdXJwbGUuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxMDMsNTgsMTgzLC43KTtib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWRlZXAtcHVycGxlLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMTAzLDU4LDE4MywuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZGVlcC1wdXJwbGU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEwMyw1OCwxODMsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDEwMyw1OCwxODMsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1kZWVwLXB1cnBsZXtiYWNrZ3JvdW5kOiM2NzNhYjd9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM1NzYyOWQgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM1NzYyOWR9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZTBlMGUwfS5jYXBpYmFyYS5jLWluZGlnbzpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZTBlMGUwO2JvcmRlci1jb2xvcjojODU5MWQ1fS5jYXBpYmFyYS5jLWluZGlnbzpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2UwZTBlMDtib3JkZXItYm90dG9tLWNvbG9yOiM4NTkxZDV9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZTBlMGUwKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojODU5MWQ1fS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzI1MmY2OX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzI1MmY2OX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWluZGlnbyA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSg2Myw4MSwxODEsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1pbmRpZ28gOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtaW5kaWdvIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtaW5kaWdvIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtaW5kaWdvIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzNmNTFiNSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWluZGlnbyBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojM2Y1MWI1IWltcG9ydGFudH0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1pbmRpZ28gLnRpbWV7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC42KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLWluZGlnbyAudGltZSAuc3ltYm9se2NvbG9yOiMzZjUxYjV9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtaW5kaWdvIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojM2Y1MWI1O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNjMsODEsMTgxLC4yKX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtaW5kaWdvIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtaW5kaWdvIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC42KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6IzNmNTFiNTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDYzLDgxLDE4MSwuMil9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC42KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMzZjUxYjU7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg2Myw4MSwxODEsLjIpfS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICMzZjUxYjV9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtaW5kaWdvIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNjMsODEsMTgxLC4yKX0uY2FwaWJhcmEuYy1pbmRpZ28gLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6IzNmNTFiNTtiYWNrZ3JvdW5kOnJnYmEoNjMsODEsMTgxLC44KX0uY2FwaWJhcmEuYy1pbmRpZ28gLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojM2Y1MWI1O2NvbG9yOiMzZjUxYjV9LmNhcGliYXJhLmMtaW5kaWdvIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoNjMsODEsMTgxLC44KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5LC5jYXBpYmFyYS5jLWluZGlnbyAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSg2Myw4MSwxODEsLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSg2Myw4MSwxODEsLjUpfS5jYXBpYmFyYSAuYy1pbmRpZ28tLWJhY2tncm91bmR7YmFja2dyb3VuZDojM2Y1MWI1IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMmIzODdjIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNzI4MGNlIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLS10ZXh0e2NvbG9yOiMzZjUxYjUhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1pbmRpZ28tZC0tdGV4dHtjb2xvcjojMmIzODdjIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLWwtLXRleHR7Y29sb3I6IzcyODBjZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1pbmRpZ297YmFja2dyb3VuZDpyZ2JhKDYzLDgxLDE4MSwuMik7Ym9yZGVyOjFweCBzb2xpZCAjM2Y1MWI1fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtaW5kaWdvIC5sZWZ0LWljb257YmFja2dyb3VuZDojM2Y1MWI1fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtaW5kaWdvIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjM2Y1MWI1O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoNjMsODEsMTgxLC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWluZGlnbyAubmFtZXtjb2xvcjojM2Y1MWI1fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWluZGlnb3stLWxvY2FsLWNvbG9yOiMzZjUxYjU7LS1sb2NhbC1jb2xvci1mb250OiNmZmZ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWluZGlnbywuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtaW5kaWdvLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWluZGlnbyAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojM2Y1MWI1fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWluZGlnby5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDYzLDgxLDE4MSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWluZGlnby5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDYzLDgxLDE4MSwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtaW5kaWdvOmhvdmVye2JhY2tncm91bmQ6cmdiYSg2Myw4MSwxODEsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuOSl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbi5jLWluZGlnb3tiYWNrZ3JvdW5kOiMzZjUxYjV9LmNhcGliYXJhLmMtYmx1ZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojMzE3NmJiIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWJsdWU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzMxNzZiYn0uY2FwaWJhcmEuYy1ibHVlOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZDFkY2U2fS5jYXBpYmFyYS5jLWJsdWU6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2QxZGNlNjtib3JkZXItY29sb3I6IzY0YTllZH0uY2FwaWJhcmEuYy1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZDFkY2U2O2JvcmRlci1ib3R0b20tY29sb3I6IzY0YTllZH0uY2FwaWJhcmEuYy1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZDFkY2U2KSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzY0YTllZH0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzBlNDM3N30uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMGU0Mzc3fS5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWJsdWUgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUsMTE4LDIxMCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1ibHVlIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNSwxMTgsMjEwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtYmx1ZSAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNSwxMTgsMjEwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWJsdWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1ibHVlIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzE5NzZkMiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1ibHVlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUsMTE4LDIxMCwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojMTk3NmQyIWltcG9ydGFudH0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtYmx1ZSAudGltZXtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC42KX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1ibHVlIC50aW1lIC5zeW1ib2x7Y29sb3I6IzE5NzZkMn0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1ibHVlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojMTk3NmQyO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjUsMTE4LDIxMCwuMil9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWJsdWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC42KX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMxOTc2ZDI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNSwxMTgsMjEwLC4yKX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMjUsMTE4LDIxMCwuNil9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWJsdWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ibHVlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMxOTc2ZDI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNSwxMTgsMjEwLC4yKX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICMxOTc2ZDJ9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1LDExOCwyMTAsLjIpfS5jYXBpYmFyYS5jLWJsdWUgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiMxOTc2ZDI7YmFja2dyb3VuZDpyZ2JhKDI1LDExOCwyMTAsLjgpfS5jYXBpYmFyYS5jLWJsdWUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzE5NzZkMjtjb2xvcjojMTk3NmQyfS5jYXBpYmFyYS5jLWJsdWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMjUsMTE4LDIxMCwuOCl9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtYmx1ZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMjUsMTE4LDIxMCwuNSl9LmNhcGliYXJhIC5jLWJsdWUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMTk3NmQyIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYmx1ZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzExNTA4ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM0ZTljZWEhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ibHVlLS10ZXh0e2NvbG9yOiMxOTc2ZDIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ibHVlLWQtLXRleHR7Y29sb3I6IzExNTA4ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWUtbC0tdGV4dHtjb2xvcjojNGU5Y2VhIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWJsdWV7YmFja2dyb3VuZDpyZ2JhKDI1LDExOCwyMTAsLjIpO2JvcmRlcjoxcHggc29saWQgIzE5NzZkMn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWJsdWUgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiMxOTc2ZDJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjMTk3NmQyO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjUsMTE4LDIxMCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlIC5uYW1le2NvbG9yOiMxOTc2ZDJ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtYmx1ZXstLWxvY2FsLWNvbG9yOiMxOTc2ZDI7LS1sb2NhbC1jb2xvci1mb250OiNmZmZ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWJsdWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWJsdWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtYmx1ZSAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojMTk3NmQyfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWJsdWUuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC43KTtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWJsdWUuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1ibHVlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC4yKTtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtYmx1ZXtiYWNrZ3JvdW5kOiMxOTc2ZDJ9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojMWNhMGRiIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzFjYTBkYn0uY2FwaWJhcmEuYy1saWdodC1ibHVlOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZDNlN2YwfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWU6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2QzZTdmMDtib3JkZXItY29sb3I6IzYwY2NmZH0uY2FwaWJhcmEuYy1saWdodC1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZDNlN2YwO2JvcmRlci1ib3R0b20tY29sb3I6IzYwY2NmZH0uY2FwaWJhcmEuYy1saWdodC1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZDNlN2YwKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzYwY2NmZH0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzAyNjM4Zn0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDI2MzhmfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMywxNjksMjQ0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDMsMTY5LDI0NCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMywxNjksMjQ0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAzYTlmNCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1saWdodC1ibHVlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMywxNjksMjQ0LC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiMwM2E5ZjQhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDMsMTY5LDI0NCwuNil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAudGltZSAuc3ltYm9se2NvbG9yOiMwM2E5ZjR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6IzAzYTlmNDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDMsMTY5LDI0NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgzLDE2OSwyNDQsLjYpfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6IzAzYTlmNDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDMsMTY5LDI0NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0e2JvcmRlci1jb2xvcjpyZ2JhKDMsMTY5LDI0NCwuNil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwM2E5ZjQ7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgzLDE2OSwyNDQsLjIpfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgIzAzYTlmNH0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMywxNjksMjQ0LC4yKX0uY2FwaWJhcmEuYy1saWdodC1ibHVlIC5jYXAtYnRuLXJhaXNlZCwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojMDNhOWY0O2JhY2tncm91bmQ6cmdiYSgzLDE2OSwyNDQsLjgpfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzAzYTlmNDtjb2xvcjojMDNhOWY0fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMywxNjksMjQ0LC44KX0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDMsMTY5LDI0NCwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDMsMTY5LDI0NCwuNSl9LmNhcGliYXJhIC5jLWxpZ2h0LWJsdWUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMDNhOWY0IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtYmx1ZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzAyNzVhOCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpZ2h0LWJsdWUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM0N2M0ZmQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saWdodC1ibHVlLS10ZXh0e2NvbG9yOiMwM2E5ZjQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saWdodC1ibHVlLWQtLXRleHR7Y29sb3I6IzAyNzVhOCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpZ2h0LWJsdWUtbC0tdGV4dHtjb2xvcjojNDdjNGZkIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWJsdWV7YmFja2dyb3VuZDpyZ2JhKDMsMTY5LDI0NCwuMik7Ym9yZGVyOjFweCBzb2xpZCAjMDNhOWY0fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtbGlnaHQtYmx1ZSAubGVmdC1pY29ue2JhY2tncm91bmQ6IzAzYTlmNH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWJsdWUgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICMwM2E5ZjQ7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgzLDE2OSwyNDQsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtbGlnaHQtYmx1ZSAubmFtZXtjb2xvcjojMDNhOWY0fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWxpZ2h0LWJsdWV7LS1sb2NhbC1jb2xvcjojMDNhOWY0Oy0tbG9jYWwtY29sb3ItZm9udDojZmZmfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuYy1saWdodC1ibHVlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1saWdodC1ibHVlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWxpZ2h0LWJsdWUgLnJvd2RvdC0tZG90ey0tbG9jYWwtY29sb3I6IzAzYTlmNH0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1saWdodC1ibHVlLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMywxNjksMjQ0LC43KTtib3JkZXItY29sb3I6cmdiYSgzLDE2OSwyNDQsLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtYmx1ZS5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDMsMTY5LDI0NCwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtYmx1ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMywxNjksMjQ0LC4yKTtib3JkZXItY29sb3I6cmdiYSgzLDE2OSwyNDQsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1saWdodC1ibHVle2JhY2tncm91bmQ6IzAzYTlmNH0uY2FwaWJhcmEuYy1jeWFuOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiMxNWFjYmYgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtY3lhbjpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojMTVhY2JmfS5jYXBpYmFyYS5jLWN5YW46bm90KC5kYXJrLXRoZW1lKSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNiOWUyZTh9LmNhcGliYXJhLmMtY3lhbjpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojYjllMmU4O2JvcmRlci1jb2xvcjojM2JlOWZmfS5jYXBpYmFyYS5jLWN5YW46bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNiOWUyZTg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojM2JlOWZmfS5jYXBpYmFyYS5jLWN5YW46bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlciAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCNiOWUyZTgpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojM2JlOWZmfS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojMDA2MjZlfS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMwMDYyNmV9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIDo6LW1vei1zZWxlY3Rpb24sLmNhcGliYXJhLmMtY3lhbiA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE4OCwyMTIsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtY3lhbiA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxODgsMjEyLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtY3lhbiAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE4OCwyMTIsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtY3lhbiAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWN5YW4gLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDBiY2Q0IWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWN5YW4gc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE4OCwyMTIsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzAwYmNkNCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWN5YW4gLnRpbWV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxODgsMjEyLC42KX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1jeWFuIC50aW1lIC5zeW1ib2x7Y29sb3I6IzAwYmNkNH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1jeWFuIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1jeWFuIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojMDBiY2Q0O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMCwxODgsMjEyLC4yKX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCwuY2FwaWJhcmEuYy1jeWFuIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDAsMTg4LDIxMiwuNil9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojMDBiY2Q0O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMCwxODgsMjEyLC4yKX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxODgsMjEyLC42KX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1jeWFuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6IzAwYmNkNDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDAsMTg4LDIxMiwuMil9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjMDBiY2Q0fS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDE4OCwyMTIsLjIpfS5jYXBpYmFyYS5jLWN5YW4gLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiMwMGJjZDQ7YmFja2dyb3VuZDpyZ2JhKDAsMTg4LDIxMiwuOCl9LmNhcGliYXJhLmMtY3lhbiAuY2FwLWJ0bi1vdXRsaW5lLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojMDBiY2Q0O2NvbG9yOiMwMGJjZDR9LmNhcGliYXJhLmMtY3lhbiAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6cmdiYSgwLDE4OCwyMTIsLjgpfS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5LC5jYXBpYmFyYS5jLWN5YW4gLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMCwxODgsMjEyLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMCwxODgsMjEyLC41KX0uY2FwaWJhcmEgLmMtY3lhbi0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiMwMGJjZDQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1jeWFuLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMDA3ODg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtY3lhbi1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzIyZTZmZiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWN5YW4tLXRleHR7Y29sb3I6IzAwYmNkNCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWN5YW4tZC0tdGV4dHtjb2xvcjojMDA3ODg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtY3lhbi1sLS10ZXh0e2NvbG9yOiMyMmU2ZmYhaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtY3lhbntiYWNrZ3JvdW5kOnJnYmEoMCwxODgsMjEyLC4yKTtib3JkZXI6MXB4IHNvbGlkICMwMGJjZDR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1jeWFuIC5sZWZ0LWljb257YmFja2dyb3VuZDojMDBiY2Q0fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtY3lhbiAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzAwYmNkNDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDAsMTg4LDIxMiwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1jeWFuIC5uYW1le2NvbG9yOiMwMGJjZDR9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtY3lhbnstLWxvY2FsLWNvbG9yOiMwMGJjZDQ7LS1sb2NhbC1jb2xvci1mb250OiMyNjMyMzh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWN5YW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWN5YW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtY3lhbiAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojMDBiY2Q0fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWN5YW4uYWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDE4OCwyMTIsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMTg4LDIxMiwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1jeWFuLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwxODgsMjEyLC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1jeWFuOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDE4OCwyMTIsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMTg4LDIxMiwuOSl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbi5jLWN5YW57YmFja2dyb3VuZDojMDBiY2Q0fS5jYXBpYmFyYS5jLXRlYWw6bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6IzBmODc3YyB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy10ZWFsOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiMwZjg3N2N9LmNhcGliYXJhLmMtdGVhbDpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6IzhhZDhkMX0uY2FwaWJhcmEuYy10ZWFsOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiM4YWQ4ZDE7Ym9yZGVyLWNvbG9yOiMwMGZjZTR9LmNhcGliYXJhLmMtdGVhbDpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6IzhhZDhkMTtib3JkZXItYm90dG9tLWNvbG9yOiMwMGZjZTR9LmNhcGliYXJhLmMtdGVhbDpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsIzhhZDhkMSkhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWw6bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMwMGZjZTR9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMwMDMwMmN9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzAwMzAyY30uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy10ZWFsIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTUwLDEzNiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy10ZWFsIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE1MCwxMzYsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy10ZWFsIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTUwLDEzNiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy10ZWFsIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtdGVhbCAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODghaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtdGVhbCBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTUwLDEzNiwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojMDA5Njg4IWltcG9ydGFudH0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtdGVhbCAudGltZXtib3JkZXItY29sb3I6cmdiYSgwLDE1MCwxMzYsLjYpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLXRlYWwgLnRpbWUgLnN5bWJvbHtjb2xvcjojMDA5Njg4fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLXRlYWwgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXRlYWwgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwMDk2ODg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDE1MCwxMzYsLjIpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLXRlYWwgLmlucHV0LWJveCwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNTAsMTM2LC42KX0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwMDk2ODg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDE1MCwxMzYsLjIpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgwLDE1MCwxMzYsLjYpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXRlYWwgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojMDA5Njg4O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMCwxNTAsMTM2LC4yKX0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICMwMDk2ODh9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDAsMTUwLDEzNiwuMil9LmNhcGliYXJhLmMtdGVhbCAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6IzAwOTY4ODtiYWNrZ3JvdW5kOnJnYmEoMCwxNTAsMTM2LC44KX0uY2FwaWJhcmEuYy10ZWFsIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiMwMDk2ODg7Y29sb3I6IzAwOTY4OH0uY2FwaWJhcmEuYy10ZWFsIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDAsMTUwLDEzNiwuOCl9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtdGVhbCAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgwLDE1MCwxMzYsLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSgwLDE1MCwxMzYsLjUpfS5jYXBpYmFyYSAuYy10ZWFsLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzAwOTY4OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXRlYWwtZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiMwMDRhNDMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy10ZWFsLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMDBlM2NkIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtdGVhbC0tdGV4dHtjb2xvcjojMDA5Njg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtdGVhbC1kLS10ZXh0e2NvbG9yOiMwMDRhNDMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy10ZWFsLWwtLXRleHR7Y29sb3I6IzAwZTNjZCFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy10ZWFse2JhY2tncm91bmQ6cmdiYSgwLDE1MCwxMzYsLjIpO2JvcmRlcjoxcHggc29saWQgIzAwOTY4OH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXRlYWwgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiMwMDk2ODh9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy10ZWFsIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjMDA5Njg4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwxNTAsMTM2LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXRlYWwgLm5hbWV7Y29sb3I6IzAwOTY4OH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy10ZWFsey0tbG9jYWwtY29sb3I6IzAwOTY4ODstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtdGVhbCwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtdGVhbCwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy10ZWFsIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiMwMDk2ODh9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtdGVhbC5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDAsMTUwLDEzNiwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNTAsMTM2LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXRlYWwuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDE1MCwxMzYsLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXRlYWw6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMTUwLDEzNiwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNTAsMTM2LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtdGVhbHtiYWNrZ3JvdW5kOiMwMDk2ODh9LmNhcGliYXJhLmMtZ3JlZW46bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6IzNmNmM0MSB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1ncmVlbjpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojM2Y2YzQxfS5jYXBpYmFyYS5jLWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojYmNiY2JjfS5jYXBpYmFyYS5jLWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNiY2JjYmM7Ym9yZGVyLWNvbG9yOiM1MmJmNTd9LmNhcGliYXJhLmMtZ3JlZW46bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNiY2JjYmM7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNTJiZjU3fS5jYXBpYmFyYS5jLWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjYmNiY2JjKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZ3JlZW46bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiM1MmJmNTd9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzEzMzIxNH0uY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMxMzMyMTR9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWdyZWVuIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtZ3JlZW4gOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1ncmVlbiAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg0NiwxMjUsNTAsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1ncmVlbiAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWdyZWVuIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzJlN2QzMiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtZ3JlZW4gc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSg0NiwxMjUsNTAsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzJlN2QzMiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1ncmVlbiAudGltZXtib3JkZXItY29sb3I6cmdiYSg0NiwxMjUsNTAsLjYpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1ncmVlbiAudGltZSAuc3ltYm9se2NvbG9yOiMyZTdkMzJ9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1ncmVlbiAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4gLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg0NiwxMjUsNTAsLjIpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LWJveCwuY2FwaWJhcmEuYy1ncmVlbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuNil9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6IzJlN2QzMjtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDQ2LDEyNSw1MCwuMil9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWdyZWVuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSg0NiwxMjUsNTAsLjYpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbiAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbiAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg0NiwxMjUsNTAsLjIpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjMmU3ZDMyfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWdyZWVuIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNDYsMTI1LDUwLC4yKX0uY2FwaWJhcmEuYy1ncmVlbiAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuOCl9LmNhcGliYXJhLmMtZ3JlZW4gLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7Y29sb3I6IzJlN2QzMn0uY2FwaWJhcmEuYy1ncmVlbiAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoNDYsMTI1LDUwLC44KX0uY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtZ3JlZW4gLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoNDYsMTI1LDUwLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoNDYsMTI1LDUwLC41KX0uY2FwaWJhcmEgLmMtZ3JlZW4tLWJhY2tncm91bmR7YmFja2dyb3VuZDojMmU3ZDMyIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZ3JlZW4tZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiMxOTQ1MWMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ncmVlbi1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzQzYjU0OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWdyZWVuLS10ZXh0e2NvbG9yOiMyZTdkMzIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ncmVlbi1kLS10ZXh0e2NvbG9yOiMxOTQ1MWMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ncmVlbi1sLS10ZXh0e2NvbG9yOiM0M2I1NDghaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtZ3JlZW57YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuMik7Ym9yZGVyOjFweCBzb2xpZCAjMmU3ZDMyfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtZ3JlZW4gLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiMyZTdkMzJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ncmVlbiAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzJlN2QzMjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDQ2LDEyNSw1MCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ncmVlbiAubmFtZXtjb2xvcjojMmU3ZDMyfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWdyZWVuey0tbG9jYWwtY29sb3I6IzJlN2QzMjstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtZ3JlZW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWdyZWVuLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWdyZWVuIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiMyZTdkMzJ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZ3JlZW4uYWN0aXZle2JhY2tncm91bmQ6cmdiYSg0NiwxMjUsNTAsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1ncmVlbi5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZ3JlZW46aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoNDYsMTI1LDUwLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtZ3JlZW57YmFja2dyb3VuZDojMmU3ZDMyfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM4OWFiNjIgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW46bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izg5YWI2Mn0uY2FwaWJhcmEuYy1saWdodC1ncmVlbjpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2VkZWRlY30uY2FwaWJhcmEuYy1saWdodC1ncmVlbjpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZWRlZGVjO2JvcmRlci1jb2xvcjojYmNkYzk3fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZWRlZGVjO2JvcmRlci1ib3R0b20tY29sb3I6I2JjZGM5N30uY2FwaWJhcmEuYy1saWdodC1ncmVlbjpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2VkZWRlYykhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojYmNkYzk3fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiM1NzdkMmF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNTc3ZDJhfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxMzksMTk1LDc0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTM5LDE5NSw3NCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMzksMTk1LDc0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTM5LDE5NSw3NCwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojOGJjMzRhIWltcG9ydGFudH0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDEzOSwxOTUsNzQsLjYpfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAudGltZSAuc3ltYm9se2NvbG9yOiM4YmMzNGF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM4YmMzNGE7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMzksMTk1LDc0LC4yKX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LC42KX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojOGJjMzRhO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTM5LDE5NSw3NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LC42KX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojOGJjMzRhO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTM5LDE5NSw3NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICM4YmMzNGF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMzksMTk1LDc0LC4yKX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiM4YmMzNGE7YmFja2dyb3VuZDpyZ2JhKDEzOSwxOTUsNzQsLjgpfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojOGJjMzRhO2NvbG9yOiM4YmMzNGF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDEzOSwxOTUsNzQsLjgpfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgxMzksMTk1LDc0LC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMTM5LDE5NSw3NCwuNSl9LmNhcGliYXJhIC5jLWxpZ2h0LWdyZWVuLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzhiYzM0YSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpZ2h0LWdyZWVuLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNjQ5MTMwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtZ3JlZW4tbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNiMGQ2ODMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saWdodC1ncmVlbi0tdGV4dHtjb2xvcjojOGJjMzRhIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtZ3JlZW4tZC0tdGV4dHtjb2xvcjojNjQ5MTMwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtZ3JlZW4tbC0tdGV4dHtjb2xvcjojYjBkNjgzIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWdyZWVue2JhY2tncm91bmQ6cmdiYSgxMzksMTk1LDc0LC4yKTtib3JkZXI6MXB4IHNvbGlkICM4YmMzNGF9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saWdodC1ncmVlbiAubGVmdC1pY29ue2JhY2tncm91bmQ6IzhiYzM0YX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWdyZWVuIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjOGJjMzRhO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMTM5LDE5NSw3NCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saWdodC1ncmVlbiAubmFtZXtjb2xvcjojOGJjMzRhfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWxpZ2h0LWdyZWVuey0tbG9jYWwtY29sb3I6IzhiYzM0YTstLWxvY2FsLWNvbG9yLWZvbnQ6IzI2MzIzOH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtbGlnaHQtZ3JlZW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWxpZ2h0LWdyZWVuLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWxpZ2h0LWdyZWVuIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM4YmMzNGF9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtZ3JlZW4uYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxMzksMTk1LDc0LC43KTtib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWxpZ2h0LWdyZWVuLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMTM5LDE5NSw3NCwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtZ3JlZW46aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEzOSwxOTUsNzQsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDEzOSwxOTUsNzQsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1saWdodC1ncmVlbntiYWNrZ3JvdW5kOiM4YmMzNGF9LmNhcGliYXJhLmMtbGltZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojYmFjNTUwIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWxpbWU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6I2JhYzU1MH0uY2FwaWJhcmEuYy1saW1lOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZjNmM2VlfS5jYXBpYmFyYS5jLWxpbWU6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2YzZjNlZTtib3JkZXItY29sb3I6I2UzZWI5MH0uY2FwaWJhcmEuYy1saW1lOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjNmM2VlO2JvcmRlci1ib3R0b20tY29sb3I6I2UzZWI5MH0uY2FwaWJhcmEuYy1saW1lOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZjNmM2VlKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2UzZWI5MH0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6Izg5OTUxYX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojODk5NTFhfS5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWxpbWUgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LDIyMCw1NywuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1saW1lIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDUsMjIwLDU3LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtbGltZSAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDUsMjIwLDU3LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWxpbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1saW1lIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2NkZGMzOSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1saW1lIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LDIyMCw1NywuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojY2RkYzM5IWltcG9ydGFudH0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtbGltZSAudGltZXtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC42KX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1saW1lIC50aW1lIC5zeW1ib2x7Y29sb3I6I2NkZGMzOX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1saW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojY2RkYzM5O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjA1LDIyMCw1NywuMil9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWxpbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC42KX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNjZGRjMzk7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMDUsMjIwLDU3LC4yKX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMjA1LDIyMCw1NywuNil9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWxpbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNjZGRjMzk7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMDUsMjIwLDU3LC4yKX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICNjZGRjMzl9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIwNSwyMjAsNTcsLjIpfS5jYXBpYmFyYS5jLWxpbWUgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiNjZGRjMzk7YmFja2dyb3VuZDpyZ2JhKDIwNSwyMjAsNTcsLjgpfS5jYXBpYmFyYS5jLWxpbWUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6I2NkZGMzOTtjb2xvcjojY2RkYzM5fS5jYXBpYmFyYS5jLWxpbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMjA1LDIyMCw1NywuOCl9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtbGltZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMjA1LDIyMCw1NywuNSl9LmNhcGliYXJhIC5jLWxpbWUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojY2RkYzM5IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGltZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzlkYWExZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpbWUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNkZGU3N2EhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saW1lLS10ZXh0e2NvbG9yOiNjZGRjMzkhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saW1lLWQtLXRleHR7Y29sb3I6IzlkYWExZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpbWUtbC0tdGV4dHtjb2xvcjojZGRlNzdhIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpbWV7YmFja2dyb3VuZDpyZ2JhKDIwNSwyMjAsNTcsLjIpO2JvcmRlcjoxcHggc29saWQgI2NkZGMzOX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpbWUgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiNjZGRjMzl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saW1lIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjY2RkYzM5O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjA1LDIyMCw1NywuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saW1lIC5uYW1le2NvbG9yOiNjZGRjMzl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtbGltZXstLWxvY2FsLWNvbG9yOiNjZGRjMzk7LS1sb2NhbC1jb2xvci1mb250OiMyNjMyMzh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWxpbWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWxpbWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtbGltZSAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojY2RkYzM5fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWxpbWUuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC43KTtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWxpbWUuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1saW1lOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC4yKTtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtbGltZXtiYWNrZ3JvdW5kOiNjZGRjMzl9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiNlYmRiNGYgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiNlYmRiNGZ9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZmZmfS5jYXBpYmFyYS5jLXllbGxvdzpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojZmZmNWExfS5jYXBpYmFyYS5jLXllbGxvdzpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItYm90dG9tLWNvbG9yOiNmZmY1YTF9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZmZmKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojZmZmNWExfS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2Q0YmUwMH0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6I2Q0YmUwMH0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLXllbGxvdyA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjM1LDU5LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMteWVsbG93IDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjM1LDU5LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy15ZWxsb3cgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMteWVsbG93IC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMteWVsbG93IC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZWIzYiFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLXllbGxvdyBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzUsNTksLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6I2ZmZWIzYiFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMteWVsbG93IC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyMzUsNTksLjYpfS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMteWVsbG93IC50aW1lIC5zeW1ib2x7Y29sb3I6I2ZmZWIzYn0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMteWVsbG93IC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy15ZWxsb3cgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmViM2I7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMjM1LDU5LC4yKX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1ib3gsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwuNil9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmViM2I7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMjM1LDU5LC4yKX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjM1LDU5LC42KX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmViM2I7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMjM1LDU5LC4yKX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjZmZlYjNifS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1NSwyMzUsNTksLjIpfS5jYXBpYmFyYS5jLXllbGxvdyAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojZmZlYjNiO2JhY2tncm91bmQ6cmdiYSgyNTUsMjM1LDU5LC44KX0uY2FwaWJhcmEuYy15ZWxsb3cgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojZmZlYjNiO2NvbG9yOiNmZmViM2J9LmNhcGliYXJhLmMteWVsbG93IC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIzNSw1OSwuOCl9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy15ZWxsb3cgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIzNSw1OSwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDI1NSwyMzUsNTksLjUpfS5jYXBpYmFyYSAuYy15ZWxsb3ctLWJhY2tncm91bmR7YmFja2dyb3VuZDojZmZlYjNiIWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZWVkNTAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZmZmMzg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LS10ZXh0e2NvbG9yOiNmZmViM2IhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy15ZWxsb3ctZC0tdGV4dHtjb2xvcjojZWVkNTAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LWwtLXRleHR7Y29sb3I6I2ZmZjM4OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy15ZWxsb3d7YmFja2dyb3VuZDpyZ2JhKDI1NSwyMzUsNTksLjIpO2JvcmRlcjoxcHggc29saWQgI2ZmZWIzYn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXllbGxvdyAubGVmdC1pY29ue2JhY2tncm91bmQ6I2ZmZWIzYn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXllbGxvdyAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgI2ZmZWIzYjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyMzUsNTksLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMteWVsbG93IC5uYW1le2NvbG9yOiNmZmViM2J9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMteWVsbG93ey0tbG9jYWwtY29sb3I6I2ZmZWIzYjstLWxvY2FsLWNvbG9yLWZvbnQ6IzI2MzIzOH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMteWVsbG93LC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy15ZWxsb3csLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMteWVsbG93IC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiNmZmViM2J9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMteWVsbG93LmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIzNSw1OSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy15ZWxsb3cuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjM1LDU5LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy15ZWxsb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyMzUsNTksLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyMzUsNTksLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy15ZWxsb3d7YmFja2dyb3VuZDojZmZlYjNifS5jYXBpYmFyYS5jLWFtYmVyOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiNlNmI1MjAgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtYW1iZXI6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6I2U2YjUyMH0uY2FwaWJhcmEuYy1hbWJlcjpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2Y0ZWZkZX0uY2FwaWJhcmEuYy1hbWJlcjpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZjRlZmRlO2JvcmRlci1jb2xvcjojZmZkYjZkfS5jYXBpYmFyYS5jLWFtYmVyOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjRlZmRlO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZGI2ZH0uY2FwaWJhcmEuYy1hbWJlcjpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2Y0ZWZkZSkhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWFtYmVyOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojZmZkYjZkfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNhMDc4MDB9LmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYTA3ODAwfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1hbWJlciA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTkzLDcsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLWFtYmVyIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTkzLDcsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtYW1iZXIgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtYW1iZXIgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1hbWJlciAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWFtYmVyIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtYW1iZXIgLnRpbWV7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC42KX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtYW1iZXIgLnRpbWUgLnN5bWJvbHtjb2xvcjojZmZjMTA3fS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtYW1iZXIgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZmZjMTA3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE5Myw3LC4yKX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtYW1iZXIgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMTkzLDcsLjYpfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmMxMDc7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMTkzLDcsLjIpfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1hbWJlciAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC42KX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZmZjMTA3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE5Myw3LC4yKX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgI2ZmYzEwN30uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1hbWJlciAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1NSwxOTMsNywuMil9LmNhcGliYXJhLmMtYW1iZXIgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojZmZjMTA3O2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjgpfS5jYXBpYmFyYS5jLWFtYmVyIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojZmZjMTA3O2NvbG9yOiNmZmMxMDd9LmNhcGliYXJhLmMtYW1iZXIgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDI1NSwxOTMsNywuOCl9LmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5LC5jYXBpYmFyYS5jLWFtYmVyIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDI1NSwxOTMsNywuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDI1NSwxOTMsNywuNSl9LmNhcGliYXJhIC5jLWFtYmVyLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2ZmYzEwNyFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWFtYmVyLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojYmE4YjAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYW1iZXItbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNmZmQ0NTQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1hbWJlci0tdGV4dHtjb2xvcjojZmZjMTA3IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYW1iZXItZC0tdGV4dHtjb2xvcjojYmE4YjAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYW1iZXItbC0tdGV4dHtjb2xvcjojZmZkNDU0IWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWFtYmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjIpO2JvcmRlcjoxcHggc29saWQgI2ZmYzEwN30uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWFtYmVyIC5sZWZ0LWljb257YmFja2dyb3VuZDojZmZjMTA3fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYW1iZXIgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICNmZmMxMDc7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMTkzLDcsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYW1iZXIgLm5hbWV7Y29sb3I6I2ZmYzEwN30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy1hbWJlcnstLWxvY2FsLWNvbG9yOiNmZmMxMDc7LS1sb2NhbC1jb2xvci1mb250OiMyNjMyMzh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWFtYmVyLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1hbWJlciwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy1hbWJlciAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojZmZjMTA3fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWFtYmVyLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE5Myw3LC43KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMTkzLDcsLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYW1iZXIuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWFtYmVyOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwxOTMsNywuOSl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbi5jLWFtYmVye2JhY2tncm91bmQ6I2ZmYzEwN30uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6I2U2OTMxYSB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6I2U2OTMxYX0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNmMmU4ZDl9LmNhcGliYXJhLmMtb3JhbmdlOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNmMmU4ZDk7Ym9yZGVyLWNvbG9yOiNmZmMxNjZ9LmNhcGliYXJhLmMtb3JhbmdlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjJlOGQ5O2JvcmRlci1ib3R0b20tY29sb3I6I2ZmYzE2Nn0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlciAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCNmMmU4ZDkpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNmZmMxNjZ9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojOTk1YjAwfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojOTk1YjAwfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIDo6LW1vei1zZWxlY3Rpb24sLmNhcGliYXJhLmMtb3JhbmdlIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLW9yYW5nZSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1vcmFuZ2UgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1vcmFuZ2UgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1vcmFuZ2UgLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwIWltcG9ydGFudH0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtb3JhbmdlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZjk4MDAhaW1wb3J0YW50fS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLW9yYW5nZSAudGltZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjYpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtb3JhbmdlIC50aW1lIC5zeW1ib2x7Y29sb3I6I2ZmOTgwMH0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1vcmFuZ2UgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZjk4MDA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMTUyLDAsLjIpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCwuY2FwaWJhcmEuYy1vcmFuZ2UgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1vcmFuZ2UgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjYpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojZmY5ODAwO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE1MiwwLC4yKX0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjYpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2ZmOTgwMDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1NSwxNTIsMCwuMil9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgI2ZmOTgwMH0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1vcmFuZ2UgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMTUyLDAsLjIpfS5jYXBpYmFyYS5jLW9yYW5nZSAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojZmY5ODAwO2JhY2tncm91bmQ6cmdiYSgyNTUsMTUyLDAsLjgpfS5jYXBpYmFyYS5jLW9yYW5nZSAuY2FwLWJ0bi1vdXRsaW5lLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmOTgwMH0uY2FwaWJhcmEuYy1vcmFuZ2UgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6cmdiYSgyNTUsMTUyLDAsLjgpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtb3JhbmdlIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDI1NSwxNTIsMCwuNSl9LmNhcGliYXJhIC5jLW9yYW5nZS0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNmZjk4MDAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNiMzZhMDAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNmZmI3NGQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtLXRleHR7Y29sb3I6I2ZmOTgwMCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLW9yYW5nZS1kLS10ZXh0e2NvbG9yOiNiMzZhMDAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtbC0tdGV4dHtjb2xvcjojZmZiNzRkIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLW9yYW5nZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC4yKTtib3JkZXI6MXB4IHNvbGlkICNmZjk4MDB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1vcmFuZ2UgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiNmZjk4MDB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1vcmFuZ2UgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICNmZjk4MDA7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMTUyLDAsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtb3JhbmdlIC5uYW1le2NvbG9yOiNmZjk4MDB9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtb3Jhbmdley0tbG9jYWwtY29sb3I6I2ZmOTgwMDstLWxvY2FsLWNvbG9yLWZvbnQ6IzI2MzIzOH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtb3JhbmdlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1vcmFuZ2UsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtb3JhbmdlIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiNmZjk4MDB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtb3JhbmdlLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC43KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtb3JhbmdlLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1vcmFuZ2U6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtb3Jhbmdle2JhY2tncm91bmQ6I2ZmOTgwMH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojY2Q1NzMzIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiNjZDU3MzN9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNlZGUxZGV9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2VkZTFkZTtib3JkZXItY29sb3I6I2YwOTI3NX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2VkZTFkZTtib3JkZXItYm90dG9tLWNvbG9yOiNmMDkyNzV9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlciAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCNlZGUxZGUpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2YwOTI3NX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojOGEyYzBmfS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzhhMmMwZn0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIDo6LW1vei1zZWxlY3Rpb24sLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZTY0YTE5IWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojZTY0YTE5IWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuNil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC50aW1lIC5zeW1ib2x7Y29sb3I6I2U2NGExOX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2U2NGExOTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIzMCw3NCwyNSwuMil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC42KX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojZTY0YTE5O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjMwLDc0LDI1LC4yKX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0e2JvcmRlci1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuNil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2U2NGExOTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIzMCw3NCwyNSwuMil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICNlNjRhMTl9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMzAsNzQsMjUsLjIpfS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5jYXAtYnRuLXJhaXNlZCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6I2U2NGExOTtiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC44KX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuY2FwLWJ0bi1vdXRsaW5lLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6I2U2NGExOTtjb2xvcjojZTY0YTE5fS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6cmdiYSgyMzAsNzQsMjUsLjgpfS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyMzAsNzQsMjUsLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSgyMzAsNzQsMjUsLjUpfS5jYXBpYmFyYSAuYy1kZWVwLW9yYW5nZS0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNlNjRhMTkhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1kZWVwLW9yYW5nZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2ExMzQxMiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtb3JhbmdlLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZWU4MDVlIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1vcmFuZ2UtLXRleHR7Y29sb3I6I2U2NGExOSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtb3JhbmdlLWQtLXRleHR7Y29sb3I6I2ExMzQxMiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtb3JhbmdlLWwtLXRleHR7Y29sb3I6I2VlODA1ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLW9yYW5nZXtiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC4yKTtib3JkZXI6MXB4IHNvbGlkICNlNjRhMTl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLW9yYW5nZSAubGVmdC1pY29ue2JhY2tncm91bmQ6I2U2NGExOX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtb3JhbmdlIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjZTY0YTE5O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjMwLDc0LDI1LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtb3JhbmdlIC5uYW1le2NvbG9yOiNlNjRhMTl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtZGVlcC1vcmFuZ2V7LS1sb2NhbC1jb2xvcjojZTY0YTE5Oy0tbG9jYWwtY29sb3ItZm9udDojZmZmfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuYy1kZWVwLW9yYW5nZSwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtZGVlcC1vcmFuZ2UsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtZGVlcC1vcmFuZ2UgLnJvd2RvdC0tZG90ey0tbG9jYWwtY29sb3I6I2U2NGExOX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1kZWVwLW9yYW5nZS5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDIzMCw3NCwyNSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWRlZXAtb3JhbmdlLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1kZWVwLW9yYW5nZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC4yKTtib3JkZXItY29sb3I6cmdiYSgyMzAsNzQsMjUsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1kZWVwLW9yYW5nZXtiYWNrZ3JvdW5kOiNlNjRhMTl9LmNhcGliYXJhLmMtYnJvd246bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6IzY2NWU1YiB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1icm93bjpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojNjY1ZTVifS5jYXBpYmFyYS5jLWJyb3duOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojYzdjN2M3fS5jYXBpYmFyYS5jLWJyb3duOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNjN2M3Yzc7Ym9yZGVyLWNvbG9yOiNhZjg3Nzh9LmNhcGliYXJhLmMtYnJvd246bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNjN2M3Yzc7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYWY4Nzc4fS5jYXBpYmFyYS5jLWJyb3duOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjYzdjN2M3KSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYnJvd246bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNhZjg3Nzh9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzM5MjgyMn0uY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMzOTI4MjJ9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWJyb3duIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtYnJvd24gOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1icm93biAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMjEsODUsNzIsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1icm93biAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWJyb3duIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6Izc5NTU0OCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtYnJvd24gc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgxMjEsODUsNzIsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6Izc5NTU0OCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1icm93biAudGltZXtib3JkZXItY29sb3I6cmdiYSgxMjEsODUsNzIsLjYpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1icm93biAudGltZSAuc3ltYm9se2NvbG9yOiM3OTU1NDh9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1icm93biAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24gLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMjEsODUsNzIsLjIpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LWJveCwuY2FwaWJhcmEuYy1icm93biAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuNil9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6Izc5NTU0ODtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDEyMSw4NSw3MiwuMil9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJyb3duIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxMjEsODUsNzIsLjYpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93biAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93biAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMjEsODUsNzIsLjIpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjNzk1NTQ4fS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWJyb3duIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTIxLDg1LDcyLC4yKX0uY2FwaWJhcmEuYy1icm93biAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuOCl9LmNhcGliYXJhLmMtYnJvd24gLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7Y29sb3I6Izc5NTU0OH0uY2FwaWJhcmEuYy1icm93biAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMTIxLDg1LDcyLC44KX0uY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtYnJvd24gLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMTIxLDg1LDcyLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMTIxLDg1LDcyLC41KX0uY2FwaWJhcmEgLmMtYnJvd24tLWJhY2tncm91bmR7YmFja2dyb3VuZDojNzk1NTQ4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYnJvd24tZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM0OTMzMmIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1icm93bi1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2E1Nzg2OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJyb3duLS10ZXh0e2NvbG9yOiM3OTU1NDghaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1icm93bi1kLS10ZXh0e2NvbG9yOiM0OTMzMmIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1icm93bi1sLS10ZXh0e2NvbG9yOiNhNTc4NjghaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYnJvd257YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuMik7Ym9yZGVyOjFweCBzb2xpZCAjNzk1NTQ4fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYnJvd24gLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiM3OTU1NDh9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1icm93biAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzc5NTU0ODtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDEyMSw4NSw3MiwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1icm93biAubmFtZXtjb2xvcjojNzk1NTQ4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWJyb3duey0tbG9jYWwtY29sb3I6Izc5NTU0ODstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtYnJvd24sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWJyb3duLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWJyb3duIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM3OTU1NDh9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYnJvd24uYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxMjEsODUsNzIsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1icm93bi5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYnJvd246aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMTIxLDg1LDcyLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtYnJvd257YmFja2dyb3VuZDojNzk1NTQ4fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojNzY3Njc2IHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojNzY3Njc2fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2RjZGNkY30uY2FwaWJhcmEuYy1ibHVlX2dyZXk6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2RjZGNkYztib3JkZXItY29sb3I6Izk5YWViOH0uY2FwaWJhcmEuYy1ibHVlX2dyZXk6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNkY2RjZGM7Ym9yZGVyLWJvdHRvbS1jb2xvcjojOTlhZWI4fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2RjZGNkYykhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6Izk5YWViOH0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMzNjQ3NGZ9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMzNjQ3NGZ9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoOTYsMTI1LDEzOSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoOTYsMTI1LDEzOSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk2LDEyNSwxMzksLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM2MDdkOGIhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSg5NiwxMjUsMTM5LC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiM2MDdkOGIhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAudGltZXtib3JkZXItY29sb3I6cmdiYSg5NiwxMjUsMTM5LC42KX0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAudGltZSAuc3ltYm9se2NvbG9yOiM2MDdkOGJ9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNjA3ZDhiO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoOTYsMTI1LDEzOSwuMil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDk2LDEyNSwxMzksLjYpfS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojNjA3ZDhiO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoOTYsMTI1LDEzOSwuMil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoOTYsMTI1LDEzOSwuNil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNjA3ZDhiO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoOTYsMTI1LDEzOSwuMil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgIzYwN2Q4Yn0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg5NiwxMjUsMTM5LC4yKX0uY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6IzYwN2Q4YjtiYWNrZ3JvdW5kOnJnYmEoOTYsMTI1LDEzOSwuOCl9LmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzYwN2Q4Yjtjb2xvcjojNjA3ZDhifS5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDk2LDEyNSwxMzksLjgpfS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDk2LDEyNSwxMzksLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSg5NiwxMjUsMTM5LC41KX0uY2FwaWJhcmEgLmMtYmx1ZV9ncmV5LS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzYwN2Q4YiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzQxNTQ1ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzhhYTJhZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS0tdGV4dHtjb2xvcjojNjA3ZDhiIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYmx1ZV9ncmV5LWQtLXRleHR7Y29sb3I6IzQxNTQ1ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS1sLS10ZXh0e2NvbG9yOiM4YWEyYWUhaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYmx1ZV9ncmV5e2JhY2tncm91bmQ6cmdiYSg5NiwxMjUsMTM5LC4yKTtib3JkZXI6MXB4IHNvbGlkICM2MDdkOGJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlX2dyZXkgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiM2MDdkOGJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlX2dyZXkgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICM2MDdkOGI7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSg5NiwxMjUsMTM5LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWJsdWVfZ3JleSAubmFtZXtjb2xvcjojNjA3ZDhifS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWJsdWVfZ3JleXstLWxvY2FsLWNvbG9yOiM2MDdkOGI7LS1sb2NhbC1jb2xvci1mb250OiNmZmZ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWJsdWVfZ3JleSwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtYmx1ZV9ncmV5LC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWJsdWVfZ3JleSAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojNjA3ZDhifS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWJsdWVfZ3JleS5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDk2LDEyNSwxMzksLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDk2LDEyNSwxMzksLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYmx1ZV9ncmV5LmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoOTYsMTI1LDEzOSwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYmx1ZV9ncmV5OmhvdmVye2JhY2tncm91bmQ6cmdiYSg5NiwxMjUsMTM5LC4yKTtib3JkZXItY29sb3I6cmdiYSg5NiwxMjUsMTM5LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtYmx1ZV9ncmV5e2JhY2tncm91bmQ6IzYwN2Q4Yn0uY2FwaWJhcmEgKiwuY2FwaWJhcmEgOmFmdGVyLC5jYXBpYmFyYSA6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2FwaWJhcmEgaW5wdXR7b3V0bGluZTpub25lfS5jYXBpYmFyYSBpbnB1dFt0eXBlPW51bWJlcl17LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZH0uY2FwaWJhcmEgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5jYXBpYmFyYSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LmNhcGliYXJhIGlucHV0W3R5cGU9bnVtYmVyXTo6LW1vei1wbGFjZWhvbGRlcntvcGFjaXR5OjF9LmNhcGliYXJhIGlucHV0W3R5cGU9bnVtYmVyXTotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eToxfS5jYXBpYmFyYSBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVye29wYWNpdHk6MX0uY2FwaWJhcmEuZGFyay10aGVtZSAuaGlkZS1kYXJrLC5jYXBpYmFyYTpub3QoLmRhcmstdGhlbWUpIC5oaWRlLWxpZ2h0e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNhcGliYXJhIC50cnVuY2F0ZXt3aWR0aDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2FwaWJhcmEgLmhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLnRleHQtdGl0bGV7Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luOi41ZW0gLjNlbX0uY2FwaWJhcmEgLnRleHQtc3VidGl0bGV7Zm9udC1zaXplOi44NzVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luOi41ZW0gLjNlbTtmbGV4OjAgMCBhdXRvfS5jYXBpYmFyYSAudGV4dC1oaW50e2ZvbnQtc2l6ZTouNzVlbTttYXJnaW46LjNlbTt0ZXh0LWFsaWduOmxlZnQ7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jYXBpYmFyYSAudGV4dC1zdWJ0aXRsZS0ye2ZvbnQtc2l6ZTouNzVlbTttYXJnaW46LjVlbSAuM2VtO2ZsZXg6MCAwIGF1dG99LmNhcGliYXJhIC5kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9ja30uY2FwaWJhcmEgLmQtYmxvY2t7ZGlzcGxheTpibG9ja30uY2FwaWJhcmEgLmQtZmxleHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjk2MHB4KXsuY2FwaWJhcmEgLmMtZC1kZXNrdG9wLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZC1kZXNrdG9wLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWQtZGVza3RvcC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZC1kZXNrdG9wLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo5NTlweCl7LmNhcGliYXJhIC5jLWQtbW9iaWxlLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZC1tb2JpbGUtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWQtbW9iaWxlLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWQtbW9iaWxlLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH19LmNhcGliYXJhe3Njcm9sbGJhci13aWR0aDphdXRvfS5jYXBpYmFyYSA6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7b3BhY2l0eTouNX0uY2FwaWJhcmEgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIsLmNhcGliYXJhIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2FwaWJhcmEgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOmdyZXl9LmNhcGliYXJhLmRhcmstdGhlbWUgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIsLmNhcGliYXJhLmRhcmstdGhlbWUgOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jYXBpYmFyYS5kYXJrLXRoZW1lIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojYmRiZGJkfS5jYXBpYmFyYXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseTpSb2JvdG8sc2Fucy1zZXJpZjtoZWlnaHQ6aW5oZXJpdDttYXgtaGVpZ2h0OmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZSl9LmNhcGliYXJhIHByZXtmb250LWZhbWlseTpSb2JvdG8sc2Fucy1zZXJpZiFpbXBvcnRhbnR9LmNhcGliYXJhe2NvbG9yOiMzNzQ3NGY7YmFja2dyb3VuZDojZjVmNWY1fS5jYXBpYmFyYS5kYXJrLXRoZW1le2NvbG9yOiNmMGYwZjA7YmFja2dyb3VuZDojMjIyODM3fS5jYXBpYmFyYSAuY29udGFpbmVyLXRse3dpZHRoOjEwMCU7aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci10b3AtaGVpZ2h0KSk7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItdG9wLWhlaWdodCkpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnNjcm9sbDttYXJnaW46MDt3aWxsLWNoYW5nZTpzY3JvbGwtcG9zaXRpb259LmNhcGliYXJhLmV4dGVuZGVkLXJpZ2h0IC5jb250YWluZXItdGx7d2lkdGg6Y2FsYygxMDAlIC0gdmFyKC0tbmF2LXJpZ2h0LXdpZHRoKSl9LmNhcGliYXJhIC5jb250YWluZXItdGx7YmFja2dyb3VuZDojZjVmNWY1fS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGx7YmFja2dyb3VuZDojMjIyODM3fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50b2RheS1saW5le3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGV9LmNhcGliYXJhIC5jb250YWluZXItdGwgLnRvZGF5LWxpbmUuZGlzYWJsZS1saW5lLC5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50b2RheS1saW5lLmRpc2FibGUtbGluZTphZnRlcntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50b2RheS1saW5lOmFmdGVye21hcmdpbi1sZWZ0OmNhbGModmFyKC0tbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSArIHZhcigtLWV4LW5hdi13aWR0aCkgKyB2YXIoLS1idG4tbmF2LXdpZHRoKSArIDFweCk7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztsZWZ0OjA7dG9wOjA7Y29udGVudDpcXFwiXFxcIjt3aWR0aDoycHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDE4MywyOCwyOCwuNCl9LmNhcGliYXJhIC5jb250YWluZXItdGwuaGVhZGVyLWV4dGVuZGVkIC5jb250YWluZXItdGwgLnRvZGF5LWxpbmU6YWZ0ZXJ7aGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpICsgdmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpKX0uY2FwaWJhcmEgLmNvcm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6dmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpO3otaW5kZXg6NDtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7Ym9yZGVyOnNvbGlkIHJnYmEoMCwwLDAsLjQpO2JvcmRlci13aWR0aDowIDAgMnB4O3BhZGRpbmctbGVmdDo4cHh9LmNhcGliYXJhIC5jb3JuZXI6bm90KC5yaWdodCl7bGVmdDowO2JvcmRlci1yaWdodC13aWR0aDoxcHg7d2lkdGg6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKX0uY2FwaWJhcmEgLmNvcm5lci5yaWdodHtyaWdodDowO3dpZHRoOnZhcigtLW5hdi1yaWdodC13aWR0aCk7ZGlzcGxheTpub25lfS5jYXBpYmFyYSAuY29ybmVyPmRpdjpub3QoW2NsYXNzXSl7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdH0uY2FwaWJhcmEgLmNvcm5lciAuYnRuLWNvbnRhaW5lcntwYWRkaW5nLXRvcDouNWVtfS5jYXBpYmFyYSAuY29ybmVyIC5idG4tY29udGFpbmVyIC5jb3JuZXItYnRue2ZvbnQtc2l6ZTouODI1ZW07bWFyZ2luOjAgNHB4O3BhZGRpbmc6NHB4IDhweH0uY2FwaWJhcmEgLmNvcm5lciAuY29ybmVyLXRpdGxle2hlaWdodDppbmhlcml0O2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXBpYmFyYSAuY29ybmVyIC5jb3JuZXItdGl0bGUgc3Bhbi5ib3R0b20tdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjhweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjk1OXB4KXsuY2FwaWJhcmEgLmNvcm5lciAuY29ybmVyLXRpdGxle2ZvbnQtc2l6ZTouNzVlbX19LmNhcGliYXJhIC5jb3JuZXIgLmluaXRpYWwtY29ybmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6dmFyKC0tbmF2LXdpZHRoKTt0b3A6MDt3aWR0aDp2YXIoLS1pbml0aWFsLW5hdi13aWR0aCk7aGVpZ2h0OnZhcigtLWhlYWRlci1oZWlnaHQpO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuY29ybmVyIC5pbml0aWFsLWNvcm5lciAuaW5pdGlhbC1jb3JuZXItdGl0bGV7aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6LTFweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dmVydGljYWwtYWxpZ246dG9wO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXBpYmFyYSAuY29ybmVyIC5pbml0aWFsLWNvcm5lciAuaW5pdGlhbC1jb3JuZXItdGl0bGUgLmJvdHRvbS1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTo4cHg7d2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2FwaWJhcmEgLmNvcm5lciAuaW5pdGlhbC1jb3JuZXIgLmluaXRpYWwtY29ybmVyLXRpdGxlIC5ib3R0b20tY29udGFpbmVyIC5pdGVtLWNvbHtmbGV4OjAgMCB2YXIoLS1uYXYtaXRlbS1jb2wtd2lkdGgpO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTouNzVlbX0uY2FwaWJhcmEgLmNvcm5lciAuZXh0ZW5kLWNvcm5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGModmFyKC0tbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSk7dG9wOjA7d2lkdGg6dmFyKC0tZXgtbmF2LXdpZHRoKTtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2t9LmNhcGliYXJhIC5jb3JuZXIgLmV4dGVuZC1jb3JuZXIgLmV4LWNvcm5lci10aXRsZXtoZWlnaHQ6aW5oZXJpdDt3aWR0aDppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDotMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt2ZXJ0aWNhbC1hbGlnbjp0b3A7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIC5jb3JuZXIgLmV4dGVuZC1jb3JuZXIgLmV4LWNvcm5lci10aXRsZSAuYm90dG9tLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjhweDt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5jYXBpYmFyYSAuY29ybmVyIC5leHRlbmQtY29ybmVyIC5leC1jb3JuZXItdGl0bGUgLmJvdHRvbS1jb250YWluZXIgLml0ZW0tY29se2ZsZXg6MCAwIHZhcigtLW5hdi1pdGVtLWNvbC13aWR0aCk7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOi43NWVtfS5jYXBpYmFyYSAuY29ybmVyIC5jYXAtYnRuLW5hdi1jb3JuZXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDp2YXIoLS1idG4tbmF2LXdpZHRoKTtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7bWluLXdpZHRoOjEwMHB4O3BhZGRpbmctdG9wOnZhcigtLWhlYWRlci1sYWJlbHMtaGVpZ2h0KX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXN7dGV4dC1hbGlnbjpyaWdodDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOnZhcigtLWhlYWRlci1sYWJlbHMtaGVpZ2h0KX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjNweH0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lcjpub3QoLnBlcnNpc3RlbnQpe2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lci5pbnB1dC10aXRsZS0tYWNjZW50IC5pbnB1dC10aXRsZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6Z3JleX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lciBzcGFuLmF2ZXJhZ2V7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1yaWdodDo0cHg7cGFkZGluZzozcHh9LmNhcGliYXJhIC5jb3JuZXIgLmNhcC1idG4tbmF2LWNvcm5lciAuaW5wdXQtdGl0bGVzIC5pbnB1dC10aXRsZS1jb250YWluZXIgLmlucHV0LXRpdGxle2hlaWdodDpjYWxjKHZhcigtLWhlYWRlci1pbnB1dC1oZWlnaHQpICsgMnB4KTtsaW5lLWhlaWdodDpjYWxjKHZhcigtLWhlYWRlci1pbnB1dC1oZWlnaHQpICsgMnB4KTtwYWRkaW5nLXJpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6Ljc1ZW19LmNhcGliYXJhLmV4dGVuZGVkLXJpZ2h0IC5jb3JuZXIucmlnaHR7ZGlzcGxheTpibG9ja30uY2FwaWJhcmEuaGVhZGVyLWV4dGVuZGVkIC5jb3JuZXIsLmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29ybmVyIC5jYXAtYnRuLW5hdi1jb3JuZXIsLmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29ybmVyIC5leHRlbmQtY29ybmVyLC5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgLmNvcm5lciAuaW5pdGlhbC1jb3JuZXJ7aGVpZ2h0OmNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyB2YXIoLS1leC1oZWFkZXItaGVpZ2h0KSl9LmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29ybmVyIC5jYXAtYnRuLW5hdi1jb3JuZXIgLmlucHV0LXRpdGxlcyAuaW5wdXQtdGl0bGUtY29udGFpbmVyOm5vdCgucGVyc2lzdGVudCl7ZGlzcGxheTp1bnNldH0uY2FwaWJhcmEuaGVhZGVyLWV4dGVuZGVkIC5jb3JuZXIgLmNhcC1idG4tbmF2LWNvcm5lciAuaW5wdXQtdGl0bGVzIC5pbnB1dC10aXRsZS1jb250YWluZXI6bm90KC5wZXJzaXN0ZW50KSAuYXZlcmFnZS1ib3h7dmlzaWJpbGl0eTp2aXNpYmxlfS5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lcjpub3QoLnBlcnNpc3RlbnQpIC5pbnB1dC10aXRsZXt2aXNpYmlsaXR5OnZpc2libGU7aGVpZ2h0OmF1dG99LmNhcGliYXJhIC5jb3JuZXJ7YmFja2dyb3VuZDojZjFmZmZlfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb3JuZXJ7YmFja2dyb3VuZDojMzEzYjUwO2JvcmRlci1jb2xvcjpyZ2JhKDY0LDc4LDEwNSwuNil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNvcm5lciAuaW5wdXQtdGl0bGVzIC5pbnB1dC10aXRsZS1jb250YWluZXIgLmlucHV0LXRpdGxle2NvbG9yOmhzbGEoMCwwJSwxMDAlLC44KSFpbXBvcnRhbnR9LmNhcGliYXJhIC5oZWFkZXItdG9we3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLWhlYWRlci10b3AtaGVpZ2h0KTtwYWRkaW5nOjAgLjVlbTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO3otaW5kZXg6NX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnNwYWNlcntmbGV4OjEgMCBhdXRvfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2JvcmRlci1yaWdodDoxcHggc29saWQgaHNsYSgwLDAlLDQzLjUlLC4zKTttYXJnaW4tcmlnaHQ6LjVlbX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyOm5vdCg6ZW1wdHkpe3BhZGRpbmc6MH0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIGJ1dHRvbi50YWJ7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzouMjVlbSAxZW07Zm9udC13ZWlnaHQ6NzAwO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luOi41ZW0gLjVlbSAwIDA7Ym9yZGVyLXJhZGl1czozMHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgYnV0dG9uLnRhYjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDAsMCwwLC4zKX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIGJ1dHRvbi50YWIuZGlzYWJsZWR7Y29sb3I6Z3JleX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIGJ1dHRvbi50YWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOmdyZXl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lcntkaXNwbGF5OmZsZXh9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5ke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7bWFyZ2luLXJpZ2h0OjFlbTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOi44ZW0gLjVlbSAuNWVtIDB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kOm5vdCguYWN0aXZlKXtvcGFjaXR5Oi41fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAubGVnZW5kcy1jb250YWluZXIgLmxlZ2VuZDpub3QoLmFjdGl2ZSkgLmljb24tbGVnZW5ke2JhY2tncm91bmQ6Z3JleSFpbXBvcnRhbnR9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kIC5pY29uLWxlZ2VuZHt3aWR0aDouODI1ZW07aGVpZ2h0Oi44MjVlbTttYXJnaW46MnB4IC41ZW0gMnB4IDA7YmFja2dyb3VuZDpncmV5O2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjQpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6MXB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuNCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kIC5pY29uLWxlZ2VuZC5jaXJjbGV7Ym9yZGVyLXJhZGl1czo1MCV9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kOmhvdmVyIHNwYW57dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLmxlZ2VuZHMtY29udGFpbmVyLmZvcmNlLW1vYmlsZS1zdHlsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJlbTt0b3A6MmVtO2JhY2tncm91bmQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC40KTtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpIWltcG9ydGFudH0uY2FwaWJhcmEgLmhlYWRlci10b3AgLmxlZ2VuZHMtY29udGFpbmVyLmZvcmNlLW1vYmlsZS1zdHlsZSAubGVnZW5ke2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6LjVlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjk1OXB4KXsuY2FwaWJhcmEgLmhlYWRlci10b3AgLmxlZ2VuZHMtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MmVtO3RvcDoyZW07YmFja2dyb3VuZDppbmhlcml0O2NvbG9yOmluaGVyaXQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6Njtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjQpO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMikhaW1wb3J0YW50fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAubGVnZW5kcy1jb250YWluZXIgLmxlZ2VuZHtmb250LXNpemU6MTZweDtwYWRkaW5nOi41ZW19fS5jYXBpYmFyYSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNmMWZmZmV9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFie2NvbG9yOiMzMTNiNTB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiLmRpc2FibGVke2NvbG9yOnJnYmEoNDksNTksODAsLjUpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5oZWFkZXItdG9we2JhY2tncm91bmQ6IzMxM2I1MH0uY2FwaWJhcmEuZGFyay10aGVtZSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYntjb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWIuZGlzYWJsZWR7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjQpfS5jYXBpYmFyYSAuY29ybmVyLWZvb3Rlcntwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7bGVmdDowO2JvdHRvbTowO3otaW5kZXg6Mzt3aWR0aDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KSotMSk7Ym94LXNpemluZzpib3JkZXItYm94fS5jYXBpYmFyYSAuY29ybmVyLWZvb3RlciAuY29ybmVyLXRpdGxle2xpbmUtaGVpZ2h0OjMwcHg7aGVpZ2h0OmluaGVyaXQ7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmxlZnQ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjRweCA4cHh9LmNhcGliYXJhIC5jb3JuZXItZm9vdGVye2JhY2tncm91bmQ6Izc4OTA5Yztjb2xvcjojZmZmfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb3JuZXItZm9vdGVye2JhY2tncm91bmQ6IzMxM2I1MDtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYSBuYXYucmlnaHR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6Y2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWhlYWRlci10b3AtaGVpZ2h0KSk7aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1oZWlnaHQpIC0gdmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpKTtvdmVyZmxvdy15OnNjcm9sbDtvdmVyZmxvdy14OmhpZGRlbjt6LWluZGV4OjU7ZGlzcGxheTpub25lO2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZWR9LmNhcGliYXJhIG5hdi5yaWdodCwuY2FwaWJhcmEgbmF2LnJpZ2h0IC5jaGlsZC1uYXYtaXRlbSwuY2FwaWJhcmEgbmF2LnJpZ2h0IC5uYXYtaXRlbXt3aWR0aDp2YXIoLS1uYXYtcmlnaHQtd2lkdGgpfS5jYXBpYmFyYSBuYXYucmlnaHQgLm5hdi1pbnB1dC1jb250YWluZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmNhcGliYXJhIG5hdi5yaWdodCAubmF2LWlucHV0LWNvbnRhaW5lciAuYnV0dG9uLXNlY3Rpb257cGFkZGluZy1ib3R0b206Ljc1ZW07cGFkZGluZy10b3A6Ljc1ZW07cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O2JvdHRvbTowfS5jYXBpYmFyYSBuYXYubGVmdHttaW4taGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7bGVmdDowO3dpZHRoOmNhbGModmFyKC0tbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSArIHZhcigtLWV4LW5hdi13aWR0aCkgKyB2YXIoLS1idG4tbmF2LXdpZHRoKSk7aGVpZ2h0OmF1dG87ei1pbmRleDoyO2JvcmRlci1yaWdodDoxcHggc29saWQgI2IwYmVjNTtvdmVyZmxvdzp2aXNpYmxlO2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMil9LmNhcGliYXJhIG5hdi5sZWZ0IC5jaGlsZC1uYXYtaXRlbSwuY2FwaWJhcmEgbmF2LmxlZnQgLm5hdi1pdGVte3dpZHRoOnZhcigtLW5hdi13aWR0aCl9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW17bWluLXdpZHRoOjI1MHB4O21heC13aWR0aDo1MDBweDt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnQ7bWluLWhlaWdodDo3MHB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6M3JlbTt0b3A6MDtib3JkZXI6MXB4IHNvbGlkIGdyZXk7ei1pbmRleDoyO2JvcmRlci1yYWRpdXM6NXB4O3BhZGRpbmc6MTZweDt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcDtib3gtc2hhZG93OjAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsLjIpLDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLC4xNCksMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwuMTIpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLjVyZW0gKyB2YXIoLS1pdGVtLWhlaWdodCkpKX0uY2FwaWJhcmEgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbS50by1ib3R0b217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygtMTAwJSAtIC41cmVtKSl9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1kZXRhaWwgLmRldGFpbC10aXRsZXtmb250LXNpemU6MS4xMjVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luLWJvdHRvbTo4cHg7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjgwcHh9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1kZXRhaWwgLmRldGFpbC1zdWJ0aXRsZXtmb250LXNpemU6Ljg3NTttYXJnaW4tYm90dG9tOjhweH0uY2FwaWJhcmEgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbSAuaGVhZGVyLWRldGFpbCAuaGVhZGVyLWNoaXB7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTZweDt0b3A6MTZweDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyOjNweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6NXB4fS5jYXBpYmFyYSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5kZXRhaWwtY29udGFpbmVyPmRpdnttYXJnaW46NnB4IDB9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0e3dpZHRoOnZhcigtLWluaXRpYWwtbmF2LXdpZHRoKTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLW5hdi13aWR0aCk7dG9wOjA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2t9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtLC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjBiZWM1O2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtsaW5lLWhlaWdodDozNHB4fS5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS10aXRsZSwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tdGl0bGV7ZmxleDoxIDAgYXV0bztwYWRkaW5nOjRweCA4cHh9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbCwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29se2ZsZXg6MCAwIHZhcigtLW5hdi1pdGVtLWNvbC13aWR0aCk7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo0cHggOHB4fS5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0LC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0e3BhZGRpbmc6MH0uY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD4uaG91ci1pbnB1dCwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD4uaG91ci1pbnB1dHtmb250LXNpemU6Ljg3NWVtO3dpZHRoOmNhbGMoMTAwJSAtIDhweCk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDoyNHB4fS5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0LC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0e3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouODc1ZW07d2lkdGg6Y2FsYygxMDAlIC0gOHB4KTtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgZ3JleTtib3JkZXItcmFkaXVzOjNweDtoZWlnaHQ6MjRweDttYXJnaW46OHB4IDRweCA0cHg7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMil9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQ+aW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmZvY3VzLC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD5pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC44KX0uY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdHt3aWR0aDp2YXIoLS1leC1uYXYtd2lkdGgpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpKTt0b3A6MDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9ja30uY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0sLmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVte2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiMGJlYzU7aGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2xpbmUtaGVpZ2h0OjEuNzVyZW19LmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLXRpdGxlLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS10aXRsZXtmbGV4OjEgMCBhdXRvO3BhZGRpbmc6NHB4IDhweH0uY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2x7ZmxleDowIDAgdmFyKC0tbmF2LWl0ZW0tY29sLXdpZHRoKTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjRweCA4cHh9LmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQsLmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXR7cGFkZGluZzowfS5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0LC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0e3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouODc1ZW07d2lkdGg6Y2FsYygxMDAlIC0gOHB4KTtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgZ3JleTtib3JkZXItcmFkaXVzOjNweDtoZWlnaHQ6MjRweDttYXJnaW46OHB4IDRweCA0cHg7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMil9LmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQ+aW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmZvY3VzLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD5pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC44KX0uY2FwaWJhcmEgbmF2LmxlZnQgLmNhcC1idG4tbmF2LWxpc3R7bGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpKTt3aWR0aDp2YXIoLS1idG4tbmF2LXdpZHRoKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtvdmVyZmxvdzpoaWRkZW59LmNhcGliYXJhIG5hdi5sZWZ0IC5jYXAtYnRuLW5hdi1saXN0IC5jYXAtYnRuLWNoaWxkLW5hdi1pdGVtIC5jYXAtYnRuLW5hdi1pdGVtLWNvbnRlbnQsLmNhcGliYXJhIG5hdi5sZWZ0IC5jYXAtYnRuLW5hdi1saXN0IC5jYXAtYnRuLW5hdi1pdGVtIC5jYXAtYnRuLW5hdi1pdGVtLWNvbnRlbnR7aGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTt3aWR0aDppbmhlcml0O3BhZGRpbmc6NHB4IDZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjBiZWM1O3RleHQtYWxpZ246cmlnaHR9LmNhcGliYXJhIG5hdi5sZWZ0IC5uYXYtaXRlbS10b3RhbC1mb290ZXJ7cGFkZGluZy10b3A6M3B4fS5jYXBpYmFyYSBuYXYgLmNhcC1idG4tbmF2LWl0ZW0ucGFyZW50LC5jYXBpYmFyYSBuYXYgLmV4LW5hdi1pdGVtLnBhcmVudCwuY2FwaWJhcmEgbmF2IC5pbml0aWFsLW5hdi1pdGVtLnBhcmVudCwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1jb250YWluZXIucGFyZW50e2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC4xKX0uY2FwaWJhcmEgbmF2IC5jYXAtYnRuLW5hdi1pdGVtLnBhcmVudD4uaXRlbS10aXRsZSwuY2FwaWJhcmEgbmF2IC5leC1uYXYtaXRlbS5wYXJlbnQ+Lml0ZW0tdGl0bGUsLmNhcGliYXJhIG5hdiAuaW5pdGlhbC1uYXYtaXRlbS5wYXJlbnQ+Lml0ZW0tdGl0bGUsLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tY29udGFpbmVyLnBhcmVudD4uaXRlbS10aXRsZXttYXgtd2lkdGg6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpIC0gNjBweCk7d2lkdGg6YXV0b30uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbXttaW4taGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjBiZWM1O2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCl9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAudHJlZS1pY29uLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbnt0cmFuc2l0aW9uOmFsbCAuNXMgZWFzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO3dpZHRoOjM0cHg7ZmxleDowIDAgMzRweDtmb250LXNpemU6MS41ZW07dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAudHJlZS1pY29uOmZvY3VzLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDAsMCwwLC4zKX0uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5uYXYtaXRlbS1pY29uLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLm5hdi1pdGVtLWljb257ZmxleDowIDAgMzRweDtmb250LXNpemU6MS4xMjVlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6NDBweDttYXJnaW4tdG9wOjEycHh9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAubmF2LWl0ZW0taWNvbiBwYXRoLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLm5hdi1pdGVtLWljb24gcGF0aHt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUsLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAubmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAuaXRlbS10aXRsZXtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6Z3JpZDtmb250LXNpemU6MWVtO2xpbmUtaGVpZ2h0OjM0cHg7cGFkZGluZzo0cHggOHB4fS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuZnVsbC13aWR0aCwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5pdGVtLXRpdGxlLmZ1bGwtd2lkdGh7ZmxleDoxIDAgYXV0bztkaXNwbGF5OmlubGluZS1ibG9ja30uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5pdGVtLXRpdGxlLmNsaWNrZWFibGUsLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAubmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAuaXRlbS10aXRsZS5jbGlja2VhYmxle2N1cnNvcjpwb2ludGVyfS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuY2xpY2tlYWJsZTpob3ZlciwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5pdGVtLXRpdGxlLmNsaWNrZWFibGU6aG92ZXJ7YmFja2dyb3VuZDpoc2xhKDAsMCUsMzkuMiUsLjIpIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuaG92ZXJhYmxlOmhvdmVyLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuaG92ZXJhYmxlOmhvdmVye2JhY2tncm91bmQ6aHNsYSgwLDAlLDM5LjIlLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmV4dGVuZGVkLXJpZ2h0IG5hdi5yaWdodHtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgbmF2LmxlZnR7bWluLWhlaWdodDpjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpKX0uY2FwaWJhcmEuaGVhZGVyLWV4dGVuZGVkIG5hdi5yaWdodHt0b3A6Y2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWhlYWRlci10b3AtaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpKTtoZWlnaHQ6Y2FsYygxMDAlIC0gdmFyKC0taGVhZGVyLWhlaWdodCkgLSB2YXIoLS1oZWFkZXItdG9wLWhlaWdodCkgLSB2YXIoLS1leC1oZWFkZXItaGVpZ2h0KSl9LmNhcGliYXJhIG5hdi5sZWZ0LC5jYXBpYmFyYSBuYXYucmlnaHQsLmNhcGliYXJhIG5hdi5yaWdodCAuYnV0dG9uLXNlY3Rpb257YmFja2dyb3VuZDojZmFmYWZhfS5jYXBpYmFyYSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVte2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKTtiYWNrZ3JvdW5kOiNmZmZ9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1jaGlwLnJlZC1saWdodHtib3JkZXItY29sb3I6I2Y4NDc0N30uY2FwaWJhcmEgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbSAuaGVhZGVyLWNoaXAueWVsbG93LWxpZ2h0e2JvcmRlci1jb2xvcjojZmRkODM1fS5jYXBpYmFyYSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5oZWFkZXItY2hpcC5ncmVlbi1saWdodHtib3JkZXItY29sb3I6IzM4OTkzZH0uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC50cmVlLWljb24sLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAubmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAudHJlZS1pY29ue2NvbG9yOiMzNzQ3NGZ9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAubmF2LWl0ZW0taWNvbiwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5uYXYtaXRlbS1pY29ue2NvbG9yOnJnYmEoNTUsNzEsNzksLjIpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5yaWdodCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYucmlnaHQgLmJ1dHRvbi1zZWN0aW9ue2JhY2tncm91bmQ6IzIyMjgzN30uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdHtiYWNrZ3JvdW5kOiMyMjI4Mzc7Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVte2JvcmRlci1jb2xvcjojNDA0ZTY5O2JhY2tncm91bmQ6IzIyMjgzN30uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5oZWFkZXItY2hpcHtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1jaGlwLnJlZC1saWdodHtib3JkZXItY29sb3I6I2FhMWExYX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5oZWFkZXItY2hpcC55ZWxsb3ctbGlnaHR7Ym9yZGVyLWNvbG9yOiNmYmNkMDB9LmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbSAuaGVhZGVyLWNoaXAuZ3JlZW4tbGlnaHR7Ym9yZGVyLWNvbG9yOiMzODhlM2N9LmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0sLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuZXgtbmF2LWl0ZW0sLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW17Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCAuaG91ci1pbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCAuaG91ci1pbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0e2JhY2tncm91bmQ6IzQwNGU2OTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCAuaG91ci1pbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMil9LmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmNhcC1idG4tbmF2LWxpc3QgLmNhcC1idG4tY2hpbGQtbmF2LWl0ZW0gLmNhcC1idG4tbmF2LWl0ZW0tY29udGVudCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuY2FwLWJ0bi1uYXYtbGlzdCAuY2FwLWJ0bi1uYXYtaXRlbSAuY2FwLWJ0bi1uYXYtaXRlbS1jb250ZW50LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbiwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbntjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAubmF2LWl0ZW0taWNvbiwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLm5hdi1pdGVtLWljb257Y29sb3I6aHNsYSgwLDAlLDk0LjElLC4yKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXJ7aGVpZ2h0OnZhcigtLWhlYWRlci1oZWlnaHQpO3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDt0b3A6MDttaW4td2lkdGg6MTAwJTtwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7ei1pbmRleDozO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIGdyZXk7Ym94LXNpemluZzpib3JkZXItYm94O2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMil9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVke2hlaWdodDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO3dpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0e3BhZGRpbmc6MXB4IDA7ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdDpub3QoLnBlcnNpc3RlbnQpe2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXItZXh0ZW5kZWQgLmlucHV0LWxpc3Q+ZGl2e3dpZHRoOnZhcigtLWRheS13aWR0aCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0PmRpdj5zcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6aW5oZXJpdDtsaW5lLWhlaWdodDp2YXIoLS1oZWFkZXItaW5wdXQtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0taGVhZGVyLWlucHV0LWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi44NzVlbX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXItZXh0ZW5kZWQgLmlucHV0LWxpc3QgLmRpYS1pbnB1dCBpbnB1dHt3aWR0aDppbmhlcml0O2hlaWdodDp2YXIoLS1oZWFkZXItaW5wdXQtaGVpZ2h0KTtib3JkZXI6MXB4IHNvbGlkIGdyZXk7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuNSk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi44NzVlbX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXItZXh0ZW5kZWQgLmlucHV0LWxpc3QgLmRpYS1pbnB1dCBpbnB1dDphY3RpdmUsLmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IC5kaWEtaW5wdXQgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuOCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2hlaWdodDp2YXIoLS1oZWFkZXItbGFiZWxzLWhlaWdodCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyIC5oZWFkZXItaXRlbXtwYWRkaW5nOjZweCA4cHg7bWluLXdpZHRoOnZhcigtLWl0ZW0tbWluLXdpZHRoKTtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXIgLmhlYWRlci1pdGVtIHNwYW4uYm90dG9tLXRleHR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTo4cHg7d2lkdGg6MTAwJX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpb3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnR9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLmFnbm97cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6MzJweDtmb250LXNpemU6Ljc1ZW07bWFyZ2luLXRvcDo0cHh9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lc2Vze2Rpc3BsYXk6YmxvY2s7ZGlzcGxheTpmbGV4fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpb3tkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6dmFyKC0tZGF5LXdpZHRoKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lc3tkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7bGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1idG4tbmF2LXdpZHRoKSk7cGFkZGluZy1sZWZ0Oi41ZW07cGFkZGluZy1yaWdodDoyZW07Zm9udC1zaXplOi44NzVlbTttYXJnaW4tdG9wOjZweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZHt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO21heC13aWR0aDp2YXIoLS1kYXktd2lkdGgpO292ZXJmbG93OmhpZGRlbn0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZC5tZXMtcmVkdWNlZC0ye3dpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSoyKTttYXgtd2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpKjIpfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAubWVzLm1lcy1yZWR1Y2VkLm1lcy1yZWR1Y2VkLTN7d2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpKjMpO21heC13aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkqMyl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5tZXMubWVzLXJlZHVjZWQubWVzLXJlZHVjZWQtNHt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkqNCk7bWF4LXdpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSo0KX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZCAubWVzLWxhYmVse3dpZHRoOi13ZWJraXQtbWF4LWNvbnRlbnQ7d2lkdGg6LW1vei1tYXgtY29udGVudDt3aWR0aDptYXgtY29udGVudH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZDphZnRlcntjb250ZW50OlxcXCJcXFwiO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LHJlZCk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtoZWlnaHQ6MTAwJTt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkvMil9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFze2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjVweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLmRpYXMgLmRpYS1jYWxlbmRhcmlve3dpZHRoOnZhcigtLWRheS13aWR0aCk7aGVpZ2h0OnZhcigtLWhlYWRlci1kYXktaGVpZ2h0KTt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Zm9udC1zaXplOi44NzVlbTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjRweCA2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5pcy1jbGlja2VhYmxle2N1cnNvcjpwb2ludGVyfS5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgLmNvbnRhaW5lci10bCBoZWFkZXJ7aGVpZ2h0OmNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyB2YXIoLS1leC1oZWFkZXItaGVpZ2h0KSl9LmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdDpub3QoLnBlcnNpc3RlbnQpe2Rpc3BsYXk6ZmxleH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjFmZmZlO2NvbG9yOiMzNzQ3NGZ9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2YxZmZmZSl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby53ZWVrZW5ke2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMSk7Y29sb3I6IzI2MzIzOH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLmRpYXMgLmRpYS1jYWxlbmRhcmlvLnRvZGF5e2JhY2tncm91bmQ6cmdiYSgyMjksNTcsNTMsLjkpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5hY3RpdmV7YmFja2dyb3VuZDpncmVlbjtjb2xvcjojZmZmfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAuZGlhcyAuZGlhLWNhbGVuZGFyaW8uaXMtY2xpY2tlYWJsZTpob3ZlcntiYWNrZ3JvdW5kOmhzbGEoMCwwJSwzOS4yJSwuNCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5pcy1jbGlja2VhYmxlOmFjdGl2ZXtiYWNrZ3JvdW5kOmhzbGEoMCwwJSwzOS4yJSwuNil9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IC5kaWEtaW5wdXQgaW5wdXQsLmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IGRpdj5zcGFue2NvbG9yOiMzMTNiNTB9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojMzEzYjUwO2NvbG9yOiNmMGYwZjA7Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCMzMTNiNTApfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpb3tib3JkZXItY29sb3I6cmdiYSg2NCw3OCwxMDUsLjYpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby53ZWVrZW5ke2JhY2tncm91bmQ6IzIyMjgzNztjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby50b2RheXtiYWNrZ3JvdW5kOnJnYmEoMTgzLDI4LDI4LC42KTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDU2LDE0Miw2MCwuNik7Y29sb3I6I2YwZjBmMH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAuZGlhcyAuZGlhLWNhbGVuZGFyaW8uaXMtY2xpY2tlYWJsZTpob3ZlcntiYWNrZ3JvdW5kOmhzbGEoMCwwJSwzOS4yJSwuNCl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLmRpYXMgLmRpYS1jYWxlbmRhcmlvLmlzLWNsaWNrZWFibGU6YWN0aXZle2JhY2tncm91bmQ6aHNsYSgwLDAlLDM5LjIlLC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdCBkaXY+c3Bhbntjb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCkhaW1wb3J0YW50fS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IC5kaWEtaW5wdXQgaW5wdXR7YmFja2dyb3VuZDpyZ2JhKDY0LDc4LDEwNSwuNik7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjgpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzMxM2I1MH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdCAuZGlhLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdCAuZGlhLWlucHV0IGlucHV0OmZvY3Vze2JhY2tncm91bmQ6aHNsYSgwLDAlLDEwMCUsLjIpfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC5wbG90LXZlcnRpY2FsLWNvbnRhaW5lcntoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC12ZXJ0aWNhbC1jb250YWluZXIgLnBsb3QtdmVydGljYWx7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zKTt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDpjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCkgLSB2YXIoLS1oZWFkZXItdG9wLWhlaWdodCkpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC12ZXJ0aWNhbC1jb250YWluZXIgLnBsb3QtdmVydGljYWwucmFpbntiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNTNkZWcscmdiYSgzLDE1NSwyMjksLjIpLHJnYmEoMywxNTUsMjI5LC4yKSA1cHgsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCAxMnB4KX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC1ob3Jpem9udGFsLWNvbnRhaW5lcntoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC1ob3Jpem9udGFsLWNvbnRhaW5lciAucGxvdC1ob3Jpem9udGFse2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMyk7d2lkdGg6MTAwdnc7aGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9LmNhcGliYXJhIC5jb250YWluZXItdGwgLnBsb3QtaG9yaXpvbnRhbC1jb250YWluZXIgLnBsb3QtaG9yaXpvbnRhbC5wbG90LXBhcmVudHtiYWNrZ3JvdW5kOnJnYmEoMjUsMTE4LDIxMCwuMSl9LmNhcGliYXJhIC5jb250YWluZXItdGwuZXh0ZW5kZWQtcmlnaHQgLmNvbnRhaW5lci10bCAucGxvdC1jb250YWluZXIgLnBsb3QtdmVydGljYWx7aGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpICsgdmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBmb290ZXJ7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O2JvdHRvbTowO21pbi13aWR0aDoxMDAlO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3otaW5kZXg6Mjtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNhcGliYXJhIC5jb250YWluZXItdGwgZm9vdGVyIC5mb290ZXItY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4td2lkdGg6MTAwJTtkaXNwbGF5OmZsZXh9LmNhcGliYXJhIC5jb250YWluZXItdGwgZm9vdGVyIC5mb290ZXItY29udGFpbmVyIC5mb290ZXItaXRlbXtwYWRkaW5nOjEwcHggMnB4O3dpZHRoOnZhcigtLWRheS13aWR0aCk7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6dmFyKC0taXRlbS1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGZvb3RlcntiYWNrZ3JvdW5kOiM3ODkwOWM7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmNvbnRhaW5lci10bC5kYXJrLXRoZW1lIGZvb3RlcntiYWNrZ3JvdW5kOiMzMTNiNTA7Y29sb3I6I2YwZjBmMH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO3RvcDp2YXIoLS1oZWFkZXItaGVpZ2h0KTt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1uYXYtd2lkdGgpIC0gdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpIC0gdmFyKC0tZXgtbmF2LXdpZHRoKSAtIHZhcigtLWJ0bi1uYXYtd2lkdGgpKTttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtoZWlnaHQ6Y2FsYygxMDAlIC0gdmFyKC0taGVhZGVyLWhlaWdodCkpO21hcmdpbi10b3A6LTFweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGUgLmRheS1tb3VzZS1vdmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7Ym9yZGVyOjNweCBzb2xpZCByZ2JhKDI0NSwxMjQsMCwuNSk7Ym94LXNoYWRvdzowIDAgMnB4ICNmNTdjMDAsaW5zZXQgMCAwIDNweCAjZjU3YzAwO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBlYXNlO292ZXJmbG93OnZpc2libGU7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50YWJsZSAuZGF5LW1vdXNlLW92ZXI6YWZ0ZXIsLmNhcGliYXJhIC5jb250YWluZXItdGwgLnRhYmxlIC5kYXktbW91c2Utb3ZlcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpyZ2JhKDI0NSwxMjQsMCwuMSk7Y29udGVudDpcXFwiXFxcIjtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50YWJsZSAuZGF5LW1vdXNlLW92ZXI6YWZ0ZXJ7d2lkdGg6dmFyKC0tZGF5LXdpZHRoKTtoZWlnaHQ6MTAwdmg7cmlnaHQ6LTRweDtib3R0b206Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkgLSAycHgpfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50YWJsZSAuZGF5LW1vdXNlLW92ZXI6YmVmb3Jle2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7d2lkdGg6MTAwdnc7cmlnaHQ6Y2FsYyh2YXIoLS1kYXktd2lkdGgpIC0gMnB4KTtib3R0b206LTRweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGUgLmJhY2tncm91bmQtZ3JpZHt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkqMjApO2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KSoyMCk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDoxcHg7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O2JhY2tncm91bmQtc2l6ZTp2YXIoLS1kYXktd2lkdGgpIHZhcigtLWl0ZW0taGVpZ2h0KSxjYWxjKHZhcigtLWRheS13aWR0aCkqNykgdmFyKC0taXRlbS1oZWlnaHQpLGNhbGModmFyKC0tZGF5LXdpZHRoKSo3KSB2YXIoLS1pdGVtLWhlaWdodCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSg4MCw4MCw4MCwuMykgMXB4LHRyYW5zcGFyZW50IDApLGxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoODAsODAsODAsLjMpIDFweCx0cmFuc3BhcmVudCAwKSxsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQgY2FsYyh2YXIoLS1kYXktd2lkdGgpKjUpLHJnYmEoODAsODAsODAsLjEpIDApO2JhY2tncm91bmQtcG9zaXRpb246MCAwLDAgMCwwIDB9LmNhcGliYXJhIC5jb250YWluZXItdGwgLnRhYmxlIC5kcmF3LWJveHtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGUgLmRyYXctYm94IGNhbnZhc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjB9LmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29udGFpbmVyLXRsIC50YWJsZXt0b3A6Y2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpKX0uY2FwaWJhcmEgLnNlbGVjdC1jb250YWluZXJ7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MDtoZWlnaHQ6MH0uY2FwaWJhcmEgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpoc2xhKDAsMCUsNzQuMSUsLjQpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDVweCBoc2xhKDAsMCUsNzQuMSUsLjgpfS5jYXBpYmFyYSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5W2NhcC1iYWRnZV06YWZ0ZXJ7Y29udGVudDphdHRyKGNhcC1iYWRnZSk7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotM3B4O3RvcDotM3B4O2JhY2tncm91bmQ6IzE1NjVjMDtmb250LXNpemU6Ljc1ZW07Y29sb3I6I2ZmZjt3aWR0aDoxLjVlbTtoZWlnaHQ6MS41ZW07Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjJweDtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4zKX0uY2FwaWJhcmEgLmRldGFpbC1kYXl7bWluLWhlaWdodDo1MHB4O21pbi13aWR0aDoyNTBweDttYXgtd2lkdGg6NDAwcHg7Ym9yZGVyOjFweCBzb2xpZCBncmV5O3BhZGRpbmc6Ljc1ZW07ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO21hcmdpbjowIDAgMCAxZW07Ym94LXNpemluZzpib3JkZXItYm94O2JveC1zaGFkb3c6MCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwuMiksMCAxMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLC4xMik7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1cHg7dHJhbnNpdGlvbjphbGwgLjNzIGVhc2U7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLGxlZnQsdG9wO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0taXRlbS1oZWlnaHQpLzIqLTEpKTt6LWluZGV4OjQ7b3BhY2l0eToxfS5jYXBpYmFyYSAuZGV0YWlsLWRheTphZnRlcntjb250ZW50OlxcXCJcXFwiO2JhY2tncm91bmQ6aW5oZXJpdDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTFweDt0b3A6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvMiArIDdweCk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7Ym9yZGVyLWNvbG9yOmdyZXk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIDAgMXB4IDFweH0uY2FwaWJhcmEgLmRldGFpbC1kYXkuZGQtaGlkZXtkaXNwbGF5Om5vbmV9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1yaWdodC1hcnJvd3ttYXJnaW46MCAxNnB4IDAgMDt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCAtIHZhcigtLWRheS13aWR0aCkpKSB0cmFuc2xhdGVZKGNhbGModmFyKC0taXRlbS1oZWlnaHQpLzIqLTEpKX0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLXJpZ2h0LWFycm93OmFmdGVye2JvcmRlci13aWR0aDoxcHggMXB4IDAgMDtsZWZ0OnVuc2V0O3JpZ2h0Oi0xMXB4fS5jYXBpYmFyYSAuZGV0YWlsLWRheS5oYXMtY2VpbC1hcnJvd3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtN3B4KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLWNlaWwtYXJyb3c6YWZ0ZXJ7dG9wOjZweH0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLWNlaWwtYXJyb3cuaGFzLXJpZ2h0LWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4IC0gdmFyKC0tZGF5LXdpZHRoKSkpIHRyYW5zbGF0ZVkoLTdweCl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1jZWlsLWFycm93Lmhhcy1yaWdodC1hcnJvdzphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xMXB4fS5jYXBpYmFyYSAuZGV0YWlsLWRheS5oYXMtbWlkZGxlLWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLTUwJSArIHZhcigtLWl0ZW0taGVpZ2h0KS8yKSl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1taWRkbGUtYXJyb3c6YWZ0ZXJ7dG9wOmNhbGMoNTAlIC0gMTBweCl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1taWRkbGUtYXJyb3cuaGFzLXJpZ2h0LWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4IC0gdmFyKC0tZGF5LXdpZHRoKSkpIHRyYW5zbGF0ZVkoY2FsYygtNTAlICsgdmFyKC0taXRlbS1oZWlnaHQpLzIpKX0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLW1pZGRsZS1hcnJvdy5oYXMtcmlnaHQtYXJyb3c6YWZ0ZXJ7bGVmdDp1bnNldDtyaWdodDotMTFweH0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLWJvdHRvbS1hcnJvd3t0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKC0xMDAlICsgdmFyKC0taXRlbS1oZWlnaHQpKSl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1ib3R0b20tYXJyb3c6YWZ0ZXJ7dG9wOnVuc2V0O2JvdHRvbTo0cHh9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1ib3R0b20tYXJyb3cuaGFzLXJpZ2h0LWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4IC0gdmFyKC0tZGF5LXdpZHRoKSkpIHRyYW5zbGF0ZVkoY2FsYygtMTAwJSArIHZhcigtLWl0ZW0taGVpZ2h0KSkpfS5jYXBpYmFyYSAuZGV0YWlsLWRheS5oYXMtYm90dG9tLWFycm93Lmhhcy1yaWdodC1hcnJvdzphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xMXB4fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuaGVhZGVyLWRldGFpbCAudGl0bGV7Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luLWJvdHRvbTouMjVlbTttaW4td2lkdGg6MTBlbTttYXgtd2lkdGg6MjBlbTtsaW5lLWhlaWdodDp1bnNldH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmhlYWRlci1kZXRhaWwgLnN1YnRpdGxle2ZvbnQtc2l6ZTouODc1ZW07bWFyZ2luLWJvdHRvbTo4cHg7bWluLXdpZHRoOjEwZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbHttYXJnaW46MDtmbGV4OjAgMCBhdXRvfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWx7bWFyZ2luOjA7Zm9udC1zaXplOi44NzVlbTtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi41ZW0gLjVlbSAuNWVtIDFlbTtib3JkZXItcmFkaXVzOjA7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjp1bnNldDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLmxlZnQtaWNvbnt3aWR0aDo4cHg7aGVpZ2h0OjhweDttaW4taGVpZ2h0OnVuc2V0IWltcG9ydGFudDtsZWZ0OjFweDt0b3A6MTBweDtib3JkZXItcmFkaXVzOjUwJX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5sZWZ0LWljb24uZGlhbW9uZHtib3JkZXItcmFkaXVzOjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgc2tldygxMGRlZywxMGRlZyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAubGVmdC1pY29uLm91dGxpbmVke2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAubGVmdC1pY29uLnRyaWFuZ2xle2JvcmRlci1yYWRpdXM6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSBza2V3KDEwZGVnLDEwZGVnKSB0cmFuc2xhdGUoM3B4LDNweCk7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItd2lkdGg6NXB4O2JvcmRlci1zdHlsZTpzb2xpZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLm5hbWV7ZmxleDowIDEgNDAlO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1yaWdodDoxZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbntmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RhcnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzY3tkaXNwbGF5OmZsZXg7bWFyZ2luLWJvdHRvbTozcHg7YWxpZ24taXRlbXM6YmFzZWxpbmV9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYy5kZXNjLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RhcnQ7d2lkdGg6MTAwJTtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO21hcmdpbi1ib3R0b206MDtwYWRkaW5nLWJvdHRvbTowfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLml0ZW0tZGVzY3JpcHRpb24gLmRlc2MuZGVzYy1jb2x1bW46bGFzdC1jaGlsZHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYy5kZXNjLWNvbHVtbiAubGFiZWx7bWFyZ2luLXJpZ2h0OjB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYyAubGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleDoxIDEgNjUlO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tcmlnaHQ6LjVlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5pdGVtLWRlc2NyaXB0aW9uIC5kZXNjIC52YWx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO21hcmdpbi1sZWZ0OjFlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5pdGVtLWRlc2NyaXB0aW9uIC5kZXNjIC5wcmVmaXgsLmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYyAuc3VmZml4e2ZvbnQtc2l6ZTouODVlbTtmbGV4OjAgMCBhdXRvfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLml0ZW0tZGVzY3JpcHRpb24gLmRlc2MgLnZhbHVlOm5vdChlbXB0eSl7bWFyZ2luLXJpZ2h0Oi4yZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYyBzdXB7dG9wOi0xZW0haW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwuZmxleHtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydDtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZmxvdzp3cmFwOy1tcy13cml0aW5nLW1vZGU6dGItbHI7d3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyO21heC1oZWlnaHQ6MjUlfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwuZmxleCAuaXRlbS1kZXRhaWx7ZmxleDowIDAgYXV0bzttaW4td2lkdGg6OGVtOy1tcy13cml0aW5nLW1vZGU6bHItdGI7d3JpdGluZy1tb2RlOmhvcml6b250YWwtdGJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5jb2x1bW57LW1vei1jb2x1bW5zOjdlbSAzO2NvbHVtbnM6N2VtIDM7bWluLXdpZHRoOjMwZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5jb2x1bW4gLml0ZW0tZGV0YWlse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWx7bWFyZ2luOjRweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi41ZW0gMWVtO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwgLm5hbWV7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206LjVlbTtjb2xvcjp2YXIoLS1sb2NhbC1jb2xvci1mb250LGluaGVyaXQpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsIC5pdGVtLWRlc2NyaXB0aW9uIC5kZXNjIC5sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDo3MDB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwgLmxlZnQtaWNvbnt3aWR0aDo2cHg7bWluLWhlaWdodDoxMHB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtiYWNrZ3JvdW5kOnZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCB2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbCAubGVmdC1pY29uLnRyaWFuZ2xle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuZWxlbWVudHMtZGV0YWlse3BhZGRpbmc6LjVlbSAwIC4yNWVtO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmVsZW1lbnRzLWRldGFpbCAubmFtZXtmbGV4OjEgMCAxMDAlO2ZvbnQtd2VpZ2h0OjcwMH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmVsZW1lbnRzLWRldGFpbCAuZWxlbWVudHMtbGlzdHttYXJnaW46NHB4IC00cHh9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5lbGVtZW50cy1kZXRhaWwgLmVsZW1lbnRzLWxpc3QgLmVsZW1lbnQtZGV0YWlse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6LjI1ZW0gLjg3NWVtO2JvcmRlci1yYWRpdXM6M3B4O2NvbG9yOiNmZmY7bWFyZ2luOi4yNWVtfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuYWxlcnR7cGFkZGluZzouNWVtIDAgLjI1ZW0gMmVtO3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDoxNWVtO21pbi13aWR0aDoxMGVtO21heC13aWR0aDozMGVtfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuYWxlcnQgLmFsZXJ0LWljb257bWF4LXdpZHRoOjJlbTtmb250LXNpemU6MS43NWVtO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6LjVlbTtjb2xvcjpncmV5fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuYWxlcnQgLnJlZHtjb2xvcjojZjQ0MzM2fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubXNqLWNvbnRhaW5lcnttYXJnaW46MCAtLjc4ZW0gLS43NWVtO2JvcmRlcjoxcHggc29saWQgZ3JleTt6LWluZGV4OjJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5tc2otY29udGFpbmVyIHByZXt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3aGl0ZS1zcGFjZTotbW96LXByZS13cmFwO3doaXRlLXNwYWNlOi1wcmUtd3JhcDt3aGl0ZS1zcGFjZTotby1wcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXIgLm1zanttaW4td2lkdGg6MTBlbTttYXgtd2lkdGg6MzBlbTttYXJnaW46MCAwIC41ZW07cGFkZGluZzouNzVlbTtmb250LXNpemU6Ljg3NWVtfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubXNqLWNvbnRhaW5lciAubXNqLWRldGFpbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6LjI1ZW0gLjVlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXIgLm1zai1kZXRhaWwgLmVtYWlse2ZvbnQtc2l6ZTouODc1ZW07Zm9udC1zdHlsZTppdGFsaWM7b3BhY2l0eTouNX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXIgLm1zai1kZXRhaWwgLmRhdGV7Zm9udC1zaXplOi43MjVlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXl7Y29sb3I6IzM3NDc0ZjtiYWNrZ3JvdW5kOiNmZmZ9LmNhcGliYXJhIC5kZXRhaWwtZGF5LC5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwsLmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuZGVzYy1jb2x1bW4sLmNhcGliYXJhIC5kZXRhaWwtZGF5OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmVsZW1lbnRzLWRldGFpbCAuZWxlbWVudHMtbGlzdCAuZWxlbWVudC1kZXRhaWx7YmFja2dyb3VuZDpyZ2JhKDU1LDcxLDc5LC44KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXJ7YmFja2dyb3VuZDojZmZlY2IzO2JvcmRlci1jb2xvcjojZmZjYTI4fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubXNqLWNvbnRhaW5lciAubXNqLWRldGFpbHtiYWNrZ3JvdW5kOiNmZmUwODI7Ym9yZGVyLWNvbG9yOiNmZmNhMjh9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXl7Y29sb3I6I2YwZjBmMDtib3JkZXItY29sb3I6IzQwNGU2OTtiYWNrZ3JvdW5kOiMyMjI4Mzd9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXk6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0MDRlNjl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudH0uY2FwaWJhcmEuZGFyay10aGVtZSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwsLmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5kZXNjLWNvbHVtbntib3JkZXItY29sb3I6IzQwNGU2OX0uY2FwaWJhcmEuZGFyay10aGVtZSAuZGV0YWlsLWRheSAuZWxlbWVudHMtZGV0YWlsIC5lbGVtZW50cy1saXN0IC5lbGVtZW50LWRldGFpbHtiYWNrZ3JvdW5kOiMyOTMyNDN9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXJ7YmFja2dyb3VuZDojMjkzMjQzO2JvcmRlci1jb2xvcjpyZ2JhKDI1MSwxOTIsNDUsLjQpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5kZXRhaWwtZGF5IC5tc2otY29udGFpbmVyIC5tc2otZGV0YWlse2JhY2tncm91bmQ6cmdiYSgyNTEsMTkyLDQ1LC4xKX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt6LWluZGV4OjEwO3dpbGwtY2hhbmdlOnRyYW5zZm9ybSxsZWZ0LHRvcH0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyLmNtLWhpZGUgLmNhcC1jb250ZXh0LW1lbnV7dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eTowfS5jYXBpYmFyYSAuY2FwLWNvbnRleHQtbWVudS1jb250YWluZXIgLmNhcC1jb250ZXh0LW1lbnV7cG9zaXRpb246YWJzb2x1dGU7bWluLXdpZHRoOjI1MHB4O3otaW5kZXg6Mjtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MXB4IHNvbGlkIGdyZXk7Ym94LXNoYWRvdzowIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDZweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDAsMCwwLC4xMik7Zm9udC1zaXplOi43NWVtO3RyYW5zaXRpb246YWxsIC4xcyBsaW5lYXI7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MTtwYWRkaW5nOi40ZW0gMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNhcGliYXJhIC5jYXAtY29udGV4dC1tZW51LWNvbnRhaW5lciAuY2FwLWNvbnRleHQtbWVudV9pdGVte3BhZGRpbmc6LjVlbSAxZW07ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW06aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDIwLDIwLDIwLC4yKX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW0uaXMtZGlzYWJsZWR7b3BhY2l0eTouNTtjdXJzb3I6dW5zZXR9LmNhcGliYXJhIC5jYXAtY29udGV4dC1tZW51LWNvbnRhaW5lciAuY2FwLWNvbnRleHQtbWVudV9pdGVtLmlzLWRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6bm9uZX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW0uaXMtZGl2aWRlcntjdXJzb3I6dW5zZXQ7aGVpZ2h0OjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyMCwyMCwyMCwuMik7cGFkZGluZzowO21hcmdpbjouM2VtIDFlbX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW1faWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmbGV4OjAgMCBhdXRvO3BhZGRpbmctcmlnaHQ6LjVlbX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW1faWNvbiBzdmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51e2NvbG9yOiMzNzQ3NGY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpO2JhY2tncm91bmQ6I2ZmZn0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51IHN2ZyBwYXRoe2ZpbGw6IzM3NDc0Zn0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWNvbnRleHQtbWVudS1jb250YWluZXIgLmNhcC1jb250ZXh0LW1lbnV7Y29sb3I6I2YwZjBmMDtib3JkZXItY29sb3I6IzQwNGU2OTtiYWNrZ3JvdW5kOiMyMjI4Mzd9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51IHN2ZyBwYXRoe2ZpbGw6I2YwZjBmMH0uY2FwaWJhcmEgLmhvdXItaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjRweDttYXJnaW46OHB4IDRweDtvdmVyZmxvdzpoaWRkZW59LmNhcGliYXJhIC5ob3VyLWlucHV0IGlucHV0e3dpZHRoOjUwJTtoZWlnaHQ6aW5oZXJpdDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44NzVlbX0uY2FwaWJhcmEgLmhvdXItaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSAuaG91ci1pbnB1dCBpbnB1dDpmb2N1c3tib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpfS5jYXBpYmFyYSAuaG91ci1pbnB1dCBzcGFue3dpZHRoOjhweDt0ZXh0LWFsaWduOmNlbnRlcn0uY2FwaWJhcmEgLmhvdXItaW5wdXQgLmhoe3RleHQtYWxpZ246cmlnaHR9LmNhcGliYXJhIC50aW1le2JvcmRlci1yYWRpdXM6NnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTowfS5jYXBpYmFyYSAudGltZSAuc3ltYm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDphdXRvO3dpZHRoOjIwcHg7Zm9udC1zaXplOjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246Y2VudGVyfS5jYXBpYmFyYSAudGltZSBpbnB1dHtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50O3dpZHRoOjUycHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjJyZW07cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2U7b3V0bGluZTpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cGFkZGluZzo2cHh9LmNhcGliYXJhIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLnRpbWUgaW5wdXQ6Zm9jdXN7dHJhbnNmb3JtOnNjYWxlKDEuMDMpfS5jYXBpYmFyYSAuYnV0dG9ucy1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jYXBpYmFyYSAuYnV0dG9ucy1ncm91cCBidXR0b24uY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1yYWRpdXM6MDttYXJnaW46MCAtMnB4IDAgMH0uY2FwaWJhcmEgLmJ1dHRvbnMtZ3JvdXAgYnV0dG9uLmNhcC1idG4tb3V0bGluZTpmaXJzdC1vZi10eXBle2JvcmRlci1yYWRpdXM6NnB4IDAgMCA2cHg7bWFyZ2luLWxlZnQ6NHB4fS5jYXBpYmFyYSAuYnV0dG9ucy1ncm91cCBidXR0b24uY2FwLWJ0bi1vdXRsaW5lOmxhc3Qtb2YtdHlwZXtib3JkZXItcmFkaXVzOjAgNnB4IDZweCAwO21hcmdpbi1yaWdodDo0cHh9LmNhcGliYXJhIC5pbnB1dC1ib3gtdGFiLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTtmbGV4LXdyYXA6bm93cmFwO2JvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7Ym9yZGVyOnNvbGlkIGdyZXk7Ym9yZGVyLXdpZHRoOjJweCAycHggMH0uY2FwaWJhcmEgLmlucHV0LWJveC10YWItY29udGFpbmVyIC5pbnB1dC1ib3gtdGFie2ZsZXg6MSAxIGF1dG87cGFkZGluZzouM2VtIDFlbTtmb250LXNpemU6LjllbTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIGdyZXk7Y3Vyc29yOnBvaW50ZXJ9LmNhcGliYXJhIC5pbnB1dC1ib3gtdGFiLWNvbnRhaW5lciAuaW5wdXQtYm94LXRhYi5hY3RpdmV7YmFja2dyb3VuZDpoc2xhKDAsMCUsNTguOCUsLjMpfS5jYXBpYmFyYSAuaW5wdXQtYm94LXRhYi1jb250YWluZXIgLmlucHV0LWJveC10YWI6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZX0uY2FwaWJhcmEgLmlucHV0LWJveC10YWItY29udGFpbmVyKy5pbnB1dC1ib3h7Ym9yZGVyLXJhZGl1czowIDAgNnB4IDZweH0uY2FwaWJhcmEgLmlucHV0LWJveHttYXJnaW46MCAxNnB4O21pbi1oZWlnaHQ6MTgwcHg7Ym9yZGVyOjJweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93LXk6c2Nyb2xsO3BhZGRpbmctYm90dG9tOjYwcHg7d2lkdGg6MTAwJTttYXgtaGVpZ2h0OjMwMHB4fS5jYXBpYmFyYSAuaW5wdXQtYm94IC5zZWFyY2gtaW5wdXQtY29udGFpbmVye3BhZGRpbmc6LjNlbTttYXgtd2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCBoc2xhKDAsMCUsMzkuMiUsLjMpO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5zZWFyY2gtaW5wdXQtY29udGFpbmVyIC5zZWFyY2gtaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCAjNjQ2NDY0O2JvcmRlci1yYWRpdXM6MTNweDtoZWlnaHQ6MjZweDtwYWRkaW5nOi41ZW0gMWVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCU7Zm9udC1zaXplOi44ZW07Y29sb3I6aW5oZXJpdH0uY2FwaWJhcmEgLmlucHV0LWJveCAuc2VhcmNoLWlucHV0LWNvbnRhaW5lciAuc2VhcmNoLWlucHV0Oi1tb3otcGxhY2Vob2xkZXItc2hvd24rLnNlYXJjaC1pbnB1dC1jbGVhcntkaXNwbGF5Om5vbmV9LmNhcGliYXJhIC5pbnB1dC1ib3ggLnNlYXJjaC1pbnB1dC1jb250YWluZXIgLnNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIrLnNlYXJjaC1pbnB1dC1jbGVhcntkaXNwbGF5Om5vbmV9LmNhcGliYXJhIC5pbnB1dC1ib3ggLnNlYXJjaC1pbnB1dC1jb250YWluZXIgLnNlYXJjaC1pbnB1dDpwbGFjZWhvbGRlci1zaG93bisuc2VhcmNoLWlucHV0LWNsZWFye2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmlucHV0LWJveCAuc2VhcmNoLWlucHV0LWNvbnRhaW5lciAuc2VhcmNoLWlucHV0LWNsZWFye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjFlbTt0b3A6LjRlbTtjb2xvcjpoc2xhKDAsMCUsMzkuMiUsLjYpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOm5vbmV9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbntwYWRkaW5nOi41ZW0gMmVtIC41ZW0gLjVlbTt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCBoc2xhKDAsMCUsMzkuMiUsLjMpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24uaGFzLWljb257cGFkZGluZzouNWVtIDJlbSAuNWVtIDEuNWVtfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24uY2xpY2tlYWJsZXtjdXJzb3I6cG9pbnRlcn0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLmNsaWNrZWFibGU6aG92ZXIgbGFiZWx7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLmlzLXRpdGxle2JhY2tncm91bmQ6aHNsYSgwLDAlLDM5LjIlLC4xKX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLmlzLXRpdGxlIC5taW5pLWlucHV0LXNlY3Rpb24tLXRpdGxle29wYWNpdHk6LjZ9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0tdG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDoxLjVlbTtkaXNwbGF5Om5vbmU7cGFkZGluZzouNWVtO21hcmdpbjoxZW07Y29sb3I6IzAwMDtib3JkZXItcmFkaXVzOjNweDt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDJweCA1cHggcmdiYSgwLDAsMCwuMyl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbiBsYWJlbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXA7Zm9udC1zaXplOi44NzVlbTthbGlnbi1pdGVtczpiYXNlbGluZX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZXN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpzdGFydDttYXgtd2lkdGg6MTAwJTtmbGV4OjAgMSBhdXRvfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZW5kO2ZsZXg6MSAwIGF1dG87Zm9udC1zaXplOjFlbTtwYWRkaW5nOjAgLjVlbX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1zdWJ0aXRsZSwuY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDp1bnNldDttYXgtd2lkdGg6MTAwJTtmbGV4LWdyb3c6MX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1zdWJ0aXRsZXtmb250LXNpemU6Ljg3NWVtfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLXN1ZmZpeHtmbGV4OjAgMCBhdXRvO2ZvbnQtc2l6ZTouODc1ZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LjVlbTt0b3A6Ljc1ZW07d2lkdGg6Ljc1ZW07aGVpZ2h0Oi43NWVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tbG9jYWwtY29sb3IsZ3JleSk7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMyl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0tbGlua3tvcGFjaXR5Oi42O2NvbG9yOiMyMTk2ZjM7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LjVlbTt0b3A6Ljc1ZW19LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0tbGluayBzdmd7d2lkdGg6MThweCFpbXBvcnRhbnQ7aGVpZ2h0OjE4cHghaW1wb3J0YW50fS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb246aG92ZXIgLm1pbmktaW5wdXQtc2VjdGlvbi0tdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24gaW5wdXR7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6NGVtO21hcmdpbi1yaWdodDouNWVtO2JvcmRlcjoxcHggc29saWQgZ3JleTtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC4yKTtmb250LXNpemU6MWVtO2ZsZXg6MCAwIDRlbX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6aHNsYSgwLDAlLDEwMCUsLjgpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWZvb3RlcnttYXJnaW4tdG9wOi4yNWVtO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uY2FwaWJhcmEgc2VsZWN0LmlucHV0LXNlbGVjdHtwYWRkaW5nOi4zZW0gMWVtO3dpZHRoOjEwMCU7ZmxleDoxIDAgMTAwJTtib3JkZXI6MXB4IHNvbGlkIGdyZXk7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDppbmhlcml0O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtYXBwZWFyYW5jZTphdXRvOy1tb3otYXBwZWFyYW5jZTphdXRvO2FwcGVhcmFuY2U6YXV0b30uY2FwaWJhcmEgc2VsZWN0LmlucHV0LXNlbGVjdCBvcHRpb257cGFkZGluZzouM2VtO2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDppbmhlcml0fS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi1saXN0e21hcmdpbjoxNnB4IDB9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLWxpc3QgLmlucHV0LXNlY3Rpb24tdGl0bGV7bWFyZ2luLWJvdHRvbTo4cHh9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLWxpc3QgLmlucHV0LXNlY3Rpb257bWFyZ2luOjAgMTZweCA4cHh9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9ue21hcmdpbjoxNnB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC13cmFwOm5vd3JhcDthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLnRvLXJpZ2h0e2FsaWduLWl0ZW1zOmVuZH0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLnNtYWxsLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xMHB4O3RvcDotMTBweDt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Zm9udC1zaXplOi45ZW07Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2JveC1zaGFkb3c6MXB4IDFweCAycHggcmdiYSgwLDAsMCwuNCk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJlZDtib3JkZXItcmFkaXVzOjUwJTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC50ZXh0LXN1YnRpdGxle3RleHQtYWxpZ246Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi10aXRsZXtmbGV4OjEgMSAxMDAlO3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi10aXRsZSBidXR0b257bWFyZ2luLWxlZnQ6YXV0bztmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi1saW5re2ZsZXg6MSAxIDEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmJhc2VsaW5lO3BhZGRpbmctdG9wOi4yNWVtfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi1saW5rIGF7Y29sb3I6IzIxOTZmMzttYXJnaW4tdG9wOi43NXJlbX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24uaXMtaW52YWxpZCAuaW5wdXQtYm94LC5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi5pcy1pbnZhbGlkIGlucHV0Lm5hdi1pbnB1dHtib3JkZXI6MnB4IHNvbGlkIHJlZCFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgM3B4IHJlZCFpbXBvcnRhbnR9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLmRlbnNlIGlucHV0Lm5hdi1pbnB1dHt3aWR0aDo1MCU7Zm9udC1zaXplOjFlbTtwYWRkaW5nOjNweCA2cHh9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXI6MnB4IHNvbGlkIGhzbGEoMCwwJSw1MC4yJSwuNyk7Ym9yZGVyLXJhZGl1czo2cHg7d2lkdGg6MTAwJTttaW4td2lkdGg6MTMwcHg7bWF4LXdpZHRoOjE3MHB4O2ZvbnQtc2l6ZToyZW07dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozcHggNnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3V0bGluZTpub25lO3RyYW5zaXRpb246YWxsIC4xcyBlYXNlO21hcmdpbi1ib3R0b206OHB4fS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCBncmV5O2JveC1zaGFkb3c6MCA0cHggNnB4IGhzbGEoMCwwJSw1MC4yJSwuMil9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dC5zbWFsbHtmb250LXNpemU6MS4zZW19LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZXtib3JkZXI6MnB4IHNvbGlkIGhzbGEoMCwwJSw1MC4yJSwuNyk7Ym9yZGVyLXJhZGl1czo2cHg7d2lkdGg6NzAlO21pbi13aWR0aDoxMzBweDtwYWRkaW5nOjNweCA2cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2U7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1c3tib3JkZXI6MnB4IHNvbGlkIGdyZXk7Ym94LXNoYWRvdzowIDRweCA2cHggaHNsYSgwLDAlLDUwLjIlLC4yKX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlIGxhYmVse2ZsZXg6MSAxIGF1dG99LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSBpbnB1dFt0eXBlPWZpbGVde2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLmlucHV0LXNlY3Rpb24tY29se3dpZHRoOmF1dG87cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxIDEgMTAlfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi1jb2wgaW5wdXQubmF2LWlucHV0e21pbi13aWR0aDp1bnNldDt3aWR0aDpjYWxjKDEwMCUgLSAxcmVtKTttYXgtd2lkdGg6N3JlbX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7b3V0bGluZTpub25lO2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoycHggc29saWQgZ3JleTt3aWR0aDoxMDAlO21pbi13aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwcHg7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2U7cGFkZGluZzo4cHg7Ym94LXNpemluZzpib3JkZXItYm94fS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE2MCwwLC4yKX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gaW5wdXRbdHlwZT1jaGVja2JveF17d2lkdGg6MThweDtoZWlnaHQ6MThweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNhcGliYXJhIC50aW1le2JvcmRlcjoycHggc29saWQgcmdiYSgwLDEyOCwwLC43KTtjb2xvcjpncmVlbn0uY2FwaWJhcmEgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEgLnRpbWUgaW5wdXR7Y29sb3I6IzM3NDc0Zn0uY2FwaWJhcmEgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6Z3JlZW47Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDEyOCwwLC4yKX0uY2FwaWJhcmEgLmlucHV0LWJveC10YWItY29udGFpbmVyLC5jYXBpYmFyYSAuaW5wdXQtYm94LXRhYi1jb250YWluZXIgLmlucHV0LWJveC10YWJ7Ym9yZGVyLWNvbG9yOmdyZWVufS5jYXBpYmFyYSAuaW5wdXQtYm94e2NvbG9yOiMzNzQ3NGY7Ym9yZGVyOjJweCBzb2xpZCBncmVlbn0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6I2ZhZmFmYX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS10b29sdGlwe2JhY2tncm91bmQ6I2ZhZmFmYTtjb2xvcjojMzc0NzRmO2JvcmRlcjoxcHggc29saWQgIzM3NDc0Zn0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtjb2xvcjojMzc0NzRmO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDEyOCwwLC43KX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCBncmVlbjtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDAsMTI4LDAsLjIpfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0IG9wdGlvbntiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6IzM3NDc0Zn0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Y29sb3I6IzM3NDc0Zjtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwxMjgsMCwuNyl9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlcjoycHggc29saWQgZ3JlZW47Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDEyOCwwLC4yKX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNDksMTk2LC42KTtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwwLDAsLjQpfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgyNTUsMjQ5LDE5NiwuOCk7Ym94LXNoYWRvdzowIDRweCA2cHggdHJhbnNwYXJlbnR9LmNhcGliYXJhLmRhcmstdGhlbWUgLnRpbWV7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDY0LDc4LDEwNSwuNyk7Y29sb3I6IzQwNGU2OX0uY2FwaWJhcmEuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC50aW1lIGlucHV0e2NvbG9yOiNmMGYwZjB9LmNhcGliYXJhLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNDA0ZTY5O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNjQsNzgsMTA1LC4yKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtYm94LXRhYi1jb250YWluZXIsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LWJveC10YWItY29udGFpbmVyIC5pbnB1dC1ib3gtdGFie2JvcmRlci1jb2xvcjojNDA0ZTY5fS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1ib3h7Y29sb3I6I2YwZjBmMDtib3JkZXI6MnB4IHNvbGlkICM0MDRlNjl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0e2JhY2tncm91bmQ6IzQwNGU2OTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbiBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6IzIyMjgzN30uY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXB7YmFja2dyb3VuZDojMjIyODM3O2NvbG9yOiNmMGYwZjA7Ym9yZGVyOjFweCBzb2xpZCAjZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Y29sb3I6I2YwZjBmMDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoNjQsNzgsMTA1LC43KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlcjoycHggc29saWQgIzQwNGU2OTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDY0LDc4LDEwNSwuMil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCBvcHRpb257YmFja2dyb3VuZDojMjIyODM3O2NvbG9yOiNmMGYwZjB9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtjb2xvcjojZjBmMGYwO2JvcmRlcjoycHggc29saWQgcmdiYSg2NCw3OCwxMDUsLjcpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlcjoycHggc29saWQgIzQwNGU2OTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDY0LDc4LDEwNSwuMil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7YmFja2dyb3VuZDpyZ2JhKDI1MSwxOTIsNDUsLjEpO2JvcmRlcjoycHggc29saWQgIzllOWU5ZTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMjUxLDE5Miw0NSwuMyk7Ym94LXNoYWRvdzowIDRweCA2cHggaHNsYSgwLDAlLDYyJSwuMil9LmNhcGliYXJhIGJ1dHRvbntvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXJ9LmNhcGliYXJhIGJ1dHRvbi5jYXAtcm90YXRlIC5tZGk6YmVmb3JlLC5jYXBpYmFyYSBidXR0b24uY2FwLXJvdGF0ZSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1vdXRsaW5lOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1yYWlzZWQ6Zm9jdXMsLmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMCwwLDAsLjMpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uOmRpc2FibGVkLC5jYXBpYmFyYSAuY2FwLWJ0bi1vdXRsaW5lOmRpc2FibGVkLC5jYXBpYmFyYSAuY2FwLWJ0bi1yYWlzZWQ6ZGlzYWJsZWQsLmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlOmRpc2FibGVke29wYWNpdHk6LjZ9LmNhcGliYXJhIGJ1dHRvbi5jYXAtYnRuLXNte2ZvbnQtc2l6ZTouNzVlbTttYXJnaW46NHB4O3BhZGRpbmc6NHB4IDhweH0uY2FwaWJhcmEgLmNhcC1idG4tb3V0bGluZXtjdXJzb3I6cG9pbnRlcjtjb2xvcjpncmV5O2JvcmRlcjoycHggc29saWQgZ3JleTtwYWRkaW5nOjhweCAxNnB4O21hcmdpbjowIDhweDtib3JkZXItcmFkaXVzOjZweDtmb250LXdlaWdodDo3MDB9LmNhcGliYXJhIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpncmV5fS5jYXBpYmFyYSAuY2FwLWJ0bi1yYWlzZWR7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo4cHggMTZweDttYXJnaW46MCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDpncmV5O2JvcmRlcjoycHggc29saWQgZ3JleTtmb250LXdlaWdodDo3MDB9LmNhcGliYXJhIC5jYXAtYnRuLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjMycHg7d2lkdGg6MzJweDtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoxNnB4O21hcmdpbi10b3A6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHg7Zm9udC1zaXplOjE4cHg7Y29sb3I6Z3JleTtib3JkZXItcmFkaXVzOjUwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbiBzdmd7ZmlsbDpncmV5fS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taGFzLWJhZGdlOmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotLjJlbTt0b3A6LS4yZW07d2lkdGg6LjhlbTtoZWlnaHQ6LjhlbTtiYWNrZ3JvdW5kOmdyZXk7Ym9yZGVyLXJhZGl1czo1MCV9LmNhcGliYXJhIC5jYXAtYnRuLWljb24uY2FwLWJ0bi1pY29uLXJhaXNlZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOm5vbmV9LmNhcGliYXJhIC5jYXAtYnRuLWljb24uY2FwLWJ0bi1pY29uLW91dGxpbmV7Ym9yZGVyOjFweCBzb2xpZCBncmV5fS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4tdG9nZ2xlLXNpZGViYXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MTBweDt6LWluZGV4OjI7bWFyZ2luOjB9LmNhcGliYXJhIC5jYXAtYnRuLWljb24gLm1kaXtmb250LXNpemU6MjRweH0uY2FwaWJhcmEgLmNhcC1idG4taWNvbiAubG9hZGluZy1pY29ue2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjB9LmNhcGliYXJhIC5jYXAtYnRuLWljb24ubG9hZGluZz46bm90KC5sb2FkaW5nLWljb24pe2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5sb2FkaW5nIC5sb2FkaW5nLWljb257ZGlzcGxheTp1bnNldH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjo0cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtwYWRkaW5nOjA7Zm9udC1zaXplOjE0cHh9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlIC5tZGl7Zm9udC1zaXplOjI0cHh9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xle3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjpub25lO3BhZGRpbmc6MH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweDt0b3A6MnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6Z3JleTt3aWR0aDoyMnB4O2hlaWdodDoyMnB4fS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MXB4O3RvcDo2cHg7d2lkdGg6MTAwJTtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyfS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS1vdXRsaW5le3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjpub25lO3BhZGRpbmc6MH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1jaXJjbGUtb3V0bGluZTpiZWZvcmV7Y29udGVudDpcXFwiXFxcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MnB4O3RvcDozcHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjJweCBzb2xpZCBncmV5O3dpZHRoOjIycHg7aGVpZ2h0OjIycHh9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLW91dGxpbmUgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjFweDt0b3A6NnB4O3dpZHRoOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6Z3JleTt0ZXh0LWFsaWduOmNlbnRlcn0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9we3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjpub25lO3BhZGRpbmc6MH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wOmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHg7dG9wOjA7Ym9yZGVyLXJhZGl1czowIDUwJSA1MCUgNTAlO2JhY2tncm91bmQ6Z3JleTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCw0cHgpIHJvdGF0ZSg0NWRlZyl9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tZHJvcCBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6NnB4O3dpZHRoOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcn0uY2FwaWJhcmEuZXh0ZW5kZWQtcmlnaHQgW3RvZ2dsZS1zaWRlYmFyLXJpZ2h0XSBzdmcsLmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCBbdG9nZ2xlLWhlYWRlcl0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uY2FwaWJhcmEgLmNhcC1idG4tcmFpc2Vke2JhY2tncm91bmQ6IzAwZjtib3JkZXI6MnB4IHNvbGlkICMwMGY7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmNhcC1idG4tb3V0bGluZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoycHggc29saWQgIzAwZjtjb2xvcjojMDBmfS5jYXBpYmFyYSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6IzAwZjtjb2xvcjojZmZmfS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZXtjb2xvcjojMzc0NzRmfS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZSwuY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9we2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlOmJlZm9yZSwuY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wOmJlZm9yZXtiYWNrZ3JvdW5kOiMzODhlM2N9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLmlzLWVtcHR5OmJlZm9yZSwuY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wLmlzLWVtcHR5OmJlZm9yZXtiYWNrZ3JvdW5kOiM2MTYxNjF9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLW91dGxpbmU6YmVmb3Jle2JvcmRlci1jb2xvcjojMzg4ZTNjfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLC5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS1vdXRsaW5lIHNwYW57Y29sb3I6IzM3NDc0Zn0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWhhcy1iYWRnZTphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMjQ1LDEyNCwwLC44KX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tcmFpc2Vke2JhY2tncm91bmQ6cmdiYSg4NCwxMTAsMTIyLC4xKTtib3JkZXItY29sb3I6IzU0NmU3YTtjb2xvcjojNTQ2ZTdhfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6YWN0aXZle2JhY2tncm91bmQ6IzU0NmU3YX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tcmFpc2VkOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDg0LDExMCwxMjIsLjMpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOiM1NDZlN2E7Y29sb3I6IzU0NmU3YX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tb3V0bGluZTphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDg0LDExMCwxMjIsLjMpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmhvdmVye2JhY2tncm91bmQ6cmdiYSg4NCwxMTAsMTIyLC4xKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7YmFja2dyb3VuZDojNDA0ZTY5O2JvcmRlcjoycHggc29saWQgI2YwZjBmMDtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MnB4IHNvbGlkICNmMGYwZjA7Y29sb3I6I2YwZjBmMH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6IzQwNGU2OTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tZHJvcHtjb2xvcjpoc2xhKDAsMCUsOTQuMSUsLjgpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlOmJlZm9yZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWRyb3A6YmVmb3Jle2JhY2tncm91bmQ6IzJlN2QzMn0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS5pcy1lbXB0eTpiZWZvcmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wLmlzLWVtcHR5OmJlZm9yZXtiYWNrZ3JvdW5kOiM2MTYxNjF9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1jaXJjbGUtb3V0bGluZTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiMyZTdkMzJ9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4taWNvbiwuY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS1vdXRsaW5lIHNwYW57Y29sb3I6aHNsYSgwLDAlLDk0LjElLC44KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taGFzLWJhZGdlOmFmdGVye2JhY2tncm91bmQ6cmdiYSg1NiwxNDIsNjAsLjgpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLWljb24uY2FwLWJ0bi1pY29uLXJhaXNlZHtiYWNrZ3JvdW5kOmhzbGEoMCwwJSw5NC4xJSwuMSk7Ym9yZGVyLWNvbG9yOmhzbGEoMCwwJSw5NC4xJSwuOCk7Y29sb3I6aHNsYSgwLDAlLDk0LjElLC44KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6YWN0aXZle2JhY2tncm91bmQ6I2YwZjBmMH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tcmFpc2VkOmhvdmVye2JhY2tncm91bmQ6aHNsYSgwLDAlLDk0LjElLC4zKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOmhzbGEoMCwwJSw5NC4xJSwuOCk7Y29sb3I6aHNsYSgwLDAlLDk0LjElLC44KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmFjdGl2ZXtiYWNrZ3JvdW5kOmhzbGEoMCwwJSw5NC4xJSwuMSl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tb3V0bGluZTpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmhvdmVye2JhY2tncm91bmQ6aHNsYSgwLDAlLDk0LjElLDApfS5jYXBpYmFyYSBbY2FwLXRvb2x0aXBde3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jYXBpYmFyYSBbY2FwLXRvb2x0aXBdOmhvdmVyOmJlZm9yZXtwYWRkaW5nOjhweDtvcGFjaXR5OjE7Ym9yZGVyLXdpZHRoOjFweDtoZWlnaHQ6YXV0b30uY2FwaWJhcmEgW2NhcC10b29sdGlwXTpiZWZvcmV7b3BhY2l0eTouMztoZWlnaHQ6MDtwYWRkaW5nOjAgOHB4O3RleHQtYWxpZ246bGVmdDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyAxOHB4KTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRleCgtNTAlKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlcjowIHNvbGlkICMwMDA7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtjb250ZW50OmF0dHIoY2FwLXRvb2x0aXApO3RleHQtdHJhbnNmb3JtOm5vbmU7bWluLXdpZHRoOjEwMHB4O3otaW5kZXg6NX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXJ7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MDtoZWlnaHQ6MH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXI6aG92ZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLWNvbnRhaW5lciAubG9uZy1iYXJ7b3BhY2l0eTouM30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveHt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO21heC13aWR0aDp2YXIoLS1kYXktd2lkdGgpO21pbi13aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7bWF4LWhlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7bWluLWhlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpkZWZhdWx0O3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpbGwtY2hhbmdlOmRpc3BsYXl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3hbZGF0YS1pcy12aXNpYmxlPWZhbHNlXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94OmhvdmVye3otaW5kZXg6Mn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveDpob3ZlcisuZmxvYXQtYm94LWV4dCAubG9uZy1iYXJ7ei1pbmRleDo2O29wYWNpdHk6MX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC5oYXMtbWVzc2FnZTphZnRlcntjb250ZW50OlxcXCJcXFwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtyaWdodDowO3RvcDowO2JvcmRlci1jb2xvcjpyZWQgcmVkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6NnB4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94Lmhhcy1lcnJvcnM6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3cHg7aGVpZ2h0OjdweDtsZWZ0OjFweDt0b3A6MXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2QzMmYyZjt6LWluZGV4OjF9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC1jb250YWluZXItYm90dG9tLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QtY29udGFpbmVyLW1pZGRsZSwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci10b3B7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjEwMCU7b3ZlcmZsb3c6dmlzaWJsZTtoZWlnaHQ6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci10b3B7dG9wOjFweH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci10b3AgLmRvdHtib3JkZXItcmFkaXVzOjAgMCA1MCUgNTAlfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QtY29udGFpbmVyLW1pZGRsZXt0b3A6Y2FsYyg1MCUgLSA0cHgpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QtY29udGFpbmVyLWJvdHRvbXtib3R0b206NXB4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QtY29udGFpbmVyLWJvdHRvbSAuZG90e2JvcmRlci1yYWRpdXM6MCAwIDUwJSA1MCV9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdHt3aWR0aDo4cHg7bWluLXdpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbjoxcHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbG9jYWwtY29sb3IsaHNsYSgwLDAlLDEwMCUsLjgpKTtiYWNrZ3JvdW5kOnZhcigtLWxvY2FsLWNvbG9yLGhzbGEoMCwwJSwzOS4yJSwuNSkpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuZGlhbW9uZHtib3JkZXItcmFkaXVzOjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgc2tldygxMGRlZywxMGRlZyl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QudHJpYW5nbGV7d2lkdGg6MDtoZWlnaHQ6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSBza2V3KDEwZGVnLDEwZGVnKSB0cmFuc2xhdGUoMXB4LDFweCk7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHZhcigtLWxvY2FsLWNvbG9yLGhzbGEoMCwwJSwzOS4yJSwuOCkpO2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo1cHggc29saWQgdmFyKC0tbG9jYWwtY29sb3IsaHNsYSgwLDAlLDM5LjIlLC44KSk7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhe3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6Ljg3NWVtO3RleHQtYWxpZ246Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvMik7bGluZS1oZWlnaHQ6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvMik7bWFyZ2luLWJvdHRvbToycHg7Zm9udC13ZWlnaHQ6NzAwO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggaHNsYSgwLDAlLDEwMCUsLjIpO2JvcmRlci1yYWRpdXM6M3B4O2NvbG9yOnZhcigtLWxvY2FsLWNvbG9yLWZvbnQsI2ZmZik7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6b3BhY2l0eSgyMCUpO2JhY2tkcm9wLWZpbHRlcjpvcGFjaXR5KDIwJSk7YmFja2dyb3VuZDp2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC40KSk7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC4yKSl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1vdXRsaW5lZDpiZWZvcmV7Y29udGVudDpcXFwiXFxcIjtvcGFjaXR5Oi4zOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMnB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigycHgpO2JhY2tncm91bmQ6dmFyKC0tbG9jYWwtY29sb3IsaW5oZXJpdCk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMXB4O3RvcDotMXB4O3dpZHRoOmNhbGMoMTAwJSArIDJweCk7aGVpZ2h0OmNhbGMoMTAwJSArIDJweCk7ZGlzcGxheTpibG9jazt6LWluZGV4Oi0xfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXJ7aGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzQgLSAxLjVweCk7d2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpIC0gNnB4KTtsaW5lLWhlaWdodDowO2NvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MXB4O21hcmdpbjowIDNweH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFyOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDozcHh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLWJhci1vdXRsaW5lZHtoZWlnaHQ6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvNCAtIDEuNXB4KTt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkgLSA2cHgpO2xpbmUtaGVpZ2h0OjA7Y29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxcHg7bWFyZ2luOjAgM3B4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXItb3V0bGluZWQ6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tdG9wOjNweH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFyLW91dGxpbmVkOmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO29wYWNpdHk6LjM7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigycHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDJweCk7YmFja2dyb3VuZDp2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xcHg7dG9wOi0xcHg7d2lkdGg6Y2FsYygxMDAlICsgMnB4KTtoZWlnaHQ6Y2FsYygxMDAlICsgMnB4KTtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXItZGFzaGVke2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KS80IC0gMS41cHgpO3dpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSAtIDZweCk7bGluZS1oZWlnaHQ6MDtjb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjFweDttYXJnaW46MCAzcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnR9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLWJhci1kYXNoZWQ6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tdG9wOjNweH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFyLWRhc2hlZDpiZWZvcmV7Y29udGVudDpcXFwiXFxcIjtiYWNrZ3JvdW5kOnZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTFweDt0b3A6LTFweDt3aWR0aDpjYWxjKDEwMCUgKyAycHgpO2hlaWdodDpjYWxjKDEwMCUgKyAycHgpO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLXNpemU6MTBweCAxMHB4O2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZyx2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KSx2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KSAzcHgsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCA1MCUpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4ucm93ZG90LS1yb3d7ZGlzcGxheTpmbGV4O21heC1oZWlnaHQ6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvNCAtIDFweCk7aGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzQgLSAxcHgpO3dpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSAtIDJweCk7bGluZS1oZWlnaHQ6MDtjb2xvcjp0cmFuc3BhcmVudDttYXJnaW46MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC4yKSl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5yb3dkb3QtLXJvdzpmaXJzdC1vZi10eXBle21hcmdpbi10b3A6M3B4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4ucm93ZG90LS1yb3c6ZW1wdHl7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLnJvd2RvdC0tcm93IC5yb3dkb3QtLWRvdHt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkvNCAtIDJweCk7aGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzQgLSAycHgpO21hcmdpbi1yaWdodDoxcHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlcjozcHggc29saWQgdmFyKC0tbG9jYWwtY29sb3IsaHNsYSgwLDAlLDEwMCUsLjgpKTtiYWNrZ3JvdW5kOnZhcigtLWxvY2FsLWNvbG9yLGhzbGEoMCwwJSwzOS4yJSwuOCkpO2JveC1zaGFkb3c6MCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMil9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5yb3dkb3QtLXJvdyAucm93ZG90LS1kb3Quc2hhcGUtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMzkuMiUsLjIpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4ucm93ZG90LS1yb3cgLnJvd2RvdC0tZG90LnNoYXBlLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvNCAtIC41cHgpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4ucm93ZG90LS1yb3cgLnJvd2RvdC0tZG90LnNoYXBlLW91dGxpbmVkLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt3aWR0aDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KS80IC0gLjVweCl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnBsb3QtZmxvYXRib3gtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OnZpc2libGV9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnBsb3QtZmxvYXRib3gtY29udGFpbmVyIC5wbG90LWZsb2F0Ym94e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuNCkpO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucGxvdC1mbG9hdGJveC1jb250YWluZXIgLnBsb3QtZmxvYXRib3guc3RyaXBle2JhY2tncm91bmQ6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg1M2RlZyx2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC40KSksdmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuNCkpIDVweCx0cmFuc3BhcmVudCAwLHRyYW5zcGFyZW50IDEycHgpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5wbG90LWZsb2F0Ym94LWNvbnRhaW5lciAucGxvdC1mbG9hdGJveC5zdHJpcGUtaW52ZXJzZXtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTI3ZGVnLHZhcigtLWxvY2FsLWNvbG9yLHJnYmEoMCwwLDAsLjQpKSx2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC40KSkgNXB4LHRyYW5zcGFyZW50IDAsdHJhbnNwYXJlbnQgMTJweCl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0e3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OnZpc2libGU7Y3Vyc29yOmRlZmF1bHQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlO3dpbGwtY2hhbmdlOmRpc3BsYXk7cG9pbnRlci1ldmVudHM6bm9uZX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLWRheS13aWR0aCk7dG9wOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnQ7YWxpZ24taXRlbXM6c3RhcnR9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci1jb250YWluZXIgLmxvbmctYmFye3dpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoLCAwKSp2YXIoLS1sb25nLCAwKSAtIHZhcigtLWRheS13aWR0aCwgMCkqMC41KTttaW4td2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgsIDApKnZhcigtLWxvbmcsIDApIC0gdmFyKC0tZGF5LXdpZHRoLCAwKSowLjUpO2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KS80IC0gMy41cHgpO2xpbmUtaGVpZ2h0OjA7Y29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZDp2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC40KSk7Ym9yZGVyLXJhZGl1czowIDNweCAzcHggMDttYXJnaW4tbGVmdDotM3B4O21hcmdpbi10b3A6MXB4O21hcmdpbi1ib3R0b206MXB4O29wYWNpdHk6dmFyKC0tbG9jYWwtb3BhY2l0eSwxKTtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO2JvcmRlci1sZWZ0LXdpZHRoOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXItY29udGFpbmVyIC5sb25nLWJhcjpob3Zlcnt6LWluZGV4OjEwfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXItY29udGFpbmVyIC5sb25nLWJhci5zb2xpZHtvcGFjaXR5OjF9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci1jb250YWluZXIgLmxvbmctYmFyOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDo0cHh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3g6aG92ZXJ7Ym94LXNoYWRvdzowIDAgMnB4IDdweCByZ2JhKDExMywxODksMjU1LC40KX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveDpob3ZlcisuZmxvYXQtYm94LWV4dCAubG9uZy1iYXJ7Ym94LXNoYWRvdzowIDAgMnB4IDRweCByZ2JhKDExMywxODksMjU1LC40KX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCsuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIucmVkLWxpZ2h0e2JhY2tncm91bmQ6I2Y4NDc0N30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCsuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIueWVsbG93LWxpZ2h0e2JhY2tncm91bmQ6I2ZkZDgzNX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCsuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuZ3JlZW4tbGlnaHR7YmFja2dyb3VuZDojMzg5OTNkfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3g6aG92ZXJ7Ym94LXNoYWRvdzowIDAgMnB4IDdweCBoc2xhKDAsMCUsNDcuOCUsLjYpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3g6aG92ZXIrLmZsb2F0LWJveC1leHQgLmxvbmctYmFye2JveC1zaGFkb3c6MCAwIDJweCA0cHggaHNsYSgwLDAlLDQ3LjglLC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94Ky5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5yZWQtbGlnaHR7YmFja2dyb3VuZDojYWExYTFhfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3grLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLnllbGxvdy1saWdodHtiYWNrZ3JvdW5kOiNmYmNkMDB9LmNhcGliYXJhLmRhcmstdGhlbWUgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCsuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuZ3JlZW4tbGlnaHR7YmFja2dyb3VuZDojMzg4ZTNjfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLWJhcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMyl9LmNhcGliYXJhIC5wcm9ncmVzcy1iYXJ7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDg2LjclLC4yKTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO3RyYW5zaXRpb246aGVpZ2h0IDFzIGVhc2V9LmNhcGliYXJhIC5wcm9ncmVzcy1iYXIuaGlkZS1wcm9ncmVzc3toZWlnaHQ6MH0uY2FwaWJhcmEgLnByb2dyZXNzLWJhcjpiZWZvcmV7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpsb2FkaW5nLWZhc3QxO2FuaW1hdGlvbi1uYW1lOmxvYWRpbmctZmFzdDE7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9LmNhcGliYXJhIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3dpZHRoOjYyLjUlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzI5MjkyOTstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24tZHVyYXRpb246MnN9LmNhcGliYXJhIC5wcm9ncmVzcy1iYXI6YWZ0ZXJ7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpsb2FkaW5nLWZhc3QyO2FuaW1hdGlvbi1uYW1lOmxvYWRpbmctZmFzdDI7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS4zczthbmltYXRpb24tZGVsYXk6MS4zczstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZX1zcGFuLm1kaXttaW4td2lkdGg6MTRweDttaW4taGVpZ2h0OjE0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9c3Bhbi5tZGkubWRpLXN1YmRpcmVjdG9yeS1hcnJvdy1yaWdodHtjb2xvcjpyZ2JhKDAsMCwwLC4yKX0uY2FwaWJhcmEgLmxpZ2h0e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MThweDtoZWlnaHQ6MThweDtmbGV4OjAgMCAxOHB4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbjoxMnB4IDhweDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpO2JhY2tncm91bmQ6dmFyKC0tbGlnaHQtY29sb3IsdW5zZXQpO2JvcmRlci1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCl9LmNhcGliYXJhIC5saWdodC5yZWQtbGlnaHR7YmFja2dyb3VuZDojZjg0NzQ3fS5jYXBpYmFyYSAubGlnaHQueWVsbG93LWxpZ2h0e2JhY2tncm91bmQ6I2ZkZDgzNX0uY2FwaWJhcmEgLmxpZ2h0LmdyZWVuLWxpZ2h0e2JhY2tncm91bmQ6IzM4OTkzZH0uY2FwaWJhcmEgLmxpZ2h0LmRpc2FibGVkLWxpZ2h0e2JhY2tncm91bmQ6IzczNzM3M30uY2FwaWJhcmEgLmxpZ2h0LmJsdWUtbGlnaHR7YmFja2dyb3VuZDojMDI3N2JkfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5saWdodHtib3JkZXItY29sb3I6IzQwNGU2OX0uY2FwaWJhcmEuZGFyay10aGVtZSAubGlnaHQucmVkLWxpZ2h0e2JhY2tncm91bmQ6I2FhMWExYX0uY2FwaWJhcmEuZGFyay10aGVtZSAubGlnaHQueWVsbG93LWxpZ2h0e2JhY2tncm91bmQ6I2ZiY2QwMH0uY2FwaWJhcmEuZGFyay10aGVtZSAubGlnaHQuZ3JlZW4tbGlnaHR7YmFja2dyb3VuZDojMzg4ZTNjfS5jYXBpYmFyYSBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZDpncmV5O2NvbG9yOiNmZmY7Zm9udC1zaXplOjE2cHg7b3V0bGluZTpub25lO3dpZHRoOjEwMHB4O3BhZGRpbmc6M3B4IDE4cHg7Zm9udC13ZWlnaHQ6NzAwO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luOjhweDtib3JkZXItcmFkaXVzOjMwcHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uY2FwaWJhcmEgc2VsZWN0LnRhYnMtc2VsZWN0IG9wdGlvbntjb2xvcjpncmV5O2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjE1cHh9LmNhcGliYXJhIHNlbGVjdC50YWJzLXNlbGVjdDphZnRlcntjb250ZW50OlxcXCJcXFwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6NHB4O2JvcmRlci13aWR0aDo0cHg7Ym9yZGVyLWNvbG9yOiNmZmY7ei1pbmRleDoyfS5jYXBpYmFyYSBzZWxlY3QudGFicy1zZWxlY3QuZGlzYWJsZWR7Y29sb3I6Z3JleX0uY2FwaWJhcmEgc2VsZWN0LnRhYnMtc2VsZWN0OmhvdmVye2JvcmRlci1jb2xvcjpncmV5fVwiLCBcIlwiXSk7XG4vLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHM7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src/index.js!./node_modules/sass-loader/dist/cjs.js!./src/scss/style.scss\n");
|
|
106
|
+
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nexports.push([module.i, \"@import url(https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;0,900;1,300;1,400;1,500;1,700;1,900&display=swap);\"]);\n// Module\nexports.push([module.i, \":root{--header-top-height:40px;--header-height:98px;--header-labels-height:50px;--header-day-height:24px;--ex-header-height:110px;--header-input-height:20px;--nav-width:200px;--nav-item-col-width:60px;--initial-nav-width:0px;--ex-nav-width:0px;--btn-nav-width:117px;--nav-right-width:300px;--item-min-width:100px;--item-height:45px;--day-width:45px;--font-size:16px}@-webkit-keyframes pulseMessage{0%{border-color:rgba(211,47,47,.3) rgba(211,47,47,.3) transparent transparent}to{border-color:#d32f2f #d32f2f transparent transparent}}@keyframes pulseMessage{0%{border-color:rgba(211,47,47,.3) rgba(211,47,47,.3) transparent transparent}to{border-color:#d32f2f #d32f2f transparent transparent}}@-webkit-keyframes pulseBackground{0%{background:rgba(211,47,47,.3)}to{background:#d32f2f}}@keyframes pulseBackground{0%{background:rgba(211,47,47,.3)}to{background:#d32f2f}}@-webkit-keyframes loading-fast1{0%{transform:translateX(-100%)}40%{transform:translateX(-100%)}to{transform:translateX(200%)}}@keyframes loading-fast1{0%{transform:translateX(-100%)}40%{transform:translateX(-100%)}to{transform:translateX(200%)}}@-webkit-keyframes loading-fast2{0%{transform:translateX(-100%)}15%{transform:translateX(-100%)}to{transform:translateX(200%)}}@keyframes loading-fast2{0%{transform:translateX(-100%)}15%{transform:translateX(-100%)}to{transform:translateX(200%)}}.capibara.c-red:not(.dark-theme){scrollbar-color:#df554b transparent}.capibara.c-red:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#df554b}.capibara.c-red:not(.dark-theme) .header-top{background:#fdfaf9}.capibara.c-red:not(.dark-theme) .corner{background:#fdfaf9;border-color:#f99d97}.capibara.c-red:not(.dark-theme) .container-tl header{background:#fdfaf9;border-bottom-color:#f99d97}.capibara.c-red:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#fdfaf9)!important}.capibara.c-red:not(.dark-theme) nav.right{border-color:#f99d97}.capibara.c-red.dark-theme .header-top,.capibara.c-red.dark-theme nav.right{border-color:#ba160a}.capibara.c-red.dark-theme .container-tl header,.capibara.c-red.dark-theme .corner{border-bottom-color:#ba160a}.capibara.c-red.dark-theme ::-moz-selection,.capibara.c-red ::-moz-selection{background-color:rgba(244,67,54,.2)!important}.capibara.c-red.dark-theme ::selection,.capibara.c-red ::selection{background-color:rgba(244,67,54,.2)!important}.capibara.c-red.dark-theme .progress-bar,.capibara.c-red .progress-bar{background-color:rgba(244,67,54,.2)!important}.capibara.c-red.dark-theme .progress-bar:after,.capibara.c-red.dark-theme .progress-bar:before,.capibara.c-red .progress-bar:after,.capibara.c-red .progress-bar:before{background-color:#f44336!important}.capibara.c-red.dark-theme select.tabs-select,.capibara.c-red select.tabs-select{background-color:rgba(244,67,54,.7)!important;border-color:#f44336!important}.capibara.c-red.dark-theme .time,.capibara.c-red .time{border-color:rgba(244,67,54,.6)}.capibara.c-red.dark-theme .time .symbol,.capibara.c-red .time .symbol{color:#f44336}.capibara.c-red.dark-theme .time input:active,.capibara.c-red.dark-theme .time input:focus,.capibara.c-red .time input:active,.capibara.c-red .time input:focus{border-color:#f44336;box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red.dark-theme .input-box,.capibara.c-red.dark-theme .input-section select.input-select,.capibara.c-red .input-box,.capibara.c-red .input-section select.input-select{border-color:rgba(244,67,54,.6)}.capibara.c-red.dark-theme .input-section select.input-select:active,.capibara.c-red.dark-theme .input-section select.input-select:focus,.capibara.c-red .input-section select.input-select:active,.capibara.c-red .input-section select.input-select:focus{border-color:#f44336;box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red.dark-theme .input-section .nav-input-file,.capibara.c-red.dark-theme .input-section input.nav-input,.capibara.c-red .input-section .nav-input-file,.capibara.c-red .input-section input.nav-input{border-color:rgba(244,67,54,.6)}.capibara.c-red.dark-theme .input-section .nav-input-file:active,.capibara.c-red.dark-theme .input-section .nav-input-file:focus,.capibara.c-red.dark-theme .input-section input.nav-input:active,.capibara.c-red.dark-theme .input-section input.nav-input:focus,.capibara.c-red .input-section .nav-input-file:active,.capibara.c-red .input-section .nav-input-file:focus,.capibara.c-red .input-section input.nav-input:active,.capibara.c-red .input-section input.nav-input:focus{border-color:#f44336;box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-red .input-section.msj-input-container textarea.msj{border:2px solid #f44336}.capibara.c-red.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-red.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-red .input-section.msj-input-container textarea.msj:active,.capibara.c-red .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(244,67,54,.2)}.capibara.c-red .cap-btn-raised,.capibara.c-red.dark-theme .cap-btn-raised{border-color:#f44336;background:rgba(244,67,54,.8)}.capibara.c-red .cap-btn-outline,.capibara.c-red.dark-theme .cap-btn-outline{border-color:#f44336;color:#f44336}.capibara.c-red .cap-btn-outline.selected,.capibara.c-red.dark-theme .cap-btn-outline.selected{background:rgba(244,67,54,.8)}.capibara.c-red.dark-theme .select-container .selected-day,.capibara.c-red .select-container .selected-day{background:rgba(244,67,54,.3);box-shadow:inset 0 0 10px rgba(244,67,54,.5)}.capibara .c-red--background{background:#f44336!important}.capibara .c-red-d--background{background:#d2190b!important}.capibara .c-red-l--background{background:#f8877f!important}.capibara .c-red--text{color:#f44336!important}.capibara .c-red-d--text{color:#d2190b!important}.capibara .c-red-l--text{color:#f8877f!important}.capibara .detail-day .list-detail .item-detail.c-red{background:rgba(244,67,54,.2);border:1px solid #f44336}.capibara .detail-day .list-detail .item-detail.c-red .left-icon{background:#f44336}.capibara .detail-day .list-detail .item-detail.c-red .left-icon.outlined{border:1px solid #f44336;box-shadow:inset 0 0 0 1px rgba(244,67,54,.7)}.capibara .detail-day .list-detail .item-detail.c-red .name{color:#f44336}.capibara .float-box-container .float-box span.data.c-red{--local-color:#f44336;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-red,.capibara .float-box-container .float-box .dot.c-red,.capibara .float-box-container .float-box .rowdot--row.c-red .rowdot--dot{--local-color:#f44336}.capibara .header-top .tabs-container .tab:not(.disabled).c-red.active{background:rgba(244,67,54,.7);border-color:rgba(244,67,54,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-red.active:hover{background:rgba(244,67,54,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-red:hover{background:rgba(244,67,54,.2);border-color:rgba(244,67,54,.9)}.capibara .input-box .mini-input-section--icon.c-red{background:#f44336}.capibara.c-pink:not(.dark-theme){scrollbar-color:#d0376b transparent}.capibara.c-pink:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#d0376b}.capibara.c-pink:not(.dark-theme) .header-top{background:#f0e3e7}.capibara.c-pink:not(.dark-theme) .corner{background:#f0e3e7;border-color:#f27ba3}.capibara.c-pink:not(.dark-theme) .container-tl header{background:#f0e3e7;border-bottom-color:#f27ba3}.capibara.c-pink:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f0e3e7)!important}.capibara.c-pink:not(.dark-theme) nav.right{border-color:#f27ba3}.capibara.c-pink.dark-theme .header-top,.capibara.c-pink.dark-theme nav.right{border-color:#930e3b}.capibara.c-pink.dark-theme .container-tl header,.capibara.c-pink.dark-theme .corner{border-bottom-color:#930e3b}.capibara.c-pink.dark-theme ::-moz-selection,.capibara.c-pink ::-moz-selection{background-color:rgba(233,30,99,.2)!important}.capibara.c-pink.dark-theme ::selection,.capibara.c-pink ::selection{background-color:rgba(233,30,99,.2)!important}.capibara.c-pink.dark-theme .progress-bar,.capibara.c-pink .progress-bar{background-color:rgba(233,30,99,.2)!important}.capibara.c-pink.dark-theme .progress-bar:after,.capibara.c-pink.dark-theme .progress-bar:before,.capibara.c-pink .progress-bar:after,.capibara.c-pink .progress-bar:before{background-color:#e91e63!important}.capibara.c-pink.dark-theme select.tabs-select,.capibara.c-pink select.tabs-select{background-color:rgba(233,30,99,.7)!important;border-color:#e91e63!important}.capibara.c-pink.dark-theme .time,.capibara.c-pink .time{border-color:rgba(233,30,99,.6)}.capibara.c-pink.dark-theme .time .symbol,.capibara.c-pink .time .symbol{color:#e91e63}.capibara.c-pink.dark-theme .time input:active,.capibara.c-pink.dark-theme .time input:focus,.capibara.c-pink .time input:active,.capibara.c-pink .time input:focus{border-color:#e91e63;box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink.dark-theme .input-box,.capibara.c-pink.dark-theme .input-section select.input-select,.capibara.c-pink .input-box,.capibara.c-pink .input-section select.input-select{border-color:rgba(233,30,99,.6)}.capibara.c-pink.dark-theme .input-section select.input-select:active,.capibara.c-pink.dark-theme .input-section select.input-select:focus,.capibara.c-pink .input-section select.input-select:active,.capibara.c-pink .input-section select.input-select:focus{border-color:#e91e63;box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink.dark-theme .input-section .nav-input-file,.capibara.c-pink.dark-theme .input-section input.nav-input,.capibara.c-pink .input-section .nav-input-file,.capibara.c-pink .input-section input.nav-input{border-color:rgba(233,30,99,.6)}.capibara.c-pink.dark-theme .input-section .nav-input-file:active,.capibara.c-pink.dark-theme .input-section .nav-input-file:focus,.capibara.c-pink.dark-theme .input-section input.nav-input:active,.capibara.c-pink.dark-theme .input-section input.nav-input:focus,.capibara.c-pink .input-section .nav-input-file:active,.capibara.c-pink .input-section .nav-input-file:focus,.capibara.c-pink .input-section input.nav-input:active,.capibara.c-pink .input-section input.nav-input:focus{border-color:#e91e63;box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-pink .input-section.msj-input-container textarea.msj{border:2px solid #e91e63}.capibara.c-pink.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-pink.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-pink .input-section.msj-input-container textarea.msj:active,.capibara.c-pink .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(233,30,99,.2)}.capibara.c-pink .cap-btn-raised,.capibara.c-pink.dark-theme .cap-btn-raised{border-color:#e91e63;background:rgba(233,30,99,.8)}.capibara.c-pink .cap-btn-outline,.capibara.c-pink.dark-theme .cap-btn-outline{border-color:#e91e63;color:#e91e63}.capibara.c-pink .cap-btn-outline.selected,.capibara.c-pink.dark-theme .cap-btn-outline.selected{background:rgba(233,30,99,.8)}.capibara.c-pink.dark-theme .select-container .selected-day,.capibara.c-pink .select-container .selected-day{background:rgba(233,30,99,.3);box-shadow:inset 0 0 10px rgba(233,30,99,.5)}.capibara .c-pink--background{background:#e91e63!important}.capibara .c-pink-d--background{background:#aa1145!important}.capibara .c-pink-l--background{background:#f06493!important}.capibara .c-pink--text{color:#e91e63!important}.capibara .c-pink-d--text{color:#aa1145!important}.capibara .c-pink-l--text{color:#f06493!important}.capibara .detail-day .list-detail .item-detail.c-pink{background:rgba(233,30,99,.2);border:1px solid #e91e63}.capibara .detail-day .list-detail .item-detail.c-pink .left-icon{background:#e91e63}.capibara .detail-day .list-detail .item-detail.c-pink .left-icon.outlined{border:1px solid #e91e63;box-shadow:inset 0 0 0 1px rgba(233,30,99,.7)}.capibara .detail-day .list-detail .item-detail.c-pink .name{color:#e91e63}.capibara .float-box-container .float-box span.data.c-pink{--local-color:#e91e63;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-pink,.capibara .float-box-container .float-box .dot.c-pink,.capibara .float-box-container .float-box .rowdot--row.c-pink .rowdot--dot{--local-color:#e91e63}.capibara .header-top .tabs-container .tab:not(.disabled).c-pink.active{background:rgba(233,30,99,.7);border-color:rgba(233,30,99,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-pink.active:hover{background:rgba(233,30,99,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-pink:hover{background:rgba(233,30,99,.2);border-color:rgba(233,30,99,.9)}.capibara .input-box .mini-input-section--icon.c-pink{background:#e91e63}.capibara.c-purple:not(.dark-theme){scrollbar-color:#8d3d9b transparent}.capibara.c-purple:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#8d3d9b}.capibara.c-purple:not(.dark-theme) .header-top{background:#d6cbd8}.capibara.c-purple:not(.dark-theme) .corner{background:#d6cbd8;border-color:#ca61dc}.capibara.c-purple:not(.dark-theme) .container-tl header{background:#d6cbd8;border-bottom-color:#ca61dc}.capibara.c-purple:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#d6cbd8)!important}.capibara.c-purple:not(.dark-theme) nav.right{border-color:#ca61dc}.capibara.c-purple.dark-theme .header-top,.capibara.c-purple.dark-theme nav.right{border-color:#52145d}.capibara.c-purple.dark-theme .container-tl header,.capibara.c-purple.dark-theme .corner{border-bottom-color:#52145d}.capibara.c-purple.dark-theme ::-moz-selection,.capibara.c-purple ::-moz-selection{background-color:rgba(156,39,176,.2)!important}.capibara.c-purple.dark-theme ::selection,.capibara.c-purple ::selection{background-color:rgba(156,39,176,.2)!important}.capibara.c-purple.dark-theme .progress-bar,.capibara.c-purple .progress-bar{background-color:rgba(156,39,176,.2)!important}.capibara.c-purple.dark-theme .progress-bar:after,.capibara.c-purple.dark-theme .progress-bar:before,.capibara.c-purple .progress-bar:after,.capibara.c-purple .progress-bar:before{background-color:#9c27b0!important}.capibara.c-purple.dark-theme select.tabs-select,.capibara.c-purple select.tabs-select{background-color:rgba(156,39,176,.7)!important;border-color:#9c27b0!important}.capibara.c-purple.dark-theme .time,.capibara.c-purple .time{border-color:rgba(156,39,176,.6)}.capibara.c-purple.dark-theme .time .symbol,.capibara.c-purple .time .symbol{color:#9c27b0}.capibara.c-purple.dark-theme .time input:active,.capibara.c-purple.dark-theme .time input:focus,.capibara.c-purple .time input:active,.capibara.c-purple .time input:focus{border-color:#9c27b0;box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple.dark-theme .input-box,.capibara.c-purple.dark-theme .input-section select.input-select,.capibara.c-purple .input-box,.capibara.c-purple .input-section select.input-select{border-color:rgba(156,39,176,.6)}.capibara.c-purple.dark-theme .input-section select.input-select:active,.capibara.c-purple.dark-theme .input-section select.input-select:focus,.capibara.c-purple .input-section select.input-select:active,.capibara.c-purple .input-section select.input-select:focus{border-color:#9c27b0;box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple.dark-theme .input-section .nav-input-file,.capibara.c-purple.dark-theme .input-section input.nav-input,.capibara.c-purple .input-section .nav-input-file,.capibara.c-purple .input-section input.nav-input{border-color:rgba(156,39,176,.6)}.capibara.c-purple.dark-theme .input-section .nav-input-file:active,.capibara.c-purple.dark-theme .input-section .nav-input-file:focus,.capibara.c-purple.dark-theme .input-section input.nav-input:active,.capibara.c-purple.dark-theme .input-section input.nav-input:focus,.capibara.c-purple .input-section .nav-input-file:active,.capibara.c-purple .input-section .nav-input-file:focus,.capibara.c-purple .input-section input.nav-input:active,.capibara.c-purple .input-section input.nav-input:focus{border-color:#9c27b0;box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-purple .input-section.msj-input-container textarea.msj{border:2px solid #9c27b0}.capibara.c-purple.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-purple.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-purple .input-section.msj-input-container textarea.msj:active,.capibara.c-purple .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(156,39,176,.2)}.capibara.c-purple .cap-btn-raised,.capibara.c-purple.dark-theme .cap-btn-raised{border-color:#9c27b0;background:rgba(156,39,176,.8)}.capibara.c-purple .cap-btn-outline,.capibara.c-purple.dark-theme .cap-btn-outline{border-color:#9c27b0;color:#9c27b0}.capibara.c-purple .cap-btn-outline.selected,.capibara.c-purple.dark-theme .cap-btn-outline.selected{background:rgba(156,39,176,.8)}.capibara.c-purple.dark-theme .select-container .selected-day,.capibara.c-purple .select-container .selected-day{background:rgba(156,39,176,.3);box-shadow:inset 0 0 10px rgba(156,39,176,.5)}.capibara .c-purple--background{background:#9c27b0!important}.capibara .c-purple-d--background{background:#641971!important}.capibara .c-purple-l--background{background:#c34cd7!important}.capibara .c-purple--text{color:#9c27b0!important}.capibara .c-purple-d--text{color:#641971!important}.capibara .c-purple-l--text{color:#c34cd7!important}.capibara .detail-day .list-detail .item-detail.c-purple{background:rgba(156,39,176,.2);border:1px solid #9c27b0}.capibara .detail-day .list-detail .item-detail.c-purple .left-icon{background:#9c27b0}.capibara .detail-day .list-detail .item-detail.c-purple .left-icon.outlined{border:1px solid #9c27b0;box-shadow:inset 0 0 0 1px rgba(156,39,176,.7)}.capibara .detail-day .list-detail .item-detail.c-purple .name{color:#9c27b0}.capibara .float-box-container .float-box span.data.c-purple{--local-color:#9c27b0;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-purple,.capibara .float-box-container .float-box .dot.c-purple,.capibara .float-box-container .float-box .rowdot--row.c-purple .rowdot--dot{--local-color:#9c27b0}.capibara .header-top .tabs-container .tab:not(.disabled).c-purple.active{background:rgba(156,39,176,.7);border-color:rgba(156,39,176,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-purple.active:hover{background:rgba(156,39,176,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-purple:hover{background:rgba(156,39,176,.2);border-color:rgba(156,39,176,.9)}.capibara .input-box .mini-input-section--icon.c-purple{background:#9c27b0}.capibara.c-deep-purple:not(.dark-theme){scrollbar-color:#6e529f transparent}.capibara.c-deep-purple:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#6e529f}.capibara.c-deep-purple:not(.dark-theme) .header-top{background:#dededf}.capibara.c-deep-purple:not(.dark-theme) .corner{background:#dededf;border-color:#9f80d7}.capibara.c-deep-purple:not(.dark-theme) .container-tl header{background:#dededf;border-bottom-color:#9f80d7}.capibara.c-deep-purple:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#dededf)!important}.capibara.c-deep-purple:not(.dark-theme) nav.right{border-color:#9f80d7}.capibara.c-deep-purple.dark-theme .header-top,.capibara.c-deep-purple.dark-theme nav.right{border-color:#3b216a}.capibara.c-deep-purple.dark-theme .container-tl header,.capibara.c-deep-purple.dark-theme .corner{border-bottom-color:#3b216a}.capibara.c-deep-purple.dark-theme ::-moz-selection,.capibara.c-deep-purple ::-moz-selection{background-color:rgba(103,58,183,.2)!important}.capibara.c-deep-purple.dark-theme ::selection,.capibara.c-deep-purple ::selection{background-color:rgba(103,58,183,.2)!important}.capibara.c-deep-purple.dark-theme .progress-bar,.capibara.c-deep-purple .progress-bar{background-color:rgba(103,58,183,.2)!important}.capibara.c-deep-purple.dark-theme .progress-bar:after,.capibara.c-deep-purple.dark-theme .progress-bar:before,.capibara.c-deep-purple .progress-bar:after,.capibara.c-deep-purple .progress-bar:before{background-color:#673ab7!important}.capibara.c-deep-purple.dark-theme select.tabs-select,.capibara.c-deep-purple select.tabs-select{background-color:rgba(103,58,183,.7)!important;border-color:#673ab7!important}.capibara.c-deep-purple.dark-theme .time,.capibara.c-deep-purple .time{border-color:rgba(103,58,183,.6)}.capibara.c-deep-purple.dark-theme .time .symbol,.capibara.c-deep-purple .time .symbol{color:#673ab7}.capibara.c-deep-purple.dark-theme .time input:active,.capibara.c-deep-purple.dark-theme .time input:focus,.capibara.c-deep-purple .time input:active,.capibara.c-deep-purple .time input:focus{border-color:#673ab7;box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple.dark-theme .input-box,.capibara.c-deep-purple.dark-theme .input-section select.input-select,.capibara.c-deep-purple .input-box,.capibara.c-deep-purple .input-section select.input-select{border-color:rgba(103,58,183,.6)}.capibara.c-deep-purple.dark-theme .input-section select.input-select:active,.capibara.c-deep-purple.dark-theme .input-section select.input-select:focus,.capibara.c-deep-purple .input-section select.input-select:active,.capibara.c-deep-purple .input-section select.input-select:focus{border-color:#673ab7;box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple.dark-theme .input-section .nav-input-file,.capibara.c-deep-purple.dark-theme .input-section input.nav-input,.capibara.c-deep-purple .input-section .nav-input-file,.capibara.c-deep-purple .input-section input.nav-input{border-color:rgba(103,58,183,.6)}.capibara.c-deep-purple.dark-theme .input-section .nav-input-file:active,.capibara.c-deep-purple.dark-theme .input-section .nav-input-file:focus,.capibara.c-deep-purple.dark-theme .input-section input.nav-input:active,.capibara.c-deep-purple.dark-theme .input-section input.nav-input:focus,.capibara.c-deep-purple .input-section .nav-input-file:active,.capibara.c-deep-purple .input-section .nav-input-file:focus,.capibara.c-deep-purple .input-section input.nav-input:active,.capibara.c-deep-purple .input-section input.nav-input:focus{border-color:#673ab7;box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-deep-purple .input-section.msj-input-container textarea.msj{border:2px solid #673ab7}.capibara.c-deep-purple.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-purple.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-deep-purple .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-purple .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(103,58,183,.2)}.capibara.c-deep-purple .cap-btn-raised,.capibara.c-deep-purple.dark-theme .cap-btn-raised{border-color:#673ab7;background:rgba(103,58,183,.8)}.capibara.c-deep-purple .cap-btn-outline,.capibara.c-deep-purple.dark-theme .cap-btn-outline{border-color:#673ab7;color:#673ab7}.capibara.c-deep-purple .cap-btn-outline.selected,.capibara.c-deep-purple.dark-theme .cap-btn-outline.selected{background:rgba(103,58,183,.8)}.capibara.c-deep-purple.dark-theme .select-container .selected-day,.capibara.c-deep-purple .select-container .selected-day{background:rgba(103,58,183,.3);box-shadow:inset 0 0 10px rgba(103,58,183,.5)}.capibara .c-deep-purple--background{background:#673ab7!important}.capibara .c-deep-purple-d--background{background:#46287d!important}.capibara .c-deep-purple-l--background{background:#916dd1!important}.capibara .c-deep-purple--text{color:#673ab7!important}.capibara .c-deep-purple-d--text{color:#46287d!important}.capibara .c-deep-purple-l--text{color:#916dd1!important}.capibara .detail-day .list-detail .item-detail.c-deep-purple{background:rgba(103,58,183,.2);border:1px solid #673ab7}.capibara .detail-day .list-detail .item-detail.c-deep-purple .left-icon{background:#673ab7}.capibara .detail-day .list-detail .item-detail.c-deep-purple .left-icon.outlined{border:1px solid #673ab7;box-shadow:inset 0 0 0 1px rgba(103,58,183,.7)}.capibara .detail-day .list-detail .item-detail.c-deep-purple .name{color:#673ab7}.capibara .float-box-container .float-box span.data.c-deep-purple{--local-color:#673ab7;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-deep-purple,.capibara .float-box-container .float-box .dot.c-deep-purple,.capibara .float-box-container .float-box .rowdot--row.c-deep-purple .rowdot--dot{--local-color:#673ab7}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-purple.active{background:rgba(103,58,183,.7);border-color:rgba(103,58,183,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-purple.active:hover{background:rgba(103,58,183,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-purple:hover{background:rgba(103,58,183,.2);border-color:rgba(103,58,183,.9)}.capibara .input-box .mini-input-section--icon.c-deep-purple{background:#673ab7}.capibara.c-indigo:not(.dark-theme){scrollbar-color:#57629d transparent}.capibara.c-indigo:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#57629d}.capibara.c-indigo:not(.dark-theme) .header-top{background:#e0e0e0}.capibara.c-indigo:not(.dark-theme) .corner{background:#e0e0e0;border-color:#8591d5}.capibara.c-indigo:not(.dark-theme) .container-tl header{background:#e0e0e0;border-bottom-color:#8591d5}.capibara.c-indigo:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#e0e0e0)!important}.capibara.c-indigo:not(.dark-theme) nav.right{border-color:#8591d5}.capibara.c-indigo.dark-theme .header-top,.capibara.c-indigo.dark-theme nav.right{border-color:#252f69}.capibara.c-indigo.dark-theme .container-tl header,.capibara.c-indigo.dark-theme .corner{border-bottom-color:#252f69}.capibara.c-indigo.dark-theme ::-moz-selection,.capibara.c-indigo ::-moz-selection{background-color:rgba(63,81,181,.2)!important}.capibara.c-indigo.dark-theme ::selection,.capibara.c-indigo ::selection{background-color:rgba(63,81,181,.2)!important}.capibara.c-indigo.dark-theme .progress-bar,.capibara.c-indigo .progress-bar{background-color:rgba(63,81,181,.2)!important}.capibara.c-indigo.dark-theme .progress-bar:after,.capibara.c-indigo.dark-theme .progress-bar:before,.capibara.c-indigo .progress-bar:after,.capibara.c-indigo .progress-bar:before{background-color:#3f51b5!important}.capibara.c-indigo.dark-theme select.tabs-select,.capibara.c-indigo select.tabs-select{background-color:rgba(63,81,181,.7)!important;border-color:#3f51b5!important}.capibara.c-indigo.dark-theme .time,.capibara.c-indigo .time{border-color:rgba(63,81,181,.6)}.capibara.c-indigo.dark-theme .time .symbol,.capibara.c-indigo .time .symbol{color:#3f51b5}.capibara.c-indigo.dark-theme .time input:active,.capibara.c-indigo.dark-theme .time input:focus,.capibara.c-indigo .time input:active,.capibara.c-indigo .time input:focus{border-color:#3f51b5;box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo.dark-theme .input-box,.capibara.c-indigo.dark-theme .input-section select.input-select,.capibara.c-indigo .input-box,.capibara.c-indigo .input-section select.input-select{border-color:rgba(63,81,181,.6)}.capibara.c-indigo.dark-theme .input-section select.input-select:active,.capibara.c-indigo.dark-theme .input-section select.input-select:focus,.capibara.c-indigo .input-section select.input-select:active,.capibara.c-indigo .input-section select.input-select:focus{border-color:#3f51b5;box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo.dark-theme .input-section .nav-input-file,.capibara.c-indigo.dark-theme .input-section input.nav-input,.capibara.c-indigo .input-section .nav-input-file,.capibara.c-indigo .input-section input.nav-input{border-color:rgba(63,81,181,.6)}.capibara.c-indigo.dark-theme .input-section .nav-input-file:active,.capibara.c-indigo.dark-theme .input-section .nav-input-file:focus,.capibara.c-indigo.dark-theme .input-section input.nav-input:active,.capibara.c-indigo.dark-theme .input-section input.nav-input:focus,.capibara.c-indigo .input-section .nav-input-file:active,.capibara.c-indigo .input-section .nav-input-file:focus,.capibara.c-indigo .input-section input.nav-input:active,.capibara.c-indigo .input-section input.nav-input:focus{border-color:#3f51b5;box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-indigo .input-section.msj-input-container textarea.msj{border:2px solid #3f51b5}.capibara.c-indigo.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-indigo.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-indigo .input-section.msj-input-container textarea.msj:active,.capibara.c-indigo .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(63,81,181,.2)}.capibara.c-indigo .cap-btn-raised,.capibara.c-indigo.dark-theme .cap-btn-raised{border-color:#3f51b5;background:rgba(63,81,181,.8)}.capibara.c-indigo .cap-btn-outline,.capibara.c-indigo.dark-theme .cap-btn-outline{border-color:#3f51b5;color:#3f51b5}.capibara.c-indigo .cap-btn-outline.selected,.capibara.c-indigo.dark-theme .cap-btn-outline.selected{background:rgba(63,81,181,.8)}.capibara.c-indigo.dark-theme .select-container .selected-day,.capibara.c-indigo .select-container .selected-day{background:rgba(63,81,181,.3);box-shadow:inset 0 0 10px rgba(63,81,181,.5)}.capibara .c-indigo--background{background:#3f51b5!important}.capibara .c-indigo-d--background{background:#2b387c!important}.capibara .c-indigo-l--background{background:#7280ce!important}.capibara .c-indigo--text{color:#3f51b5!important}.capibara .c-indigo-d--text{color:#2b387c!important}.capibara .c-indigo-l--text{color:#7280ce!important}.capibara .detail-day .list-detail .item-detail.c-indigo{background:rgba(63,81,181,.2);border:1px solid #3f51b5}.capibara .detail-day .list-detail .item-detail.c-indigo .left-icon{background:#3f51b5}.capibara .detail-day .list-detail .item-detail.c-indigo .left-icon.outlined{border:1px solid #3f51b5;box-shadow:inset 0 0 0 1px rgba(63,81,181,.7)}.capibara .detail-day .list-detail .item-detail.c-indigo .name{color:#3f51b5}.capibara .float-box-container .float-box span.data.c-indigo{--local-color:#3f51b5;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-indigo,.capibara .float-box-container .float-box .dot.c-indigo,.capibara .float-box-container .float-box .rowdot--row.c-indigo .rowdot--dot{--local-color:#3f51b5}.capibara .header-top .tabs-container .tab:not(.disabled).c-indigo.active{background:rgba(63,81,181,.7);border-color:rgba(63,81,181,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-indigo.active:hover{background:rgba(63,81,181,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-indigo:hover{background:rgba(63,81,181,.2);border-color:rgba(63,81,181,.9)}.capibara .input-box .mini-input-section--icon.c-indigo{background:#3f51b5}.capibara.c-blue:not(.dark-theme){scrollbar-color:#3176bb transparent}.capibara.c-blue:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#3176bb}.capibara.c-blue:not(.dark-theme) .header-top{background:#d1dce6}.capibara.c-blue:not(.dark-theme) .corner{background:#d1dce6;border-color:#64a9ed}.capibara.c-blue:not(.dark-theme) .container-tl header{background:#d1dce6;border-bottom-color:#64a9ed}.capibara.c-blue:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#d1dce6)!important}.capibara.c-blue:not(.dark-theme) nav.right{border-color:#64a9ed}.capibara.c-blue.dark-theme .header-top,.capibara.c-blue.dark-theme nav.right{border-color:#0e4377}.capibara.c-blue.dark-theme .container-tl header,.capibara.c-blue.dark-theme .corner{border-bottom-color:#0e4377}.capibara.c-blue.dark-theme ::-moz-selection,.capibara.c-blue ::-moz-selection{background-color:rgba(25,118,210,.2)!important}.capibara.c-blue.dark-theme ::selection,.capibara.c-blue ::selection{background-color:rgba(25,118,210,.2)!important}.capibara.c-blue.dark-theme .progress-bar,.capibara.c-blue .progress-bar{background-color:rgba(25,118,210,.2)!important}.capibara.c-blue.dark-theme .progress-bar:after,.capibara.c-blue.dark-theme .progress-bar:before,.capibara.c-blue .progress-bar:after,.capibara.c-blue .progress-bar:before{background-color:#1976d2!important}.capibara.c-blue.dark-theme select.tabs-select,.capibara.c-blue select.tabs-select{background-color:rgba(25,118,210,.7)!important;border-color:#1976d2!important}.capibara.c-blue.dark-theme .time,.capibara.c-blue .time{border-color:rgba(25,118,210,.6)}.capibara.c-blue.dark-theme .time .symbol,.capibara.c-blue .time .symbol{color:#1976d2}.capibara.c-blue.dark-theme .time input:active,.capibara.c-blue.dark-theme .time input:focus,.capibara.c-blue .time input:active,.capibara.c-blue .time input:focus{border-color:#1976d2;box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue.dark-theme .input-box,.capibara.c-blue.dark-theme .input-section select.input-select,.capibara.c-blue .input-box,.capibara.c-blue .input-section select.input-select{border-color:rgba(25,118,210,.6)}.capibara.c-blue.dark-theme .input-section select.input-select:active,.capibara.c-blue.dark-theme .input-section select.input-select:focus,.capibara.c-blue .input-section select.input-select:active,.capibara.c-blue .input-section select.input-select:focus{border-color:#1976d2;box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue.dark-theme .input-section .nav-input-file,.capibara.c-blue.dark-theme .input-section input.nav-input,.capibara.c-blue .input-section .nav-input-file,.capibara.c-blue .input-section input.nav-input{border-color:rgba(25,118,210,.6)}.capibara.c-blue.dark-theme .input-section .nav-input-file:active,.capibara.c-blue.dark-theme .input-section .nav-input-file:focus,.capibara.c-blue.dark-theme .input-section input.nav-input:active,.capibara.c-blue.dark-theme .input-section input.nav-input:focus,.capibara.c-blue .input-section .nav-input-file:active,.capibara.c-blue .input-section .nav-input-file:focus,.capibara.c-blue .input-section input.nav-input:active,.capibara.c-blue .input-section input.nav-input:focus{border-color:#1976d2;box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-blue .input-section.msj-input-container textarea.msj{border:2px solid #1976d2}.capibara.c-blue.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-blue.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-blue .input-section.msj-input-container textarea.msj:active,.capibara.c-blue .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(25,118,210,.2)}.capibara.c-blue .cap-btn-raised,.capibara.c-blue.dark-theme .cap-btn-raised{border-color:#1976d2;background:rgba(25,118,210,.8)}.capibara.c-blue .cap-btn-outline,.capibara.c-blue.dark-theme .cap-btn-outline{border-color:#1976d2;color:#1976d2}.capibara.c-blue .cap-btn-outline.selected,.capibara.c-blue.dark-theme .cap-btn-outline.selected{background:rgba(25,118,210,.8)}.capibara.c-blue.dark-theme .select-container .selected-day,.capibara.c-blue .select-container .selected-day{background:rgba(25,118,210,.3);box-shadow:inset 0 0 10px rgba(25,118,210,.5)}.capibara .c-blue--background{background:#1976d2!important}.capibara .c-blue-d--background{background:#11508e!important}.capibara .c-blue-l--background{background:#4e9cea!important}.capibara .c-blue--text{color:#1976d2!important}.capibara .c-blue-d--text{color:#11508e!important}.capibara .c-blue-l--text{color:#4e9cea!important}.capibara .detail-day .list-detail .item-detail.c-blue{background:rgba(25,118,210,.2);border:1px solid #1976d2}.capibara .detail-day .list-detail .item-detail.c-blue .left-icon{background:#1976d2}.capibara .detail-day .list-detail .item-detail.c-blue .left-icon.outlined{border:1px solid #1976d2;box-shadow:inset 0 0 0 1px rgba(25,118,210,.7)}.capibara .detail-day .list-detail .item-detail.c-blue .name{color:#1976d2}.capibara .float-box-container .float-box span.data.c-blue{--local-color:#1976d2;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-blue,.capibara .float-box-container .float-box .dot.c-blue,.capibara .float-box-container .float-box .rowdot--row.c-blue .rowdot--dot{--local-color:#1976d2}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue.active{background:rgba(25,118,210,.7);border-color:rgba(25,118,210,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue.active:hover{background:rgba(25,118,210,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue:hover{background:rgba(25,118,210,.2);border-color:rgba(25,118,210,.9)}.capibara .input-box .mini-input-section--icon.c-blue{background:#1976d2}.capibara.c-light-blue:not(.dark-theme){scrollbar-color:#1ca0db transparent}.capibara.c-light-blue:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#1ca0db}.capibara.c-light-blue:not(.dark-theme) .header-top{background:#d3e7f0}.capibara.c-light-blue:not(.dark-theme) .corner{background:#d3e7f0;border-color:#60ccfd}.capibara.c-light-blue:not(.dark-theme) .container-tl header{background:#d3e7f0;border-bottom-color:#60ccfd}.capibara.c-light-blue:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#d3e7f0)!important}.capibara.c-light-blue:not(.dark-theme) nav.right{border-color:#60ccfd}.capibara.c-light-blue.dark-theme .header-top,.capibara.c-light-blue.dark-theme nav.right{border-color:#02638f}.capibara.c-light-blue.dark-theme .container-tl header,.capibara.c-light-blue.dark-theme .corner{border-bottom-color:#02638f}.capibara.c-light-blue.dark-theme ::-moz-selection,.capibara.c-light-blue ::-moz-selection{background-color:rgba(3,169,244,.2)!important}.capibara.c-light-blue.dark-theme ::selection,.capibara.c-light-blue ::selection{background-color:rgba(3,169,244,.2)!important}.capibara.c-light-blue.dark-theme .progress-bar,.capibara.c-light-blue .progress-bar{background-color:rgba(3,169,244,.2)!important}.capibara.c-light-blue.dark-theme .progress-bar:after,.capibara.c-light-blue.dark-theme .progress-bar:before,.capibara.c-light-blue .progress-bar:after,.capibara.c-light-blue .progress-bar:before{background-color:#03a9f4!important}.capibara.c-light-blue.dark-theme select.tabs-select,.capibara.c-light-blue select.tabs-select{background-color:rgba(3,169,244,.7)!important;border-color:#03a9f4!important}.capibara.c-light-blue.dark-theme .time,.capibara.c-light-blue .time{border-color:rgba(3,169,244,.6)}.capibara.c-light-blue.dark-theme .time .symbol,.capibara.c-light-blue .time .symbol{color:#03a9f4}.capibara.c-light-blue.dark-theme .time input:active,.capibara.c-light-blue.dark-theme .time input:focus,.capibara.c-light-blue .time input:active,.capibara.c-light-blue .time input:focus{border-color:#03a9f4;box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue.dark-theme .input-box,.capibara.c-light-blue.dark-theme .input-section select.input-select,.capibara.c-light-blue .input-box,.capibara.c-light-blue .input-section select.input-select{border-color:rgba(3,169,244,.6)}.capibara.c-light-blue.dark-theme .input-section select.input-select:active,.capibara.c-light-blue.dark-theme .input-section select.input-select:focus,.capibara.c-light-blue .input-section select.input-select:active,.capibara.c-light-blue .input-section select.input-select:focus{border-color:#03a9f4;box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue.dark-theme .input-section .nav-input-file,.capibara.c-light-blue.dark-theme .input-section input.nav-input,.capibara.c-light-blue .input-section .nav-input-file,.capibara.c-light-blue .input-section input.nav-input{border-color:rgba(3,169,244,.6)}.capibara.c-light-blue.dark-theme .input-section .nav-input-file:active,.capibara.c-light-blue.dark-theme .input-section .nav-input-file:focus,.capibara.c-light-blue.dark-theme .input-section input.nav-input:active,.capibara.c-light-blue.dark-theme .input-section input.nav-input:focus,.capibara.c-light-blue .input-section .nav-input-file:active,.capibara.c-light-blue .input-section .nav-input-file:focus,.capibara.c-light-blue .input-section input.nav-input:active,.capibara.c-light-blue .input-section input.nav-input:focus{border-color:#03a9f4;box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-light-blue .input-section.msj-input-container textarea.msj{border:2px solid #03a9f4}.capibara.c-light-blue.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-light-blue.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-light-blue .input-section.msj-input-container textarea.msj:active,.capibara.c-light-blue .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(3,169,244,.2)}.capibara.c-light-blue .cap-btn-raised,.capibara.c-light-blue.dark-theme .cap-btn-raised{border-color:#03a9f4;background:rgba(3,169,244,.8)}.capibara.c-light-blue .cap-btn-outline,.capibara.c-light-blue.dark-theme .cap-btn-outline{border-color:#03a9f4;color:#03a9f4}.capibara.c-light-blue .cap-btn-outline.selected,.capibara.c-light-blue.dark-theme .cap-btn-outline.selected{background:rgba(3,169,244,.8)}.capibara.c-light-blue.dark-theme .select-container .selected-day,.capibara.c-light-blue .select-container .selected-day{background:rgba(3,169,244,.3);box-shadow:inset 0 0 10px rgba(3,169,244,.5)}.capibara .c-light-blue--background{background:#03a9f4!important}.capibara .c-light-blue-d--background{background:#0275a8!important}.capibara .c-light-blue-l--background{background:#47c4fd!important}.capibara .c-light-blue--text{color:#03a9f4!important}.capibara .c-light-blue-d--text{color:#0275a8!important}.capibara .c-light-blue-l--text{color:#47c4fd!important}.capibara .detail-day .list-detail .item-detail.c-light-blue{background:rgba(3,169,244,.2);border:1px solid #03a9f4}.capibara .detail-day .list-detail .item-detail.c-light-blue .left-icon{background:#03a9f4}.capibara .detail-day .list-detail .item-detail.c-light-blue .left-icon.outlined{border:1px solid #03a9f4;box-shadow:inset 0 0 0 1px rgba(3,169,244,.7)}.capibara .detail-day .list-detail .item-detail.c-light-blue .name{color:#03a9f4}.capibara .float-box-container .float-box span.data.c-light-blue{--local-color:#03a9f4;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-light-blue,.capibara .float-box-container .float-box .dot.c-light-blue,.capibara .float-box-container .float-box .rowdot--row.c-light-blue .rowdot--dot{--local-color:#03a9f4}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-blue.active{background:rgba(3,169,244,.7);border-color:rgba(3,169,244,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-blue.active:hover{background:rgba(3,169,244,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-blue:hover{background:rgba(3,169,244,.2);border-color:rgba(3,169,244,.9)}.capibara .input-box .mini-input-section--icon.c-light-blue{background:#03a9f4}.capibara.c-cyan:not(.dark-theme){scrollbar-color:#15acbf transparent}.capibara.c-cyan:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#15acbf}.capibara.c-cyan:not(.dark-theme) .header-top{background:#b9e2e8}.capibara.c-cyan:not(.dark-theme) .corner{background:#b9e2e8;border-color:#3be9ff}.capibara.c-cyan:not(.dark-theme) .container-tl header{background:#b9e2e8;border-bottom-color:#3be9ff}.capibara.c-cyan:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#b9e2e8)!important}.capibara.c-cyan:not(.dark-theme) nav.right{border-color:#3be9ff}.capibara.c-cyan.dark-theme .header-top,.capibara.c-cyan.dark-theme nav.right{border-color:#00626e}.capibara.c-cyan.dark-theme .container-tl header,.capibara.c-cyan.dark-theme .corner{border-bottom-color:#00626e}.capibara.c-cyan.dark-theme ::-moz-selection,.capibara.c-cyan ::-moz-selection{background-color:rgba(0,188,212,.2)!important}.capibara.c-cyan.dark-theme ::selection,.capibara.c-cyan ::selection{background-color:rgba(0,188,212,.2)!important}.capibara.c-cyan.dark-theme .progress-bar,.capibara.c-cyan .progress-bar{background-color:rgba(0,188,212,.2)!important}.capibara.c-cyan.dark-theme .progress-bar:after,.capibara.c-cyan.dark-theme .progress-bar:before,.capibara.c-cyan .progress-bar:after,.capibara.c-cyan .progress-bar:before{background-color:#00bcd4!important}.capibara.c-cyan.dark-theme select.tabs-select,.capibara.c-cyan select.tabs-select{background-color:rgba(0,188,212,.7)!important;border-color:#00bcd4!important}.capibara.c-cyan.dark-theme .time,.capibara.c-cyan .time{border-color:rgba(0,188,212,.6)}.capibara.c-cyan.dark-theme .time .symbol,.capibara.c-cyan .time .symbol{color:#00bcd4}.capibara.c-cyan.dark-theme .time input:active,.capibara.c-cyan.dark-theme .time input:focus,.capibara.c-cyan .time input:active,.capibara.c-cyan .time input:focus{border-color:#00bcd4;box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan.dark-theme .input-box,.capibara.c-cyan.dark-theme .input-section select.input-select,.capibara.c-cyan .input-box,.capibara.c-cyan .input-section select.input-select{border-color:rgba(0,188,212,.6)}.capibara.c-cyan.dark-theme .input-section select.input-select:active,.capibara.c-cyan.dark-theme .input-section select.input-select:focus,.capibara.c-cyan .input-section select.input-select:active,.capibara.c-cyan .input-section select.input-select:focus{border-color:#00bcd4;box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan.dark-theme .input-section .nav-input-file,.capibara.c-cyan.dark-theme .input-section input.nav-input,.capibara.c-cyan .input-section .nav-input-file,.capibara.c-cyan .input-section input.nav-input{border-color:rgba(0,188,212,.6)}.capibara.c-cyan.dark-theme .input-section .nav-input-file:active,.capibara.c-cyan.dark-theme .input-section .nav-input-file:focus,.capibara.c-cyan.dark-theme .input-section input.nav-input:active,.capibara.c-cyan.dark-theme .input-section input.nav-input:focus,.capibara.c-cyan .input-section .nav-input-file:active,.capibara.c-cyan .input-section .nav-input-file:focus,.capibara.c-cyan .input-section input.nav-input:active,.capibara.c-cyan .input-section input.nav-input:focus{border-color:#00bcd4;box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-cyan .input-section.msj-input-container textarea.msj{border:2px solid #00bcd4}.capibara.c-cyan.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-cyan.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-cyan .input-section.msj-input-container textarea.msj:active,.capibara.c-cyan .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(0,188,212,.2)}.capibara.c-cyan .cap-btn-raised,.capibara.c-cyan.dark-theme .cap-btn-raised{border-color:#00bcd4;background:rgba(0,188,212,.8)}.capibara.c-cyan .cap-btn-outline,.capibara.c-cyan.dark-theme .cap-btn-outline{border-color:#00bcd4;color:#00bcd4}.capibara.c-cyan .cap-btn-outline.selected,.capibara.c-cyan.dark-theme .cap-btn-outline.selected{background:rgba(0,188,212,.8)}.capibara.c-cyan.dark-theme .select-container .selected-day,.capibara.c-cyan .select-container .selected-day{background:rgba(0,188,212,.3);box-shadow:inset 0 0 10px rgba(0,188,212,.5)}.capibara .c-cyan--background{background:#00bcd4!important}.capibara .c-cyan-d--background{background:#007888!important}.capibara .c-cyan-l--background{background:#22e6ff!important}.capibara .c-cyan--text{color:#00bcd4!important}.capibara .c-cyan-d--text{color:#007888!important}.capibara .c-cyan-l--text{color:#22e6ff!important}.capibara .detail-day .list-detail .item-detail.c-cyan{background:rgba(0,188,212,.2);border:1px solid #00bcd4}.capibara .detail-day .list-detail .item-detail.c-cyan .left-icon{background:#00bcd4}.capibara .detail-day .list-detail .item-detail.c-cyan .left-icon.outlined{border:1px solid #00bcd4;box-shadow:inset 0 0 0 1px rgba(0,188,212,.7)}.capibara .detail-day .list-detail .item-detail.c-cyan .name{color:#00bcd4}.capibara .float-box-container .float-box span.data.c-cyan{--local-color:#00bcd4;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-cyan,.capibara .float-box-container .float-box .dot.c-cyan,.capibara .float-box-container .float-box .rowdot--row.c-cyan .rowdot--dot{--local-color:#00bcd4}.capibara .header-top .tabs-container .tab:not(.disabled).c-cyan.active{background:rgba(0,188,212,.7);border-color:rgba(0,188,212,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-cyan.active:hover{background:rgba(0,188,212,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-cyan:hover{background:rgba(0,188,212,.2);border-color:rgba(0,188,212,.9)}.capibara .input-box .mini-input-section--icon.c-cyan{background:#00bcd4}.capibara.c-teal:not(.dark-theme){scrollbar-color:#0f877c transparent}.capibara.c-teal:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#0f877c}.capibara.c-teal:not(.dark-theme) .header-top{background:#8ad8d1}.capibara.c-teal:not(.dark-theme) .corner{background:#8ad8d1;border-color:#00fce4}.capibara.c-teal:not(.dark-theme) .container-tl header{background:#8ad8d1;border-bottom-color:#00fce4}.capibara.c-teal:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#8ad8d1)!important}.capibara.c-teal:not(.dark-theme) nav.right{border-color:#00fce4}.capibara.c-teal.dark-theme .header-top,.capibara.c-teal.dark-theme nav.right{border-color:#00302c}.capibara.c-teal.dark-theme .container-tl header,.capibara.c-teal.dark-theme .corner{border-bottom-color:#00302c}.capibara.c-teal.dark-theme ::-moz-selection,.capibara.c-teal ::-moz-selection{background-color:rgba(0,150,136,.2)!important}.capibara.c-teal.dark-theme ::selection,.capibara.c-teal ::selection{background-color:rgba(0,150,136,.2)!important}.capibara.c-teal.dark-theme .progress-bar,.capibara.c-teal .progress-bar{background-color:rgba(0,150,136,.2)!important}.capibara.c-teal.dark-theme .progress-bar:after,.capibara.c-teal.dark-theme .progress-bar:before,.capibara.c-teal .progress-bar:after,.capibara.c-teal .progress-bar:before{background-color:#009688!important}.capibara.c-teal.dark-theme select.tabs-select,.capibara.c-teal select.tabs-select{background-color:rgba(0,150,136,.7)!important;border-color:#009688!important}.capibara.c-teal.dark-theme .time,.capibara.c-teal .time{border-color:rgba(0,150,136,.6)}.capibara.c-teal.dark-theme .time .symbol,.capibara.c-teal .time .symbol{color:#009688}.capibara.c-teal.dark-theme .time input:active,.capibara.c-teal.dark-theme .time input:focus,.capibara.c-teal .time input:active,.capibara.c-teal .time input:focus{border-color:#009688;box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal.dark-theme .input-box,.capibara.c-teal.dark-theme .input-section select.input-select,.capibara.c-teal .input-box,.capibara.c-teal .input-section select.input-select{border-color:rgba(0,150,136,.6)}.capibara.c-teal.dark-theme .input-section select.input-select:active,.capibara.c-teal.dark-theme .input-section select.input-select:focus,.capibara.c-teal .input-section select.input-select:active,.capibara.c-teal .input-section select.input-select:focus{border-color:#009688;box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal.dark-theme .input-section .nav-input-file,.capibara.c-teal.dark-theme .input-section input.nav-input,.capibara.c-teal .input-section .nav-input-file,.capibara.c-teal .input-section input.nav-input{border-color:rgba(0,150,136,.6)}.capibara.c-teal.dark-theme .input-section .nav-input-file:active,.capibara.c-teal.dark-theme .input-section .nav-input-file:focus,.capibara.c-teal.dark-theme .input-section input.nav-input:active,.capibara.c-teal.dark-theme .input-section input.nav-input:focus,.capibara.c-teal .input-section .nav-input-file:active,.capibara.c-teal .input-section .nav-input-file:focus,.capibara.c-teal .input-section input.nav-input:active,.capibara.c-teal .input-section input.nav-input:focus{border-color:#009688;box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-teal .input-section.msj-input-container textarea.msj{border:2px solid #009688}.capibara.c-teal.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-teal.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-teal .input-section.msj-input-container textarea.msj:active,.capibara.c-teal .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(0,150,136,.2)}.capibara.c-teal .cap-btn-raised,.capibara.c-teal.dark-theme .cap-btn-raised{border-color:#009688;background:rgba(0,150,136,.8)}.capibara.c-teal .cap-btn-outline,.capibara.c-teal.dark-theme .cap-btn-outline{border-color:#009688;color:#009688}.capibara.c-teal .cap-btn-outline.selected,.capibara.c-teal.dark-theme .cap-btn-outline.selected{background:rgba(0,150,136,.8)}.capibara.c-teal.dark-theme .select-container .selected-day,.capibara.c-teal .select-container .selected-day{background:rgba(0,150,136,.3);box-shadow:inset 0 0 10px rgba(0,150,136,.5)}.capibara .c-teal--background{background:#009688!important}.capibara .c-teal-d--background{background:#004a43!important}.capibara .c-teal-l--background{background:#00e3cd!important}.capibara .c-teal--text{color:#009688!important}.capibara .c-teal-d--text{color:#004a43!important}.capibara .c-teal-l--text{color:#00e3cd!important}.capibara .detail-day .list-detail .item-detail.c-teal{background:rgba(0,150,136,.2);border:1px solid #009688}.capibara .detail-day .list-detail .item-detail.c-teal .left-icon{background:#009688}.capibara .detail-day .list-detail .item-detail.c-teal .left-icon.outlined{border:1px solid #009688;box-shadow:inset 0 0 0 1px rgba(0,150,136,.7)}.capibara .detail-day .list-detail .item-detail.c-teal .name{color:#009688}.capibara .float-box-container .float-box span.data.c-teal{--local-color:#009688;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-teal,.capibara .float-box-container .float-box .dot.c-teal,.capibara .float-box-container .float-box .rowdot--row.c-teal .rowdot--dot{--local-color:#009688}.capibara .header-top .tabs-container .tab:not(.disabled).c-teal.active{background:rgba(0,150,136,.7);border-color:rgba(0,150,136,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-teal.active:hover{background:rgba(0,150,136,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-teal:hover{background:rgba(0,150,136,.2);border-color:rgba(0,150,136,.9)}.capibara .input-box .mini-input-section--icon.c-teal{background:#009688}.capibara.c-green:not(.dark-theme){scrollbar-color:#3f6c41 transparent}.capibara.c-green:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#3f6c41}.capibara.c-green:not(.dark-theme) .header-top{background:#bcbcbc}.capibara.c-green:not(.dark-theme) .corner{background:#bcbcbc;border-color:#52bf57}.capibara.c-green:not(.dark-theme) .container-tl header{background:#bcbcbc;border-bottom-color:#52bf57}.capibara.c-green:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#bcbcbc)!important}.capibara.c-green:not(.dark-theme) nav.right{border-color:#52bf57}.capibara.c-green.dark-theme .header-top,.capibara.c-green.dark-theme nav.right{border-color:#133214}.capibara.c-green.dark-theme .container-tl header,.capibara.c-green.dark-theme .corner{border-bottom-color:#133214}.capibara.c-green.dark-theme ::-moz-selection,.capibara.c-green ::-moz-selection{background-color:rgba(46,125,50,.2)!important}.capibara.c-green.dark-theme ::selection,.capibara.c-green ::selection{background-color:rgba(46,125,50,.2)!important}.capibara.c-green.dark-theme .progress-bar,.capibara.c-green .progress-bar{background-color:rgba(46,125,50,.2)!important}.capibara.c-green.dark-theme .progress-bar:after,.capibara.c-green.dark-theme .progress-bar:before,.capibara.c-green .progress-bar:after,.capibara.c-green .progress-bar:before{background-color:#2e7d32!important}.capibara.c-green.dark-theme select.tabs-select,.capibara.c-green select.tabs-select{background-color:rgba(46,125,50,.7)!important;border-color:#2e7d32!important}.capibara.c-green.dark-theme .time,.capibara.c-green .time{border-color:rgba(46,125,50,.6)}.capibara.c-green.dark-theme .time .symbol,.capibara.c-green .time .symbol{color:#2e7d32}.capibara.c-green.dark-theme .time input:active,.capibara.c-green.dark-theme .time input:focus,.capibara.c-green .time input:active,.capibara.c-green .time input:focus{border-color:#2e7d32;box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green.dark-theme .input-box,.capibara.c-green.dark-theme .input-section select.input-select,.capibara.c-green .input-box,.capibara.c-green .input-section select.input-select{border-color:rgba(46,125,50,.6)}.capibara.c-green.dark-theme .input-section select.input-select:active,.capibara.c-green.dark-theme .input-section select.input-select:focus,.capibara.c-green .input-section select.input-select:active,.capibara.c-green .input-section select.input-select:focus{border-color:#2e7d32;box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green.dark-theme .input-section .nav-input-file,.capibara.c-green.dark-theme .input-section input.nav-input,.capibara.c-green .input-section .nav-input-file,.capibara.c-green .input-section input.nav-input{border-color:rgba(46,125,50,.6)}.capibara.c-green.dark-theme .input-section .nav-input-file:active,.capibara.c-green.dark-theme .input-section .nav-input-file:focus,.capibara.c-green.dark-theme .input-section input.nav-input:active,.capibara.c-green.dark-theme .input-section input.nav-input:focus,.capibara.c-green .input-section .nav-input-file:active,.capibara.c-green .input-section .nav-input-file:focus,.capibara.c-green .input-section input.nav-input:active,.capibara.c-green .input-section input.nav-input:focus{border-color:#2e7d32;box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-green .input-section.msj-input-container textarea.msj{border:2px solid #2e7d32}.capibara.c-green.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-green.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-green .input-section.msj-input-container textarea.msj:active,.capibara.c-green .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(46,125,50,.2)}.capibara.c-green .cap-btn-raised,.capibara.c-green.dark-theme .cap-btn-raised{border-color:#2e7d32;background:rgba(46,125,50,.8)}.capibara.c-green .cap-btn-outline,.capibara.c-green.dark-theme .cap-btn-outline{border-color:#2e7d32;color:#2e7d32}.capibara.c-green .cap-btn-outline.selected,.capibara.c-green.dark-theme .cap-btn-outline.selected{background:rgba(46,125,50,.8)}.capibara.c-green.dark-theme .select-container .selected-day,.capibara.c-green .select-container .selected-day{background:rgba(46,125,50,.3);box-shadow:inset 0 0 10px rgba(46,125,50,.5)}.capibara .c-green--background{background:#2e7d32!important}.capibara .c-green-d--background{background:#19451c!important}.capibara .c-green-l--background{background:#43b548!important}.capibara .c-green--text{color:#2e7d32!important}.capibara .c-green-d--text{color:#19451c!important}.capibara .c-green-l--text{color:#43b548!important}.capibara .detail-day .list-detail .item-detail.c-green{background:rgba(46,125,50,.2);border:1px solid #2e7d32}.capibara .detail-day .list-detail .item-detail.c-green .left-icon{background:#2e7d32}.capibara .detail-day .list-detail .item-detail.c-green .left-icon.outlined{border:1px solid #2e7d32;box-shadow:inset 0 0 0 1px rgba(46,125,50,.7)}.capibara .detail-day .list-detail .item-detail.c-green .name{color:#2e7d32}.capibara .float-box-container .float-box span.data.c-green{--local-color:#2e7d32;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-green,.capibara .float-box-container .float-box .dot.c-green,.capibara .float-box-container .float-box .rowdot--row.c-green .rowdot--dot{--local-color:#2e7d32}.capibara .header-top .tabs-container .tab:not(.disabled).c-green.active{background:rgba(46,125,50,.7);border-color:rgba(46,125,50,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-green.active:hover{background:rgba(46,125,50,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-green:hover{background:rgba(46,125,50,.2);border-color:rgba(46,125,50,.9)}.capibara .input-box .mini-input-section--icon.c-green{background:#2e7d32}.capibara.c-light-green:not(.dark-theme){scrollbar-color:#89ab62 transparent}.capibara.c-light-green:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#89ab62}.capibara.c-light-green:not(.dark-theme) .header-top{background:#ededec}.capibara.c-light-green:not(.dark-theme) .corner{background:#ededec;border-color:#bcdc97}.capibara.c-light-green:not(.dark-theme) .container-tl header{background:#ededec;border-bottom-color:#bcdc97}.capibara.c-light-green:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#ededec)!important}.capibara.c-light-green:not(.dark-theme) nav.right{border-color:#bcdc97}.capibara.c-light-green.dark-theme .header-top,.capibara.c-light-green.dark-theme nav.right{border-color:#577d2a}.capibara.c-light-green.dark-theme .container-tl header,.capibara.c-light-green.dark-theme .corner{border-bottom-color:#577d2a}.capibara.c-light-green.dark-theme ::-moz-selection,.capibara.c-light-green ::-moz-selection{background-color:rgba(139,195,74,.2)!important}.capibara.c-light-green.dark-theme ::selection,.capibara.c-light-green ::selection{background-color:rgba(139,195,74,.2)!important}.capibara.c-light-green.dark-theme .progress-bar,.capibara.c-light-green .progress-bar{background-color:rgba(139,195,74,.2)!important}.capibara.c-light-green.dark-theme .progress-bar:after,.capibara.c-light-green.dark-theme .progress-bar:before,.capibara.c-light-green .progress-bar:after,.capibara.c-light-green .progress-bar:before{background-color:#8bc34a!important}.capibara.c-light-green.dark-theme select.tabs-select,.capibara.c-light-green select.tabs-select{background-color:rgba(139,195,74,.7)!important;border-color:#8bc34a!important}.capibara.c-light-green.dark-theme .time,.capibara.c-light-green .time{border-color:rgba(139,195,74,.6)}.capibara.c-light-green.dark-theme .time .symbol,.capibara.c-light-green .time .symbol{color:#8bc34a}.capibara.c-light-green.dark-theme .time input:active,.capibara.c-light-green.dark-theme .time input:focus,.capibara.c-light-green .time input:active,.capibara.c-light-green .time input:focus{border-color:#8bc34a;box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green.dark-theme .input-box,.capibara.c-light-green.dark-theme .input-section select.input-select,.capibara.c-light-green .input-box,.capibara.c-light-green .input-section select.input-select{border-color:rgba(139,195,74,.6)}.capibara.c-light-green.dark-theme .input-section select.input-select:active,.capibara.c-light-green.dark-theme .input-section select.input-select:focus,.capibara.c-light-green .input-section select.input-select:active,.capibara.c-light-green .input-section select.input-select:focus{border-color:#8bc34a;box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green.dark-theme .input-section .nav-input-file,.capibara.c-light-green.dark-theme .input-section input.nav-input,.capibara.c-light-green .input-section .nav-input-file,.capibara.c-light-green .input-section input.nav-input{border-color:rgba(139,195,74,.6)}.capibara.c-light-green.dark-theme .input-section .nav-input-file:active,.capibara.c-light-green.dark-theme .input-section .nav-input-file:focus,.capibara.c-light-green.dark-theme .input-section input.nav-input:active,.capibara.c-light-green.dark-theme .input-section input.nav-input:focus,.capibara.c-light-green .input-section .nav-input-file:active,.capibara.c-light-green .input-section .nav-input-file:focus,.capibara.c-light-green .input-section input.nav-input:active,.capibara.c-light-green .input-section input.nav-input:focus{border-color:#8bc34a;box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-light-green .input-section.msj-input-container textarea.msj{border:2px solid #8bc34a}.capibara.c-light-green.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-light-green.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-light-green .input-section.msj-input-container textarea.msj:active,.capibara.c-light-green .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(139,195,74,.2)}.capibara.c-light-green .cap-btn-raised,.capibara.c-light-green.dark-theme .cap-btn-raised{border-color:#8bc34a;background:rgba(139,195,74,.8)}.capibara.c-light-green .cap-btn-outline,.capibara.c-light-green.dark-theme .cap-btn-outline{border-color:#8bc34a;color:#8bc34a}.capibara.c-light-green .cap-btn-outline.selected,.capibara.c-light-green.dark-theme .cap-btn-outline.selected{background:rgba(139,195,74,.8)}.capibara.c-light-green.dark-theme .select-container .selected-day,.capibara.c-light-green .select-container .selected-day{background:rgba(139,195,74,.3);box-shadow:inset 0 0 10px rgba(139,195,74,.5)}.capibara .c-light-green--background{background:#8bc34a!important}.capibara .c-light-green-d--background{background:#649130!important}.capibara .c-light-green-l--background{background:#b0d683!important}.capibara .c-light-green--text{color:#8bc34a!important}.capibara .c-light-green-d--text{color:#649130!important}.capibara .c-light-green-l--text{color:#b0d683!important}.capibara .detail-day .list-detail .item-detail.c-light-green{background:rgba(139,195,74,.2);border:1px solid #8bc34a}.capibara .detail-day .list-detail .item-detail.c-light-green .left-icon{background:#8bc34a}.capibara .detail-day .list-detail .item-detail.c-light-green .left-icon.outlined{border:1px solid #8bc34a;box-shadow:inset 0 0 0 1px rgba(139,195,74,.7)}.capibara .detail-day .list-detail .item-detail.c-light-green .name{color:#8bc34a}.capibara .float-box-container .float-box span.data.c-light-green{--local-color:#8bc34a;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-light-green,.capibara .float-box-container .float-box .dot.c-light-green,.capibara .float-box-container .float-box .rowdot--row.c-light-green .rowdot--dot{--local-color:#8bc34a}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-green.active{background:rgba(139,195,74,.7);border-color:rgba(139,195,74,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-green.active:hover{background:rgba(139,195,74,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-light-green:hover{background:rgba(139,195,74,.2);border-color:rgba(139,195,74,.9)}.capibara .input-box .mini-input-section--icon.c-light-green{background:#8bc34a}.capibara.c-lime:not(.dark-theme){scrollbar-color:#bac550 transparent}.capibara.c-lime:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#bac550}.capibara.c-lime:not(.dark-theme) .header-top{background:#f3f3ee}.capibara.c-lime:not(.dark-theme) .corner{background:#f3f3ee;border-color:#e3eb90}.capibara.c-lime:not(.dark-theme) .container-tl header{background:#f3f3ee;border-bottom-color:#e3eb90}.capibara.c-lime:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f3f3ee)!important}.capibara.c-lime:not(.dark-theme) nav.right{border-color:#e3eb90}.capibara.c-lime.dark-theme .header-top,.capibara.c-lime.dark-theme nav.right{border-color:#89951a}.capibara.c-lime.dark-theme .container-tl header,.capibara.c-lime.dark-theme .corner{border-bottom-color:#89951a}.capibara.c-lime.dark-theme ::-moz-selection,.capibara.c-lime ::-moz-selection{background-color:rgba(205,220,57,.2)!important}.capibara.c-lime.dark-theme ::selection,.capibara.c-lime ::selection{background-color:rgba(205,220,57,.2)!important}.capibara.c-lime.dark-theme .progress-bar,.capibara.c-lime .progress-bar{background-color:rgba(205,220,57,.2)!important}.capibara.c-lime.dark-theme .progress-bar:after,.capibara.c-lime.dark-theme .progress-bar:before,.capibara.c-lime .progress-bar:after,.capibara.c-lime .progress-bar:before{background-color:#cddc39!important}.capibara.c-lime.dark-theme select.tabs-select,.capibara.c-lime select.tabs-select{background-color:rgba(205,220,57,.7)!important;border-color:#cddc39!important}.capibara.c-lime.dark-theme .time,.capibara.c-lime .time{border-color:rgba(205,220,57,.6)}.capibara.c-lime.dark-theme .time .symbol,.capibara.c-lime .time .symbol{color:#cddc39}.capibara.c-lime.dark-theme .time input:active,.capibara.c-lime.dark-theme .time input:focus,.capibara.c-lime .time input:active,.capibara.c-lime .time input:focus{border-color:#cddc39;box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime.dark-theme .input-box,.capibara.c-lime.dark-theme .input-section select.input-select,.capibara.c-lime .input-box,.capibara.c-lime .input-section select.input-select{border-color:rgba(205,220,57,.6)}.capibara.c-lime.dark-theme .input-section select.input-select:active,.capibara.c-lime.dark-theme .input-section select.input-select:focus,.capibara.c-lime .input-section select.input-select:active,.capibara.c-lime .input-section select.input-select:focus{border-color:#cddc39;box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime.dark-theme .input-section .nav-input-file,.capibara.c-lime.dark-theme .input-section input.nav-input,.capibara.c-lime .input-section .nav-input-file,.capibara.c-lime .input-section input.nav-input{border-color:rgba(205,220,57,.6)}.capibara.c-lime.dark-theme .input-section .nav-input-file:active,.capibara.c-lime.dark-theme .input-section .nav-input-file:focus,.capibara.c-lime.dark-theme .input-section input.nav-input:active,.capibara.c-lime.dark-theme .input-section input.nav-input:focus,.capibara.c-lime .input-section .nav-input-file:active,.capibara.c-lime .input-section .nav-input-file:focus,.capibara.c-lime .input-section input.nav-input:active,.capibara.c-lime .input-section input.nav-input:focus{border-color:#cddc39;box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-lime .input-section.msj-input-container textarea.msj{border:2px solid #cddc39}.capibara.c-lime.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-lime.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-lime .input-section.msj-input-container textarea.msj:active,.capibara.c-lime .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(205,220,57,.2)}.capibara.c-lime .cap-btn-raised,.capibara.c-lime.dark-theme .cap-btn-raised{border-color:#cddc39;background:rgba(205,220,57,.8)}.capibara.c-lime .cap-btn-outline,.capibara.c-lime.dark-theme .cap-btn-outline{border-color:#cddc39;color:#cddc39}.capibara.c-lime .cap-btn-outline.selected,.capibara.c-lime.dark-theme .cap-btn-outline.selected{background:rgba(205,220,57,.8)}.capibara.c-lime.dark-theme .select-container .selected-day,.capibara.c-lime .select-container .selected-day{background:rgba(205,220,57,.3);box-shadow:inset 0 0 10px rgba(205,220,57,.5)}.capibara .c-lime--background{background:#cddc39!important}.capibara .c-lime-d--background{background:#9daa1e!important}.capibara .c-lime-l--background{background:#dde77a!important}.capibara .c-lime--text{color:#cddc39!important}.capibara .c-lime-d--text{color:#9daa1e!important}.capibara .c-lime-l--text{color:#dde77a!important}.capibara .detail-day .list-detail .item-detail.c-lime{background:rgba(205,220,57,.2);border:1px solid #cddc39}.capibara .detail-day .list-detail .item-detail.c-lime .left-icon{background:#cddc39}.capibara .detail-day .list-detail .item-detail.c-lime .left-icon.outlined{border:1px solid #cddc39;box-shadow:inset 0 0 0 1px rgba(205,220,57,.7)}.capibara .detail-day .list-detail .item-detail.c-lime .name{color:#cddc39}.capibara .float-box-container .float-box span.data.c-lime{--local-color:#cddc39;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-lime,.capibara .float-box-container .float-box .dot.c-lime,.capibara .float-box-container .float-box .rowdot--row.c-lime .rowdot--dot{--local-color:#cddc39}.capibara .header-top .tabs-container .tab:not(.disabled).c-lime.active{background:rgba(205,220,57,.7);border-color:rgba(205,220,57,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-lime.active:hover{background:rgba(205,220,57,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-lime:hover{background:rgba(205,220,57,.2);border-color:rgba(205,220,57,.9)}.capibara .input-box .mini-input-section--icon.c-lime{background:#cddc39}.capibara.c-yellow:not(.dark-theme){scrollbar-color:#ebdb4f transparent}.capibara.c-yellow:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#ebdb4f}.capibara.c-yellow:not(.dark-theme) .header-top{background:#fff}.capibara.c-yellow:not(.dark-theme) .corner{background:#fff;border-color:#fff5a1}.capibara.c-yellow:not(.dark-theme) .container-tl header{background:#fff;border-bottom-color:#fff5a1}.capibara.c-yellow:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#fff)!important}.capibara.c-yellow:not(.dark-theme) nav.right{border-color:#fff5a1}.capibara.c-yellow.dark-theme .header-top,.capibara.c-yellow.dark-theme nav.right{border-color:#d4be00}.capibara.c-yellow.dark-theme .container-tl header,.capibara.c-yellow.dark-theme .corner{border-bottom-color:#d4be00}.capibara.c-yellow.dark-theme ::-moz-selection,.capibara.c-yellow ::-moz-selection{background-color:rgba(255,235,59,.2)!important}.capibara.c-yellow.dark-theme ::selection,.capibara.c-yellow ::selection{background-color:rgba(255,235,59,.2)!important}.capibara.c-yellow.dark-theme .progress-bar,.capibara.c-yellow .progress-bar{background-color:rgba(255,235,59,.2)!important}.capibara.c-yellow.dark-theme .progress-bar:after,.capibara.c-yellow.dark-theme .progress-bar:before,.capibara.c-yellow .progress-bar:after,.capibara.c-yellow .progress-bar:before{background-color:#ffeb3b!important}.capibara.c-yellow.dark-theme select.tabs-select,.capibara.c-yellow select.tabs-select{background-color:rgba(255,235,59,.7)!important;border-color:#ffeb3b!important}.capibara.c-yellow.dark-theme .time,.capibara.c-yellow .time{border-color:rgba(255,235,59,.6)}.capibara.c-yellow.dark-theme .time .symbol,.capibara.c-yellow .time .symbol{color:#ffeb3b}.capibara.c-yellow.dark-theme .time input:active,.capibara.c-yellow.dark-theme .time input:focus,.capibara.c-yellow .time input:active,.capibara.c-yellow .time input:focus{border-color:#ffeb3b;box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow.dark-theme .input-box,.capibara.c-yellow.dark-theme .input-section select.input-select,.capibara.c-yellow .input-box,.capibara.c-yellow .input-section select.input-select{border-color:rgba(255,235,59,.6)}.capibara.c-yellow.dark-theme .input-section select.input-select:active,.capibara.c-yellow.dark-theme .input-section select.input-select:focus,.capibara.c-yellow .input-section select.input-select:active,.capibara.c-yellow .input-section select.input-select:focus{border-color:#ffeb3b;box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow.dark-theme .input-section .nav-input-file,.capibara.c-yellow.dark-theme .input-section input.nav-input,.capibara.c-yellow .input-section .nav-input-file,.capibara.c-yellow .input-section input.nav-input{border-color:rgba(255,235,59,.6)}.capibara.c-yellow.dark-theme .input-section .nav-input-file:active,.capibara.c-yellow.dark-theme .input-section .nav-input-file:focus,.capibara.c-yellow.dark-theme .input-section input.nav-input:active,.capibara.c-yellow.dark-theme .input-section input.nav-input:focus,.capibara.c-yellow .input-section .nav-input-file:active,.capibara.c-yellow .input-section .nav-input-file:focus,.capibara.c-yellow .input-section input.nav-input:active,.capibara.c-yellow .input-section input.nav-input:focus{border-color:#ffeb3b;box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-yellow .input-section.msj-input-container textarea.msj{border:2px solid #ffeb3b}.capibara.c-yellow.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-yellow.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-yellow .input-section.msj-input-container textarea.msj:active,.capibara.c-yellow .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,235,59,.2)}.capibara.c-yellow .cap-btn-raised,.capibara.c-yellow.dark-theme .cap-btn-raised{border-color:#ffeb3b;background:rgba(255,235,59,.8)}.capibara.c-yellow .cap-btn-outline,.capibara.c-yellow.dark-theme .cap-btn-outline{border-color:#ffeb3b;color:#ffeb3b}.capibara.c-yellow .cap-btn-outline.selected,.capibara.c-yellow.dark-theme .cap-btn-outline.selected{background:rgba(255,235,59,.8)}.capibara.c-yellow.dark-theme .select-container .selected-day,.capibara.c-yellow .select-container .selected-day{background:rgba(255,235,59,.3);box-shadow:inset 0 0 10px rgba(255,235,59,.5)}.capibara .c-yellow--background{background:#ffeb3b!important}.capibara .c-yellow-d--background{background:#eed500!important}.capibara .c-yellow-l--background{background:#fff388!important}.capibara .c-yellow--text{color:#ffeb3b!important}.capibara .c-yellow-d--text{color:#eed500!important}.capibara .c-yellow-l--text{color:#fff388!important}.capibara .detail-day .list-detail .item-detail.c-yellow{background:rgba(255,235,59,.2);border:1px solid #ffeb3b}.capibara .detail-day .list-detail .item-detail.c-yellow .left-icon{background:#ffeb3b}.capibara .detail-day .list-detail .item-detail.c-yellow .left-icon.outlined{border:1px solid #ffeb3b;box-shadow:inset 0 0 0 1px rgba(255,235,59,.7)}.capibara .detail-day .list-detail .item-detail.c-yellow .name{color:#ffeb3b}.capibara .float-box-container .float-box span.data.c-yellow{--local-color:#ffeb3b;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-yellow,.capibara .float-box-container .float-box .dot.c-yellow,.capibara .float-box-container .float-box .rowdot--row.c-yellow .rowdot--dot{--local-color:#ffeb3b}.capibara .header-top .tabs-container .tab:not(.disabled).c-yellow.active{background:rgba(255,235,59,.7);border-color:rgba(255,235,59,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-yellow.active:hover{background:rgba(255,235,59,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-yellow:hover{background:rgba(255,235,59,.2);border-color:rgba(255,235,59,.9)}.capibara .input-box .mini-input-section--icon.c-yellow{background:#ffeb3b}.capibara.c-amber:not(.dark-theme){scrollbar-color:#e6b520 transparent}.capibara.c-amber:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#e6b520}.capibara.c-amber:not(.dark-theme) .header-top{background:#f4efde}.capibara.c-amber:not(.dark-theme) .corner{background:#f4efde;border-color:#ffdb6d}.capibara.c-amber:not(.dark-theme) .container-tl header{background:#f4efde;border-bottom-color:#ffdb6d}.capibara.c-amber:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f4efde)!important}.capibara.c-amber:not(.dark-theme) nav.right{border-color:#ffdb6d}.capibara.c-amber.dark-theme .header-top,.capibara.c-amber.dark-theme nav.right{border-color:#a07800}.capibara.c-amber.dark-theme .container-tl header,.capibara.c-amber.dark-theme .corner{border-bottom-color:#a07800}.capibara.c-amber.dark-theme ::-moz-selection,.capibara.c-amber ::-moz-selection{background-color:rgba(255,193,7,.2)!important}.capibara.c-amber.dark-theme ::selection,.capibara.c-amber ::selection{background-color:rgba(255,193,7,.2)!important}.capibara.c-amber.dark-theme .progress-bar,.capibara.c-amber .progress-bar{background-color:rgba(255,193,7,.2)!important}.capibara.c-amber.dark-theme .progress-bar:after,.capibara.c-amber.dark-theme .progress-bar:before,.capibara.c-amber .progress-bar:after,.capibara.c-amber .progress-bar:before{background-color:#ffc107!important}.capibara.c-amber.dark-theme select.tabs-select,.capibara.c-amber select.tabs-select{background-color:rgba(255,193,7,.7)!important;border-color:#ffc107!important}.capibara.c-amber.dark-theme .time,.capibara.c-amber .time{border-color:rgba(255,193,7,.6)}.capibara.c-amber.dark-theme .time .symbol,.capibara.c-amber .time .symbol{color:#ffc107}.capibara.c-amber.dark-theme .time input:active,.capibara.c-amber.dark-theme .time input:focus,.capibara.c-amber .time input:active,.capibara.c-amber .time input:focus{border-color:#ffc107;box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber.dark-theme .input-box,.capibara.c-amber.dark-theme .input-section select.input-select,.capibara.c-amber .input-box,.capibara.c-amber .input-section select.input-select{border-color:rgba(255,193,7,.6)}.capibara.c-amber.dark-theme .input-section select.input-select:active,.capibara.c-amber.dark-theme .input-section select.input-select:focus,.capibara.c-amber .input-section select.input-select:active,.capibara.c-amber .input-section select.input-select:focus{border-color:#ffc107;box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber.dark-theme .input-section .nav-input-file,.capibara.c-amber.dark-theme .input-section input.nav-input,.capibara.c-amber .input-section .nav-input-file,.capibara.c-amber .input-section input.nav-input{border-color:rgba(255,193,7,.6)}.capibara.c-amber.dark-theme .input-section .nav-input-file:active,.capibara.c-amber.dark-theme .input-section .nav-input-file:focus,.capibara.c-amber.dark-theme .input-section input.nav-input:active,.capibara.c-amber.dark-theme .input-section input.nav-input:focus,.capibara.c-amber .input-section .nav-input-file:active,.capibara.c-amber .input-section .nav-input-file:focus,.capibara.c-amber .input-section input.nav-input:active,.capibara.c-amber .input-section input.nav-input:focus{border-color:#ffc107;box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-amber .input-section.msj-input-container textarea.msj{border:2px solid #ffc107}.capibara.c-amber.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-amber.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-amber .input-section.msj-input-container textarea.msj:active,.capibara.c-amber .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,193,7,.2)}.capibara.c-amber .cap-btn-raised,.capibara.c-amber.dark-theme .cap-btn-raised{border-color:#ffc107;background:rgba(255,193,7,.8)}.capibara.c-amber .cap-btn-outline,.capibara.c-amber.dark-theme .cap-btn-outline{border-color:#ffc107;color:#ffc107}.capibara.c-amber .cap-btn-outline.selected,.capibara.c-amber.dark-theme .cap-btn-outline.selected{background:rgba(255,193,7,.8)}.capibara.c-amber.dark-theme .select-container .selected-day,.capibara.c-amber .select-container .selected-day{background:rgba(255,193,7,.3);box-shadow:inset 0 0 10px rgba(255,193,7,.5)}.capibara .c-amber--background{background:#ffc107!important}.capibara .c-amber-d--background{background:#ba8b00!important}.capibara .c-amber-l--background{background:#ffd454!important}.capibara .c-amber--text{color:#ffc107!important}.capibara .c-amber-d--text{color:#ba8b00!important}.capibara .c-amber-l--text{color:#ffd454!important}.capibara .detail-day .list-detail .item-detail.c-amber{background:rgba(255,193,7,.2);border:1px solid #ffc107}.capibara .detail-day .list-detail .item-detail.c-amber .left-icon{background:#ffc107}.capibara .detail-day .list-detail .item-detail.c-amber .left-icon.outlined{border:1px solid #ffc107;box-shadow:inset 0 0 0 1px rgba(255,193,7,.7)}.capibara .detail-day .list-detail .item-detail.c-amber .name{color:#ffc107}.capibara .float-box-container .float-box span.data.c-amber{--local-color:#ffc107;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-amber,.capibara .float-box-container .float-box .dot.c-amber,.capibara .float-box-container .float-box .rowdot--row.c-amber .rowdot--dot{--local-color:#ffc107}.capibara .header-top .tabs-container .tab:not(.disabled).c-amber.active{background:rgba(255,193,7,.7);border-color:rgba(255,193,7,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-amber.active:hover{background:rgba(255,193,7,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-amber:hover{background:rgba(255,193,7,.2);border-color:rgba(255,193,7,.9)}.capibara .input-box .mini-input-section--icon.c-amber{background:#ffc107}.capibara.c-orange:not(.dark-theme){scrollbar-color:#e6931a transparent}.capibara.c-orange:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#e6931a}.capibara.c-orange:not(.dark-theme) .header-top{background:#f2e8d9}.capibara.c-orange:not(.dark-theme) .corner{background:#f2e8d9;border-color:#ffc166}.capibara.c-orange:not(.dark-theme) .container-tl header{background:#f2e8d9;border-bottom-color:#ffc166}.capibara.c-orange:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f2e8d9)!important}.capibara.c-orange:not(.dark-theme) nav.right{border-color:#ffc166}.capibara.c-orange.dark-theme .header-top,.capibara.c-orange.dark-theme nav.right{border-color:#995b00}.capibara.c-orange.dark-theme .container-tl header,.capibara.c-orange.dark-theme .corner{border-bottom-color:#995b00}.capibara.c-orange.dark-theme ::-moz-selection,.capibara.c-orange ::-moz-selection{background-color:rgba(255,152,0,.2)!important}.capibara.c-orange.dark-theme ::selection,.capibara.c-orange ::selection{background-color:rgba(255,152,0,.2)!important}.capibara.c-orange.dark-theme .progress-bar,.capibara.c-orange .progress-bar{background-color:rgba(255,152,0,.2)!important}.capibara.c-orange.dark-theme .progress-bar:after,.capibara.c-orange.dark-theme .progress-bar:before,.capibara.c-orange .progress-bar:after,.capibara.c-orange .progress-bar:before{background-color:#ff9800!important}.capibara.c-orange.dark-theme select.tabs-select,.capibara.c-orange select.tabs-select{background-color:rgba(255,152,0,.7)!important;border-color:#ff9800!important}.capibara.c-orange.dark-theme .time,.capibara.c-orange .time{border-color:rgba(255,152,0,.6)}.capibara.c-orange.dark-theme .time .symbol,.capibara.c-orange .time .symbol{color:#ff9800}.capibara.c-orange.dark-theme .time input:active,.capibara.c-orange.dark-theme .time input:focus,.capibara.c-orange .time input:active,.capibara.c-orange .time input:focus{border-color:#ff9800;box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange.dark-theme .input-box,.capibara.c-orange.dark-theme .input-section select.input-select,.capibara.c-orange .input-box,.capibara.c-orange .input-section select.input-select{border-color:rgba(255,152,0,.6)}.capibara.c-orange.dark-theme .input-section select.input-select:active,.capibara.c-orange.dark-theme .input-section select.input-select:focus,.capibara.c-orange .input-section select.input-select:active,.capibara.c-orange .input-section select.input-select:focus{border-color:#ff9800;box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange.dark-theme .input-section .nav-input-file,.capibara.c-orange.dark-theme .input-section input.nav-input,.capibara.c-orange .input-section .nav-input-file,.capibara.c-orange .input-section input.nav-input{border-color:rgba(255,152,0,.6)}.capibara.c-orange.dark-theme .input-section .nav-input-file:active,.capibara.c-orange.dark-theme .input-section .nav-input-file:focus,.capibara.c-orange.dark-theme .input-section input.nav-input:active,.capibara.c-orange.dark-theme .input-section input.nav-input:focus,.capibara.c-orange .input-section .nav-input-file:active,.capibara.c-orange .input-section .nav-input-file:focus,.capibara.c-orange .input-section input.nav-input:active,.capibara.c-orange .input-section input.nav-input:focus{border-color:#ff9800;box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-orange .input-section.msj-input-container textarea.msj{border:2px solid #ff9800}.capibara.c-orange.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-orange.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-orange .input-section.msj-input-container textarea.msj:active,.capibara.c-orange .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,152,0,.2)}.capibara.c-orange .cap-btn-raised,.capibara.c-orange.dark-theme .cap-btn-raised{border-color:#ff9800;background:rgba(255,152,0,.8)}.capibara.c-orange .cap-btn-outline,.capibara.c-orange.dark-theme .cap-btn-outline{border-color:#ff9800;color:#ff9800}.capibara.c-orange .cap-btn-outline.selected,.capibara.c-orange.dark-theme .cap-btn-outline.selected{background:rgba(255,152,0,.8)}.capibara.c-orange.dark-theme .select-container .selected-day,.capibara.c-orange .select-container .selected-day{background:rgba(255,152,0,.3);box-shadow:inset 0 0 10px rgba(255,152,0,.5)}.capibara .c-orange--background{background:#ff9800!important}.capibara .c-orange-d--background{background:#b36a00!important}.capibara .c-orange-l--background{background:#ffb74d!important}.capibara .c-orange--text{color:#ff9800!important}.capibara .c-orange-d--text{color:#b36a00!important}.capibara .c-orange-l--text{color:#ffb74d!important}.capibara .detail-day .list-detail .item-detail.c-orange{background:rgba(255,152,0,.2);border:1px solid #ff9800}.capibara .detail-day .list-detail .item-detail.c-orange .left-icon{background:#ff9800}.capibara .detail-day .list-detail .item-detail.c-orange .left-icon.outlined{border:1px solid #ff9800;box-shadow:inset 0 0 0 1px rgba(255,152,0,.7)}.capibara .detail-day .list-detail .item-detail.c-orange .name{color:#ff9800}.capibara .float-box-container .float-box span.data.c-orange{--local-color:#ff9800;--local-color-font:#263238}.capibara .float-box-container .float-box-ext .long-bar.c-orange,.capibara .float-box-container .float-box .dot.c-orange,.capibara .float-box-container .float-box .rowdot--row.c-orange .rowdot--dot{--local-color:#ff9800}.capibara .header-top .tabs-container .tab:not(.disabled).c-orange.active{background:rgba(255,152,0,.7);border-color:rgba(255,152,0,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-orange.active:hover{background:rgba(255,152,0,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-orange:hover{background:rgba(255,152,0,.2);border-color:rgba(255,152,0,.9)}.capibara .input-box .mini-input-section--icon.c-orange{background:#ff9800}.capibara.c-deep-orange:not(.dark-theme){scrollbar-color:#cd5733 transparent}.capibara.c-deep-orange:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#cd5733}.capibara.c-deep-orange:not(.dark-theme) .header-top{background:#ede1de}.capibara.c-deep-orange:not(.dark-theme) .corner{background:#ede1de;border-color:#f09275}.capibara.c-deep-orange:not(.dark-theme) .container-tl header{background:#ede1de;border-bottom-color:#f09275}.capibara.c-deep-orange:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#ede1de)!important}.capibara.c-deep-orange:not(.dark-theme) nav.right{border-color:#f09275}.capibara.c-deep-orange.dark-theme .header-top,.capibara.c-deep-orange.dark-theme nav.right{border-color:#8a2c0f}.capibara.c-deep-orange.dark-theme .container-tl header,.capibara.c-deep-orange.dark-theme .corner{border-bottom-color:#8a2c0f}.capibara.c-deep-orange.dark-theme ::-moz-selection,.capibara.c-deep-orange ::-moz-selection{background-color:rgba(230,74,25,.2)!important}.capibara.c-deep-orange.dark-theme ::selection,.capibara.c-deep-orange ::selection{background-color:rgba(230,74,25,.2)!important}.capibara.c-deep-orange.dark-theme .progress-bar,.capibara.c-deep-orange .progress-bar{background-color:rgba(230,74,25,.2)!important}.capibara.c-deep-orange.dark-theme .progress-bar:after,.capibara.c-deep-orange.dark-theme .progress-bar:before,.capibara.c-deep-orange .progress-bar:after,.capibara.c-deep-orange .progress-bar:before{background-color:#e64a19!important}.capibara.c-deep-orange.dark-theme select.tabs-select,.capibara.c-deep-orange select.tabs-select{background-color:rgba(230,74,25,.7)!important;border-color:#e64a19!important}.capibara.c-deep-orange.dark-theme .time,.capibara.c-deep-orange .time{border-color:rgba(230,74,25,.6)}.capibara.c-deep-orange.dark-theme .time .symbol,.capibara.c-deep-orange .time .symbol{color:#e64a19}.capibara.c-deep-orange.dark-theme .time input:active,.capibara.c-deep-orange.dark-theme .time input:focus,.capibara.c-deep-orange .time input:active,.capibara.c-deep-orange .time input:focus{border-color:#e64a19;box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange.dark-theme .input-box,.capibara.c-deep-orange.dark-theme .input-section select.input-select,.capibara.c-deep-orange .input-box,.capibara.c-deep-orange .input-section select.input-select{border-color:rgba(230,74,25,.6)}.capibara.c-deep-orange.dark-theme .input-section select.input-select:active,.capibara.c-deep-orange.dark-theme .input-section select.input-select:focus,.capibara.c-deep-orange .input-section select.input-select:active,.capibara.c-deep-orange .input-section select.input-select:focus{border-color:#e64a19;box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange.dark-theme .input-section .nav-input-file,.capibara.c-deep-orange.dark-theme .input-section input.nav-input,.capibara.c-deep-orange .input-section .nav-input-file,.capibara.c-deep-orange .input-section input.nav-input{border-color:rgba(230,74,25,.6)}.capibara.c-deep-orange.dark-theme .input-section .nav-input-file:active,.capibara.c-deep-orange.dark-theme .input-section .nav-input-file:focus,.capibara.c-deep-orange.dark-theme .input-section input.nav-input:active,.capibara.c-deep-orange.dark-theme .input-section input.nav-input:focus,.capibara.c-deep-orange .input-section .nav-input-file:active,.capibara.c-deep-orange .input-section .nav-input-file:focus,.capibara.c-deep-orange .input-section input.nav-input:active,.capibara.c-deep-orange .input-section input.nav-input:focus{border-color:#e64a19;box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-deep-orange .input-section.msj-input-container textarea.msj{border:2px solid #e64a19}.capibara.c-deep-orange.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-orange.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-deep-orange .input-section.msj-input-container textarea.msj:active,.capibara.c-deep-orange .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(230,74,25,.2)}.capibara.c-deep-orange .cap-btn-raised,.capibara.c-deep-orange.dark-theme .cap-btn-raised{border-color:#e64a19;background:rgba(230,74,25,.8)}.capibara.c-deep-orange .cap-btn-outline,.capibara.c-deep-orange.dark-theme .cap-btn-outline{border-color:#e64a19;color:#e64a19}.capibara.c-deep-orange .cap-btn-outline.selected,.capibara.c-deep-orange.dark-theme .cap-btn-outline.selected{background:rgba(230,74,25,.8)}.capibara.c-deep-orange.dark-theme .select-container .selected-day,.capibara.c-deep-orange .select-container .selected-day{background:rgba(230,74,25,.3);box-shadow:inset 0 0 10px rgba(230,74,25,.5)}.capibara .c-deep-orange--background{background:#e64a19!important}.capibara .c-deep-orange-d--background{background:#a13412!important}.capibara .c-deep-orange-l--background{background:#ee805e!important}.capibara .c-deep-orange--text{color:#e64a19!important}.capibara .c-deep-orange-d--text{color:#a13412!important}.capibara .c-deep-orange-l--text{color:#ee805e!important}.capibara .detail-day .list-detail .item-detail.c-deep-orange{background:rgba(230,74,25,.2);border:1px solid #e64a19}.capibara .detail-day .list-detail .item-detail.c-deep-orange .left-icon{background:#e64a19}.capibara .detail-day .list-detail .item-detail.c-deep-orange .left-icon.outlined{border:1px solid #e64a19;box-shadow:inset 0 0 0 1px rgba(230,74,25,.7)}.capibara .detail-day .list-detail .item-detail.c-deep-orange .name{color:#e64a19}.capibara .float-box-container .float-box span.data.c-deep-orange{--local-color:#e64a19;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-deep-orange,.capibara .float-box-container .float-box .dot.c-deep-orange,.capibara .float-box-container .float-box .rowdot--row.c-deep-orange .rowdot--dot{--local-color:#e64a19}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-orange.active{background:rgba(230,74,25,.7);border-color:rgba(230,74,25,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-orange.active:hover{background:rgba(230,74,25,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-deep-orange:hover{background:rgba(230,74,25,.2);border-color:rgba(230,74,25,.9)}.capibara .input-box .mini-input-section--icon.c-deep-orange{background:#e64a19}.capibara.c-brown:not(.dark-theme){scrollbar-color:#665e5b transparent}.capibara.c-brown:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#665e5b}.capibara.c-brown:not(.dark-theme) .header-top{background:#c7c7c7}.capibara.c-brown:not(.dark-theme) .corner{background:#c7c7c7;border-color:#af8778}.capibara.c-brown:not(.dark-theme) .container-tl header{background:#c7c7c7;border-bottom-color:#af8778}.capibara.c-brown:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#c7c7c7)!important}.capibara.c-brown:not(.dark-theme) nav.right{border-color:#af8778}.capibara.c-brown.dark-theme .header-top,.capibara.c-brown.dark-theme nav.right{border-color:#392822}.capibara.c-brown.dark-theme .container-tl header,.capibara.c-brown.dark-theme .corner{border-bottom-color:#392822}.capibara.c-brown.dark-theme ::-moz-selection,.capibara.c-brown ::-moz-selection{background-color:rgba(121,85,72,.2)!important}.capibara.c-brown.dark-theme ::selection,.capibara.c-brown ::selection{background-color:rgba(121,85,72,.2)!important}.capibara.c-brown.dark-theme .progress-bar,.capibara.c-brown .progress-bar{background-color:rgba(121,85,72,.2)!important}.capibara.c-brown.dark-theme .progress-bar:after,.capibara.c-brown.dark-theme .progress-bar:before,.capibara.c-brown .progress-bar:after,.capibara.c-brown .progress-bar:before{background-color:#795548!important}.capibara.c-brown.dark-theme select.tabs-select,.capibara.c-brown select.tabs-select{background-color:rgba(121,85,72,.7)!important;border-color:#795548!important}.capibara.c-brown.dark-theme .time,.capibara.c-brown .time{border-color:rgba(121,85,72,.6)}.capibara.c-brown.dark-theme .time .symbol,.capibara.c-brown .time .symbol{color:#795548}.capibara.c-brown.dark-theme .time input:active,.capibara.c-brown.dark-theme .time input:focus,.capibara.c-brown .time input:active,.capibara.c-brown .time input:focus{border-color:#795548;box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown.dark-theme .input-box,.capibara.c-brown.dark-theme .input-section select.input-select,.capibara.c-brown .input-box,.capibara.c-brown .input-section select.input-select{border-color:rgba(121,85,72,.6)}.capibara.c-brown.dark-theme .input-section select.input-select:active,.capibara.c-brown.dark-theme .input-section select.input-select:focus,.capibara.c-brown .input-section select.input-select:active,.capibara.c-brown .input-section select.input-select:focus{border-color:#795548;box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown.dark-theme .input-section .nav-input-file,.capibara.c-brown.dark-theme .input-section input.nav-input,.capibara.c-brown .input-section .nav-input-file,.capibara.c-brown .input-section input.nav-input{border-color:rgba(121,85,72,.6)}.capibara.c-brown.dark-theme .input-section .nav-input-file:active,.capibara.c-brown.dark-theme .input-section .nav-input-file:focus,.capibara.c-brown.dark-theme .input-section input.nav-input:active,.capibara.c-brown.dark-theme .input-section input.nav-input:focus,.capibara.c-brown .input-section .nav-input-file:active,.capibara.c-brown .input-section .nav-input-file:focus,.capibara.c-brown .input-section input.nav-input:active,.capibara.c-brown .input-section input.nav-input:focus{border-color:#795548;box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-brown .input-section.msj-input-container textarea.msj{border:2px solid #795548}.capibara.c-brown.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-brown.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-brown .input-section.msj-input-container textarea.msj:active,.capibara.c-brown .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(121,85,72,.2)}.capibara.c-brown .cap-btn-raised,.capibara.c-brown.dark-theme .cap-btn-raised{border-color:#795548;background:rgba(121,85,72,.8)}.capibara.c-brown .cap-btn-outline,.capibara.c-brown.dark-theme .cap-btn-outline{border-color:#795548;color:#795548}.capibara.c-brown .cap-btn-outline.selected,.capibara.c-brown.dark-theme .cap-btn-outline.selected{background:rgba(121,85,72,.8)}.capibara.c-brown.dark-theme .select-container .selected-day,.capibara.c-brown .select-container .selected-day{background:rgba(121,85,72,.3);box-shadow:inset 0 0 10px rgba(121,85,72,.5)}.capibara .c-brown--background{background:#795548!important}.capibara .c-brown-d--background{background:#49332b!important}.capibara .c-brown-l--background{background:#a57868!important}.capibara .c-brown--text{color:#795548!important}.capibara .c-brown-d--text{color:#49332b!important}.capibara .c-brown-l--text{color:#a57868!important}.capibara .detail-day .list-detail .item-detail.c-brown{background:rgba(121,85,72,.2);border:1px solid #795548}.capibara .detail-day .list-detail .item-detail.c-brown .left-icon{background:#795548}.capibara .detail-day .list-detail .item-detail.c-brown .left-icon.outlined{border:1px solid #795548;box-shadow:inset 0 0 0 1px rgba(121,85,72,.7)}.capibara .detail-day .list-detail .item-detail.c-brown .name{color:#795548}.capibara .float-box-container .float-box span.data.c-brown{--local-color:#795548;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-brown,.capibara .float-box-container .float-box .dot.c-brown,.capibara .float-box-container .float-box .rowdot--row.c-brown .rowdot--dot{--local-color:#795548}.capibara .header-top .tabs-container .tab:not(.disabled).c-brown.active{background:rgba(121,85,72,.7);border-color:rgba(121,85,72,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-brown.active:hover{background:rgba(121,85,72,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-brown:hover{background:rgba(121,85,72,.2);border-color:rgba(121,85,72,.9)}.capibara .input-box .mini-input-section--icon.c-brown{background:#795548}.capibara.c-blue_grey:not(.dark-theme){scrollbar-color:#767676 transparent}.capibara.c-blue_grey:not(.dark-theme) ::-webkit-scrollbar-thumb{background:#767676}.capibara.c-blue_grey:not(.dark-theme) .header-top{background:#dcdcdc}.capibara.c-blue_grey:not(.dark-theme) .corner{background:#dcdcdc;border-color:#99aeb8}.capibara.c-blue_grey:not(.dark-theme) .container-tl header{background:#dcdcdc;border-bottom-color:#99aeb8}.capibara.c-blue_grey:not(.dark-theme) .container-tl header .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#dcdcdc)!important}.capibara.c-blue_grey:not(.dark-theme) nav.right{border-color:#99aeb8}.capibara.c-blue_grey.dark-theme .header-top,.capibara.c-blue_grey.dark-theme nav.right{border-color:#36474f}.capibara.c-blue_grey.dark-theme .container-tl header,.capibara.c-blue_grey.dark-theme .corner{border-bottom-color:#36474f}.capibara.c-blue_grey.dark-theme ::-moz-selection,.capibara.c-blue_grey ::-moz-selection{background-color:rgba(96,125,139,.2)!important}.capibara.c-blue_grey.dark-theme ::selection,.capibara.c-blue_grey ::selection{background-color:rgba(96,125,139,.2)!important}.capibara.c-blue_grey.dark-theme .progress-bar,.capibara.c-blue_grey .progress-bar{background-color:rgba(96,125,139,.2)!important}.capibara.c-blue_grey.dark-theme .progress-bar:after,.capibara.c-blue_grey.dark-theme .progress-bar:before,.capibara.c-blue_grey .progress-bar:after,.capibara.c-blue_grey .progress-bar:before{background-color:#607d8b!important}.capibara.c-blue_grey.dark-theme select.tabs-select,.capibara.c-blue_grey select.tabs-select{background-color:rgba(96,125,139,.7)!important;border-color:#607d8b!important}.capibara.c-blue_grey.dark-theme .time,.capibara.c-blue_grey .time{border-color:rgba(96,125,139,.6)}.capibara.c-blue_grey.dark-theme .time .symbol,.capibara.c-blue_grey .time .symbol{color:#607d8b}.capibara.c-blue_grey.dark-theme .time input:active,.capibara.c-blue_grey.dark-theme .time input:focus,.capibara.c-blue_grey .time input:active,.capibara.c-blue_grey .time input:focus{border-color:#607d8b;box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey.dark-theme .input-box,.capibara.c-blue_grey.dark-theme .input-section select.input-select,.capibara.c-blue_grey .input-box,.capibara.c-blue_grey .input-section select.input-select{border-color:rgba(96,125,139,.6)}.capibara.c-blue_grey.dark-theme .input-section select.input-select:active,.capibara.c-blue_grey.dark-theme .input-section select.input-select:focus,.capibara.c-blue_grey .input-section select.input-select:active,.capibara.c-blue_grey .input-section select.input-select:focus{border-color:#607d8b;box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey.dark-theme .input-section .nav-input-file,.capibara.c-blue_grey.dark-theme .input-section input.nav-input,.capibara.c-blue_grey .input-section .nav-input-file,.capibara.c-blue_grey .input-section input.nav-input{border-color:rgba(96,125,139,.6)}.capibara.c-blue_grey.dark-theme .input-section .nav-input-file:active,.capibara.c-blue_grey.dark-theme .input-section .nav-input-file:focus,.capibara.c-blue_grey.dark-theme .input-section input.nav-input:active,.capibara.c-blue_grey.dark-theme .input-section input.nav-input:focus,.capibara.c-blue_grey .input-section .nav-input-file:active,.capibara.c-blue_grey .input-section .nav-input-file:focus,.capibara.c-blue_grey .input-section input.nav-input:active,.capibara.c-blue_grey .input-section input.nav-input:focus{border-color:#607d8b;box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey.dark-theme .input-section.msj-input-container textarea.msj,.capibara.c-blue_grey .input-section.msj-input-container textarea.msj{border:2px solid #607d8b}.capibara.c-blue_grey.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.c-blue_grey.dark-theme .input-section.msj-input-container textarea.msj:focus,.capibara.c-blue_grey .input-section.msj-input-container textarea.msj:active,.capibara.c-blue_grey .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(96,125,139,.2)}.capibara.c-blue_grey .cap-btn-raised,.capibara.c-blue_grey.dark-theme .cap-btn-raised{border-color:#607d8b;background:rgba(96,125,139,.8)}.capibara.c-blue_grey .cap-btn-outline,.capibara.c-blue_grey.dark-theme .cap-btn-outline{border-color:#607d8b;color:#607d8b}.capibara.c-blue_grey .cap-btn-outline.selected,.capibara.c-blue_grey.dark-theme .cap-btn-outline.selected{background:rgba(96,125,139,.8)}.capibara.c-blue_grey.dark-theme .select-container .selected-day,.capibara.c-blue_grey .select-container .selected-day{background:rgba(96,125,139,.3);box-shadow:inset 0 0 10px rgba(96,125,139,.5)}.capibara .c-blue_grey--background{background:#607d8b!important}.capibara .c-blue_grey-d--background{background:#41545e!important}.capibara .c-blue_grey-l--background{background:#8aa2ae!important}.capibara .c-blue_grey--text{color:#607d8b!important}.capibara .c-blue_grey-d--text{color:#41545e!important}.capibara .c-blue_grey-l--text{color:#8aa2ae!important}.capibara .detail-day .list-detail .item-detail.c-blue_grey{background:rgba(96,125,139,.2);border:1px solid #607d8b}.capibara .detail-day .list-detail .item-detail.c-blue_grey .left-icon{background:#607d8b}.capibara .detail-day .list-detail .item-detail.c-blue_grey .left-icon.outlined{border:1px solid #607d8b;box-shadow:inset 0 0 0 1px rgba(96,125,139,.7)}.capibara .detail-day .list-detail .item-detail.c-blue_grey .name{color:#607d8b}.capibara .float-box-container .float-box span.data.c-blue_grey{--local-color:#607d8b;--local-color-font:#fff}.capibara .float-box-container .float-box-ext .long-bar.c-blue_grey,.capibara .float-box-container .float-box .dot.c-blue_grey,.capibara .float-box-container .float-box .rowdot--row.c-blue_grey .rowdot--dot{--local-color:#607d8b}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue_grey.active{background:rgba(96,125,139,.7);border-color:rgba(96,125,139,.7);color:#fff}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue_grey.active:hover{background:rgba(96,125,139,.8)}.capibara .header-top .tabs-container .tab:not(.disabled).c-blue_grey:hover{background:rgba(96,125,139,.2);border-color:rgba(96,125,139,.9)}.capibara .input-box .mini-input-section--icon.c-blue_grey{background:#607d8b}.capibara *,.capibara :after,.capibara :before{box-sizing:border-box}.capibara input{outline:none}.capibara input[type=number]{-moz-appearance:textfield}.capibara input[type=number]::-webkit-inner-spin-button,.capibara input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.capibara input[type=number]::-moz-placeholder{opacity:1}.capibara input[type=number]:-ms-input-placeholder{opacity:1}.capibara input[type=number]::placeholder{opacity:1}.capibara.dark-theme .hide-dark,.capibara:not(.dark-theme) .hide-light{display:none!important}.capibara .truncate{width:100%;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capibara .hide{display:none!important}.capibara .text-title{font-size:1.25em;font-weight:700;margin:.5em .3em}.capibara .text-subtitle{font-size:.875em;font-weight:700;margin:.5em .3em;flex:0 0 auto}.capibara .text-hint{font-size:.75em;margin:.3em;text-align:left;align-self:flex-start}.capibara .text-subtitle-2{font-size:.75em;margin:.5em .3em;flex:0 0 auto}.capibara .d-inline-block{display:inline-block}.capibara .d-block{display:block}.capibara .d-flex{display:flex;flex-direction:column;align-items:center}@media screen and (min-width:960px){.capibara .c-d-desktop-none{display:none!important}.capibara .c-d-desktop-inline-block{display:inline-block!important}.capibara .c-d-desktop-block{display:block!important}.capibara .c-d-desktop-flex{display:flex!important}}@media screen and (max-width:959px){.capibara .c-d-mobile-none{display:none!important}.capibara .c-d-mobile-block{display:block!important}.capibara .c-d-mobile-inline-block{display:inline-block!important}.capibara .c-d-mobile-flex{display:flex!important}}.capibara{scrollbar-width:auto}.capibara ::-webkit-scrollbar{width:12px;height:12px;opacity:.5}.capibara ::-webkit-scrollbar-corner,.capibara ::-webkit-scrollbar-track{background:transparent}.capibara ::-webkit-scrollbar-thumb{border-radius:5px;background:grey}.capibara.dark-theme ::-webkit-scrollbar-corner,.capibara.dark-theme ::-webkit-scrollbar-track{background:transparent}.capibara.dark-theme ::-webkit-scrollbar-thumb{background:#bdbdbd}.capibara{position:relative;font-family:Roboto,sans-serif;height:inherit;max-height:inherit;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;font-size:var(--font-size)}.capibara pre{font-family:Roboto,sans-serif!important}.capibara{color:#37474f;background:#f5f5f5}.capibara.dark-theme{color:#f0f0f0;background:#222837}.capibara .container-tl{width:100%;height:calc(100% - var(--header-top-height));max-height:calc(100% - var(--header-top-height));position:relative;overflow:scroll;margin:0;will-change:scroll-position}.capibara.extended-right .container-tl{width:calc(100% - var(--nav-right-width))}.capibara .container-tl{background:#f5f5f5}.capibara.dark-theme .container-tl{background:#222837}.capibara .container-tl .today-line{width:0;position:absolute}.capibara .container-tl .today-line.disable-line,.capibara .container-tl .today-line.disable-line:after{display:none!important}.capibara .container-tl .today-line:after{margin-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width) + 1px);position:absolute;display:block;left:0;top:0;content:\\\"\\\";width:2px;height:100%;background:rgba(183,28,28,.4)}.capibara .container-tl.header-extended .container-tl .today-line:after{height:calc(100vh - var(--header-height) + var(--ex-header-height) + var(--header-top-height))}.capibara .corner{position:absolute;top:var(--header-top-height);z-index:4;height:var(--header-height);border:solid rgba(0,0,0,.4);border-width:0 0 2px;padding-left:8px}.capibara .corner:not(.right){left:0;border-right-width:1px;width:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width))}.capibara .corner.right{right:0;width:var(--nav-right-width);display:none}.capibara .corner>div:not([class]){width:inherit;height:inherit}.capibara .corner .btn-container{padding-top:.5em}.capibara .corner .btn-container .corner-btn{font-size:.825em;margin:0 4px;padding:4px 8px}.capibara .corner .corner-title{height:inherit;display:block;text-align:left;position:relative}.capibara .corner .corner-title span.bottom-text{position:absolute;left:0;bottom:8px}@media screen and (max-width:959px){.capibara .corner .corner-title{font-size:.75em}}.capibara .corner .initial-corner{position:absolute;left:var(--nav-width);top:0;width:var(--initial-nav-width);height:var(--header-height);overflow:hidden;display:block}.capibara .corner .initial-corner .initial-corner-title{height:inherit;width:inherit;display:inline-block;margin-right:-1px;box-sizing:border-box;vertical-align:top;position:relative}.capibara .corner .initial-corner .initial-corner-title .bottom-container{position:absolute;left:0;bottom:8px;width:100%;box-sizing:border-box;display:flex;align-items:center}.capibara .corner .initial-corner .initial-corner-title .bottom-container .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;display:inline-block;font-size:.75em}.capibara .corner .extend-corner{position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width));top:0;width:var(--ex-nav-width);height:var(--header-height);overflow:hidden;display:block}.capibara .corner .extend-corner .ex-corner-title{height:inherit;width:inherit;display:inline-block;margin-right:-1px;box-sizing:border-box;vertical-align:top;position:relative}.capibara .corner .extend-corner .ex-corner-title .bottom-container{position:absolute;left:0;bottom:8px;width:100%;box-sizing:border-box;display:flex;align-items:center}.capibara .corner .extend-corner .ex-corner-title .bottom-container .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;display:inline-block;font-size:.75em}.capibara .corner .cap-btn-nav-corner{position:absolute;right:0;top:0;width:var(--btn-nav-width);height:var(--header-height);min-width:100px;padding-top:var(--header-labels-height)}.capibara .corner .cap-btn-nav-corner .input-titles{text-align:right;display:flex;flex-direction:column;position:absolute;right:0;top:var(--header-labels-height)}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container{position:relative;border-radius:3px}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent){display:none}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container.input-title--accent .input-title{color:#fff;background:grey}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container span.average{font-weight:700;margin-right:4px;padding:3px}.capibara .corner .cap-btn-nav-corner .input-titles .input-title-container .input-title{height:calc(var(--header-input-height) + 2px);line-height:calc(var(--header-input-height) + 2px);padding-right:8px;display:inline-block;font-size:.75em}.capibara.extended-right .corner.right{display:block}.capibara.header-extended .corner,.capibara.header-extended .corner .cap-btn-nav-corner,.capibara.header-extended .corner .extend-corner,.capibara.header-extended .corner .initial-corner{height:calc(var(--header-height) + var(--ex-header-height))}.capibara.header-extended .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent){display:unset}.capibara.header-extended .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent) .average-box{visibility:visible}.capibara.header-extended .corner .cap-btn-nav-corner .input-titles .input-title-container:not(.persistent) .input-title{visibility:visible;height:auto}.capibara .corner{background:#f1fffe}.capibara.dark-theme .corner{background:#313b50;border-color:rgba(64,78,105,.6)}.capibara.dark-theme .corner .input-titles .input-title-container .input-title{color:hsla(0,0%,100%,.8)!important}.capibara .header-top{position:relative;width:100%;height:var(--header-top-height);padding:0 .5em;display:flex;flex-flow:row wrap;z-index:5}.capibara .header-top .spacer{flex:1 0 auto}.capibara .header-top .tabs-container{display:flex;border-right:1px solid hsla(0,0%,43.5%,.3);margin-right:.5em}.capibara .header-top .tabs-container:not(:empty){padding:0}.capibara .header-top .tabs-container button.tab{cursor:pointer;padding:.25em 1em;font-weight:700;border:1px solid transparent;margin:.5em .5em 0 0;border-radius:30px;transition:background .2s ease;background:transparent}.capibara .header-top .tabs-container button.tab:focus{box-shadow:0 0 0 3px rgba(0,0,0,.3)}.capibara .header-top .tabs-container button.tab.disabled{color:grey}.capibara .header-top .tabs-container button.tab:hover{border-color:grey}.capibara .header-top .legends-container{display:flex}.capibara .header-top .legends-container .legend{display:flex;flex-direction:row;margin-right:1em;cursor:pointer;padding:.8em .5em .5em 0}.capibara .header-top .legends-container .legend:not(.active){opacity:.5}.capibara .header-top .legends-container .legend:not(.active) .icon-legend{background:grey!important}.capibara .header-top .legends-container .legend .icon-legend{width:.825em;height:.825em;margin:2px .5em 2px 0;background:grey;box-shadow:0 1px 2px rgba(0,0,0,.4);display:inline-block;border-radius:1px;border:1px solid rgba(0,0,0,.4)}.capibara .header-top .legends-container .legend .icon-legend.circle{border-radius:50%}.capibara .header-top .legends-container .legend:hover span{text-decoration:underline}.capibara .header-top .legends-container.force-mobile-style{position:absolute;left:2em;top:2em;background:inherit;color:inherit;flex-direction:column;z-index:6;border:1px solid rgba(0,0,0,.4);border-radius:3px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.capibara .header-top .legends-container.force-mobile-style .legend{font-size:16px;padding:.5em}@media screen and (max-width:959px){.capibara .header-top .legends-container{position:absolute;left:2em;top:2em;background:inherit;color:inherit;flex-direction:column;z-index:6;border:1px solid rgba(0,0,0,.4);border-radius:3px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.capibara .header-top .legends-container .legend{font-size:16px;padding:.5em}}.capibara .header-top{background:#f1fffe}.capibara .header-top .tabs-container .tab{color:#313b50}.capibara .header-top .tabs-container .tab.disabled{color:rgba(49,59,80,.5)}.capibara.dark-theme .header-top{background:#313b50}.capibara.dark-theme .header-top .tabs-container .tab{color:hsla(0,0%,100%,.8)}.capibara.dark-theme .header-top .tabs-container .tab.disabled{color:hsla(0,0%,100%,.4)}.capibara .corner-footer{position:-webkit-sticky;position:sticky;left:0;bottom:0;z-index:3;width:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));height:var(--item-height);margin-bottom:calc(var(--item-height)*-1);box-sizing:border-box}.capibara .corner-footer .corner-title{line-height:30px;height:inherit;display:block;text-align:left;box-sizing:border-box;position:relative;font-weight:700;padding:4px 8px}.capibara .corner-footer{background:#78909c;color:#fff}.capibara.dark-theme .corner-footer{background:#313b50;color:#f0f0f0}.capibara nav.right{position:absolute;right:0;top:calc(var(--header-height) + var(--header-top-height));height:calc(100% - var(--header-height) - var(--header-top-height));overflow-y:scroll;overflow-x:hidden;z-index:5;display:none;border-left:1px solid red}.capibara nav.right,.capibara nav.right .child-nav-item,.capibara nav.right .nav-item{width:var(--nav-right-width)}.capibara nav.right .nav-input-container{text-align:center}.capibara nav.right .nav-input-container .button-section{padding-bottom:.75em;padding-top:.75em;position:-webkit-sticky;position:sticky;bottom:0}.capibara nav.left{min-height:calc(100% - var(--header-height));position:-webkit-sticky;position:sticky;left:0;width:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));height:auto;z-index:2;border-right:1px solid #b0bec5;overflow:visible;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.capibara nav.left .child-nav-item,.capibara nav.left .nav-item{width:var(--nav-width)}.capibara nav.left .detail-nav-item{min-width:250px;max-width:500px;width:-webkit-max-content;width:-moz-max-content;width:max-content;min-height:70px;position:absolute;left:3rem;top:0;border:1px solid grey;z-index:2;border-radius:5px;padding:16px;transition:all .3s ease;flex-flow:column nowrap;box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);transform:translateY(calc(.5rem + var(--item-height)))}.capibara nav.left .detail-nav-item.to-bottom{transform:translateY(calc(-100% - .5rem))}.capibara nav.left .detail-nav-item .header-detail .detail-title{font-size:1.125em;font-weight:700;margin-bottom:8px;max-width:100%;width:100%;padding-right:80px}.capibara nav.left .detail-nav-item .header-detail .detail-subtitle{font-size:.875;margin-bottom:8px}.capibara nav.left .detail-nav-item .header-detail .header-chip{position:absolute;right:16px;top:16px;padding:2px 8px;border:3px solid grey;border-radius:5px}.capibara nav.left .detail-nav-item .detail-container>div{margin:6px 0}.capibara nav.left .initial-nav-list{width:var(--initial-nav-width);position:absolute;left:var(--nav-width);top:0;overflow:hidden;display:block}.capibara nav.left .initial-nav-list .child-initial-nav-item,.capibara nav.left .initial-nav-list .initial-nav-item{border-bottom:1px solid #b0bec5;height:var(--item-height);box-sizing:border-box;display:flex;line-height:34px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-title,.capibara nav.left .initial-nav-list .initial-nav-item .item-title{flex:1 0 auto;padding:4px 8px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col,.capibara nav.left .initial-nav-list .initial-nav-item .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;padding:4px 8px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input{padding:0}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>.hour-input,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>.hour-input{font-size:.875em;width:calc(100% - 8px);border:1px solid grey;border-radius:3px;height:24px}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>input,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>input{text-align:center;font-size:.875em;width:calc(100% - 8px);display:block;border:1px solid grey;border-radius:3px;height:24px;margin:8px 4px 4px;background:hsla(0,0%,100%,.2)}.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>input:active,.capibara nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input>input:focus,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>input:active,.capibara nav.left .initial-nav-list .initial-nav-item .item-col.has-input>input:focus{background:hsla(0,0%,100%,.8)}.capibara nav.left .extend-nav-list{width:var(--ex-nav-width);position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width));top:0;overflow:hidden;display:block}.capibara nav.left .extend-nav-list .child-ex-nav-item,.capibara nav.left .extend-nav-list .ex-nav-item{border-bottom:1px solid #b0bec5;height:var(--item-height);box-sizing:border-box;display:flex;line-height:1.75rem}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-title,.capibara nav.left .extend-nav-list .ex-nav-item .item-title{flex:1 0 auto;padding:4px 8px}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col,.capibara nav.left .extend-nav-list .ex-nav-item .item-col{flex:0 0 var(--nav-item-col-width);text-align:center;padding:4px 8px}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input{padding:0}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input>input,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input>input{text-align:center;font-size:.875em;width:calc(100% - 8px);display:block;border:1px solid grey;border-radius:3px;height:24px;margin:8px 4px 4px;background:hsla(0,0%,100%,.2)}.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input>input:active,.capibara nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input>input:focus,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input>input:active,.capibara nav.left .extend-nav-list .ex-nav-item .item-col.has-input>input:focus{background:hsla(0,0%,100%,.8)}.capibara nav.left .cap-btn-nav-list{left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width));width:var(--btn-nav-width);position:absolute;top:0;overflow:hidden}.capibara nav.left .cap-btn-nav-list .cap-btn-child-nav-item .cap-btn-nav-item-content,.capibara nav.left .cap-btn-nav-list .cap-btn-nav-item .cap-btn-nav-item-content{height:var(--item-height);width:inherit;padding:4px 6px;border-bottom:1px solid #b0bec5;text-align:right}.capibara nav.left .nav-item-total-footer{padding-top:3px}.capibara nav .cap-btn-nav-item.parent,.capibara nav .ex-nav-item.parent,.capibara nav .initial-nav-item.parent,.capibara nav .nav-item-container.parent{background:rgba(25,118,210,.1)}.capibara nav .cap-btn-nav-item.parent>.item-title,.capibara nav .ex-nav-item.parent>.item-title,.capibara nav .initial-nav-item.parent>.item-title,.capibara nav .nav-item-container.parent>.item-title{max-width:calc(var(--nav-width) + var(--ex-nav-width) + var(--initial-nav-width) + var(--btn-nav-width) - 60px);width:auto}.capibara nav .nav-item-list .child-nav-item,.capibara nav .nav-item-list .nav-item{min-height:var(--item-height);box-sizing:border-box;position:relative}.capibara nav .nav-item-list .child-nav-item .nav-item-container,.capibara nav .nav-item-list .nav-item .nav-item-container{display:flex;border-bottom:1px solid #b0bec5;height:var(--item-height)}.capibara nav .nav-item-list .child-nav-item .nav-item-container .tree-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .tree-icon{transition:all .5s ease;background:transparent;border:none;width:34px;flex:0 0 34px;font-size:1.5em;text-align:center;cursor:pointer}.capibara nav .nav-item-list .child-nav-item .nav-item-container .tree-icon:focus,.capibara nav .nav-item-list .nav-item .nav-item-container .tree-icon:focus{box-shadow:0 0 0 3px rgba(0,0,0,.3)}.capibara nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .nav-item-icon{flex:0 0 34px;font-size:1.125em;vertical-align:middle;text-align:center;line-height:40px;margin-top:12px}.capibara nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon path,.capibara nav .nav-item-list .nav-item .nav-item-container .nav-item-icon path{width:20px;height:20px}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title{flex:1 1 auto;display:grid;font-size:1em;line-height:34px;padding:4px 8px}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.full-width,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.full-width{flex:1 0 auto;display:inline-block}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.clickeable,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.clickeable{cursor:pointer}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.clickeable:hover,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.clickeable:hover{background:hsla(0,0%,39.2%,.2)!important;text-decoration:underline}.capibara nav .nav-item-list .child-nav-item .nav-item-container .item-title.hoverable:hover,.capibara nav .nav-item-list .nav-item .nav-item-container .item-title.hoverable:hover{background:hsla(0,0%,39.2%,.2)!important}.capibara.extended-right nav.right{display:block}.capibara.header-extended nav.left{min-height:calc(100% - var(--header-height) + var(--ex-header-height))}.capibara.header-extended nav.right{top:calc(var(--header-height) + var(--header-top-height) + var(--ex-header-height));height:calc(100% - var(--header-height) - var(--header-top-height) - var(--ex-header-height))}.capibara nav.left,.capibara nav.right,.capibara nav.right .button-section{background:#fafafa}.capibara nav.left .detail-nav-item{border-color:rgba(0,0,0,.2);background:#fff}.capibara nav.left .detail-nav-item .header-chip.red-light{border-color:#f84747}.capibara nav.left .detail-nav-item .header-chip.yellow-light{border-color:#fdd835}.capibara nav.left .detail-nav-item .header-chip.green-light{border-color:#38993d}.capibara nav .nav-item-list .child-nav-item .nav-item-container .tree-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .tree-icon{color:#37474f}.capibara nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon,.capibara nav .nav-item-list .nav-item .nav-item-container .nav-item-icon{color:rgba(55,71,79,.2)}.capibara.dark-theme nav.right,.capibara.dark-theme nav.right .button-section{background:#222837}.capibara.dark-theme nav.left{background:#222837;border-color:rgba(64,78,105,.6)}.capibara.dark-theme nav.left .detail-nav-item{border-color:#404e69;background:#222837}.capibara.dark-theme nav.left .detail-nav-item .header-chip{color:#f0f0f0}.capibara.dark-theme nav.left .detail-nav-item .header-chip.red-light{border-color:#aa1a1a}.capibara.dark-theme nav.left .detail-nav-item .header-chip.yellow-light{border-color:#fbcd00}.capibara.dark-theme nav.left .detail-nav-item .header-chip.green-light{border-color:#388e3c}.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item{border-color:rgba(64,78,105,.6)}.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input input,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input .hour-input,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input input{background:#404e69;color:#f0f0f0}.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .child-ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .child-initial-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .extend-nav-list .initial-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .child-ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .child-initial-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .ex-nav-item .item-col.has-input input:focus,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input .hour-input:active,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input .hour-input:focus,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input input:active,.capibara.dark-theme nav.left .initial-nav-list .initial-nav-item .item-col.has-input input:focus{background:hsla(0,0%,100%,.2)}.capibara.dark-theme nav.left .cap-btn-nav-list .cap-btn-child-nav-item .cap-btn-nav-item-content,.capibara.dark-theme nav.left .cap-btn-nav-list .cap-btn-nav-item .cap-btn-nav-item-content,.capibara.dark-theme nav .nav-item-list .child-nav-item .nav-item-container,.capibara.dark-theme nav .nav-item-list .nav-item .nav-item-container{border-color:rgba(64,78,105,.6)}.capibara.dark-theme nav .nav-item-list .child-nav-item .nav-item-container .tree-icon,.capibara.dark-theme nav .nav-item-list .nav-item .nav-item-container .tree-icon{color:#f0f0f0}.capibara.dark-theme nav .nav-item-list .child-nav-item .nav-item-container .nav-item-icon,.capibara.dark-theme nav .nav-item-list .nav-item .nav-item-container .nav-item-icon{color:hsla(0,0%,94.1%,.2)}.capibara .container-tl header{height:var(--header-height);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;top:0;min-width:100%;position:-webkit-sticky;position:sticky;z-index:3;border-bottom:2px solid grey;box-sizing:border-box;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.capibara .container-tl header .header-container-extended{height:auto;position:relative;padding-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));width:100%;box-sizing:border-box;display:flex;flex-direction:column}.capibara .container-tl header .header-container-extended .input-list{padding:1px 0;flex:0 0 auto;display:flex;flex-direction:row}.capibara .container-tl header .header-container-extended .input-list:not(.persistent){display:none}.capibara .container-tl header .header-container-extended .input-list>div{width:var(--day-width)}.capibara .container-tl header .header-container-extended .input-list>div>span{display:block;width:inherit;line-height:var(--header-input-height);height:var(--header-input-height);text-align:center;font-size:.875em}.capibara .container-tl header .header-container-extended .input-list .dia-input input{width:inherit;height:var(--header-input-height);border:1px solid grey;border-left-width:0;border-radius:0;background:hsla(0,0%,100%,.5);text-align:center;font-size:.875em}.capibara .container-tl header .header-container-extended .input-list .dia-input input:active,.capibara .container-tl header .header-container-extended .input-list .dia-input input:focus{background:hsla(0,0%,100%,.8)}.capibara .container-tl header .header-container{position:relative;padding-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));width:100%;display:flex;height:var(--header-labels-height)}.capibara .container-tl header .header-container .header-item{padding:6px 8px;min-width:var(--item-min-width);height:var(--header-height);text-align:center;box-sizing:border-box;position:relative;border-left:1px solid rgba(0,0,0,.1)}.capibara .container-tl header .header-container .header-item span.bottom-text{position:absolute;left:0;bottom:8px;width:100%}.capibara .container-tl header .agno-calendario{display:inline-block;width:-webkit-max-content;width:-moz-max-content;width:max-content}.capibara .container-tl header .agno-calendario .agno{position:-webkit-sticky;position:sticky;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));display:inline-block;padding-left:8px;padding-right:32px;font-size:.75em;margin-top:4px}.capibara .container-tl header .agno-calendario .meses{display:block;display:flex}.capibara .container-tl header .agno-calendario .mes-calendario{display:inline-block;min-width:var(--day-width)}.capibara .container-tl header .agno-calendario .mes-calendario .mes{display:inline-block;position:-webkit-sticky;position:sticky;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--btn-nav-width));padding-left:.5em;padding-right:2em;font-size:.875em;margin-top:6px}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced{width:var(--day-width);max-width:var(--day-width);overflow:hidden}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced.mes-reduced-2{width:calc(var(--day-width)*2);max-width:calc(var(--day-width)*2)}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced.mes-reduced-3{width:calc(var(--day-width)*3);max-width:calc(var(--day-width)*3)}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced.mes-reduced-4{width:calc(var(--day-width)*4);max-width:calc(var(--day-width)*4)}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced .mes-label{width:-webkit-max-content;width:-moz-max-content;width:max-content}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced:after{content:\\\"\\\";background:linear-gradient(90deg,transparent,red);position:absolute;right:0;top:0;height:100%;width:calc(var(--day-width)/2)}.capibara .container-tl header .agno-calendario .mes-calendario .dias{display:flex;margin-top:5px}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario{width:var(--day-width);height:var(--header-day-height);vertical-align:bottom;font-size:.875em;border-right:1px solid rgba(0,0,0,.1);box-sizing:border-box;padding:4px 6px;text-align:center}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable{cursor:pointer}.capibara.header-extended .container-tl header{height:calc(var(--header-height) + var(--ex-header-height))}.capibara.header-extended .container-tl header .header-container-extended .input-list:not(.persistent){display:flex}.capibara .container-tl header{background:#f1fffe;color:#37474f}.capibara .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#f1fffe)}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.weekend{background:rgba(0,0,0,.1);color:#263238}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.today{background:rgba(229,57,53,.9);color:#fff}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.active{background:green;color:#fff}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:hover{background:hsla(0,0%,39.2%,.4)}.capibara .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:active{background:hsla(0,0%,39.2%,.6)}.capibara .container-tl header .header-container-extended .input-list .dia-input input,.capibara .container-tl header .header-container-extended .input-list div>span{color:#313b50}.capibara.dark-theme .container-tl header{background:#313b50;color:#f0f0f0;border-color:rgba(64,78,105,.6)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .mes.mes-reduced:after{background:linear-gradient(90deg,transparent,#313b50)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario{border-color:rgba(64,78,105,.6)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.weekend{background:#222837;color:#f0f0f0}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.today{background:rgba(183,28,28,.6);color:#f0f0f0}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.active{background:rgba(56,142,60,.6);color:#f0f0f0}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:hover{background:hsla(0,0%,39.2%,.4)}.capibara.dark-theme .container-tl header .agno-calendario .mes-calendario .dias .dia-calendario.is-clickeable:active{background:hsla(0,0%,39.2%,.6)}.capibara.dark-theme .container-tl header .header-container-extended .input-list div>span{color:hsla(0,0%,100%,.8)!important}.capibara.dark-theme .container-tl header .header-container-extended .input-list .dia-input input{background:rgba(64,78,105,.6);color:hsla(0,0%,100%,.8)!important;border-color:#313b50}.capibara.dark-theme .container-tl header .header-container-extended .input-list .dia-input input:active,.capibara.dark-theme .container-tl header .header-container-extended .input-list .dia-input input:focus{background:hsla(0,0%,100%,.2)}.capibara .container-tl .plot-vertical-container{height:0;width:0;position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width))}.capibara .container-tl .plot-vertical-container .plot-vertical{background:rgba(0,0,0,.3);width:var(--day-width);height:calc(100vh - var(--header-height) - var(--header-top-height));position:absolute;top:0;left:0}.capibara .container-tl .plot-vertical-container .plot-vertical.rain{background:repeating-linear-gradient(53deg,rgba(3,155,229,.2),rgba(3,155,229,.2) 5px,transparent 0,transparent 12px)}.capibara .container-tl .plot-horizontal-container{height:0;width:0;position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width))}.capibara .container-tl .plot-horizontal-container .plot-horizontal{background:rgba(0,0,0,.3);width:100vw;height:var(--item-height);position:absolute;top:0;left:0}.capibara .container-tl .plot-horizontal-container .plot-horizontal.plot-parent{background:rgba(25,118,210,.1)}.capibara .container-tl.extended-right .container-tl .plot-container .plot-vertical{height:calc(100vh - var(--header-height) + var(--ex-header-height) + var(--header-top-height))}.capibara .container-tl footer{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;bottom:0;min-width:100%;height:var(--item-height);position:-webkit-sticky;position:sticky;z-index:2;box-sizing:border-box}.capibara .container-tl footer .footer-container{position:relative;padding-left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));box-sizing:border-box;min-width:100%;display:flex}.capibara .container-tl footer .footer-container .footer-item{padding:10px 2px;width:var(--day-width);cursor:default;border-left:1px solid rgba(0,0,0,.1);box-sizing:border-box;height:var(--item-height);text-align:center}.capibara .container-tl footer{background:#78909c;color:#fff}.capibara .container-tl.dark-theme footer{background:#313b50;color:#f0f0f0}.capibara .container-tl .table{position:absolute;left:calc(var(--nav-width) + var(--initial-nav-width) + var(--ex-nav-width) + var(--btn-nav-width));top:var(--header-height);width:calc(100% - var(--nav-width) - var(--initial-nav-width) - var(--ex-nav-width) - var(--btn-nav-width));max-height:calc(100% - var(--header-height));height:calc(100% - var(--header-height));margin-top:-1px}.capibara .container-tl .table .day-mouse-over{position:absolute;left:0;top:0;width:var(--day-width);height:var(--item-height);border:3px solid rgba(245,124,0,.5);box-shadow:0 0 2px #f57c00,inset 0 0 3px #f57c00;transition:transform .1s ease;overflow:visible;will-change:transform}.capibara .container-tl .table .day-mouse-over:after,.capibara .container-tl .table .day-mouse-over:before{position:absolute;background:rgba(245,124,0,.1);content:\\\"\\\";display:block}.capibara .container-tl .table .day-mouse-over:after{width:var(--day-width);height:100vh;right:-4px;bottom:calc(var(--item-height) - 2px)}.capibara .container-tl .table .day-mouse-over:before{height:var(--item-height);width:100vw;right:calc(var(--day-width) - 2px);bottom:-4px}.capibara .container-tl .table .background-grid{width:calc(var(--day-width)*20);height:calc(var(--item-height)*20);position:absolute;left:0;top:1px;background-repeat:repeat;background-size:var(--day-width) var(--item-height),calc(var(--day-width)*7) var(--item-height),calc(var(--day-width)*7) var(--item-height);background-image:linear-gradient(90deg,rgba(80,80,80,.3) 1px,transparent 0),linear-gradient(0deg,rgba(80,80,80,.3) 1px,transparent 0),linear-gradient(90deg,transparent calc(var(--day-width)*5),rgba(80,80,80,.1) 0);background-position:0 0,0 0,0 0}.capibara .container-tl .table .draw-box{position:relative}.capibara .container-tl .table .draw-box canvas{position:absolute;left:0;top:0}.capibara.header-extended .container-tl .table{top:calc(var(--header-height) + var(--ex-header-height))}.capibara .select-container{overflow:visible;position:absolute;left:0;top:0;width:0;height:0}.capibara .select-container .selected-day{width:var(--day-width);height:var(--item-height);position:absolute;background:hsla(0,0%,74.1%,.4);box-shadow:inset 0 0 5px hsla(0,0%,74.1%,.8)}.capibara .select-container .selected-day[cap-badge]:after{content:attr(cap-badge);display:block;position:absolute;right:-3px;top:-3px;background:#1565c0;font-size:.75em;color:#fff;width:1.5em;height:1.5em;border-radius:50%;z-index:2;text-align:center;font-weight:700;padding:2px;box-shadow:0 1px 3px rgba(0,0,0,.3)}.capibara .detail-day{min-height:50px;min-width:250px;max-width:400px;border:1px solid grey;padding:.75em;display:flex;flex-flow:column nowrap;margin:0 0 0 1em;box-sizing:border-box;box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);position:absolute;border-radius:5px;transition:all .3s ease;will-change:transform,left,top;transform:translateY(calc(var(--item-height)/2*-1));z-index:4;opacity:1}.capibara .detail-day:after{content:\\\"\\\";background:inherit;width:20px;height:20px;display:block;position:absolute;left:-11px;top:calc(var(--item-height)/2 + 7px);transform:rotate(45deg);border-color:grey;border-style:solid;border-width:0 0 1px 1px}.capibara .detail-day.dd-hide{display:none}.capibara .detail-day.has-right-arrow{margin:0 16px 0 0;transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(calc(var(--item-height)/2*-1))}.capibara .detail-day.has-right-arrow:after{border-width:1px 1px 0 0;left:unset;right:-11px}.capibara .detail-day.has-ceil-arrow{transform:translateY(-7px)}.capibara .detail-day.has-ceil-arrow:after{top:6px}.capibara .detail-day.has-ceil-arrow.has-right-arrow{transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(-7px)}.capibara .detail-day.has-ceil-arrow.has-right-arrow:after{left:unset;right:-11px}.capibara .detail-day.has-middle-arrow{transform:translateY(calc(-50% + var(--item-height)/2))}.capibara .detail-day.has-middle-arrow:after{top:calc(50% - 10px)}.capibara .detail-day.has-middle-arrow.has-right-arrow{transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(calc(-50% + var(--item-height)/2))}.capibara .detail-day.has-middle-arrow.has-right-arrow:after{left:unset;right:-11px}.capibara .detail-day.has-bottom-arrow{transform:translateY(calc(-100% + var(--item-height)))}.capibara .detail-day.has-bottom-arrow:after{top:unset;bottom:4px}.capibara .detail-day.has-bottom-arrow.has-right-arrow{transform:translateX(calc(-100% - 20px - var(--day-width))) translateY(calc(-100% + var(--item-height)))}.capibara .detail-day.has-bottom-arrow.has-right-arrow:after{left:unset;right:-11px}.capibara .detail-day .header-detail .title{font-size:1.25em;font-weight:700;margin-bottom:.25em;min-width:10em;max-width:20em;line-height:unset}.capibara .detail-day .header-detail .subtitle{font-size:.875em;margin-bottom:8px;min-width:10em}.capibara .detail-day .list-detail{margin:0;flex:0 0 auto}.capibara .detail-day .list-detail.list .item-detail{margin:0;font-size:.875em;position:relative;padding:.5em .5em .5em 1em;border-radius:0;box-sizing:border-box;overflow:hidden;background:transparent;border:unset;border-top:1px solid rgba(0,0,0,.1);display:flex;flex-direction:row}.capibara .detail-day .list-detail.list .item-detail .left-icon{width:8px;height:8px;min-height:unset!important;left:1px;top:10px;border-radius:50%}.capibara .detail-day .list-detail.list .item-detail .left-icon.diamond{border-radius:0;transform:rotate(45deg) skew(10deg,10deg)}.capibara .detail-day .list-detail.list .item-detail .left-icon.outlined{background:transparent}.capibara .detail-day .list-detail.list .item-detail .left-icon.triangle{border-radius:0;transform:rotate(45deg) skew(10deg,10deg) translate(3px,3px);width:0;height:0;border-width:5px;border-style:solid;background-color:transparent}.capibara .detail-day .list-detail.list .item-detail .name{flex:0 1 40%;font-weight:700;margin-bottom:0;padding-right:1em}.capibara .detail-day .list-detail.list .item-detail .item-description{flex:1 1 auto;display:flex;flex-direction:column;align-items:start}.capibara .detail-day .list-detail.list .item-detail .item-description .desc{display:flex;margin-bottom:3px;align-items:baseline}.capibara .detail-day .list-detail.list .item-detail .item-description .desc.desc-column{flex-direction:column;align-items:start;width:100%;border-bottom-width:1px;border-bottom-style:solid;margin-bottom:0;padding-bottom:0}.capibara .detail-day .list-detail.list .item-detail .item-description .desc.desc-column:last-child{border-color:transparent}.capibara .detail-day .list-detail.list .item-detail .item-description .desc.desc-column .label{margin-right:0}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .label{display:inline-block;flex:1 1 65%;font-weight:700;margin-right:.5em}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .val{display:flex;align-items:baseline;margin-left:1em}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .prefix,.capibara .detail-day .list-detail.list .item-detail .item-description .desc .suffix{font-size:.85em;flex:0 0 auto}.capibara .detail-day .list-detail.list .item-detail .item-description .desc .value:not(empty){margin-right:.2em}.capibara .detail-day .list-detail.list .item-detail .item-description .desc sup{top:-1em!important}.capibara .detail-day .list-detail.flex{display:flex;flex-flow:row wrap;align-content:flex-start;display:inline-flex;flex-flow:wrap;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;max-height:25%}.capibara .detail-day .list-detail.flex .item-detail{flex:0 0 auto;min-width:8em;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb}.capibara .detail-day .list-detail.column{-moz-columns:7em 3;columns:7em 3;min-width:30em}.capibara .detail-day .list-detail.column .item-detail{display:inline-block;width:100%}.capibara .detail-day .list-detail .item-detail{margin:4px;position:relative;padding:.5em 1em;border-radius:6px;box-sizing:border-box;overflow:hidden}.capibara .detail-day .list-detail .item-detail .name{font-weight:700;margin-bottom:.5em;color:var(--local-color-font,inherit)}.capibara .detail-day .list-detail .item-detail .item-description .desc .label{display:inline-block;font-weight:700}.capibara .detail-day .list-detail .item-detail .left-icon{width:6px;min-height:10px;height:100%;position:absolute;left:0;top:0;background:var(--local-color,inherit)}.capibara .detail-day .list-detail .item-detail .left-icon.outlined{border:1px solid var(--local-color,inherit);box-shadow:inset 0 0 0 1px var(--local-color,inherit)}.capibara .detail-day .list-detail .item-detail .left-icon.triangle{background:transparent;border-color:var(--local-color,inherit) transparent transparent var(--local-color,inherit)}.capibara .detail-day .elements-detail{padding:.5em 0 .25em;display:flex;flex-wrap:wrap}.capibara .detail-day .elements-detail .name{flex:1 0 100%;font-weight:700}.capibara .detail-day .elements-detail .elements-list{margin:4px -4px}.capibara .detail-day .elements-detail .elements-list .element-detail{display:inline-block;padding:.25em .875em;border-radius:3px;color:#fff;margin:.25em}.capibara .detail-day .alert{padding:.5em 0 .25em 2em;position:relative;min-width:15em;min-width:10em;max-width:30em}.capibara .detail-day .alert .alert-icon{max-width:2em;font-size:1.75em;position:absolute;left:0;top:.5em;color:grey}.capibara .detail-day .alert .red{color:#f44336}.capibara .detail-day .msj-container{margin:0 -.78em -.75em;border:1px solid grey;z-index:2}.capibara .detail-day .msj-container pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.capibara .detail-day .msj-container .msj{min-width:10em;max-width:30em;margin:0 0 .5em;padding:.75em;font-size:.875em}.capibara .detail-day .msj-container .msj-detail{display:flex;flex-direction:column;padding:.25em .5em}.capibara .detail-day .msj-container .msj-detail .email{font-size:.875em;font-style:italic;opacity:.5}.capibara .detail-day .msj-container .msj-detail .date{font-size:.725em}.capibara .detail-day{color:#37474f;background:#fff}.capibara .detail-day,.capibara .detail-day .list-detail.list .item-detail,.capibara .detail-day .list-detail.list .item-detail .desc-column,.capibara .detail-day:after{border-color:rgba(0,0,0,.2)}.capibara .detail-day .elements-detail .elements-list .element-detail{background:rgba(55,71,79,.8)}.capibara .detail-day .msj-container{background:#ffecb3;border-color:#ffca28}.capibara .detail-day .msj-container .msj-detail{background:#ffe082;border-color:#ffca28}.capibara.dark-theme .detail-day{color:#f0f0f0;border-color:#404e69;background:#222837}.capibara.dark-theme .detail-day:after{border-color:#404e69}.capibara.dark-theme .detail-day .list-detail .item-detail{background:transparent!important}.capibara.dark-theme .detail-day .list-detail.list .item-detail,.capibara.dark-theme .detail-day .list-detail.list .item-detail .desc-column{border-color:#404e69}.capibara.dark-theme .detail-day .elements-detail .elements-list .element-detail{background:#293243}.capibara.dark-theme .detail-day .msj-container{background:#293243;border-color:rgba(251,192,45,.4)}.capibara.dark-theme .detail-day .msj-container .msj-detail{background:rgba(251,192,45,.1)}.capibara .cap-context-menu-container{position:absolute;left:0;top:0;z-index:10;will-change:transform,left,top}.capibara .cap-context-menu-container.cm-hide .cap-context-menu{visibility:hidden;opacity:0}.capibara .cap-context-menu-container .cap-context-menu{position:absolute;min-width:250px;z-index:2;border-radius:5px;border:1px solid grey;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);font-size:.75em;transition:all .1s linear;visibility:visible;opacity:1;padding:.4em 0;vertical-align:middle}.capibara .cap-context-menu-container .cap-context-menu_item{padding:.5em 1em;flex:0 0 auto;display:flex;flex-direction:row;align-items:center;cursor:pointer}.capibara .cap-context-menu-container .cap-context-menu_item:hover{background:rgba(20,20,20,.2)}.capibara .cap-context-menu-container .cap-context-menu_item.is-disabled{opacity:.5;cursor:unset}.capibara .cap-context-menu-container .cap-context-menu_item.is-disabled:hover{background:none}.capibara .cap-context-menu-container .cap-context-menu_item.is-divider{cursor:unset;height:0;border-bottom:1px solid rgba(20,20,20,.2);padding:0;margin:.3em 1em}.capibara .cap-context-menu-container .cap-context-menu_item_icon{display:inline-block;flex:0 0 auto;padding-right:.5em}.capibara .cap-context-menu-container .cap-context-menu_item_icon svg{width:16px;height:16px}.capibara .cap-context-menu-container .cap-context-menu{color:#37474f;border-color:rgba(0,0,0,.2);background:#fff}.capibara .cap-context-menu-container .cap-context-menu svg path{fill:#37474f}.capibara.dark-theme .cap-context-menu-container .cap-context-menu{color:#f0f0f0;border-color:#404e69;background:#222837}.capibara.dark-theme .cap-context-menu-container .cap-context-menu svg path{fill:#f0f0f0}.capibara .hour-input{border:1px solid grey;border-radius:3px;display:flex;justify-content:center;align-items:center;height:24px;margin:8px 4px;overflow:hidden}.capibara .hour-input input{width:50%;height:inherit;border:1px solid transparent;background:transparent;font-size:.875em}.capibara .hour-input input:active,.capibara .hour-input input:focus{border:1px solid rgba(0,0,0,.1)}.capibara .hour-input span{width:8px;text-align:center}.capibara .hour-input .hh{text-align:right}.capibara .time{border-radius:6px;display:inline-block;font-size:0}.capibara .time .symbol{display:inline-block;height:auto;width:20px;font-size:2rem;text-align:center;vertical-align:center}.capibara .time input{border-radius:6px;border:2px solid transparent;width:52px;text-align:center;font-size:2rem;position:relative;transition:all .1s ease;outline:none;background:transparent;padding:6px}.capibara .time input:active,.capibara .time input:focus{transform:scale(1.03)}.capibara .buttons-group{display:flex;flex-direction:row}.capibara .buttons-group button.cap-btn-outline{border-radius:0;margin:0 -2px 0 0}.capibara .buttons-group button.cap-btn-outline:first-of-type{border-radius:6px 0 0 6px;margin-left:4px}.capibara .buttons-group button.cap-btn-outline:last-of-type{border-radius:0 6px 6px 0;margin-right:4px}.capibara .input-box-tab-container{display:flex;width:100%;flex-wrap:nowrap;border-radius:6px 6px 0 0;border:solid grey;border-width:2px 2px 0}.capibara .input-box-tab-container .input-box-tab{flex:1 1 auto;padding:.3em 1em;font-size:.9em;border-right:1px solid grey;cursor:pointer}.capibara .input-box-tab-container .input-box-tab.active{background:hsla(0,0%,58.8%,.3)}.capibara .input-box-tab-container .input-box-tab:last-child{border-right:none}.capibara .input-box-tab-container+.input-box{border-radius:0 0 6px 6px}.capibara .input-box{margin:0 16px;min-height:180px;border:2px solid grey;border-radius:6px;overflow-y:scroll;padding-bottom:60px;width:100%;max-height:300px}.capibara .input-box .search-input-container{padding:.3em;max-width:100%;text-align:center;border-bottom:1px solid hsla(0,0%,39.2%,.3);position:relative}.capibara .input-box .search-input-container .search-input{border:1px solid #646464;border-radius:13px;height:26px;padding:.5em 1em;max-width:100%;width:100%;font-size:.8em;color:inherit}.capibara .input-box .search-input-container .search-input:-moz-placeholder-shown+.search-input-clear{display:none}.capibara .input-box .search-input-container .search-input:-ms-input-placeholder+.search-input-clear{display:none}.capibara .input-box .search-input-container .search-input:placeholder-shown+.search-input-clear{display:none}.capibara .input-box .search-input-container .search-input-clear{position:absolute;right:1em;top:.4em;color:hsla(0,0%,39.2%,.6);background-color:transparent;border-style:none}.capibara .input-box .mini-input-section{padding:.5em 2em .5em .5em;text-align:left;width:100%;position:relative;border-bottom:1px solid hsla(0,0%,39.2%,.3)}.capibara .input-box .mini-input-section.has-icon{padding:.5em 2em .5em 1.5em}.capibara .input-box .mini-input-section.clickeable{cursor:pointer}.capibara .input-box .mini-input-section.clickeable:hover label{cursor:pointer;text-decoration:underline}.capibara .input-box .mini-input-section.is-title{background:hsla(0,0%,39.2%,.1)}.capibara .input-box .mini-input-section.is-title .mini-input-section--title{opacity:.6}.capibara .input-box .mini-input-section--tooltip{position:absolute;right:0;top:1.5em;display:none;padding:.5em;margin:1em;color:#000;border-radius:3px;z-index:2;box-shadow:0 2px 5px rgba(0,0,0,.3)}.capibara .input-box .mini-input-section label{display:flex;flex-direction:row;flex-wrap:nowrap;font-size:.875em;align-items:baseline}.capibara .input-box .mini-input-section--titles{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:start;max-width:100%;flex:0 1 auto}.capibara .input-box .mini-input-section--content{display:flex;flex-direction:row;justify-content:end;flex:1 0 auto;font-size:1em;padding:0 .5em}.capibara .input-box .mini-input-section--subtitle,.capibara .input-box .mini-input-section--title{position:relative;width:unset;max-width:100%;flex-grow:1}.capibara .input-box .mini-input-section--subtitle{font-size:.875em}.capibara .input-box .mini-input-section--suffix{flex:0 0 auto;font-size:.875em;display:flex;flex-direction:column}.capibara .input-box .mini-input-section--icon{display:inline-block;position:absolute;left:.5em;top:.75em;width:.75em;height:.75em;border-radius:50%;background:var(--local-color,grey);box-shadow:0 1px 3px rgba(0,0,0,.3)}.capibara .input-box .mini-input-section--link{opacity:.6;color:#2196f3;display:inline-block;position:absolute;right:.5em;top:.75em}.capibara .input-box .mini-input-section--link svg{width:18px!important;height:18px!important}.capibara .input-box .mini-input-section:hover .mini-input-section--tooltip{display:block}.capibara .input-box .mini-input-section input{text-align:center;width:4em;margin-right:.5em;border:1px solid grey;border-radius:3px;background:hsla(0,0%,100%,.2);font-size:1em;flex:0 0 4em}.capibara .input-box .mini-input-section input:active,.capibara .input-box .mini-input-section input:focus{background:hsla(0,0%,100%,.8)}.capibara .input-box .mini-input-section--footer{margin-top:.25em;display:flex;justify-content:space-between}.capibara select.input-select{padding:.3em 1em;width:100%;flex:1 0 100%;border:1px solid grey;border-radius:6px;background:inherit;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.capibara select.input-select option{padding:.3em;color:inherit;background:inherit}.capibara .input-section-list{margin:16px 0}.capibara .input-section-list .input-section-title{margin-bottom:8px}.capibara .input-section-list .input-section{margin:0 16px 8px}.capibara .input-section{margin:16px;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;position:relative}.capibara .input-section.to-right{align-items:end}.capibara .input-section .small-close{position:absolute;right:-10px;top:-10px;width:1.2em;height:1.2em;font-size:.9em;border:1px solid #fff;box-shadow:1px 1px 2px rgba(0,0,0,.4);text-align:center;color:#fff;background:red;border-radius:50%;vertical-align:middle}.capibara .input-section .text-subtitle{text-align:center;align-self:center}.capibara .input-section .input-section-title{flex:1 1 100%;width:100%;margin:0 auto;display:flex;flex-direction:row;justify-content:center;align-items:center}.capibara .input-section .input-section-title button{margin-left:auto;flex:0 0 auto;display:flex;flex-wrap:nowrap}.capibara .input-section .input-section-link{flex:1 1 100%;display:flex;flex-direction:row;justify-content:center;align-items:baseline;padding-top:.25em}.capibara .input-section .input-section-link a{color:#2196f3;margin-top:.75rem}.capibara .input-section.is-invalid .input-box,.capibara .input-section.is-invalid input.nav-input{border:2px solid red!important;box-shadow:0 0 3px red!important}.capibara .input-section.dense input.nav-input{width:50%;font-size:1em;padding:3px 6px}.capibara .input-section input.nav-input{border:2px solid hsla(0,0%,50.2%,.7);border-radius:6px;width:100%;min-width:130px;max-width:170px;font-size:2em;text-align:center;padding:3px 6px;background:transparent;outline:none;transition:all .1s ease;margin-bottom:8px}.capibara .input-section input.nav-input:active,.capibara .input-section input.nav-input:focus{border:2px solid grey;box-shadow:0 4px 6px hsla(0,0%,50.2%,.2)}.capibara .input-section input.nav-input.small{font-size:1.3em}.capibara .input-section .nav-input-file{border:2px solid hsla(0,0%,50.2%,.7);border-radius:6px;width:70%;min-width:130px;padding:3px 6px;text-align:center;background:transparent;outline:none;transition:all .1s ease;position:relative}.capibara .input-section .nav-input-file:active,.capibara .input-section .nav-input-file:focus{border:2px solid grey;box-shadow:0 4px 6px hsla(0,0%,50.2%,.2)}.capibara .input-section .nav-input-file label{flex:1 1 auto}.capibara .input-section .nav-input-file input[type=file]{display:none}.capibara .input-section .input-section-col{width:auto;position:relative;flex:1 1 10%}.capibara .input-section .input-section-col input.nav-input{min-width:unset;width:calc(100% - 1rem);max-width:7rem}.capibara .input-section.msj-input-container textarea.msj{outline:none;border-radius:6px;border:2px solid grey;width:100%;min-width:100%;max-width:100%;min-height:100px;transition:all .1s ease;padding:8px;box-sizing:border-box}.capibara .input-section.msj-input-container textarea.msj:active,.capibara .input-section.msj-input-container textarea.msj:focus{box-shadow:0 4px 6px rgba(255,160,0,.2)}.capibara .input-section input[type=checkbox]{width:18px;height:18px;vertical-align:middle}.capibara .time{border:2px solid rgba(0,128,0,.7);color:green}.capibara .time .symbol,.capibara .time input{color:#37474f}.capibara .time input:active,.capibara .time input:focus{border-color:green;box-shadow:0 4px 6px rgba(0,128,0,.2)}.capibara .input-box-tab-container,.capibara .input-box-tab-container .input-box-tab{border-color:green}.capibara .input-box{color:#37474f;border:2px solid green}.capibara .input-box .mini-input-section input:active,.capibara .input-box .mini-input-section input:focus{background:#fafafa}.capibara .input-box .mini-input-section--tooltip{background:#fafafa;color:#37474f;border:1px solid #37474f}.capibara .input-section select.input-select{color:#37474f;border:2px solid rgba(0,128,0,.7)}.capibara .input-section select.input-select:active,.capibara .input-section select.input-select:focus{border:2px solid green;box-shadow:0 4px 6px rgba(0,128,0,.2)}.capibara .input-section select.input-select option{background:#fafafa;color:#37474f}.capibara .input-section .nav-input-file,.capibara .input-section input.nav-input{color:#37474f;border:2px solid rgba(0,128,0,.7)}.capibara .input-section .nav-input-file:active,.capibara .input-section .nav-input-file:focus,.capibara .input-section input.nav-input:active,.capibara .input-section input.nav-input:focus{border:2px solid green;box-shadow:0 4px 6px rgba(0,128,0,.2)}.capibara .input-section.msj-input-container textarea.msj{background:rgba(255,249,196,.6);border:2px solid rgba(0,0,0,.4)}.capibara .input-section.msj-input-container textarea.msj:active,.capibara .input-section.msj-input-container textarea.msj:focus{background:rgba(255,249,196,.8);box-shadow:0 4px 6px transparent}.capibara.dark-theme .time{border:2px solid rgba(64,78,105,.7);color:#404e69}.capibara.dark-theme .time .symbol,.capibara.dark-theme .time input{color:#f0f0f0}.capibara.dark-theme .time input:active,.capibara.dark-theme .time input:focus{border-color:#404e69;box-shadow:0 4px 6px rgba(64,78,105,.2)}.capibara.dark-theme .input-box-tab-container,.capibara.dark-theme .input-box-tab-container .input-box-tab{border-color:#404e69}.capibara.dark-theme .input-box{color:#f0f0f0;border:2px solid #404e69}.capibara.dark-theme .input-box .mini-input-section input{background:#404e69;color:#f0f0f0}.capibara.dark-theme .input-box .mini-input-section input:active,.capibara.dark-theme .input-box .mini-input-section input:focus{background:#222837}.capibara.dark-theme .input-box .mini-input-section--tooltip{background:#222837;color:#f0f0f0;border:1px solid #f0f0f0}.capibara.dark-theme .input-section select.input-select{color:#f0f0f0;border:2px solid rgba(64,78,105,.7)}.capibara.dark-theme .input-section select.input-select:active,.capibara.dark-theme .input-section select.input-select:focus{border:2px solid #404e69;box-shadow:0 4px 6px rgba(64,78,105,.2)}.capibara.dark-theme .input-section select.input-select option{background:#222837;color:#f0f0f0}.capibara.dark-theme .input-section .nav-input-file,.capibara.dark-theme .input-section input.nav-input{color:#f0f0f0;border:2px solid rgba(64,78,105,.7)}.capibara.dark-theme .input-section .nav-input-file:active,.capibara.dark-theme .input-section .nav-input-file:focus,.capibara.dark-theme .input-section input.nav-input:active,.capibara.dark-theme .input-section input.nav-input:focus{border:2px solid #404e69;box-shadow:0 4px 6px rgba(64,78,105,.2)}.capibara.dark-theme .input-section.msj-input-container textarea.msj{background:rgba(251,192,45,.1);border:2px solid #9e9e9e;color:#f0f0f0}.capibara.dark-theme .input-section.msj-input-container textarea.msj:active,.capibara.dark-theme .input-section.msj-input-container textarea.msj:focus{background:rgba(251,192,45,.3);box-shadow:0 4px 6px hsla(0,0%,62%,.2)}.capibara button{outline:none;cursor:pointer}.capibara button.cap-rotate .mdi:before,.capibara button.cap-rotate svg{transform:rotate(180deg)}.capibara .cap-btn-icon:focus,.capibara .cap-btn-outline:focus,.capibara .cap-btn-raised:focus,.capibara .cap-btn-shape:focus{box-shadow:0 0 0 3px rgba(0,0,0,.3)}.capibara .cap-btn-icon:disabled,.capibara .cap-btn-outline:disabled,.capibara .cap-btn-raised:disabled,.capibara .cap-btn-shape:disabled{opacity:.6}.capibara button.cap-btn-sm{font-size:.75em;margin:4px;padding:4px 8px}.capibara .cap-btn-outline{cursor:pointer;color:grey;border:2px solid grey;padding:8px 16px;margin:0 8px;border-radius:6px;font-weight:700}.capibara .cap-btn-outline.selected{background:grey}.capibara .cap-btn-raised{cursor:pointer;padding:8px 16px;margin:0 8px;border-radius:6px;background:grey;border:2px solid grey;font-weight:700}.capibara .cap-btn-icon{display:inline-block;height:32px;width:32px;outline:none;cursor:pointer;vertical-align:middle;margin-right:16px;margin-top:4px;background:transparent;border:none;padding:4px;font-size:18px;color:grey;border-radius:50%;position:relative}.capibara .cap-btn-icon svg{fill:grey}.capibara .cap-btn-icon.cap-btn-has-badge:after{content:\\\"\\\";display:block;position:absolute;right:-.2em;top:-.2em;width:.8em;height:.8em;background:grey;border-radius:50%}.capibara .cap-btn-icon.cap-btn-icon-raised{background:#fff;border:none}.capibara .cap-btn-icon.cap-btn-icon-outline{border:1px solid grey}.capibara .cap-btn-icon.cap-btn-toggle-sidebar{position:absolute;right:10px;top:10px;z-index:2;margin:0}.capibara .cap-btn-icon .mdi{font-size:24px}.capibara .cap-btn-icon .loading-icon{display:none;position:absolute;left:0;top:0}.capibara .cap-btn-icon.loading>:not(.loading-icon){display:none}.capibara .cap-btn-icon.loading .loading-icon{display:unset}.capibara .cap-btn-shape{display:inline-block;width:24px;height:24px;outline:none;cursor:pointer;vertical-align:middle;margin:4px;background:transparent;border:none;padding:0;font-size:14px}.capibara .cap-btn-shape .mdi{font-size:24px}.capibara .cap-btn-shape.cap-btn-circle{position:relative;border:none;padding:0}.capibara .cap-btn-shape.cap-btn-circle:before{content:\\\"\\\";display:block;position:absolute;left:2px;top:2px;border-radius:50%;background:grey;width:22px;height:22px}.capibara .cap-btn-shape.cap-btn-circle span{position:absolute;left:1px;top:6px;width:100%;display:inline-block;color:#fff;text-align:center}.capibara .cap-btn-shape.cap-btn-circle-outline{position:relative;border:none;padding:0}.capibara .cap-btn-shape.cap-btn-circle-outline:before{content:\\\"\\\";display:block;position:absolute;left:2px;top:3px;border-radius:50%;border:2px solid grey;width:22px;height:22px}.capibara .cap-btn-shape.cap-btn-circle-outline span{position:absolute;left:1px;top:6px;width:100%;display:inline-block;color:grey;text-align:center}.capibara .cap-btn-shape.cap-btn-drop{position:relative;border:none;padding:0}.capibara .cap-btn-shape.cap-btn-drop:before{content:\\\"\\\";display:block;position:absolute;left:4px;top:0;border-radius:0 50% 50% 50%;background:grey;width:20px;height:20px;transform:translate(-2px,4px) rotate(45deg)}.capibara .cap-btn-shape.cap-btn-drop span{position:absolute;left:0;top:6px;width:100%;display:inline-block;color:#fff;text-align:center}.capibara.extended-right [toggle-sidebar-right] svg,.capibara.header-extended [toggle-header] svg{transform:rotate(180deg)}.capibara .cap-btn-raised{background:#00f;border:2px solid #00f;color:#fff}.capibara .cap-btn-outline{background:transparent;border:2px solid #00f;color:#00f}.capibara .cap-btn-outline.selected{background:#00f;color:#fff}.capibara .cap-btn-shape{color:#37474f}.capibara .cap-btn-shape.cap-btn-circle,.capibara .cap-btn-shape.cap-btn-drop{color:#fff}.capibara .cap-btn-shape.cap-btn-circle:before,.capibara .cap-btn-shape.cap-btn-drop:before{background:#388e3c}.capibara .cap-btn-shape.cap-btn-circle.is-empty:before,.capibara .cap-btn-shape.cap-btn-drop.is-empty:before{background:#616161}.capibara .cap-btn-shape.cap-btn-circle-outline:before{border-color:#388e3c}.capibara .cap-btn-icon,.capibara .cap-btn-shape.cap-btn-circle-outline span{color:#37474f}.capibara .cap-btn-icon.cap-btn-has-badge:after{background:rgba(245,124,0,.8)}.capibara .cap-btn-icon.cap-btn-icon-raised{background:rgba(84,110,122,.1);border-color:#546e7a;color:#546e7a}.capibara .cap-btn-icon.cap-btn-icon-raised:active{background:#546e7a}.capibara .cap-btn-icon.cap-btn-icon-raised:focus,.capibara .cap-btn-icon.cap-btn-icon-raised:hover{background:rgba(84,110,122,.3)}.capibara .cap-btn-icon.cap-btn-icon-outline{background:transparent;border-color:#546e7a;color:#546e7a}.capibara .cap-btn-icon.cap-btn-icon-outline:active{background:rgba(84,110,122,.3)}.capibara .cap-btn-icon.cap-btn-icon-outline:focus,.capibara .cap-btn-icon.cap-btn-icon-outline:hover{background:rgba(84,110,122,.1)}.capibara.dark-theme .cap-btn-raised{background:#404e69;border:2px solid #f0f0f0;color:#f0f0f0}.capibara.dark-theme .cap-btn-outline{background:transparent;border:2px solid #f0f0f0;color:#f0f0f0}.capibara.dark-theme .cap-btn-outline.selected{background:#404e69;color:#f0f0f0}.capibara.dark-theme .cap-btn-shape,.capibara.dark-theme .cap-btn-shape.cap-btn-circle,.capibara.dark-theme .cap-btn-shape.cap-btn-drop{color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-shape.cap-btn-circle:before,.capibara.dark-theme .cap-btn-shape.cap-btn-drop:before{background:#2e7d32}.capibara.dark-theme .cap-btn-shape.cap-btn-circle.is-empty:before,.capibara.dark-theme .cap-btn-shape.cap-btn-drop.is-empty:before{background:#616161}.capibara.dark-theme .cap-btn-shape.cap-btn-circle-outline:before{border-color:#2e7d32}.capibara.dark-theme .cap-btn-icon,.capibara.dark-theme .cap-btn-shape.cap-btn-circle-outline span{color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-has-badge:after{background:rgba(56,142,60,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised{background:hsla(0,0%,94.1%,.1);border-color:hsla(0,0%,94.1%,.8);color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised:active{background:#f0f0f0}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised:focus,.capibara.dark-theme .cap-btn-icon.cap-btn-icon-raised:hover{background:hsla(0,0%,94.1%,.3)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline{background:transparent;border-color:hsla(0,0%,94.1%,.8);color:hsla(0,0%,94.1%,.8)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline:active{background:hsla(0,0%,94.1%,.1)}.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline:focus,.capibara.dark-theme .cap-btn-icon.cap-btn-icon-outline:hover{background:hsla(0,0%,94.1%,0)}.capibara [cap-tooltip]{position:relative;display:inline-block}.capibara [cap-tooltip]:hover:before{padding:8px;opacity:1;border-width:1px;height:auto}.capibara [cap-tooltip]:before{opacity:.3;height:0;padding:0 8px;text-align:left;overflow:hidden;font-size:14px;font-weight:400;position:absolute;top:calc(100% + 18px);left:50%;transform:translatex(-50%);background-color:rgba(0,0,0,.7);border:0 solid #000;border-radius:5px;color:#fff;content:attr(cap-tooltip);text-transform:none;min-width:100px;z-index:5}.capibara .float-box-container{overflow:visible;position:absolute;left:0;top:0;width:0;height:0}.capibara .float-box-container:hover .float-box-ext .long-bar-container .long-bar{opacity:.3}.capibara .float-box-container .float-box{width:var(--day-width);max-width:var(--day-width);min-width:var(--day-width);height:var(--item-height);max-height:var(--item-height);min-height:var(--item-height);position:absolute;overflow:hidden;cursor:default;transition:box-shadow .2s ease;display:flex;flex-direction:column;will-change:display}.capibara .float-box-container .float-box[data-is-visible=false]{display:none!important}.capibara .float-box-container .float-box:hover{z-index:2}.capibara .float-box-container .float-box:hover+.float-box-ext .long-bar{z-index:6;opacity:1}.capibara .float-box-container .float-box.has-message:after{content:\\\"\\\";display:block;position:absolute;width:0;height:0;right:0;top:0;border-color:red red transparent transparent;border-style:solid;border-width:6px;z-index:1}.capibara .float-box-container .float-box.has-errors:before{content:\\\"\\\";display:block;position:absolute;width:7px;height:7px;left:1px;top:1px;border-radius:50%;background:#d32f2f;z-index:1}.capibara .float-box-container .float-box .dot-container-bottom,.capibara .float-box-container .float-box .dot-container-middle,.capibara .float-box-container .float-box .dot-container-top{position:absolute;left:0;width:100%;overflow:visible;height:0;display:flex;justify-content:center}.capibara .float-box-container .float-box .dot-container-top{top:1px}.capibara .float-box-container .float-box .dot-container-top .dot{border-radius:0 0 50% 50%}.capibara .float-box-container .float-box .dot-container-middle{top:calc(50% - 4px)}.capibara .float-box-container .float-box .dot-container-bottom{bottom:5px}.capibara .float-box-container .float-box .dot-container-bottom .dot{border-radius:0 0 50% 50%}.capibara .float-box-container .float-box .dot{width:8px;min-width:8px;height:8px;border-radius:50%;margin:1px;vertical-align:middle;border:1px solid var(--local-color,hsla(0,0%,100%,.8));background:var(--local-color,hsla(0,0%,39.2%,.5))}.capibara .float-box-container .float-box .dot.diamond{border-radius:0;transform:rotate(45deg) skew(10deg,10deg)}.capibara .float-box-container .float-box .dot.outlined{background-color:transparent}.capibara .float-box-container .float-box .dot.triangle{width:0;height:0;transform:rotate(45deg) skew(10deg,10deg) translate(1px,1px);border-left:5px solid var(--local-color,hsla(0,0%,39.2%,.8));border-bottom:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--local-color,hsla(0,0%,39.2%,.8));border-radius:0;background-color:transparent}.capibara .float-box-container .float-box span.data{width:100%;display:block;position:relative;font-size:.875em;text-align:center;box-sizing:border-box;height:calc(var(--item-height)/2);line-height:calc(var(--item-height)/2);margin-bottom:2px;font-weight:700;box-shadow:inset 0 0 10px hsla(0,0%,100%,.2);border-radius:3px;color:var(--local-color-font,#fff);-webkit-backdrop-filter:opacity(20%);backdrop-filter:opacity(20%);background:var(--local-color,rgba(0,0,0,.4));border:2px solid var(--local-color,rgba(0,0,0,.2))}.capibara .float-box-container .float-box span.data.shape-outlined{background-color:transparent!important}.capibara .float-box-container .float-box span.data.shape-outlined:before{content:\\\"\\\";opacity:.3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:var(--local-color,inherit);position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block;z-index:-1}.capibara .float-box-container .float-box span.data.shape-bar{height:calc(var(--item-height)/4 - 1.5px);width:calc(var(--day-width) - 6px);line-height:0;color:transparent;border-radius:1px;margin:0 3px}.capibara .float-box-container .float-box span.data.shape-bar:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.data.shape-bar-outlined{height:calc(var(--item-height)/4 - 1.5px);width:calc(var(--day-width) - 6px);line-height:0;color:transparent;border-radius:1px;margin:0 3px;background-color:transparent!important}.capibara .float-box-container .float-box span.data.shape-bar-outlined:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.data.shape-bar-outlined:before{content:\\\"\\\";opacity:.3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:var(--local-color,inherit);position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block}.capibara .float-box-container .float-box span.data.shape-bar-dashed{height:calc(var(--item-height)/4 - 1.5px);width:calc(var(--day-width) - 6px);line-height:0;color:transparent;border-radius:1px;margin:0 3px;background-color:transparent!important}.capibara .float-box-container .float-box span.data.shape-bar-dashed:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.data.shape-bar-dashed:before{content:\\\"\\\";background:var(--local-color,inherit);position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block;background-color:transparent;background-size:10px 10px;background-image:repeating-linear-gradient(45deg,var(--local-color,inherit),var(--local-color,inherit) 3px,transparent 0,transparent 50%)}.capibara .float-box-container .float-box span.rowdot--row{display:flex;max-height:calc(var(--item-height)/4 - 1px);height:calc(var(--item-height)/4 - 1px);width:calc(var(--day-width) - 2px);line-height:0;color:transparent;margin:1px;border-color:var(--local-color,rgba(0,0,0,.2))}.capibara .float-box-container .float-box span.rowdot--row:first-of-type{margin-top:3px}.capibara .float-box-container .float-box span.rowdot--row:empty{display:none!important}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot{width:calc(var(--day-width)/4 - 2px);height:calc(var(--item-height)/4 - 2px);margin-right:1px;vertical-align:middle;border:3px solid var(--local-color,hsla(0,0%,100%,.8));background:var(--local-color,hsla(0,0%,39.2%,.8));box-shadow:0 0 1px 1px rgba(0,0,0,.2)}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot.shape-outlined{background-color:hsla(0,0%,39.2%,.2)}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot.shape-rounded{border-radius:50%;width:calc(var(--item-height)/4 - .5px)}.capibara .float-box-container .float-box span.rowdot--row .rowdot--dot.shape-outlined-rounded{border-radius:50%;background-color:transparent;width:calc(var(--item-height)/4 - .5px)}.capibara .float-box-container .float-box .plot-floatbox-container{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}.capibara .float-box-container .float-box .plot-floatbox-container .plot-floatbox{position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--local-color,rgba(0,0,0,.4));transition:opacity .2s ease}.capibara .float-box-container .float-box .plot-floatbox-container .plot-floatbox.stripe{background:repeating-linear-gradient(53deg,var(--local-color,rgba(0,0,0,.4)),var(--local-color,rgba(0,0,0,.4)) 5px,transparent 0,transparent 12px)}.capibara .float-box-container .float-box .plot-floatbox-container .plot-floatbox.stripe-inverse{background:repeating-linear-gradient(127deg,var(--local-color,rgba(0,0,0,.4)),var(--local-color,rgba(0,0,0,.4)) 5px,transparent 0,transparent 12px)}.capibara .float-box-container .float-box-ext{position:absolute;overflow:visible;cursor:default;transition:box-shadow .2s ease;will-change:display;pointer-events:none}.capibara .float-box-container .float-box-ext .long-bar-container{position:absolute;left:var(--day-width);top:0;display:flex;flex-direction:column;justify-content:start;align-items:start}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar{width:calc(var(--day-width, 0)*var(--long, 0) - var(--day-width, 0)*0.5);min-width:calc(var(--day-width, 0)*var(--long, 0) - var(--day-width, 0)*0.5);height:calc(var(--item-height)/4 - 3.5px);line-height:0;color:transparent;background:var(--local-color,rgba(0,0,0,.4));border-radius:0 3px 3px 0;margin-left:-3px;margin-top:1px;margin-bottom:1px;opacity:var(--local-opacity,1);border:2px solid rgba(0,0,0,.2);border-left-width:0;transition:opacity .2s ease}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar:hover{z-index:10}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar.solid{opacity:1}.capibara .float-box-container .float-box-ext .long-bar-container .long-bar:first-of-type{margin-top:4px}.capibara .float-box-container .float-box:hover{box-shadow:0 0 2px 7px rgba(113,189,255,.4)}.capibara .float-box-container .float-box:hover+.float-box-ext .long-bar{box-shadow:0 0 2px 4px rgba(113,189,255,.4)}.capibara .float-box-container .float-box+.float-box-ext .long-bar.red-light{background:#f84747}.capibara .float-box-container .float-box+.float-box-ext .long-bar.yellow-light{background:#fdd835}.capibara .float-box-container .float-box+.float-box-ext .long-bar.green-light{background:#38993d}.capibara .float-box-container .float-box span.data.shape-bar{border-color:rgba(0,0,0,.2)}.capibara.dark-theme .float-box-container .float-box:hover{box-shadow:0 0 2px 7px hsla(0,0%,47.8%,.6)}.capibara.dark-theme .float-box-container .float-box:hover+.float-box-ext .long-bar{box-shadow:0 0 2px 4px hsla(0,0%,47.8%,.6)}.capibara.dark-theme .float-box-container .float-box+.float-box-ext .long-bar.red-light{background:#aa1a1a}.capibara.dark-theme .float-box-container .float-box+.float-box-ext .long-bar.yellow-light{background:#fbcd00}.capibara.dark-theme .float-box-container .float-box+.float-box-ext .long-bar.green-light{background:#388e3c}.capibara.dark-theme .float-box-container .float-box span.data.shape-bar{border-color:rgba(0,0,0,.3)}.capibara .progress-bar{width:100%;height:4px;background-color:hsla(0,0%,86.7%,.2);overflow:hidden;position:absolute;left:0;bottom:0;transition:height 1s ease}.capibara .progress-bar.hide-progress{height:0}.capibara .progress-bar:before{-webkit-animation-name:loading-fast1;animation-name:loading-fast1;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.capibara .progress-bar:after,.capibara .progress-bar:before{content:\\\"\\\";position:absolute;transform:translateX(-100%);width:62.5%;height:100%;background-color:#292929;-webkit-animation-duration:2s;animation-duration:2s}.capibara .progress-bar:after{-webkit-animation-name:loading-fast2;animation-name:loading-fast2;-webkit-animation-delay:1.3s;animation-delay:1.3s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}span.mdi{min-width:14px;min-height:14px;display:inline-block}span.mdi.mdi-subdirectory-arrow-right{color:rgba(0,0,0,.2)}.capibara .light{display:block;width:18px;height:18px;flex:0 0 18px;border-radius:50%;margin:12px 8px;border:2px solid rgba(0,0,0,.3);background:var(--light-color,unset);border-color:hsla(0,0%,100%,.8)}.capibara .light.red-light{background:#f84747}.capibara .light.yellow-light{background:#fdd835}.capibara .light.green-light{background:#38993d}.capibara .light.disabled-light{background:#737373}.capibara .light.blue-light{background:#0277bd}.capibara.dark-theme .light{border-color:#404e69}.capibara.dark-theme .light.red-light{background:#aa1a1a}.capibara.dark-theme .light.yellow-light{background:#fbcd00}.capibara.dark-theme .light.green-light{background:#388e3c}.capibara select.tabs-select{background:grey;color:#fff;font-size:16px;outline:none;width:100px;padding:3px 18px;font-weight:700;border:1px solid transparent;margin:8px;border-radius:30px;transition:background .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.capibara select.tabs-select option{color:grey;background:#fff;padding:15px}.capibara select.tabs-select:after{content:\\\"\\\";display:block;position:absolute;right:10px;top:4px;border-width:4px;border-color:#fff;z-index:2}.capibara select.tabs-select.disabled{color:grey}.capibara select.tabs-select:hover{border-color:grey}\", \"\"]);\n// Exports\nmodule.exports = exports;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvc2Nzcy9zdHlsZS5zY3NzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2FwaWJhcmEvLi9zcmMvc2Nzcy9zdHlsZS5zY3NzPzQxM2YiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xudmFyIF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyA9IHJlcXVpcmUoXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpO1xuZXhwb3J0cyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhmYWxzZSk7XG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCJAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCwzMDA7MCw0MDA7MCw1MDA7MCw3MDA7MCw5MDA7MSwzMDA7MSw0MDA7MSw1MDA7MSw3MDA7MSw5MDAmZGlzcGxheT1zd2FwKTtcIl0pO1xuLy8gTW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCI6cm9vdHstLWhlYWRlci10b3AtaGVpZ2h0OjQwcHg7LS1oZWFkZXItaGVpZ2h0Ojk4cHg7LS1oZWFkZXItbGFiZWxzLWhlaWdodDo1MHB4Oy0taGVhZGVyLWRheS1oZWlnaHQ6MjRweDstLWV4LWhlYWRlci1oZWlnaHQ6MTEwcHg7LS1oZWFkZXItaW5wdXQtaGVpZ2h0OjIwcHg7LS1uYXYtd2lkdGg6MjAwcHg7LS1uYXYtaXRlbS1jb2wtd2lkdGg6NjBweDstLWluaXRpYWwtbmF2LXdpZHRoOjBweDstLWV4LW5hdi13aWR0aDowcHg7LS1idG4tbmF2LXdpZHRoOjExN3B4Oy0tbmF2LXJpZ2h0LXdpZHRoOjMwMHB4Oy0taXRlbS1taW4td2lkdGg6MTAwcHg7LS1pdGVtLWhlaWdodDo0NXB4Oy0tZGF5LXdpZHRoOjQ1cHg7LS1mb250LXNpemU6MTZweH1ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2VNZXNzYWdlezAle2JvcmRlci1jb2xvcjpyZ2JhKDIxMSw0Nyw0NywuMykgcmdiYSgyMTEsNDcsNDcsLjMpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fXRve2JvcmRlci1jb2xvcjojZDMyZjJmICNkMzJmMmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9fUBrZXlmcmFtZXMgcHVsc2VNZXNzYWdlezAle2JvcmRlci1jb2xvcjpyZ2JhKDIxMSw0Nyw0NywuMykgcmdiYSgyMTEsNDcsNDcsLjMpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fXRve2JvcmRlci1jb2xvcjojZDMyZjJmICNkMzJmMmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9fUAtd2Via2l0LWtleWZyYW1lcyBwdWxzZUJhY2tncm91bmR7MCV7YmFja2dyb3VuZDpyZ2JhKDIxMSw0Nyw0NywuMyl9dG97YmFja2dyb3VuZDojZDMyZjJmfX1Aa2V5ZnJhbWVzIHB1bHNlQmFja2dyb3VuZHswJXtiYWNrZ3JvdW5kOnJnYmEoMjExLDQ3LDQ3LC4zKX10b3tiYWNrZ3JvdW5kOiNkMzJmMmZ9fUAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nLWZhc3QxezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX00MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpfX1Aa2V5ZnJhbWVzIGxvYWRpbmctZmFzdDF7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfTQwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSl9fUAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nLWZhc3QyezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0xNSV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpfX1Aa2V5ZnJhbWVzIGxvYWRpbmctZmFzdDJ7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfTE1JXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSl9fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojZGY1NTRiIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojZGY1NTRifS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2ZkZmFmOX0uY2FwaWJhcmEuYy1yZWQ6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2ZkZmFmOTtib3JkZXItY29sb3I6I2Y5OWQ5N30uY2FwaWJhcmEuYy1yZWQ6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNmZGZhZjk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZjk5ZDk3fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2ZkZmFmOSkhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXJlZDpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2Y5OWQ5N30uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNiYTE2MGF9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiNiYTE2MGF9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1yZWQgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtcmVkIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyLC5jYXBpYmFyYS5jLXJlZCAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLXJlZCAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXJlZCAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzYhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1yZWQgc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6I2Y0NDMzNiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtcmVkIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1yZWQgLnRpbWUgLnN5bWJvbHtjb2xvcjojZjQ0MzM2fS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXJlZCAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2Y0NDMzNjtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI0NCw2Nyw1NCwuMil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLXJlZCAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXJlZCAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmNDQzMzY7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNDQsNjcsNTQsLjIpfS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0e2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNil9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtcmVkIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZjQ0MzM2O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjQ0LDY3LDU0LC4yKX0uY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjZjQ0MzM2fS5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1yZWQgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLXJlZCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI0NCw2Nyw1NCwuMil9LmNhcGliYXJhLmMtcmVkIC5jYXAtYnRuLXJhaXNlZCwuY2FwaWJhcmEuYy1yZWQuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiNmNDQzMzY7YmFja2dyb3VuZDpyZ2JhKDI0NCw2Nyw1NCwuOCl9LmNhcGliYXJhLmMtcmVkIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6I2Y0NDMzNjtjb2xvcjojZjQ0MzM2fS5jYXBpYmFyYS5jLXJlZCAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLXJlZC5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDI0NCw2Nyw1NCwuOCl9LmNhcGliYXJhLmMtcmVkLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1yZWQgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMjQ0LDY3LDU0LC41KX0uY2FwaWJhcmEgLmMtcmVkLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2Y0NDMzNiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2QyMTkwYiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2Y4ODc3ZiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC0tdGV4dHtjb2xvcjojZjQ0MzM2IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcmVkLWQtLXRleHR7Y29sb3I6I2QyMTkwYiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXJlZC1sLS10ZXh0e2NvbG9yOiNmODg3N2YhaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtcmVke2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjIpO2JvcmRlcjoxcHggc29saWQgI2Y0NDMzNn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXJlZCAubGVmdC1pY29ue2JhY2tncm91bmQ6I2Y0NDMzNn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXJlZCAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgI2Y0NDMzNjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI0NCw2Nyw1NCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1yZWQgLm5hbWV7Y29sb3I6I2Y0NDMzNn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy1yZWR7LS1sb2NhbC1jb2xvcjojZjQ0MzM2Oy0tbG9jYWwtY29sb3ItZm9udDojZmZmfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuYy1yZWQsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLXJlZCwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy1yZWQgLnJvd2RvdC0tZG90ey0tbG9jYWwtY29sb3I6I2Y0NDMzNn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1yZWQuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1yZWQuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNDQsNjcsNTQsLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXJlZDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKTtib3JkZXItY29sb3I6cmdiYSgyNDQsNjcsNTQsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1yZWR7YmFja2dyb3VuZDojZjQ0MzM2fS5jYXBpYmFyYS5jLXBpbms6bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6I2QwMzc2YiB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1waW5rOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiNkMDM3NmJ9LmNhcGliYXJhLmMtcGluazpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2YwZTNlN30uY2FwaWJhcmEuYy1waW5rOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNmMGUzZTc7Ym9yZGVyLWNvbG9yOiNmMjdiYTN9LmNhcGliYXJhLmMtcGluazpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2YwZTNlNztib3JkZXItYm90dG9tLWNvbG9yOiNmMjdiYTN9LmNhcGliYXJhLmMtcGluazpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2YwZTNlNykhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbms6bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNmMjdiYTN9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiM5MzBlM2J9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzkzMGUzYn0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1waW5rIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMywzMCw5OSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1waW5rIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzMsMzAsOTksLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1waW5rIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMywzMCw5OSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1waW5rIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtcGluayAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtcGluayBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMywzMCw5OSwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojZTkxZTYzIWltcG9ydGFudH0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtcGluayAudGltZXtib3JkZXItY29sb3I6cmdiYSgyMzMsMzAsOTksLjYpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLXBpbmsgLnRpbWUgLnN5bWJvbHtjb2xvcjojZTkxZTYzfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLXBpbmsgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXBpbmsgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNlOTFlNjM7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMzMsMzAsOTksLjIpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLXBpbmsgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LC42KX0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNlOTFlNjM7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMzMsMzAsOTksLjIpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgyMzMsMzAsOTksLjYpfS5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXBpbmsuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1waW5rIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXBpbmsgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZTkxZTYzO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjMzLDMwLDk5LC4yKX0uY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICNlOTFlNjN9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1waW5rLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtcGluayAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIzMywzMCw5OSwuMil9LmNhcGliYXJhLmMtcGluayAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6I2U5MWU2MztiYWNrZ3JvdW5kOnJnYmEoMjMzLDMwLDk5LC44KX0uY2FwaWJhcmEuYy1waW5rIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiNlOTFlNjM7Y29sb3I6I2U5MWU2M30uY2FwaWJhcmEuYy1waW5rIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDIzMywzMCw5OSwuOCl9LmNhcGliYXJhLmMtcGluay5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtcGluayAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyMzMsMzAsOTksLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSgyMzMsMzAsOTksLjUpfS5jYXBpYmFyYSAuYy1waW5rLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2U5MWU2MyFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXBpbmstZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNhYTExNDUhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1waW5rLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZjA2NDkzIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcGluay0tdGV4dHtjb2xvcjojZTkxZTYzIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcGluay1kLS10ZXh0e2NvbG9yOiNhYTExNDUhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1waW5rLWwtLXRleHR7Y29sb3I6I2YwNjQ5MyFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1waW5re2JhY2tncm91bmQ6cmdiYSgyMzMsMzAsOTksLjIpO2JvcmRlcjoxcHggc29saWQgI2U5MWU2M30uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXBpbmsgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiNlOTFlNjN9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1waW5rIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjZTkxZTYzO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjMzLDMwLDk5LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXBpbmsgLm5hbWV7Y29sb3I6I2U5MWU2M30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy1waW5rey0tbG9jYWwtY29sb3I6I2U5MWU2MzstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtcGluaywuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtcGluaywuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy1waW5rIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiNlOTFlNjN9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtcGluay5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDIzMywzMCw5OSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXBpbmsuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyMzMsMzAsOTksLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXBpbms6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDIzMywzMCw5OSwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtcGlua3tiYWNrZ3JvdW5kOiNlOTFlNjN9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM4ZDNkOWIgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM4ZDNkOWJ9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZDZjYmQ4fS5jYXBpYmFyYS5jLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZDZjYmQ4O2JvcmRlci1jb2xvcjojY2E2MWRjfS5jYXBpYmFyYS5jLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2Q2Y2JkODtib3JkZXItYm90dG9tLWNvbG9yOiNjYTYxZGN9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZDZjYmQ4KSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojY2E2MWRjfS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzUyMTQ1ZH0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzUyMTQ1ZH0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLXB1cnBsZSA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTYsMzksMTc2LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtcHVycGxlIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTYsMzksMTc2LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1wdXJwbGUgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU2LDM5LDE3NiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtcHVycGxlIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtcHVycGxlIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzljMjdiMCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLXB1cnBsZSBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzljMjdiMCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtcHVycGxlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsLjYpfS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtcHVycGxlIC50aW1lIC5zeW1ib2x7Y29sb3I6IzljMjdiMH0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtcHVycGxlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1wdXJwbGUgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5YzI3YjA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxNTYsMzksMTc2LC4yKX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMTU2LDM5LDE3NiwuNil9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5YzI3YjA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxNTYsMzksMTc2LC4yKX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtcHVycGxlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxNTYsMzksMTc2LC42KX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5YzI3YjA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxNTYsMzksMTc2LC4yKX0uY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjOWMyN2IwfS5jYXBpYmFyYS5jLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1wdXJwbGUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLXB1cnBsZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDE1NiwzOSwxNzYsLjIpfS5jYXBpYmFyYS5jLXB1cnBsZSAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojOWMyN2IwO2JhY2tncm91bmQ6cmdiYSgxNTYsMzksMTc2LC44KX0uY2FwaWJhcmEuYy1wdXJwbGUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1wdXJwbGUuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojOWMyN2IwO2NvbG9yOiM5YzI3YjB9LmNhcGliYXJhLmMtcHVycGxlIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMTU2LDM5LDE3NiwuOCl9LmNhcGliYXJhLmMtcHVycGxlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1wdXJwbGUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMTU2LDM5LDE3NiwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDE1NiwzOSwxNzYsLjUpfS5jYXBpYmFyYSAuYy1wdXJwbGUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojOWMyN2IwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNjQxOTcxIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojYzM0Y2Q3IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLS10ZXh0e2NvbG9yOiM5YzI3YjAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1wdXJwbGUtZC0tdGV4dHtjb2xvcjojNjQxOTcxIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtcHVycGxlLWwtLXRleHR7Y29sb3I6I2MzNGNkNyFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1wdXJwbGV7YmFja2dyb3VuZDpyZ2JhKDE1NiwzOSwxNzYsLjIpO2JvcmRlcjoxcHggc29saWQgIzljMjdiMH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXB1cnBsZSAubGVmdC1pY29ue2JhY2tncm91bmQ6IzljMjdiMH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXB1cnBsZSAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzljMjdiMDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDE1NiwzOSwxNzYsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtcHVycGxlIC5uYW1le2NvbG9yOiM5YzI3YjB9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtcHVycGxley0tbG9jYWwtY29sb3I6IzljMjdiMDstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtcHVycGxlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1wdXJwbGUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtcHVycGxlIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM5YzI3YjB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtcHVycGxlLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMTU2LDM5LDE3NiwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMTU2LDM5LDE3NiwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1wdXJwbGUuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgxNTYsMzksMTc2LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1wdXJwbGU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDE1NiwzOSwxNzYsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1wdXJwbGV7YmFja2dyb3VuZDojOWMyN2IwfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM2ZTUyOWYgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzZlNTI5Zn0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2RlZGVkZn0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZGVkZWRmO2JvcmRlci1jb2xvcjojOWY4MGQ3fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZGVkZWRmO2JvcmRlci1ib3R0b20tY29sb3I6IzlmODBkN30uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2RlZGVkZikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojOWY4MGQ3fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMzYjIxNmF9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojM2IyMTZhfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDMsNTgsMTgzLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAzLDU4LDE4MywuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDMsNTgsMTgzLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjchaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAzLDU4LDE4MywuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojNjczYWI3IWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDEwMyw1OCwxODMsLjYpfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAudGltZSAuc3ltYm9se2NvbG9yOiM2NzNhYjd9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM2NzNhYjc7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMDMsNTgsMTgzLC4yKX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLC42KX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojNjczYWI3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTAzLDU4LDE4MywuMil9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLC42KX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNjczYWI3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTAzLDU4LDE4MywuMil9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICM2NzNhYjd9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMDMsNTgsMTgzLC4yKX0uY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiM2NzNhYjc7YmFja2dyb3VuZDpyZ2JhKDEwMyw1OCwxODMsLjgpfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtZGVlcC1wdXJwbGUuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojNjczYWI3O2NvbG9yOiM2NzNhYjd9LmNhcGliYXJhLmMtZGVlcC1wdXJwbGUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDEwMyw1OCwxODMsLjgpfS5jYXBpYmFyYS5jLWRlZXAtcHVycGxlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1kZWVwLXB1cnBsZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgxMDMsNTgsMTgzLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMTAzLDU4LDE4MywuNSl9LmNhcGliYXJhIC5jLWRlZXAtcHVycGxlLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzY3M2FiNyFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtcHVycGxlLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNDYyODdkIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1wdXJwbGUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM5MTZkZDEhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1kZWVwLXB1cnBsZS0tdGV4dHtjb2xvcjojNjczYWI3IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1wdXJwbGUtZC0tdGV4dHtjb2xvcjojNDYyODdkIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1wdXJwbGUtbC0tdGV4dHtjb2xvcjojOTE2ZGQxIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtcHVycGxle2JhY2tncm91bmQ6cmdiYSgxMDMsNTgsMTgzLC4yKTtib3JkZXI6MXB4IHNvbGlkICM2NzNhYjd9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLXB1cnBsZSAubGVmdC1pY29ue2JhY2tncm91bmQ6IzY3M2FiN30uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtcHVycGxlIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjNjczYWI3O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMTAzLDU4LDE4MywuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLXB1cnBsZSAubmFtZXtjb2xvcjojNjczYWI3fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWRlZXAtcHVycGxley0tbG9jYWwtY29sb3I6IzY3M2FiNzstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtZGVlcC1wdXJwbGUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWRlZXAtcHVycGxlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWRlZXAtcHVycGxlIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM2NzNhYjd9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZGVlcC1wdXJwbGUuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxMDMsNTgsMTgzLC43KTtib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWRlZXAtcHVycGxlLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMTAzLDU4LDE4MywuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZGVlcC1wdXJwbGU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEwMyw1OCwxODMsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDEwMyw1OCwxODMsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1kZWVwLXB1cnBsZXtiYWNrZ3JvdW5kOiM2NzNhYjd9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM1NzYyOWQgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM1NzYyOWR9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZTBlMGUwfS5jYXBpYmFyYS5jLWluZGlnbzpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZTBlMGUwO2JvcmRlci1jb2xvcjojODU5MWQ1fS5jYXBpYmFyYS5jLWluZGlnbzpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2UwZTBlMDtib3JkZXItYm90dG9tLWNvbG9yOiM4NTkxZDV9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZTBlMGUwKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtaW5kaWdvOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojODU5MWQ1fS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzI1MmY2OX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzI1MmY2OX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWluZGlnbyA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSg2Myw4MSwxODEsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1pbmRpZ28gOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtaW5kaWdvIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtaW5kaWdvIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtaW5kaWdvIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzNmNTFiNSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWluZGlnbyBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojM2Y1MWI1IWltcG9ydGFudH0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1pbmRpZ28gLnRpbWV7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC42KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLWluZGlnbyAudGltZSAuc3ltYm9se2NvbG9yOiMzZjUxYjV9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtaW5kaWdvIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojM2Y1MWI1O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNjMsODEsMTgxLC4yKX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtaW5kaWdvIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtaW5kaWdvIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC42KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6IzNmNTFiNTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDYzLDgxLDE4MSwuMil9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC42KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1pbmRpZ28gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMzZjUxYjU7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg2Myw4MSwxODEsLjIpfS5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICMzZjUxYjV9LmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3VzLC5jYXBpYmFyYS5jLWluZGlnbyAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtaW5kaWdvIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNjMsODEsMTgxLC4yKX0uY2FwaWJhcmEuYy1pbmRpZ28gLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWluZGlnby5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6IzNmNTFiNTtiYWNrZ3JvdW5kOnJnYmEoNjMsODEsMTgxLC44KX0uY2FwaWJhcmEuYy1pbmRpZ28gLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojM2Y1MWI1O2NvbG9yOiMzZjUxYjV9LmNhcGliYXJhLmMtaW5kaWdvIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtaW5kaWdvLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoNjMsODEsMTgxLC44KX0uY2FwaWJhcmEuYy1pbmRpZ28uZGFyay10aGVtZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5LC5jYXBpYmFyYS5jLWluZGlnbyAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSg2Myw4MSwxODEsLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSg2Myw4MSwxODEsLjUpfS5jYXBpYmFyYSAuYy1pbmRpZ28tLWJhY2tncm91bmR7YmFja2dyb3VuZDojM2Y1MWI1IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMmIzODdjIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNzI4MGNlIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLS10ZXh0e2NvbG9yOiMzZjUxYjUhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1pbmRpZ28tZC0tdGV4dHtjb2xvcjojMmIzODdjIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtaW5kaWdvLWwtLXRleHR7Y29sb3I6IzcyODBjZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1pbmRpZ297YmFja2dyb3VuZDpyZ2JhKDYzLDgxLDE4MSwuMik7Ym9yZGVyOjFweCBzb2xpZCAjM2Y1MWI1fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtaW5kaWdvIC5sZWZ0LWljb257YmFja2dyb3VuZDojM2Y1MWI1fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtaW5kaWdvIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjM2Y1MWI1O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoNjMsODEsMTgxLC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWluZGlnbyAubmFtZXtjb2xvcjojM2Y1MWI1fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWluZGlnb3stLWxvY2FsLWNvbG9yOiMzZjUxYjU7LS1sb2NhbC1jb2xvci1mb250OiNmZmZ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWluZGlnbywuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtaW5kaWdvLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWluZGlnbyAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojM2Y1MWI1fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWluZGlnby5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDYzLDgxLDE4MSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoNjMsODEsMTgxLC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWluZGlnby5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDYzLDgxLDE4MSwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtaW5kaWdvOmhvdmVye2JhY2tncm91bmQ6cmdiYSg2Myw4MSwxODEsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwuOSl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbi5jLWluZGlnb3tiYWNrZ3JvdW5kOiMzZjUxYjV9LmNhcGliYXJhLmMtYmx1ZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojMzE3NmJiIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWJsdWU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzMxNzZiYn0uY2FwaWJhcmEuYy1ibHVlOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZDFkY2U2fS5jYXBpYmFyYS5jLWJsdWU6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2QxZGNlNjtib3JkZXItY29sb3I6IzY0YTllZH0uY2FwaWJhcmEuYy1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZDFkY2U2O2JvcmRlci1ib3R0b20tY29sb3I6IzY0YTllZH0uY2FwaWJhcmEuYy1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZDFkY2U2KSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzY0YTllZH0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzBlNDM3N30uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMGU0Mzc3fS5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWJsdWUgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUsMTE4LDIxMCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1ibHVlIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNSwxMTgsMjEwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtYmx1ZSAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNSwxMTgsMjEwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWJsdWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1ibHVlIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzE5NzZkMiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1ibHVlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUsMTE4LDIxMCwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojMTk3NmQyIWltcG9ydGFudH0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtYmx1ZSAudGltZXtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC42KX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1ibHVlIC50aW1lIC5zeW1ib2x7Y29sb3I6IzE5NzZkMn0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1ibHVlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojMTk3NmQyO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjUsMTE4LDIxMCwuMil9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWJsdWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC42KX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMxOTc2ZDI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNSwxMTgsMjEwLC4yKX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMjUsMTE4LDIxMCwuNil9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWJsdWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ibHVlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMxOTc2ZDI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNSwxMTgsMjEwLC4yKX0uY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICMxOTc2ZDJ9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1LDExOCwyMTAsLjIpfS5jYXBpYmFyYS5jLWJsdWUgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWJsdWUuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiMxOTc2ZDI7YmFja2dyb3VuZDpyZ2JhKDI1LDExOCwyMTAsLjgpfS5jYXBpYmFyYS5jLWJsdWUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzE5NzZkMjtjb2xvcjojMTk3NmQyfS5jYXBpYmFyYS5jLWJsdWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMjUsMTE4LDIxMCwuOCl9LmNhcGliYXJhLmMtYmx1ZS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtYmx1ZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMjUsMTE4LDIxMCwuNSl9LmNhcGliYXJhIC5jLWJsdWUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMTk3NmQyIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYmx1ZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzExNTA4ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM0ZTljZWEhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ibHVlLS10ZXh0e2NvbG9yOiMxOTc2ZDIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ibHVlLWQtLXRleHR7Y29sb3I6IzExNTA4ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWUtbC0tdGV4dHtjb2xvcjojNGU5Y2VhIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWJsdWV7YmFja2dyb3VuZDpyZ2JhKDI1LDExOCwyMTAsLjIpO2JvcmRlcjoxcHggc29saWQgIzE5NzZkMn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWJsdWUgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiMxOTc2ZDJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjMTk3NmQyO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjUsMTE4LDIxMCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlIC5uYW1le2NvbG9yOiMxOTc2ZDJ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtYmx1ZXstLWxvY2FsLWNvbG9yOiMxOTc2ZDI7LS1sb2NhbC1jb2xvci1mb250OiNmZmZ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWJsdWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWJsdWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtYmx1ZSAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojMTk3NmQyfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWJsdWUuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC43KTtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWJsdWUuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1ibHVlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC4yKTtib3JkZXItY29sb3I6cmdiYSgyNSwxMTgsMjEwLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtYmx1ZXtiYWNrZ3JvdW5kOiMxOTc2ZDJ9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojMWNhMGRiIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzFjYTBkYn0uY2FwaWJhcmEuYy1saWdodC1ibHVlOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZDNlN2YwfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWU6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2QzZTdmMDtib3JkZXItY29sb3I6IzYwY2NmZH0uY2FwaWJhcmEuYy1saWdodC1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZDNlN2YwO2JvcmRlci1ib3R0b20tY29sb3I6IzYwY2NmZH0uY2FwaWJhcmEuYy1saWdodC1ibHVlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZDNlN2YwKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzYwY2NmZH0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzAyNjM4Zn0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDI2MzhmfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMywxNjksMjQ0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDMsMTY5LDI0NCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMywxNjksMjQ0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAzYTlmNCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1saWdodC1ibHVlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMywxNjksMjQ0LC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiMwM2E5ZjQhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDMsMTY5LDI0NCwuNil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAudGltZSAuc3ltYm9se2NvbG9yOiMwM2E5ZjR9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6IzAzYTlmNDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDMsMTY5LDI0NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgzLDE2OSwyNDQsLjYpfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6IzAzYTlmNDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDMsMTY5LDI0NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0e2JvcmRlci1jb2xvcjpyZ2JhKDMsMTY5LDI0NCwuNil9LmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtYmx1ZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwM2E5ZjQ7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgzLDE2OSwyNDQsLjIpfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgIzAzYTlmNH0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMywxNjksMjQ0LC4yKX0uY2FwaWJhcmEuYy1saWdodC1ibHVlIC5jYXAtYnRuLXJhaXNlZCwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojMDNhOWY0O2JhY2tncm91bmQ6cmdiYSgzLDE2OSwyNDQsLjgpfS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzAzYTlmNDtjb2xvcjojMDNhOWY0fS5jYXBpYmFyYS5jLWxpZ2h0LWJsdWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMywxNjksMjQ0LC44KX0uY2FwaWJhcmEuYy1saWdodC1ibHVlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1saWdodC1ibHVlIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDMsMTY5LDI0NCwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDMsMTY5LDI0NCwuNSl9LmNhcGliYXJhIC5jLWxpZ2h0LWJsdWUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMDNhOWY0IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtYmx1ZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzAyNzVhOCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpZ2h0LWJsdWUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM0N2M0ZmQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saWdodC1ibHVlLS10ZXh0e2NvbG9yOiMwM2E5ZjQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saWdodC1ibHVlLWQtLXRleHR7Y29sb3I6IzAyNzVhOCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpZ2h0LWJsdWUtbC0tdGV4dHtjb2xvcjojNDdjNGZkIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWJsdWV7YmFja2dyb3VuZDpyZ2JhKDMsMTY5LDI0NCwuMik7Ym9yZGVyOjFweCBzb2xpZCAjMDNhOWY0fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtbGlnaHQtYmx1ZSAubGVmdC1pY29ue2JhY2tncm91bmQ6IzAzYTlmNH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWJsdWUgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICMwM2E5ZjQ7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgzLDE2OSwyNDQsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtbGlnaHQtYmx1ZSAubmFtZXtjb2xvcjojMDNhOWY0fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWxpZ2h0LWJsdWV7LS1sb2NhbC1jb2xvcjojMDNhOWY0Oy0tbG9jYWwtY29sb3ItZm9udDojZmZmfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuYy1saWdodC1ibHVlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1saWdodC1ibHVlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWxpZ2h0LWJsdWUgLnJvd2RvdC0tZG90ey0tbG9jYWwtY29sb3I6IzAzYTlmNH0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1saWdodC1ibHVlLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMywxNjksMjQ0LC43KTtib3JkZXItY29sb3I6cmdiYSgzLDE2OSwyNDQsLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtYmx1ZS5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDMsMTY5LDI0NCwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtYmx1ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMywxNjksMjQ0LC4yKTtib3JkZXItY29sb3I6cmdiYSgzLDE2OSwyNDQsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1saWdodC1ibHVle2JhY2tncm91bmQ6IzAzYTlmNH0uY2FwaWJhcmEuYy1jeWFuOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiMxNWFjYmYgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtY3lhbjpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojMTVhY2JmfS5jYXBpYmFyYS5jLWN5YW46bm90KC5kYXJrLXRoZW1lKSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNiOWUyZTh9LmNhcGliYXJhLmMtY3lhbjpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojYjllMmU4O2JvcmRlci1jb2xvcjojM2JlOWZmfS5jYXBpYmFyYS5jLWN5YW46bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNiOWUyZTg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojM2JlOWZmfS5jYXBpYmFyYS5jLWN5YW46bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlciAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCNiOWUyZTgpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojM2JlOWZmfS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojMDA2MjZlfS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMwMDYyNmV9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIDo6LW1vei1zZWxlY3Rpb24sLmNhcGliYXJhLmMtY3lhbiA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE4OCwyMTIsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtY3lhbiA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxODgsMjEyLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtY3lhbiAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE4OCwyMTIsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtY3lhbiAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWN5YW4gLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDBiY2Q0IWltcG9ydGFudH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWN5YW4gc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE4OCwyMTIsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzAwYmNkNCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWN5YW4gLnRpbWV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxODgsMjEyLC42KX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1jeWFuIC50aW1lIC5zeW1ib2x7Y29sb3I6IzAwYmNkNH0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1jeWFuIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1jeWFuIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojMDBiY2Q0O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMCwxODgsMjEyLC4yKX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCwuY2FwaWJhcmEuYy1jeWFuIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDAsMTg4LDIxMiwuNil9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojMDBiY2Q0O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMCwxODgsMjEyLC4yKX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxODgsMjEyLC42KX0uY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1jeWFuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtY3lhbiAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1jeWFuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6IzAwYmNkNDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDAsMTg4LDIxMiwuMil9LmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjMDBiY2Q0fS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtY3lhbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3VzLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWN5YW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDE4OCwyMTIsLjIpfS5jYXBpYmFyYS5jLWN5YW4gLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiMwMGJjZDQ7YmFja2dyb3VuZDpyZ2JhKDAsMTg4LDIxMiwuOCl9LmNhcGliYXJhLmMtY3lhbiAuY2FwLWJ0bi1vdXRsaW5lLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojMDBiY2Q0O2NvbG9yOiMwMGJjZDR9LmNhcGliYXJhLmMtY3lhbiAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6cmdiYSgwLDE4OCwyMTIsLjgpfS5jYXBpYmFyYS5jLWN5YW4uZGFyay10aGVtZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5LC5jYXBpYmFyYS5jLWN5YW4gLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMCwxODgsMjEyLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMCwxODgsMjEyLC41KX0uY2FwaWJhcmEgLmMtY3lhbi0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiMwMGJjZDQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1jeWFuLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMDA3ODg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtY3lhbi1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzIyZTZmZiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWN5YW4tLXRleHR7Y29sb3I6IzAwYmNkNCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWN5YW4tZC0tdGV4dHtjb2xvcjojMDA3ODg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtY3lhbi1sLS10ZXh0e2NvbG9yOiMyMmU2ZmYhaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtY3lhbntiYWNrZ3JvdW5kOnJnYmEoMCwxODgsMjEyLC4yKTtib3JkZXI6MXB4IHNvbGlkICMwMGJjZDR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1jeWFuIC5sZWZ0LWljb257YmFja2dyb3VuZDojMDBiY2Q0fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtY3lhbiAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzAwYmNkNDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDAsMTg4LDIxMiwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1jeWFuIC5uYW1le2NvbG9yOiMwMGJjZDR9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtY3lhbnstLWxvY2FsLWNvbG9yOiMwMGJjZDQ7LS1sb2NhbC1jb2xvci1mb250OiMyNjMyMzh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWN5YW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWN5YW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtY3lhbiAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojMDBiY2Q0fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWN5YW4uYWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDE4OCwyMTIsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMTg4LDIxMiwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1jeWFuLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwxODgsMjEyLC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1jeWFuOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDE4OCwyMTIsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMTg4LDIxMiwuOSl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbi5jLWN5YW57YmFja2dyb3VuZDojMDBiY2Q0fS5jYXBpYmFyYS5jLXRlYWw6bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6IzBmODc3YyB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy10ZWFsOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiMwZjg3N2N9LmNhcGliYXJhLmMtdGVhbDpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6IzhhZDhkMX0uY2FwaWJhcmEuYy10ZWFsOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiM4YWQ4ZDE7Ym9yZGVyLWNvbG9yOiMwMGZjZTR9LmNhcGliYXJhLmMtdGVhbDpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6IzhhZDhkMTtib3JkZXItYm90dG9tLWNvbG9yOiMwMGZjZTR9LmNhcGliYXJhLmMtdGVhbDpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsIzhhZDhkMSkhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWw6bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMwMGZjZTR9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMwMDMwMmN9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzAwMzAyY30uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy10ZWFsIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTUwLDEzNiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy10ZWFsIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE1MCwxMzYsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy10ZWFsIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTUwLDEzNiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy10ZWFsIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtdGVhbCAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODghaW1wb3J0YW50fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtdGVhbCBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTUwLDEzNiwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojMDA5Njg4IWltcG9ydGFudH0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtdGVhbCAudGltZXtib3JkZXItY29sb3I6cmdiYSgwLDE1MCwxMzYsLjYpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLXRlYWwgLnRpbWUgLnN5bWJvbHtjb2xvcjojMDA5Njg4fS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLXRlYWwgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXRlYWwgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwMDk2ODg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDE1MCwxMzYsLjIpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLXRlYWwgLmlucHV0LWJveCwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNTAsMTM2LC42KX0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwMDk2ODg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDE1MCwxMzYsLjIpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgwLDE1MCwxMzYsLjYpfS5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXRlYWwuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy10ZWFsIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXRlYWwgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojMDA5Njg4O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMCwxNTAsMTM2LC4yKX0uY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICMwMDk2ODh9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy10ZWFsLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtdGVhbCAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDAsMTUwLDEzNiwuMil9LmNhcGliYXJhLmMtdGVhbCAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6IzAwOTY4ODtiYWNrZ3JvdW5kOnJnYmEoMCwxNTAsMTM2LC44KX0uY2FwaWJhcmEuYy10ZWFsIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiMwMDk2ODg7Y29sb3I6IzAwOTY4OH0uY2FwaWJhcmEuYy10ZWFsIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDAsMTUwLDEzNiwuOCl9LmNhcGliYXJhLmMtdGVhbC5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtdGVhbCAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgwLDE1MCwxMzYsLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSgwLDE1MCwxMzYsLjUpfS5jYXBpYmFyYSAuYy10ZWFsLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzAwOTY4OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLXRlYWwtZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiMwMDRhNDMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy10ZWFsLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojMDBlM2NkIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtdGVhbC0tdGV4dHtjb2xvcjojMDA5Njg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtdGVhbC1kLS10ZXh0e2NvbG9yOiMwMDRhNDMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy10ZWFsLWwtLXRleHR7Y29sb3I6IzAwZTNjZCFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy10ZWFse2JhY2tncm91bmQ6cmdiYSgwLDE1MCwxMzYsLjIpO2JvcmRlcjoxcHggc29saWQgIzAwOTY4OH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXRlYWwgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiMwMDk2ODh9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy10ZWFsIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjMDA5Njg4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwxNTAsMTM2LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXRlYWwgLm5hbWV7Y29sb3I6IzAwOTY4OH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy10ZWFsey0tbG9jYWwtY29sb3I6IzAwOTY4ODstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtdGVhbCwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtdGVhbCwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy10ZWFsIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiMwMDk2ODh9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtdGVhbC5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDAsMTUwLDEzNiwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNTAsMTM2LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXRlYWwuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDE1MCwxMzYsLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLXRlYWw6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMTUwLDEzNiwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNTAsMTM2LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtdGVhbHtiYWNrZ3JvdW5kOiMwMDk2ODh9LmNhcGliYXJhLmMtZ3JlZW46bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6IzNmNmM0MSB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1ncmVlbjpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojM2Y2YzQxfS5jYXBpYmFyYS5jLWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojYmNiY2JjfS5jYXBpYmFyYS5jLWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNiY2JjYmM7Ym9yZGVyLWNvbG9yOiM1MmJmNTd9LmNhcGliYXJhLmMtZ3JlZW46bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNiY2JjYmM7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNTJiZjU3fS5jYXBpYmFyYS5jLWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjYmNiY2JjKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZ3JlZW46bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiM1MmJmNTd9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzEzMzIxNH0uY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMxMzMyMTR9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWdyZWVuIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtZ3JlZW4gOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1ncmVlbiAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg0NiwxMjUsNTAsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1ncmVlbiAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWdyZWVuIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzJlN2QzMiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtZ3JlZW4gc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSg0NiwxMjUsNTAsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzJlN2QzMiFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1ncmVlbiAudGltZXtib3JkZXItY29sb3I6cmdiYSg0NiwxMjUsNTAsLjYpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1ncmVlbiAudGltZSAuc3ltYm9se2NvbG9yOiMyZTdkMzJ9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1ncmVlbiAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4gLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg0NiwxMjUsNTAsLjIpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LWJveCwuY2FwaWJhcmEuYy1ncmVlbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuNil9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6IzJlN2QzMjtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDQ2LDEyNSw1MCwuMil9LmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWdyZWVuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSg0NiwxMjUsNTAsLjYpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbiAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ncmVlbiAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg0NiwxMjUsNTAsLjIpfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjMmU3ZDMyfS5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtZ3JlZW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWdyZWVuIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNDYsMTI1LDUwLC4yKX0uY2FwaWJhcmEuYy1ncmVlbiAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtZ3JlZW4uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuOCl9LmNhcGliYXJhLmMtZ3JlZW4gLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiMyZTdkMzI7Y29sb3I6IzJlN2QzMn0uY2FwaWJhcmEuYy1ncmVlbiAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWdyZWVuLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoNDYsMTI1LDUwLC44KX0uY2FwaWJhcmEuYy1ncmVlbi5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtZ3JlZW4gLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoNDYsMTI1LDUwLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoNDYsMTI1LDUwLC41KX0uY2FwaWJhcmEgLmMtZ3JlZW4tLWJhY2tncm91bmR7YmFja2dyb3VuZDojMmU3ZDMyIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZ3JlZW4tZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiMxOTQ1MWMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ncmVlbi1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzQzYjU0OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWdyZWVuLS10ZXh0e2NvbG9yOiMyZTdkMzIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ncmVlbi1kLS10ZXh0e2NvbG9yOiMxOTQ1MWMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1ncmVlbi1sLS10ZXh0e2NvbG9yOiM0M2I1NDghaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtZ3JlZW57YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuMik7Ym9yZGVyOjFweCBzb2xpZCAjMmU3ZDMyfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtZ3JlZW4gLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiMyZTdkMzJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ncmVlbiAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzJlN2QzMjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDQ2LDEyNSw1MCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ncmVlbiAubmFtZXtjb2xvcjojMmU3ZDMyfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWdyZWVuey0tbG9jYWwtY29sb3I6IzJlN2QzMjstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtZ3JlZW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWdyZWVuLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWdyZWVuIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiMyZTdkMzJ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZ3JlZW4uYWN0aXZle2JhY2tncm91bmQ6cmdiYSg0NiwxMjUsNTAsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDQ2LDEyNSw1MCwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1ncmVlbi5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtZ3JlZW46aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDQ2LDEyNSw1MCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoNDYsMTI1LDUwLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtZ3JlZW57YmFja2dyb3VuZDojMmU3ZDMyfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiM4OWFiNjIgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW46bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izg5YWI2Mn0uY2FwaWJhcmEuYy1saWdodC1ncmVlbjpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2VkZWRlY30uY2FwaWJhcmEuYy1saWdodC1ncmVlbjpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZWRlZGVjO2JvcmRlci1jb2xvcjojYmNkYzk3fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZWRlZGVjO2JvcmRlci1ib3R0b20tY29sb3I6I2JjZGM5N30uY2FwaWJhcmEuYy1saWdodC1ncmVlbjpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2VkZWRlYykhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojYmNkYzk3fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiM1NzdkMmF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNTc3ZDJhfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgxMzksMTk1LDc0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTM5LDE5NSw3NCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMzksMTk1LDc0LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTM5LDE5NSw3NCwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojOGJjMzRhIWltcG9ydGFudH0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDEzOSwxOTUsNzQsLjYpfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAudGltZSAuc3ltYm9se2NvbG9yOiM4YmMzNGF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM4YmMzNGE7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMzksMTk1LDc0LC4yKX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LC42KX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojOGJjMzRhO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTM5LDE5NSw3NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LC42KX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojOGJjMzRhO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTM5LDE5NSw3NCwuMil9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICM4YmMzNGF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMzksMTk1LDc0LC4yKX0uY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiM4YmMzNGE7YmFja2dyb3VuZDpyZ2JhKDEzOSwxOTUsNzQsLjgpfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4uZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojOGJjMzRhO2NvbG9yOiM4YmMzNGF9LmNhcGliYXJhLmMtbGlnaHQtZ3JlZW4gLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1saWdodC1ncmVlbi5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDEzOSwxOTUsNzQsLjgpfS5jYXBpYmFyYS5jLWxpZ2h0LWdyZWVuLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1saWdodC1ncmVlbiAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgxMzksMTk1LDc0LC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMTM5LDE5NSw3NCwuNSl9LmNhcGliYXJhIC5jLWxpZ2h0LWdyZWVuLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzhiYzM0YSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpZ2h0LWdyZWVuLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojNjQ5MTMwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtZ3JlZW4tbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNiMGQ2ODMhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saWdodC1ncmVlbi0tdGV4dHtjb2xvcjojOGJjMzRhIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtZ3JlZW4tZC0tdGV4dHtjb2xvcjojNjQ5MTMwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGlnaHQtZ3JlZW4tbC0tdGV4dHtjb2xvcjojYjBkNjgzIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWdyZWVue2JhY2tncm91bmQ6cmdiYSgxMzksMTk1LDc0LC4yKTtib3JkZXI6MXB4IHNvbGlkICM4YmMzNGF9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saWdodC1ncmVlbiAubGVmdC1pY29ue2JhY2tncm91bmQ6IzhiYzM0YX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpZ2h0LWdyZWVuIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjOGJjMzRhO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMTM5LDE5NSw3NCwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saWdodC1ncmVlbiAubmFtZXtjb2xvcjojOGJjMzRhfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWxpZ2h0LWdyZWVuey0tbG9jYWwtY29sb3I6IzhiYzM0YTstLWxvY2FsLWNvbG9yLWZvbnQ6IzI2MzIzOH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtbGlnaHQtZ3JlZW4sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWxpZ2h0LWdyZWVuLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWxpZ2h0LWdyZWVuIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM4YmMzNGF9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtZ3JlZW4uYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxMzksMTk1LDc0LC43KTtib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWxpZ2h0LWdyZWVuLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMTM5LDE5NSw3NCwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtbGlnaHQtZ3JlZW46aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEzOSwxOTUsNzQsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDEzOSwxOTUsNzQsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1saWdodC1ncmVlbntiYWNrZ3JvdW5kOiM4YmMzNGF9LmNhcGliYXJhLmMtbGltZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojYmFjNTUwIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWxpbWU6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6I2JhYzU1MH0uY2FwaWJhcmEuYy1saW1lOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZjNmM2VlfS5jYXBpYmFyYS5jLWxpbWU6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2YzZjNlZTtib3JkZXItY29sb3I6I2UzZWI5MH0uY2FwaWJhcmEuYy1saW1lOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjNmM2VlO2JvcmRlci1ib3R0b20tY29sb3I6I2UzZWI5MH0uY2FwaWJhcmEuYy1saW1lOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZjNmM2VlKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2UzZWI5MH0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6Izg5OTUxYX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojODk5NTFhfS5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWxpbWUgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LDIyMCw1NywuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1saW1lIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDUsMjIwLDU3LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtbGltZSAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDUsMjIwLDU3LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWxpbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1saW1lIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2NkZGMzOSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1saW1lIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LDIyMCw1NywuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojY2RkYzM5IWltcG9ydGFudH0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtbGltZSAudGltZXtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC42KX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1saW1lIC50aW1lIC5zeW1ib2x7Y29sb3I6I2NkZGMzOX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1saW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojY2RkYzM5O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjA1LDIyMCw1NywuMil9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWxpbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC42KX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNjZGRjMzk7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMDUsMjIwLDU3LC4yKX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMjA1LDIyMCw1NywuNil9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWxpbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1saW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNjZGRjMzk7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMDUsMjIwLDU3LC4yKX0uY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICNjZGRjMzl9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtbGltZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIwNSwyMjAsNTcsLjIpfS5jYXBpYmFyYS5jLWxpbWUgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWxpbWUuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiNjZGRjMzk7YmFja2dyb3VuZDpyZ2JhKDIwNSwyMjAsNTcsLjgpfS5jYXBpYmFyYS5jLWxpbWUgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6I2NkZGMzOTtjb2xvcjojY2RkYzM5fS5jYXBpYmFyYS5jLWxpbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1saW1lLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMjA1LDIyMCw1NywuOCl9LmNhcGliYXJhLmMtbGltZS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtbGltZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMjA1LDIyMCw1NywuNSl9LmNhcGliYXJhIC5jLWxpbWUtLWJhY2tncm91bmR7YmFja2dyb3VuZDojY2RkYzM5IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtbGltZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzlkYWExZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpbWUtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNkZGU3N2EhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saW1lLS10ZXh0e2NvbG9yOiNjZGRjMzkhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1saW1lLWQtLXRleHR7Y29sb3I6IzlkYWExZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWxpbWUtbC0tdGV4dHtjb2xvcjojZGRlNzdhIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpbWV7YmFja2dyb3VuZDpyZ2JhKDIwNSwyMjAsNTcsLjIpO2JvcmRlcjoxcHggc29saWQgI2NkZGMzOX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWxpbWUgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiNjZGRjMzl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saW1lIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjY2RkYzM5O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjA1LDIyMCw1NywuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1saW1lIC5uYW1le2NvbG9yOiNjZGRjMzl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtbGltZXstLWxvY2FsLWNvbG9yOiNjZGRjMzk7LS1sb2NhbC1jb2xvci1mb250OiMyNjMyMzh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWxpbWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWxpbWUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtbGltZSAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojY2RkYzM5fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWxpbWUuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC43KTtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWxpbWUuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1saW1lOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyMDUsMjIwLDU3LC4yKTtib3JkZXItY29sb3I6cmdiYSgyMDUsMjIwLDU3LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtbGltZXtiYWNrZ3JvdW5kOiNjZGRjMzl9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiNlYmRiNGYgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiNlYmRiNGZ9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojZmZmfS5jYXBpYmFyYS5jLXllbGxvdzpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojZmZmNWExfS5jYXBpYmFyYS5jLXllbGxvdzpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItYm90dG9tLWNvbG9yOiNmZmY1YTF9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjZmZmKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93Om5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojZmZmNWExfS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2Q0YmUwMH0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6I2Q0YmUwMH0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLXllbGxvdyA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjM1LDU5LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMteWVsbG93IDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjM1LDU5LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy15ZWxsb3cgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMteWVsbG93IC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMteWVsbG93IC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZWIzYiFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLXllbGxvdyBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzUsNTksLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6I2ZmZWIzYiFpbXBvcnRhbnR9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMteWVsbG93IC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyMzUsNTksLjYpfS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMteWVsbG93IC50aW1lIC5zeW1ib2x7Y29sb3I6I2ZmZWIzYn0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMteWVsbG93IC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy15ZWxsb3cgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmViM2I7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMjM1LDU5LC4yKX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1ib3gsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwuNil9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmViM2I7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMjM1LDU5LC4yKX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMteWVsbG93IC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjM1LDU5LC42KX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmViM2I7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMjM1LDU5LC4yKX0uY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjZmZlYjNifS5jYXBpYmFyYS5jLXllbGxvdy5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy15ZWxsb3cgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLXllbGxvdyAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1NSwyMzUsNTksLjIpfS5jYXBpYmFyYS5jLXllbGxvdyAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojZmZlYjNiO2JhY2tncm91bmQ6cmdiYSgyNTUsMjM1LDU5LC44KX0uY2FwaWJhcmEuYy15ZWxsb3cgLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy15ZWxsb3cuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojZmZlYjNiO2NvbG9yOiNmZmViM2J9LmNhcGliYXJhLmMteWVsbG93IC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIzNSw1OSwuOCl9LmNhcGliYXJhLmMteWVsbG93LmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy15ZWxsb3cgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIzNSw1OSwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDI1NSwyMzUsNTksLjUpfS5jYXBpYmFyYSAuYy15ZWxsb3ctLWJhY2tncm91bmR7YmFja2dyb3VuZDojZmZlYjNiIWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZWVkNTAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZmZmMzg4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LS10ZXh0e2NvbG9yOiNmZmViM2IhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy15ZWxsb3ctZC0tdGV4dHtjb2xvcjojZWVkNTAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMteWVsbG93LWwtLXRleHR7Y29sb3I6I2ZmZjM4OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy15ZWxsb3d7YmFja2dyb3VuZDpyZ2JhKDI1NSwyMzUsNTksLjIpO2JvcmRlcjoxcHggc29saWQgI2ZmZWIzYn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXllbGxvdyAubGVmdC1pY29ue2JhY2tncm91bmQ6I2ZmZWIzYn0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLXllbGxvdyAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgI2ZmZWIzYjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyMzUsNTksLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMteWVsbG93IC5uYW1le2NvbG9yOiNmZmViM2J9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMteWVsbG93ey0tbG9jYWwtY29sb3I6I2ZmZWIzYjstLWxvY2FsLWNvbG9yLWZvbnQ6IzI2MzIzOH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMteWVsbG93LC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy15ZWxsb3csLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMteWVsbG93IC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiNmZmViM2J9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMteWVsbG93LmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIzNSw1OSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy15ZWxsb3cuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjM1LDU5LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy15ZWxsb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyMzUsNTksLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyMzUsNTksLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy15ZWxsb3d7YmFja2dyb3VuZDojZmZlYjNifS5jYXBpYmFyYS5jLWFtYmVyOm5vdCguZGFyay10aGVtZSl7c2Nyb2xsYmFyLWNvbG9yOiNlNmI1MjAgdHJhbnNwYXJlbnR9LmNhcGliYXJhLmMtYW1iZXI6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6I2U2YjUyMH0uY2FwaWJhcmEuYy1hbWJlcjpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2Y0ZWZkZX0uY2FwaWJhcmEuYy1hbWJlcjpub3QoLmRhcmstdGhlbWUpIC5jb3JuZXJ7YmFja2dyb3VuZDojZjRlZmRlO2JvcmRlci1jb2xvcjojZmZkYjZkfS5jYXBpYmFyYS5jLWFtYmVyOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjRlZmRlO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZGI2ZH0uY2FwaWJhcmEuYy1hbWJlcjpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2Y0ZWZkZSkhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWFtYmVyOm5vdCguZGFyay10aGVtZSkgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojZmZkYjZkfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNhMDc4MDB9LmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciwuY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYTA3ODAwfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1hbWJlciA6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTkzLDcsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLWFtYmVyIDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTkzLDcsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtYW1iZXIgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjpiZWZvcmUsLmNhcGliYXJhLmMtYW1iZXIgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1hbWJlciAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgc2VsZWN0LnRhYnMtc2VsZWN0LC5jYXBpYmFyYS5jLWFtYmVyIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnRpbWUsLmNhcGliYXJhLmMtYW1iZXIgLnRpbWV7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC42KX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtYW1iZXIgLnRpbWUgLnN5bWJvbHtjb2xvcjojZmZjMTA3fS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtYW1iZXIgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZmZjMTA3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE5Myw3LC4yKX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtYW1iZXIgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMTkzLDcsLjYpfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZmMxMDc7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMTkzLDcsLjIpfS5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1hbWJlciAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDE5Myw3LC42KX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYW1iZXIgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojZmZjMTA3O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE5Myw3LC4yKX0uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgI2ZmYzEwN30uY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3VzLC5jYXBpYmFyYS5jLWFtYmVyIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1hbWJlciAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1NSwxOTMsNywuMil9LmNhcGliYXJhLmMtYW1iZXIgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWFtYmVyLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojZmZjMTA3O2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjgpfS5jYXBpYmFyYS5jLWFtYmVyIC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojZmZjMTA3O2NvbG9yOiNmZmMxMDd9LmNhcGliYXJhLmMtYW1iZXIgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1hbWJlci5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDI1NSwxOTMsNywuOCl9LmNhcGliYXJhLmMtYW1iZXIuZGFyay10aGVtZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5LC5jYXBpYmFyYS5jLWFtYmVyIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDI1NSwxOTMsNywuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDI1NSwxOTMsNywuNSl9LmNhcGliYXJhIC5jLWFtYmVyLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2ZmYzEwNyFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWFtYmVyLWQtLWJhY2tncm91bmR7YmFja2dyb3VuZDojYmE4YjAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYW1iZXItbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNmZmQ0NTQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1hbWJlci0tdGV4dHtjb2xvcjojZmZjMTA3IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYW1iZXItZC0tdGV4dHtjb2xvcjojYmE4YjAwIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYW1iZXItbC0tdGV4dHtjb2xvcjojZmZkNDU0IWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWFtYmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjIpO2JvcmRlcjoxcHggc29saWQgI2ZmYzEwN30uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWFtYmVyIC5sZWZ0LWljb257YmFja2dyb3VuZDojZmZjMTA3fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYW1iZXIgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICNmZmMxMDc7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMTkzLDcsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYW1iZXIgLm5hbWV7Y29sb3I6I2ZmYzEwN30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuYy1hbWJlcnstLWxvY2FsLWNvbG9yOiNmZmMxMDc7LS1sb2NhbC1jb2xvci1mb250OiMyNjMyMzh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWFtYmVyLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1hbWJlciwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucm93ZG90LS1yb3cuYy1hbWJlciAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojZmZjMTA3fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWFtYmVyLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE5Myw3LC43KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMTkzLDcsLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYW1iZXIuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjgpfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWFtYmVyOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMTkzLDcsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwxOTMsNywuOSl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbi5jLWFtYmVye2JhY2tncm91bmQ6I2ZmYzEwN30uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6I2U2OTMxYSB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6I2U2OTMxYX0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNmMmU4ZDl9LmNhcGliYXJhLmMtb3JhbmdlOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNmMmU4ZDk7Ym9yZGVyLWNvbG9yOiNmZmMxNjZ9LmNhcGliYXJhLmMtb3JhbmdlOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjJlOGQ5O2JvcmRlci1ib3R0b20tY29sb3I6I2ZmYzE2Nn0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlciAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCNmMmU4ZDkpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNmZmMxNjZ9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmhlYWRlci10b3AsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojOTk1YjAwfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5jb3JuZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojOTk1YjAwfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIDo6LW1vei1zZWxlY3Rpb24sLmNhcGliYXJhLmMtb3JhbmdlIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLW9yYW5nZSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1vcmFuZ2UgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1vcmFuZ2UgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1vcmFuZ2UgLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwIWltcG9ydGFudH0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtb3JhbmdlIHNlbGVjdC50YWJzLXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZjk4MDAhaW1wb3J0YW50fS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLW9yYW5nZSAudGltZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjYpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lIC5zeW1ib2wsLmNhcGliYXJhLmMtb3JhbmdlIC50aW1lIC5zeW1ib2x7Y29sb3I6I2ZmOTgwMH0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1vcmFuZ2UgLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNmZjk4MDA7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMTUyLDAsLjIpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1ib3gsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCwuY2FwaWJhcmEuYy1vcmFuZ2UgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1vcmFuZ2UgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjYpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojZmY5ODAwO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE1MiwwLC4yKX0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0LC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjYpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2ZmOTgwMDtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDI1NSwxNTIsMCwuMil9LmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgI2ZmOTgwMH0uY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtb3JhbmdlIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1vcmFuZ2UgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyNTUsMTUyLDAsLjIpfS5jYXBpYmFyYS5jLW9yYW5nZSAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtb3JhbmdlLmRhcmstdGhlbWUgLmNhcC1idG4tcmFpc2Vke2JvcmRlci1jb2xvcjojZmY5ODAwO2JhY2tncm91bmQ6cmdiYSgyNTUsMTUyLDAsLjgpfS5jYXBpYmFyYS5jLW9yYW5nZSAuY2FwLWJ0bi1vdXRsaW5lLC5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmOTgwMH0uY2FwaWJhcmEuYy1vcmFuZ2UgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZCwuY2FwaWJhcmEuYy1vcmFuZ2UuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6cmdiYSgyNTUsMTUyLDAsLjgpfS5jYXBpYmFyYS5jLW9yYW5nZS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtb3JhbmdlIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMyk7Ym94LXNoYWRvdzppbnNldCAwIDAgMTBweCByZ2JhKDI1NSwxNTIsMCwuNSl9LmNhcGliYXJhIC5jLW9yYW5nZS0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNmZjk4MDAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNiMzZhMDAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtbC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNmZmI3NGQhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtLXRleHR7Y29sb3I6I2ZmOTgwMCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLW9yYW5nZS1kLS10ZXh0e2NvbG9yOiNiMzZhMDAhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1vcmFuZ2UtbC0tdGV4dHtjb2xvcjojZmZiNzRkIWltcG9ydGFudH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLW9yYW5nZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC4yKTtib3JkZXI6MXB4IHNvbGlkICNmZjk4MDB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1vcmFuZ2UgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiNmZjk4MDB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1vcmFuZ2UgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICNmZjk4MDA7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMTUyLDAsLjcpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtb3JhbmdlIC5uYW1le2NvbG9yOiNmZjk4MDB9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtb3Jhbmdley0tbG9jYWwtY29sb3I6I2ZmOTgwMDstLWxvY2FsLWNvbG9yLWZvbnQ6IzI2MzIzOH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtb3JhbmdlLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QuYy1vcmFuZ2UsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtb3JhbmdlIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiNmZjk4MDB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtb3JhbmdlLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC43KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMTUyLDAsLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtb3JhbmdlLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDE1MiwwLC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1vcmFuZ2U6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtb3Jhbmdle2JhY2tncm91bmQ6I2ZmOTgwMH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojY2Q1NzMzIHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlOm5vdCguZGFyay10aGVtZSkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiNjZDU3MzN9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNlZGUxZGV9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2VkZTFkZTtib3JkZXItY29sb3I6I2YwOTI3NX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVye2JhY2tncm91bmQ6I2VkZTFkZTtib3JkZXItYm90dG9tLWNvbG9yOiNmMDkyNzV9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2U6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlciAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCNlZGUxZGUpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6I2YwOTI3NX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5oZWFkZXItdG9wLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgbmF2LnJpZ2h0e2JvcmRlci1jb2xvcjojOGEyYzBmfS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuY29ybmVye2JvcmRlci1ib3R0b20tY29sb3I6IzhhMmMwZn0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIDo6LW1vei1zZWxlY3Rpb24sLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSA6OnNlbGVjdGlvbiwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhcjphZnRlciwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZTY0YTE5IWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSBzZWxlY3QudGFicy1zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuNykhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojZTY0YTE5IWltcG9ydGFudH0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC50aW1le2JvcmRlci1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuNil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC50aW1lIC5zeW1ib2x7Y29sb3I6I2U2NGExOX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2U2NGExOTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIzMCw3NCwyNSwuMil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Ym9yZGVyLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC42KX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojZTY0YTE5O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjMwLDc0LDI1LC4yKX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0e2JvcmRlci1jb2xvcjpyZ2JhKDIzMCw3NCwyNSwuNil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I2U2NGExOTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDIzMCw3NCwyNSwuMil9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zaiwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zantib3JkZXI6MnB4IHNvbGlkICNlNjRhMTl9LmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1cywuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgyMzAsNzQsMjUsLjIpfS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5jYXAtYnRuLXJhaXNlZCwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZS5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6I2U2NGExOTtiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC44KX0uY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuY2FwLWJ0bi1vdXRsaW5lLC5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6I2U2NGExOTtjb2xvcjojZTY0YTE5fS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWQsLmNhcGliYXJhLmMtZGVlcC1vcmFuZ2UuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6cmdiYSgyMzAsNzQsMjUsLjgpfS5jYXBpYmFyYS5jLWRlZXAtb3JhbmdlLmRhcmstdGhlbWUgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheSwuY2FwaWJhcmEuYy1kZWVwLW9yYW5nZSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5e2JhY2tncm91bmQ6cmdiYSgyMzAsNzQsMjUsLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSgyMzAsNzQsMjUsLjUpfS5jYXBpYmFyYSAuYy1kZWVwLW9yYW5nZS0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiNlNjRhMTkhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1kZWVwLW9yYW5nZS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2ExMzQxMiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtb3JhbmdlLWwtLWJhY2tncm91bmR7YmFja2dyb3VuZDojZWU4MDVlIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZGVlcC1vcmFuZ2UtLXRleHR7Y29sb3I6I2U2NGExOSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtb3JhbmdlLWQtLXRleHR7Y29sb3I6I2ExMzQxMiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWRlZXAtb3JhbmdlLWwtLXRleHR7Y29sb3I6I2VlODA1ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLW9yYW5nZXtiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC4yKTtib3JkZXI6MXB4IHNvbGlkICNlNjRhMTl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1kZWVwLW9yYW5nZSAubGVmdC1pY29ue2JhY2tncm91bmQ6I2U2NGExOX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtb3JhbmdlIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCAjZTY0YTE5O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjMwLDc0LDI1LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWRlZXAtb3JhbmdlIC5uYW1le2NvbG9yOiNlNjRhMTl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLmMtZGVlcC1vcmFuZ2V7LS1sb2NhbC1jb2xvcjojZTY0YTE5Oy0tbG9jYWwtY29sb3ItZm9udDojZmZmfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIuYy1kZWVwLW9yYW5nZSwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtZGVlcC1vcmFuZ2UsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnJvd2RvdC0tcm93LmMtZGVlcC1vcmFuZ2UgLnJvd2RvdC0tZG90ey0tbG9jYWwtY29sb3I6I2U2NGExOX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1kZWVwLW9yYW5nZS5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDIzMCw3NCwyNSwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMjMwLDc0LDI1LC43KTtjb2xvcjojZmZmfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWRlZXAtb3JhbmdlLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC44KX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1kZWVwLW9yYW5nZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjMwLDc0LDI1LC4yKTtib3JkZXItY29sb3I6cmdiYSgyMzAsNzQsMjUsLjkpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWljb24uYy1kZWVwLW9yYW5nZXtiYWNrZ3JvdW5kOiNlNjRhMTl9LmNhcGliYXJhLmMtYnJvd246bm90KC5kYXJrLXRoZW1lKXtzY3JvbGxiYXItY29sb3I6IzY2NWU1YiB0cmFuc3BhcmVudH0uY2FwaWJhcmEuYy1icm93bjpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojNjY1ZTVifS5jYXBpYmFyYS5jLWJyb3duOm5vdCguZGFyay10aGVtZSkgLmhlYWRlci10b3B7YmFja2dyb3VuZDojYzdjN2M3fS5jYXBpYmFyYS5jLWJyb3duOm5vdCguZGFyay10aGVtZSkgLmNvcm5lcntiYWNrZ3JvdW5kOiNjN2M3Yzc7Ym9yZGVyLWNvbG9yOiNhZjg3Nzh9LmNhcGliYXJhLmMtYnJvd246bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNjN2M3Yzc7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYWY4Nzc4fS5jYXBpYmFyYS5jLWJyb3duOm5vdCguZGFyay10aGVtZSkgLmNvbnRhaW5lci10bCBoZWFkZXIgLm1lcy5tZXMtcmVkdWNlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCwjYzdjN2M3KSFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYnJvd246bm90KC5kYXJrLXRoZW1lKSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiNhZjg3Nzh9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIG5hdi5yaWdodHtib3JkZXItY29sb3I6IzM5MjgyMn0uY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyLC5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMzOTI4MjJ9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSA6Oi1tb3otc2VsZWN0aW9uLC5jYXBpYmFyYS5jLWJyb3duIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgOjpzZWxlY3Rpb24sLmNhcGliYXJhLmMtYnJvd24gOjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLnByb2dyZXNzLWJhciwuY2FwaWJhcmEuYy1icm93biAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMjEsODUsNzIsLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YWZ0ZXIsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmJlZm9yZSwuY2FwaWJhcmEuYy1icm93biAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWJyb3duIC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6Izc5NTU0OCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSBzZWxlY3QudGFicy1zZWxlY3QsLmNhcGliYXJhLmMtYnJvd24gc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgxMjEsODUsNzIsLjcpIWltcG9ydGFudDtib3JkZXItY29sb3I6Izc5NTU0OCFpbXBvcnRhbnR9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAudGltZSwuY2FwaWJhcmEuYy1icm93biAudGltZXtib3JkZXItY29sb3I6cmdiYSgxMjEsODUsNzIsLjYpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEuYy1icm93biAudGltZSAuc3ltYm9se2NvbG9yOiM3OTU1NDh9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAudGltZSBpbnB1dDpmb2N1cywuY2FwaWJhcmEuYy1icm93biAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24gLnRpbWUgaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMjEsODUsNzIsLjIpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3QsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LWJveCwuY2FwaWJhcmEuYy1icm93biAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuNil9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6Izc5NTU0ODtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDEyMSw4NSw3MiwuMil9LmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGUsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJyb3duIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXItY29sb3I6cmdiYSgxMjEsODUsNzIsLjYpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93biAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1icm93biAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgxMjEsODUsNzIsLjIpfS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7Ym9yZGVyOjJweCBzb2xpZCAjNzk1NTQ4fS5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtYnJvd24gLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6YWN0aXZlLC5jYXBpYmFyYS5jLWJyb3duIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMTIxLDg1LDcyLC4yKX0uY2FwaWJhcmEuYy1icm93biAuY2FwLWJ0bi1yYWlzZWQsLmNhcGliYXJhLmMtYnJvd24uZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuOCl9LmNhcGliYXJhLmMtYnJvd24gLmNhcC1idG4tb3V0bGluZSwuY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7Ym9yZGVyLWNvbG9yOiM3OTU1NDg7Y29sb3I6Izc5NTU0OH0uY2FwaWJhcmEuYy1icm93biAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWJyb3duLmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnJnYmEoMTIxLDg1LDcyLC44KX0uY2FwaWJhcmEuYy1icm93bi5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtYnJvd24gLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXtiYWNrZ3JvdW5kOnJnYmEoMTIxLDg1LDcyLC4zKTtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IHJnYmEoMTIxLDg1LDcyLC41KX0uY2FwaWJhcmEgLmMtYnJvd24tLWJhY2tncm91bmR7YmFja2dyb3VuZDojNzk1NTQ4IWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYnJvd24tZC0tYmFja2dyb3VuZHtiYWNrZ3JvdW5kOiM0OTMzMmIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1icm93bi1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6I2E1Nzg2OCFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJyb3duLS10ZXh0e2NvbG9yOiM3OTU1NDghaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1icm93bi1kLS10ZXh0e2NvbG9yOiM0OTMzMmIhaW1wb3J0YW50fS5jYXBpYmFyYSAuYy1icm93bi1sLS10ZXh0e2NvbG9yOiNhNTc4NjghaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYnJvd257YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuMik7Ym9yZGVyOjFweCBzb2xpZCAjNzk1NTQ4fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYnJvd24gLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiM3OTU1NDh9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1icm93biAubGVmdC1pY29uLm91dGxpbmVke2JvcmRlcjoxcHggc29saWQgIzc5NTU0ODtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDEyMSw4NSw3MiwuNyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1icm93biAubmFtZXtjb2xvcjojNzk1NTQ4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWJyb3duey0tbG9jYWwtY29sb3I6Izc5NTU0ODstLWxvY2FsLWNvbG9yLWZvbnQ6I2ZmZn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmMtYnJvd24sLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC5jLWJyb3duLC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWJyb3duIC5yb3dkb3QtLWRvdHstLWxvY2FsLWNvbG9yOiM3OTU1NDh9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYnJvd24uYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxMjEsODUsNzIsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDEyMSw4NSw3MiwuNyk7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWI6bm90KC5kaXNhYmxlZCkuYy1icm93bi5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYnJvd246aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEyMSw4NSw3MiwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMTIxLDg1LDcyLC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtYnJvd257YmFja2dyb3VuZDojNzk1NTQ4fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpe3Njcm9sbGJhci1jb2xvcjojNzY3Njc2IHRyYW5zcGFyZW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojNzY3Njc2fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIC5oZWFkZXItdG9we2JhY2tncm91bmQ6I2RjZGNkY30uY2FwaWJhcmEuYy1ibHVlX2dyZXk6bm90KC5kYXJrLXRoZW1lKSAuY29ybmVye2JhY2tncm91bmQ6I2RjZGNkYztib3JkZXItY29sb3I6Izk5YWViOH0uY2FwaWJhcmEuYy1ibHVlX2dyZXk6bm90KC5kYXJrLXRoZW1lKSAuY29udGFpbmVyLXRsIGhlYWRlcntiYWNrZ3JvdW5kOiNkY2RjZGM7Ym9yZGVyLWJvdHRvbS1jb2xvcjojOTlhZWI4fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIC5jb250YWluZXItdGwgaGVhZGVyIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2RjZGNkYykhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleTpub3QoLmRhcmstdGhlbWUpIG5hdi5yaWdodHtib3JkZXItY29sb3I6Izk5YWViOH0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaGVhZGVyLXRvcCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSBuYXYucmlnaHR7Ym9yZGVyLWNvbG9yOiMzNjQ3NGZ9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmNvcm5lcntib3JkZXItYm90dG9tLWNvbG9yOiMzNjQ3NGZ9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgOjotbW96LXNlbGVjdGlvbiwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoOTYsMTI1LDEzOSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIDo6c2VsZWN0aW9uLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoOTYsMTI1LDEzOSwuMikhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXIsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk2LDEyNSwxMzksLjIpIWltcG9ydGFudH0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5wcm9ncmVzcy1iYXI6YmVmb3JlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM2MDdkOGIhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIHNlbGVjdC50YWJzLXNlbGVjdCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSg5NiwxMjUsMTM5LC43KSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiM2MDdkOGIhaW1wb3J0YW50fS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC50aW1lLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAudGltZXtib3JkZXItY29sb3I6cmdiYSg5NiwxMjUsMTM5LC42KX0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAudGltZSAuc3ltYm9se2NvbG9yOiM2MDdkOGJ9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3VzLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAudGltZSBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNjA3ZDhiO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoOTYsMTI1LDEzOSwuMil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LWJveCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0LC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtYm94LC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0e2JvcmRlci1jb2xvcjpyZ2JhKDk2LDEyNSwxMzksLjYpfS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6YWN0aXZlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojNjA3ZDhiO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoOTYsMTI1LDEzOSwuMil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dCwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Ym9yZGVyLWNvbG9yOnJnYmEoOTYsMTI1LDEzOSwuNil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiAubmF2LWlucHV0LWZpbGU6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNjA3ZDhiO2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoOTYsMTI1LDEzOSwuMil9LmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2osLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqe2JvcmRlcjoycHggc29saWQgIzYwN2Q4Yn0uY2FwaWJhcmEuYy1ibHVlX2dyZXkuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXMsLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2o6Zm9jdXN7Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSg5NiwxMjUsMTM5LC4yKX0uY2FwaWJhcmEuYy1ibHVlX2dyZXkgLmNhcC1idG4tcmFpc2VkLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5jYXAtYnRuLXJhaXNlZHtib3JkZXItY29sb3I6IzYwN2Q4YjtiYWNrZ3JvdW5kOnJnYmEoOTYsMTI1LDEzOSwuOCl9LmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5jYXAtYnRuLW91dGxpbmUsLmNhcGliYXJhLmMtYmx1ZV9ncmV5LmRhcmstdGhlbWUgLmNhcC1idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzYwN2Q4Yjtjb2xvcjojNjA3ZDhifS5jYXBpYmFyYS5jLWJsdWVfZ3JleSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVkLC5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpyZ2JhKDk2LDEyNSwxMzksLjgpfS5jYXBpYmFyYS5jLWJsdWVfZ3JleS5kYXJrLXRoZW1lIC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXksLmNhcGliYXJhLmMtYmx1ZV9ncmV5IC5zZWxlY3QtY29udGFpbmVyIC5zZWxlY3RlZC1kYXl7YmFja2dyb3VuZDpyZ2JhKDk2LDEyNSwxMzksLjMpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwcHggcmdiYSg5NiwxMjUsMTM5LC41KX0uY2FwaWJhcmEgLmMtYmx1ZV9ncmV5LS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzYwN2Q4YiFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS1kLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzQxNTQ1ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS1sLS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzhhYTJhZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS0tdGV4dHtjb2xvcjojNjA3ZDhiIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtYmx1ZV9ncmV5LWQtLXRleHR7Y29sb3I6IzQxNTQ1ZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWJsdWVfZ3JleS1sLS10ZXh0e2NvbG9yOiM4YWEyYWUhaW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsLmMtYmx1ZV9ncmV5e2JhY2tncm91bmQ6cmdiYSg5NiwxMjUsMTM5LC4yKTtib3JkZXI6MXB4IHNvbGlkICM2MDdkOGJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlX2dyZXkgLmxlZnQtaWNvbntiYWNrZ3JvdW5kOiM2MDdkOGJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwuYy1ibHVlX2dyZXkgLmxlZnQtaWNvbi5vdXRsaW5lZHtib3JkZXI6MXB4IHNvbGlkICM2MDdkOGI7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSg5NiwxMjUsMTM5LC43KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbC5jLWJsdWVfZ3JleSAubmFtZXtjb2xvcjojNjA3ZDhifS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5jLWJsdWVfZ3JleXstLWxvY2FsLWNvbG9yOiM2MDdkOGI7LS1sb2NhbC1jb2xvci1mb250OiNmZmZ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci5jLWJsdWVfZ3JleSwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmMtYmx1ZV9ncmV5LC5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5yb3dkb3QtLXJvdy5jLWJsdWVfZ3JleSAucm93ZG90LS1kb3R7LS1sb2NhbC1jb2xvcjojNjA3ZDhifS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYjpub3QoLmRpc2FibGVkKS5jLWJsdWVfZ3JleS5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDk2LDEyNSwxMzksLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDk2LDEyNSwxMzksLjcpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYmx1ZV9ncmV5LmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoOTYsMTI1LDEzOSwuOCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiOm5vdCguZGlzYWJsZWQpLmMtYmx1ZV9ncmV5OmhvdmVye2JhY2tncm91bmQ6cmdiYSg5NiwxMjUsMTM5LC4yKTtib3JkZXItY29sb3I6cmdiYSg5NiwxMjUsMTM5LC45KX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29uLmMtYmx1ZV9ncmV5e2JhY2tncm91bmQ6IzYwN2Q4Yn0uY2FwaWJhcmEgKiwuY2FwaWJhcmEgOmFmdGVyLC5jYXBpYmFyYSA6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2FwaWJhcmEgaW5wdXR7b3V0bGluZTpub25lfS5jYXBpYmFyYSBpbnB1dFt0eXBlPW51bWJlcl17LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZH0uY2FwaWJhcmEgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5jYXBpYmFyYSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LmNhcGliYXJhIGlucHV0W3R5cGU9bnVtYmVyXTo6LW1vei1wbGFjZWhvbGRlcntvcGFjaXR5OjF9LmNhcGliYXJhIGlucHV0W3R5cGU9bnVtYmVyXTotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eToxfS5jYXBpYmFyYSBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVye29wYWNpdHk6MX0uY2FwaWJhcmEuZGFyay10aGVtZSAuaGlkZS1kYXJrLC5jYXBpYmFyYTpub3QoLmRhcmstdGhlbWUpIC5oaWRlLWxpZ2h0e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNhcGliYXJhIC50cnVuY2F0ZXt3aWR0aDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2FwaWJhcmEgLmhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLnRleHQtdGl0bGV7Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luOi41ZW0gLjNlbX0uY2FwaWJhcmEgLnRleHQtc3VidGl0bGV7Zm9udC1zaXplOi44NzVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luOi41ZW0gLjNlbTtmbGV4OjAgMCBhdXRvfS5jYXBpYmFyYSAudGV4dC1oaW50e2ZvbnQtc2l6ZTouNzVlbTttYXJnaW46LjNlbTt0ZXh0LWFsaWduOmxlZnQ7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jYXBpYmFyYSAudGV4dC1zdWJ0aXRsZS0ye2ZvbnQtc2l6ZTouNzVlbTttYXJnaW46LjVlbSAuM2VtO2ZsZXg6MCAwIGF1dG99LmNhcGliYXJhIC5kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9ja30uY2FwaWJhcmEgLmQtYmxvY2t7ZGlzcGxheTpibG9ja30uY2FwaWJhcmEgLmQtZmxleHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjk2MHB4KXsuY2FwaWJhcmEgLmMtZC1kZXNrdG9wLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZC1kZXNrdG9wLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWQtZGVza3RvcC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZC1kZXNrdG9wLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo5NTlweCl7LmNhcGliYXJhIC5jLWQtbW9iaWxlLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2FwaWJhcmEgLmMtZC1tb2JpbGUtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWQtbW9iaWxlLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNhcGliYXJhIC5jLWQtbW9iaWxlLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH19LmNhcGliYXJhe3Njcm9sbGJhci13aWR0aDphdXRvfS5jYXBpYmFyYSA6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7b3BhY2l0eTouNX0uY2FwaWJhcmEgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIsLmNhcGliYXJhIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2FwaWJhcmEgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOmdyZXl9LmNhcGliYXJhLmRhcmstdGhlbWUgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIsLmNhcGliYXJhLmRhcmstdGhlbWUgOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jYXBpYmFyYS5kYXJrLXRoZW1lIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojYmRiZGJkfS5jYXBpYmFyYXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseTpSb2JvdG8sc2Fucy1zZXJpZjtoZWlnaHQ6aW5oZXJpdDttYXgtaGVpZ2h0OmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZSl9LmNhcGliYXJhIHByZXtmb250LWZhbWlseTpSb2JvdG8sc2Fucy1zZXJpZiFpbXBvcnRhbnR9LmNhcGliYXJhe2NvbG9yOiMzNzQ3NGY7YmFja2dyb3VuZDojZjVmNWY1fS5jYXBpYmFyYS5kYXJrLXRoZW1le2NvbG9yOiNmMGYwZjA7YmFja2dyb3VuZDojMjIyODM3fS5jYXBpYmFyYSAuY29udGFpbmVyLXRse3dpZHRoOjEwMCU7aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci10b3AtaGVpZ2h0KSk7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItdG9wLWhlaWdodCkpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnNjcm9sbDttYXJnaW46MDt3aWxsLWNoYW5nZTpzY3JvbGwtcG9zaXRpb259LmNhcGliYXJhLmV4dGVuZGVkLXJpZ2h0IC5jb250YWluZXItdGx7d2lkdGg6Y2FsYygxMDAlIC0gdmFyKC0tbmF2LXJpZ2h0LXdpZHRoKSl9LmNhcGliYXJhIC5jb250YWluZXItdGx7YmFja2dyb3VuZDojZjVmNWY1fS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGx7YmFja2dyb3VuZDojMjIyODM3fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50b2RheS1saW5le3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGV9LmNhcGliYXJhIC5jb250YWluZXItdGwgLnRvZGF5LWxpbmUuZGlzYWJsZS1saW5lLC5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50b2RheS1saW5lLmRpc2FibGUtbGluZTphZnRlcntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50b2RheS1saW5lOmFmdGVye21hcmdpbi1sZWZ0OmNhbGModmFyKC0tbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSArIHZhcigtLWV4LW5hdi13aWR0aCkgKyB2YXIoLS1idG4tbmF2LXdpZHRoKSArIDFweCk7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztsZWZ0OjA7dG9wOjA7Y29udGVudDpcXFwiXFxcIjt3aWR0aDoycHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDE4MywyOCwyOCwuNCl9LmNhcGliYXJhIC5jb250YWluZXItdGwuaGVhZGVyLWV4dGVuZGVkIC5jb250YWluZXItdGwgLnRvZGF5LWxpbmU6YWZ0ZXJ7aGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpICsgdmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpKX0uY2FwaWJhcmEgLmNvcm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6dmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpO3otaW5kZXg6NDtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7Ym9yZGVyOnNvbGlkIHJnYmEoMCwwLDAsLjQpO2JvcmRlci13aWR0aDowIDAgMnB4O3BhZGRpbmctbGVmdDo4cHh9LmNhcGliYXJhIC5jb3JuZXI6bm90KC5yaWdodCl7bGVmdDowO2JvcmRlci1yaWdodC13aWR0aDoxcHg7d2lkdGg6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKX0uY2FwaWJhcmEgLmNvcm5lci5yaWdodHtyaWdodDowO3dpZHRoOnZhcigtLW5hdi1yaWdodC13aWR0aCk7ZGlzcGxheTpub25lfS5jYXBpYmFyYSAuY29ybmVyPmRpdjpub3QoW2NsYXNzXSl7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdH0uY2FwaWJhcmEgLmNvcm5lciAuYnRuLWNvbnRhaW5lcntwYWRkaW5nLXRvcDouNWVtfS5jYXBpYmFyYSAuY29ybmVyIC5idG4tY29udGFpbmVyIC5jb3JuZXItYnRue2ZvbnQtc2l6ZTouODI1ZW07bWFyZ2luOjAgNHB4O3BhZGRpbmc6NHB4IDhweH0uY2FwaWJhcmEgLmNvcm5lciAuY29ybmVyLXRpdGxle2hlaWdodDppbmhlcml0O2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXBpYmFyYSAuY29ybmVyIC5jb3JuZXItdGl0bGUgc3Bhbi5ib3R0b20tdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjhweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjk1OXB4KXsuY2FwaWJhcmEgLmNvcm5lciAuY29ybmVyLXRpdGxle2ZvbnQtc2l6ZTouNzVlbX19LmNhcGliYXJhIC5jb3JuZXIgLmluaXRpYWwtY29ybmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6dmFyKC0tbmF2LXdpZHRoKTt0b3A6MDt3aWR0aDp2YXIoLS1pbml0aWFsLW5hdi13aWR0aCk7aGVpZ2h0OnZhcigtLWhlYWRlci1oZWlnaHQpO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuY29ybmVyIC5pbml0aWFsLWNvcm5lciAuaW5pdGlhbC1jb3JuZXItdGl0bGV7aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6LTFweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dmVydGljYWwtYWxpZ246dG9wO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXBpYmFyYSAuY29ybmVyIC5pbml0aWFsLWNvcm5lciAuaW5pdGlhbC1jb3JuZXItdGl0bGUgLmJvdHRvbS1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTo4cHg7d2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2FwaWJhcmEgLmNvcm5lciAuaW5pdGlhbC1jb3JuZXIgLmluaXRpYWwtY29ybmVyLXRpdGxlIC5ib3R0b20tY29udGFpbmVyIC5pdGVtLWNvbHtmbGV4OjAgMCB2YXIoLS1uYXYtaXRlbS1jb2wtd2lkdGgpO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTouNzVlbX0uY2FwaWJhcmEgLmNvcm5lciAuZXh0ZW5kLWNvcm5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGModmFyKC0tbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSk7dG9wOjA7d2lkdGg6dmFyKC0tZXgtbmF2LXdpZHRoKTtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2t9LmNhcGliYXJhIC5jb3JuZXIgLmV4dGVuZC1jb3JuZXIgLmV4LWNvcm5lci10aXRsZXtoZWlnaHQ6aW5oZXJpdDt3aWR0aDppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDotMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt2ZXJ0aWNhbC1hbGlnbjp0b3A7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIC5jb3JuZXIgLmV4dGVuZC1jb3JuZXIgLmV4LWNvcm5lci10aXRsZSAuYm90dG9tLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjhweDt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5jYXBpYmFyYSAuY29ybmVyIC5leHRlbmQtY29ybmVyIC5leC1jb3JuZXItdGl0bGUgLmJvdHRvbS1jb250YWluZXIgLml0ZW0tY29se2ZsZXg6MCAwIHZhcigtLW5hdi1pdGVtLWNvbC13aWR0aCk7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOi43NWVtfS5jYXBpYmFyYSAuY29ybmVyIC5jYXAtYnRuLW5hdi1jb3JuZXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDp2YXIoLS1idG4tbmF2LXdpZHRoKTtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7bWluLXdpZHRoOjEwMHB4O3BhZGRpbmctdG9wOnZhcigtLWhlYWRlci1sYWJlbHMtaGVpZ2h0KX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXN7dGV4dC1hbGlnbjpyaWdodDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOnZhcigtLWhlYWRlci1sYWJlbHMtaGVpZ2h0KX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjNweH0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lcjpub3QoLnBlcnNpc3RlbnQpe2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lci5pbnB1dC10aXRsZS0tYWNjZW50IC5pbnB1dC10aXRsZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6Z3JleX0uY2FwaWJhcmEgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lciBzcGFuLmF2ZXJhZ2V7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1yaWdodDo0cHg7cGFkZGluZzozcHh9LmNhcGliYXJhIC5jb3JuZXIgLmNhcC1idG4tbmF2LWNvcm5lciAuaW5wdXQtdGl0bGVzIC5pbnB1dC10aXRsZS1jb250YWluZXIgLmlucHV0LXRpdGxle2hlaWdodDpjYWxjKHZhcigtLWhlYWRlci1pbnB1dC1oZWlnaHQpICsgMnB4KTtsaW5lLWhlaWdodDpjYWxjKHZhcigtLWhlYWRlci1pbnB1dC1oZWlnaHQpICsgMnB4KTtwYWRkaW5nLXJpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6Ljc1ZW19LmNhcGliYXJhLmV4dGVuZGVkLXJpZ2h0IC5jb3JuZXIucmlnaHR7ZGlzcGxheTpibG9ja30uY2FwaWJhcmEuaGVhZGVyLWV4dGVuZGVkIC5jb3JuZXIsLmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29ybmVyIC5jYXAtYnRuLW5hdi1jb3JuZXIsLmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29ybmVyIC5leHRlbmQtY29ybmVyLC5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgLmNvcm5lciAuaW5pdGlhbC1jb3JuZXJ7aGVpZ2h0OmNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyB2YXIoLS1leC1oZWFkZXItaGVpZ2h0KSl9LmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29ybmVyIC5jYXAtYnRuLW5hdi1jb3JuZXIgLmlucHV0LXRpdGxlcyAuaW5wdXQtdGl0bGUtY29udGFpbmVyOm5vdCgucGVyc2lzdGVudCl7ZGlzcGxheTp1bnNldH0uY2FwaWJhcmEuaGVhZGVyLWV4dGVuZGVkIC5jb3JuZXIgLmNhcC1idG4tbmF2LWNvcm5lciAuaW5wdXQtdGl0bGVzIC5pbnB1dC10aXRsZS1jb250YWluZXI6bm90KC5wZXJzaXN0ZW50KSAuYXZlcmFnZS1ib3h7dmlzaWJpbGl0eTp2aXNpYmxlfS5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgLmNvcm5lciAuY2FwLWJ0bi1uYXYtY29ybmVyIC5pbnB1dC10aXRsZXMgLmlucHV0LXRpdGxlLWNvbnRhaW5lcjpub3QoLnBlcnNpc3RlbnQpIC5pbnB1dC10aXRsZXt2aXNpYmlsaXR5OnZpc2libGU7aGVpZ2h0OmF1dG99LmNhcGliYXJhIC5jb3JuZXJ7YmFja2dyb3VuZDojZjFmZmZlfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb3JuZXJ7YmFja2dyb3VuZDojMzEzYjUwO2JvcmRlci1jb2xvcjpyZ2JhKDY0LDc4LDEwNSwuNil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNvcm5lciAuaW5wdXQtdGl0bGVzIC5pbnB1dC10aXRsZS1jb250YWluZXIgLmlucHV0LXRpdGxle2NvbG9yOmhzbGEoMCwwJSwxMDAlLC44KSFpbXBvcnRhbnR9LmNhcGliYXJhIC5oZWFkZXItdG9we3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLWhlYWRlci10b3AtaGVpZ2h0KTtwYWRkaW5nOjAgLjVlbTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO3otaW5kZXg6NX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnNwYWNlcntmbGV4OjEgMCBhdXRvfS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2JvcmRlci1yaWdodDoxcHggc29saWQgaHNsYSgwLDAlLDQzLjUlLC4zKTttYXJnaW4tcmlnaHQ6LjVlbX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyOm5vdCg6ZW1wdHkpe3BhZGRpbmc6MH0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIGJ1dHRvbi50YWJ7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzouMjVlbSAxZW07Zm9udC13ZWlnaHQ6NzAwO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luOi41ZW0gLjVlbSAwIDA7Ym9yZGVyLXJhZGl1czozMHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgYnV0dG9uLnRhYjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDAsMCwwLC4zKX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIGJ1dHRvbi50YWIuZGlzYWJsZWR7Y29sb3I6Z3JleX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIGJ1dHRvbi50YWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOmdyZXl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lcntkaXNwbGF5OmZsZXh9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5ke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7bWFyZ2luLXJpZ2h0OjFlbTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOi44ZW0gLjVlbSAuNWVtIDB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kOm5vdCguYWN0aXZlKXtvcGFjaXR5Oi41fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAubGVnZW5kcy1jb250YWluZXIgLmxlZ2VuZDpub3QoLmFjdGl2ZSkgLmljb24tbGVnZW5ke2JhY2tncm91bmQ6Z3JleSFpbXBvcnRhbnR9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kIC5pY29uLWxlZ2VuZHt3aWR0aDouODI1ZW07aGVpZ2h0Oi44MjVlbTttYXJnaW46MnB4IC41ZW0gMnB4IDA7YmFja2dyb3VuZDpncmV5O2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjQpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6MXB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuNCl9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kIC5pY29uLWxlZ2VuZC5jaXJjbGV7Ym9yZGVyLXJhZGl1czo1MCV9LmNhcGliYXJhIC5oZWFkZXItdG9wIC5sZWdlbmRzLWNvbnRhaW5lciAubGVnZW5kOmhvdmVyIHNwYW57dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2FwaWJhcmEgLmhlYWRlci10b3AgLmxlZ2VuZHMtY29udGFpbmVyLmZvcmNlLW1vYmlsZS1zdHlsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJlbTt0b3A6MmVtO2JhY2tncm91bmQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC40KTtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpIWltcG9ydGFudH0uY2FwaWJhcmEgLmhlYWRlci10b3AgLmxlZ2VuZHMtY29udGFpbmVyLmZvcmNlLW1vYmlsZS1zdHlsZSAubGVnZW5ke2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6LjVlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjk1OXB4KXsuY2FwaWJhcmEgLmhlYWRlci10b3AgLmxlZ2VuZHMtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MmVtO3RvcDoyZW07YmFja2dyb3VuZDppbmhlcml0O2NvbG9yOmluaGVyaXQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6Njtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjQpO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMikhaW1wb3J0YW50fS5jYXBpYmFyYSAuaGVhZGVyLXRvcCAubGVnZW5kcy1jb250YWluZXIgLmxlZ2VuZHtmb250LXNpemU6MTZweDtwYWRkaW5nOi41ZW19fS5jYXBpYmFyYSAuaGVhZGVyLXRvcHtiYWNrZ3JvdW5kOiNmMWZmZmV9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFie2NvbG9yOiMzMTNiNTB9LmNhcGliYXJhIC5oZWFkZXItdG9wIC50YWJzLWNvbnRhaW5lciAudGFiLmRpc2FibGVke2NvbG9yOnJnYmEoNDksNTksODAsLjUpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5oZWFkZXItdG9we2JhY2tncm91bmQ6IzMxM2I1MH0uY2FwaWJhcmEuZGFyay10aGVtZSAuaGVhZGVyLXRvcCAudGFicy1jb250YWluZXIgLnRhYntjb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmhlYWRlci10b3AgLnRhYnMtY29udGFpbmVyIC50YWIuZGlzYWJsZWR7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjQpfS5jYXBpYmFyYSAuY29ybmVyLWZvb3Rlcntwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7bGVmdDowO2JvdHRvbTowO3otaW5kZXg6Mzt3aWR0aDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KSotMSk7Ym94LXNpemluZzpib3JkZXItYm94fS5jYXBpYmFyYSAuY29ybmVyLWZvb3RlciAuY29ybmVyLXRpdGxle2xpbmUtaGVpZ2h0OjMwcHg7aGVpZ2h0OmluaGVyaXQ7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmxlZnQ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjRweCA4cHh9LmNhcGliYXJhIC5jb3JuZXItZm9vdGVye2JhY2tncm91bmQ6Izc4OTA5Yztjb2xvcjojZmZmfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb3JuZXItZm9vdGVye2JhY2tncm91bmQ6IzMxM2I1MDtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYSBuYXYucmlnaHR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6Y2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWhlYWRlci10b3AtaGVpZ2h0KSk7aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1oZWlnaHQpIC0gdmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpKTtvdmVyZmxvdy15OnNjcm9sbDtvdmVyZmxvdy14OmhpZGRlbjt6LWluZGV4OjU7ZGlzcGxheTpub25lO2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZWR9LmNhcGliYXJhIG5hdi5yaWdodCwuY2FwaWJhcmEgbmF2LnJpZ2h0IC5jaGlsZC1uYXYtaXRlbSwuY2FwaWJhcmEgbmF2LnJpZ2h0IC5uYXYtaXRlbXt3aWR0aDp2YXIoLS1uYXYtcmlnaHQtd2lkdGgpfS5jYXBpYmFyYSBuYXYucmlnaHQgLm5hdi1pbnB1dC1jb250YWluZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmNhcGliYXJhIG5hdi5yaWdodCAubmF2LWlucHV0LWNvbnRhaW5lciAuYnV0dG9uLXNlY3Rpb257cGFkZGluZy1ib3R0b206Ljc1ZW07cGFkZGluZy10b3A6Ljc1ZW07cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O2JvdHRvbTowfS5jYXBpYmFyYSBuYXYubGVmdHttaW4taGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7bGVmdDowO3dpZHRoOmNhbGModmFyKC0tbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSArIHZhcigtLWV4LW5hdi13aWR0aCkgKyB2YXIoLS1idG4tbmF2LXdpZHRoKSk7aGVpZ2h0OmF1dG87ei1pbmRleDoyO2JvcmRlci1yaWdodDoxcHggc29saWQgI2IwYmVjNTtvdmVyZmxvdzp2aXNpYmxlO2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMil9LmNhcGliYXJhIG5hdi5sZWZ0IC5jaGlsZC1uYXYtaXRlbSwuY2FwaWJhcmEgbmF2LmxlZnQgLm5hdi1pdGVte3dpZHRoOnZhcigtLW5hdi13aWR0aCl9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW17bWluLXdpZHRoOjI1MHB4O21heC13aWR0aDo1MDBweDt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnQ7bWluLWhlaWdodDo3MHB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6M3JlbTt0b3A6MDtib3JkZXI6MXB4IHNvbGlkIGdyZXk7ei1pbmRleDoyO2JvcmRlci1yYWRpdXM6NXB4O3BhZGRpbmc6MTZweDt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcDtib3gtc2hhZG93OjAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsLjIpLDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLC4xNCksMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwuMTIpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLjVyZW0gKyB2YXIoLS1pdGVtLWhlaWdodCkpKX0uY2FwaWJhcmEgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbS50by1ib3R0b217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygtMTAwJSAtIC41cmVtKSl9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1kZXRhaWwgLmRldGFpbC10aXRsZXtmb250LXNpemU6MS4xMjVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luLWJvdHRvbTo4cHg7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjgwcHh9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1kZXRhaWwgLmRldGFpbC1zdWJ0aXRsZXtmb250LXNpemU6Ljg3NTttYXJnaW4tYm90dG9tOjhweH0uY2FwaWJhcmEgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbSAuaGVhZGVyLWRldGFpbCAuaGVhZGVyLWNoaXB7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTZweDt0b3A6MTZweDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyOjNweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6NXB4fS5jYXBpYmFyYSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5kZXRhaWwtY29udGFpbmVyPmRpdnttYXJnaW46NnB4IDB9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0e3dpZHRoOnZhcigtLWluaXRpYWwtbmF2LXdpZHRoKTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLW5hdi13aWR0aCk7dG9wOjA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2t9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtLC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjBiZWM1O2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtsaW5lLWhlaWdodDozNHB4fS5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS10aXRsZSwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tdGl0bGV7ZmxleDoxIDAgYXV0bztwYWRkaW5nOjRweCA4cHh9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbCwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29se2ZsZXg6MCAwIHZhcigtLW5hdi1pdGVtLWNvbC13aWR0aCk7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo0cHggOHB4fS5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0LC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0e3BhZGRpbmc6MH0uY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD4uaG91ci1pbnB1dCwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD4uaG91ci1pbnB1dHtmb250LXNpemU6Ljg3NWVtO3dpZHRoOmNhbGMoMTAwJSAtIDhweCk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDoyNHB4fS5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0LC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0e3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouODc1ZW07d2lkdGg6Y2FsYygxMDAlIC0gOHB4KTtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgZ3JleTtib3JkZXItcmFkaXVzOjNweDtoZWlnaHQ6MjRweDttYXJnaW46OHB4IDRweCA0cHg7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMil9LmNhcGliYXJhIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQ+aW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmZvY3VzLC5jYXBpYmFyYSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD5pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC44KX0uY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdHt3aWR0aDp2YXIoLS1leC1uYXYtd2lkdGgpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpKTt0b3A6MDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9ja30uY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0sLmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVte2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiMGJlYzU7aGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2xpbmUtaGVpZ2h0OjEuNzVyZW19LmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLXRpdGxlLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS10aXRsZXtmbGV4OjEgMCBhdXRvO3BhZGRpbmc6NHB4IDhweH0uY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2x7ZmxleDowIDAgdmFyKC0tbmF2LWl0ZW0tY29sLXdpZHRoKTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjRweCA4cHh9LmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQsLmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXR7cGFkZGluZzowfS5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0LC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0e3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouODc1ZW07d2lkdGg6Y2FsYygxMDAlIC0gOHB4KTtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgZ3JleTtib3JkZXItcmFkaXVzOjNweDtoZWlnaHQ6MjRweDttYXJnaW46OHB4IDRweCA0cHg7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMil9LmNhcGliYXJhIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQ+aW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmZvY3VzLC5jYXBpYmFyYSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0PmlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dD5pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC44KX0uY2FwaWJhcmEgbmF2LmxlZnQgLmNhcC1idG4tbmF2LWxpc3R7bGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpKTt3aWR0aDp2YXIoLS1idG4tbmF2LXdpZHRoKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtvdmVyZmxvdzpoaWRkZW59LmNhcGliYXJhIG5hdi5sZWZ0IC5jYXAtYnRuLW5hdi1saXN0IC5jYXAtYnRuLWNoaWxkLW5hdi1pdGVtIC5jYXAtYnRuLW5hdi1pdGVtLWNvbnRlbnQsLmNhcGliYXJhIG5hdi5sZWZ0IC5jYXAtYnRuLW5hdi1saXN0IC5jYXAtYnRuLW5hdi1pdGVtIC5jYXAtYnRuLW5hdi1pdGVtLWNvbnRlbnR7aGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTt3aWR0aDppbmhlcml0O3BhZGRpbmc6NHB4IDZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjBiZWM1O3RleHQtYWxpZ246cmlnaHR9LmNhcGliYXJhIG5hdi5sZWZ0IC5uYXYtaXRlbS10b3RhbC1mb290ZXJ7cGFkZGluZy10b3A6M3B4fS5jYXBpYmFyYSBuYXYgLmNhcC1idG4tbmF2LWl0ZW0ucGFyZW50LC5jYXBpYmFyYSBuYXYgLmV4LW5hdi1pdGVtLnBhcmVudCwuY2FwaWJhcmEgbmF2IC5pbml0aWFsLW5hdi1pdGVtLnBhcmVudCwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1jb250YWluZXIucGFyZW50e2JhY2tncm91bmQ6cmdiYSgyNSwxMTgsMjEwLC4xKX0uY2FwaWJhcmEgbmF2IC5jYXAtYnRuLW5hdi1pdGVtLnBhcmVudD4uaXRlbS10aXRsZSwuY2FwaWJhcmEgbmF2IC5leC1uYXYtaXRlbS5wYXJlbnQ+Lml0ZW0tdGl0bGUsLmNhcGliYXJhIG5hdiAuaW5pdGlhbC1uYXYtaXRlbS5wYXJlbnQ+Lml0ZW0tdGl0bGUsLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tY29udGFpbmVyLnBhcmVudD4uaXRlbS10aXRsZXttYXgtd2lkdGg6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWluaXRpYWwtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpIC0gNjBweCk7d2lkdGg6YXV0b30uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbXttaW4taGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjBiZWM1O2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCl9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAudHJlZS1pY29uLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbnt0cmFuc2l0aW9uOmFsbCAuNXMgZWFzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO3dpZHRoOjM0cHg7ZmxleDowIDAgMzRweDtmb250LXNpemU6MS41ZW07dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAudHJlZS1pY29uOmZvY3VzLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDAsMCwwLC4zKX0uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5uYXYtaXRlbS1pY29uLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLm5hdi1pdGVtLWljb257ZmxleDowIDAgMzRweDtmb250LXNpemU6MS4xMjVlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6NDBweDttYXJnaW4tdG9wOjEycHh9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAubmF2LWl0ZW0taWNvbiBwYXRoLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLm5hdi1pdGVtLWljb24gcGF0aHt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUsLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAubmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAuaXRlbS10aXRsZXtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6Z3JpZDtmb250LXNpemU6MWVtO2xpbmUtaGVpZ2h0OjM0cHg7cGFkZGluZzo0cHggOHB4fS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuZnVsbC13aWR0aCwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5pdGVtLXRpdGxlLmZ1bGwtd2lkdGh7ZmxleDoxIDAgYXV0bztkaXNwbGF5OmlubGluZS1ibG9ja30uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5pdGVtLXRpdGxlLmNsaWNrZWFibGUsLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAubmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAuaXRlbS10aXRsZS5jbGlja2VhYmxle2N1cnNvcjpwb2ludGVyfS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuY2xpY2tlYWJsZTpob3ZlciwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5pdGVtLXRpdGxlLmNsaWNrZWFibGU6aG92ZXJ7YmFja2dyb3VuZDpoc2xhKDAsMCUsMzkuMiUsLjIpIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuaG92ZXJhYmxlOmhvdmVyLC5jYXBpYmFyYSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLml0ZW0tdGl0bGUuaG92ZXJhYmxlOmhvdmVye2JhY2tncm91bmQ6aHNsYSgwLDAlLDM5LjIlLC4yKSFpbXBvcnRhbnR9LmNhcGliYXJhLmV4dGVuZGVkLXJpZ2h0IG5hdi5yaWdodHtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgbmF2LmxlZnR7bWluLWhlaWdodDpjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpKX0uY2FwaWJhcmEuaGVhZGVyLWV4dGVuZGVkIG5hdi5yaWdodHt0b3A6Y2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWhlYWRlci10b3AtaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpKTtoZWlnaHQ6Y2FsYygxMDAlIC0gdmFyKC0taGVhZGVyLWhlaWdodCkgLSB2YXIoLS1oZWFkZXItdG9wLWhlaWdodCkgLSB2YXIoLS1leC1oZWFkZXItaGVpZ2h0KSl9LmNhcGliYXJhIG5hdi5sZWZ0LC5jYXBpYmFyYSBuYXYucmlnaHQsLmNhcGliYXJhIG5hdi5yaWdodCAuYnV0dG9uLXNlY3Rpb257YmFja2dyb3VuZDojZmFmYWZhfS5jYXBpYmFyYSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVte2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKTtiYWNrZ3JvdW5kOiNmZmZ9LmNhcGliYXJhIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1jaGlwLnJlZC1saWdodHtib3JkZXItY29sb3I6I2Y4NDc0N30uY2FwaWJhcmEgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbSAuaGVhZGVyLWNoaXAueWVsbG93LWxpZ2h0e2JvcmRlci1jb2xvcjojZmRkODM1fS5jYXBpYmFyYSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5oZWFkZXItY2hpcC5ncmVlbi1saWdodHtib3JkZXItY29sb3I6IzM4OTkzZH0uY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5jaGlsZC1uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC50cmVlLWljb24sLmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAubmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAudHJlZS1pY29ue2NvbG9yOiMzNzQ3NGZ9LmNhcGliYXJhIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAubmF2LWl0ZW0taWNvbiwuY2FwaWJhcmEgbmF2IC5uYXYtaXRlbS1saXN0IC5uYXYtaXRlbSAubmF2LWl0ZW0tY29udGFpbmVyIC5uYXYtaXRlbS1pY29ue2NvbG9yOnJnYmEoNTUsNzEsNzksLjIpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5yaWdodCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYucmlnaHQgLmJ1dHRvbi1zZWN0aW9ue2JhY2tncm91bmQ6IzIyMjgzN30uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdHtiYWNrZ3JvdW5kOiMyMjI4Mzc7Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVte2JvcmRlci1jb2xvcjojNDA0ZTY5O2JhY2tncm91bmQ6IzIyMjgzN30uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5oZWFkZXItY2hpcHtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5kZXRhaWwtbmF2LWl0ZW0gLmhlYWRlci1jaGlwLnJlZC1saWdodHtib3JkZXItY29sb3I6I2FhMWExYX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZGV0YWlsLW5hdi1pdGVtIC5oZWFkZXItY2hpcC55ZWxsb3ctbGlnaHR7Ym9yZGVyLWNvbG9yOiNmYmNkMDB9LmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmRldGFpbC1uYXYtaXRlbSAuaGVhZGVyLWNoaXAuZ3JlZW4tbGlnaHR7Ym9yZGVyLWNvbG9yOiMzODhlM2N9LmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0sLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuZXgtbmF2LWl0ZW0sLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW17Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCAuaG91ci1pbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCAuaG91ci1pbnB1dCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0e2JhY2tncm91bmQ6IzQwNGU2OTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCAuaG91ci1pbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmNoaWxkLWluaXRpYWwtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5leHRlbmQtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmV4dGVuZC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuZXh0ZW5kLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmNoaWxkLWV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5jaGlsZC1pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmluaXRpYWwtbmF2LWxpc3QgLmV4LW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgLmhvdXItaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5leC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuZXgtbmF2LWl0ZW0gLml0ZW0tY29sLmhhcy1pbnB1dCBpbnB1dDpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuaW5pdGlhbC1uYXYtbGlzdCAuaW5pdGlhbC1uYXYtaXRlbSAuaXRlbS1jb2wuaGFzLWlucHV0IC5ob3VyLWlucHV0OmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdi5sZWZ0IC5pbml0aWFsLW5hdi1saXN0IC5pbml0aWFsLW5hdi1pdGVtIC5pdGVtLWNvbC5oYXMtaW5wdXQgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMil9LmNhcGliYXJhLmRhcmstdGhlbWUgbmF2LmxlZnQgLmNhcC1idG4tbmF2LWxpc3QgLmNhcC1idG4tY2hpbGQtbmF2LWl0ZW0gLmNhcC1idG4tbmF2LWl0ZW0tY29udGVudCwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYubGVmdCAuY2FwLWJ0bi1uYXYtbGlzdCAuY2FwLWJ0bi1uYXYtaXRlbSAuY2FwLWJ0bi1uYXYtaXRlbS1jb250ZW50LC5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLmNoaWxkLW5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbiwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLnRyZWUtaWNvbntjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIG5hdiAubmF2LWl0ZW0tbGlzdCAuY2hpbGQtbmF2LWl0ZW0gLm5hdi1pdGVtLWNvbnRhaW5lciAubmF2LWl0ZW0taWNvbiwuY2FwaWJhcmEuZGFyay10aGVtZSBuYXYgLm5hdi1pdGVtLWxpc3QgLm5hdi1pdGVtIC5uYXYtaXRlbS1jb250YWluZXIgLm5hdi1pdGVtLWljb257Y29sb3I6aHNsYSgwLDAlLDk0LjElLC4yKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXJ7aGVpZ2h0OnZhcigtLWhlYWRlci1oZWlnaHQpO3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDt0b3A6MDttaW4td2lkdGg6MTAwJTtwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7ei1pbmRleDozO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIGdyZXk7Ym94LXNpemluZzpib3JkZXItYm94O2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMil9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVke2hlaWdodDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO3dpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0e3BhZGRpbmc6MXB4IDA7ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdDpub3QoLnBlcnNpc3RlbnQpe2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXItZXh0ZW5kZWQgLmlucHV0LWxpc3Q+ZGl2e3dpZHRoOnZhcigtLWRheS13aWR0aCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0PmRpdj5zcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6aW5oZXJpdDtsaW5lLWhlaWdodDp2YXIoLS1oZWFkZXItaW5wdXQtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0taGVhZGVyLWlucHV0LWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi44NzVlbX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXItZXh0ZW5kZWQgLmlucHV0LWxpc3QgLmRpYS1pbnB1dCBpbnB1dHt3aWR0aDppbmhlcml0O2hlaWdodDp2YXIoLS1oZWFkZXItaW5wdXQtaGVpZ2h0KTtib3JkZXI6MXB4IHNvbGlkIGdyZXk7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuNSk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi44NzVlbX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXItZXh0ZW5kZWQgLmlucHV0LWxpc3QgLmRpYS1pbnB1dCBpbnB1dDphY3RpdmUsLmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IC5kaWEtaW5wdXQgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuOCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2hlaWdodDp2YXIoLS1oZWFkZXItbGFiZWxzLWhlaWdodCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyIC5oZWFkZXItaXRlbXtwYWRkaW5nOjZweCA4cHg7bWluLXdpZHRoOnZhcigtLWl0ZW0tbWluLXdpZHRoKTtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmhlYWRlci1jb250YWluZXIgLmhlYWRlci1pdGVtIHNwYW4uYm90dG9tLXRleHR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTo4cHg7d2lkdGg6MTAwJX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpb3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnR9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLmFnbm97cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6MzJweDtmb250LXNpemU6Ljc1ZW07bWFyZ2luLXRvcDo0cHh9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lc2Vze2Rpc3BsYXk6YmxvY2s7ZGlzcGxheTpmbGV4fS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpb3tkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6dmFyKC0tZGF5LXdpZHRoKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lc3tkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjotd2Via2l0LXN0aWNreTtwb3NpdGlvbjpzdGlja3k7bGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1idG4tbmF2LXdpZHRoKSk7cGFkZGluZy1sZWZ0Oi41ZW07cGFkZGluZy1yaWdodDoyZW07Zm9udC1zaXplOi44NzVlbTttYXJnaW4tdG9wOjZweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZHt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO21heC13aWR0aDp2YXIoLS1kYXktd2lkdGgpO292ZXJmbG93OmhpZGRlbn0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZC5tZXMtcmVkdWNlZC0ye3dpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSoyKTttYXgtd2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpKjIpfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAubWVzLm1lcy1yZWR1Y2VkLm1lcy1yZWR1Y2VkLTN7d2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpKjMpO21heC13aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkqMyl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5tZXMubWVzLXJlZHVjZWQubWVzLXJlZHVjZWQtNHt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkqNCk7bWF4LXdpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSo0KX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZCAubWVzLWxhYmVse3dpZHRoOi13ZWJraXQtbWF4LWNvbnRlbnQ7d2lkdGg6LW1vei1tYXgtY29udGVudDt3aWR0aDptYXgtY29udGVudH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLm1lcy5tZXMtcmVkdWNlZDphZnRlcntjb250ZW50OlxcXCJcXFwiO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LHJlZCk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtoZWlnaHQ6MTAwJTt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkvMil9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFze2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjVweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLmRpYXMgLmRpYS1jYWxlbmRhcmlve3dpZHRoOnZhcigtLWRheS13aWR0aCk7aGVpZ2h0OnZhcigtLWhlYWRlci1kYXktaGVpZ2h0KTt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Zm9udC1zaXplOi44NzVlbTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjRweCA2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5pcy1jbGlja2VhYmxle2N1cnNvcjpwb2ludGVyfS5jYXBpYmFyYS5oZWFkZXItZXh0ZW5kZWQgLmNvbnRhaW5lci10bCBoZWFkZXJ7aGVpZ2h0OmNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyB2YXIoLS1leC1oZWFkZXItaGVpZ2h0KSl9LmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdDpub3QoLnBlcnNpc3RlbnQpe2Rpc3BsYXk6ZmxleH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojZjFmZmZlO2NvbG9yOiMzNzQ3NGZ9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5tZXMubWVzLXJlZHVjZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsI2YxZmZmZSl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby53ZWVrZW5ke2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMSk7Y29sb3I6IzI2MzIzOH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLmRpYXMgLmRpYS1jYWxlbmRhcmlvLnRvZGF5e2JhY2tncm91bmQ6cmdiYSgyMjksNTcsNTMsLjkpO2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5hY3RpdmV7YmFja2dyb3VuZDpncmVlbjtjb2xvcjojZmZmfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAuZGlhcyAuZGlhLWNhbGVuZGFyaW8uaXMtY2xpY2tlYWJsZTpob3ZlcntiYWNrZ3JvdW5kOmhzbGEoMCwwJSwzOS4yJSwuNCl9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5pcy1jbGlja2VhYmxlOmFjdGl2ZXtiYWNrZ3JvdW5kOmhzbGEoMCwwJSwzOS4yJSwuNil9LmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IC5kaWEtaW5wdXQgaW5wdXQsLmNhcGliYXJhIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IGRpdj5zcGFue2NvbG9yOiMzMTNiNTB9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXJ7YmFja2dyb3VuZDojMzEzYjUwO2NvbG9yOiNmMGYwZjA7Ym9yZGVyLWNvbG9yOnJnYmEoNjQsNzgsMTA1LC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAubWVzLm1lcy1yZWR1Y2VkOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LCMzMTNiNTApfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpb3tib3JkZXItY29sb3I6cmdiYSg2NCw3OCwxMDUsLjYpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby53ZWVrZW5ke2JhY2tncm91bmQ6IzIyMjgzNztjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby50b2RheXtiYWNrZ3JvdW5kOnJnYmEoMTgzLDI4LDI4LC42KTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5hZ25vLWNhbGVuZGFyaW8gLm1lcy1jYWxlbmRhcmlvIC5kaWFzIC5kaWEtY2FsZW5kYXJpby5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDU2LDE0Miw2MCwuNik7Y29sb3I6I2YwZjBmMH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuYWduby1jYWxlbmRhcmlvIC5tZXMtY2FsZW5kYXJpbyAuZGlhcyAuZGlhLWNhbGVuZGFyaW8uaXMtY2xpY2tlYWJsZTpob3ZlcntiYWNrZ3JvdW5kOmhzbGEoMCwwJSwzOS4yJSwuNCl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNvbnRhaW5lci10bCBoZWFkZXIgLmFnbm8tY2FsZW5kYXJpbyAubWVzLWNhbGVuZGFyaW8gLmRpYXMgLmRpYS1jYWxlbmRhcmlvLmlzLWNsaWNrZWFibGU6YWN0aXZle2JhY2tncm91bmQ6aHNsYSgwLDAlLDM5LjIlLC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdCBkaXY+c3Bhbntjb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCkhaW1wb3J0YW50fS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jb250YWluZXItdGwgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyLWV4dGVuZGVkIC5pbnB1dC1saXN0IC5kaWEtaW5wdXQgaW5wdXR7YmFja2dyb3VuZDpyZ2JhKDY0LDc4LDEwNSwuNik7Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjgpIWltcG9ydGFudDtib3JkZXItY29sb3I6IzMxM2I1MH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdCAuZGlhLWlucHV0IGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuY29udGFpbmVyLXRsIGhlYWRlciAuaGVhZGVyLWNvbnRhaW5lci1leHRlbmRlZCAuaW5wdXQtbGlzdCAuZGlhLWlucHV0IGlucHV0OmZvY3Vze2JhY2tncm91bmQ6aHNsYSgwLDAlLDEwMCUsLjIpfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC5wbG90LXZlcnRpY2FsLWNvbnRhaW5lcntoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC12ZXJ0aWNhbC1jb250YWluZXIgLnBsb3QtdmVydGljYWx7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zKTt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDpjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCkgLSB2YXIoLS1oZWFkZXItdG9wLWhlaWdodCkpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC12ZXJ0aWNhbC1jb250YWluZXIgLnBsb3QtdmVydGljYWwucmFpbntiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNTNkZWcscmdiYSgzLDE1NSwyMjksLjIpLHJnYmEoMywxNTUsMjI5LC4yKSA1cHgsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCAxMnB4KX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC1ob3Jpem9udGFsLWNvbnRhaW5lcntoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyh2YXIoLS1uYXYtd2lkdGgpICsgdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpICsgdmFyKC0tZXgtbmF2LXdpZHRoKSArIHZhcigtLWJ0bi1uYXYtd2lkdGgpKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAucGxvdC1ob3Jpem9udGFsLWNvbnRhaW5lciAucGxvdC1ob3Jpem9udGFse2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMyk7d2lkdGg6MTAwdnc7aGVpZ2h0OnZhcigtLWl0ZW0taGVpZ2h0KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9LmNhcGliYXJhIC5jb250YWluZXItdGwgLnBsb3QtaG9yaXpvbnRhbC1jb250YWluZXIgLnBsb3QtaG9yaXpvbnRhbC5wbG90LXBhcmVudHtiYWNrZ3JvdW5kOnJnYmEoMjUsMTE4LDIxMCwuMSl9LmNhcGliYXJhIC5jb250YWluZXItdGwuZXh0ZW5kZWQtcmlnaHQgLmNvbnRhaW5lci10bCAucGxvdC1jb250YWluZXIgLnBsb3QtdmVydGljYWx7aGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpICsgdmFyKC0taGVhZGVyLXRvcC1oZWlnaHQpKX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCBmb290ZXJ7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O2JvdHRvbTowO21pbi13aWR0aDoxMDAlO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3otaW5kZXg6Mjtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNhcGliYXJhIC5jb250YWluZXItdGwgZm9vdGVyIC5mb290ZXItY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4td2lkdGg6MTAwJTtkaXNwbGF5OmZsZXh9LmNhcGliYXJhIC5jb250YWluZXItdGwgZm9vdGVyIC5mb290ZXItY29udGFpbmVyIC5mb290ZXItaXRlbXtwYWRkaW5nOjEwcHggMnB4O3dpZHRoOnZhcigtLWRheS13aWR0aCk7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6dmFyKC0taXRlbS1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIGZvb3RlcntiYWNrZ3JvdW5kOiM3ODkwOWM7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmNvbnRhaW5lci10bC5kYXJrLXRoZW1lIGZvb3RlcntiYWNrZ3JvdW5kOiMzMTNiNTA7Y29sb3I6I2YwZjBmMH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKHZhcigtLW5hdi13aWR0aCkgKyB2YXIoLS1pbml0aWFsLW5hdi13aWR0aCkgKyB2YXIoLS1leC1uYXYtd2lkdGgpICsgdmFyKC0tYnRuLW5hdi13aWR0aCkpO3RvcDp2YXIoLS1oZWFkZXItaGVpZ2h0KTt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1uYXYtd2lkdGgpIC0gdmFyKC0taW5pdGlhbC1uYXYtd2lkdGgpIC0gdmFyKC0tZXgtbmF2LXdpZHRoKSAtIHZhcigtLWJ0bi1uYXYtd2lkdGgpKTttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtoZWlnaHQ6Y2FsYygxMDAlIC0gdmFyKC0taGVhZGVyLWhlaWdodCkpO21hcmdpbi10b3A6LTFweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGUgLmRheS1tb3VzZS1vdmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7Ym9yZGVyOjNweCBzb2xpZCByZ2JhKDI0NSwxMjQsMCwuNSk7Ym94LXNoYWRvdzowIDAgMnB4ICNmNTdjMDAsaW5zZXQgMCAwIDNweCAjZjU3YzAwO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBlYXNlO292ZXJmbG93OnZpc2libGU7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50YWJsZSAuZGF5LW1vdXNlLW92ZXI6YWZ0ZXIsLmNhcGliYXJhIC5jb250YWluZXItdGwgLnRhYmxlIC5kYXktbW91c2Utb3ZlcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpyZ2JhKDI0NSwxMjQsMCwuMSk7Y29udGVudDpcXFwiXFxcIjtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50YWJsZSAuZGF5LW1vdXNlLW92ZXI6YWZ0ZXJ7d2lkdGg6dmFyKC0tZGF5LXdpZHRoKTtoZWlnaHQ6MTAwdmg7cmlnaHQ6LTRweDtib3R0b206Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkgLSAycHgpfS5jYXBpYmFyYSAuY29udGFpbmVyLXRsIC50YWJsZSAuZGF5LW1vdXNlLW92ZXI6YmVmb3Jle2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7d2lkdGg6MTAwdnc7cmlnaHQ6Y2FsYyh2YXIoLS1kYXktd2lkdGgpIC0gMnB4KTtib3R0b206LTRweH0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGUgLmJhY2tncm91bmQtZ3JpZHt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkqMjApO2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KSoyMCk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDoxcHg7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O2JhY2tncm91bmQtc2l6ZTp2YXIoLS1kYXktd2lkdGgpIHZhcigtLWl0ZW0taGVpZ2h0KSxjYWxjKHZhcigtLWRheS13aWR0aCkqNykgdmFyKC0taXRlbS1oZWlnaHQpLGNhbGModmFyKC0tZGF5LXdpZHRoKSo3KSB2YXIoLS1pdGVtLWhlaWdodCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSg4MCw4MCw4MCwuMykgMXB4LHRyYW5zcGFyZW50IDApLGxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoODAsODAsODAsLjMpIDFweCx0cmFuc3BhcmVudCAwKSxsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQgY2FsYyh2YXIoLS1kYXktd2lkdGgpKjUpLHJnYmEoODAsODAsODAsLjEpIDApO2JhY2tncm91bmQtcG9zaXRpb246MCAwLDAgMCwwIDB9LmNhcGliYXJhIC5jb250YWluZXItdGwgLnRhYmxlIC5kcmF3LWJveHtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FwaWJhcmEgLmNvbnRhaW5lci10bCAudGFibGUgLmRyYXctYm94IGNhbnZhc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjB9LmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCAuY29udGFpbmVyLXRsIC50YWJsZXt0b3A6Y2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWV4LWhlYWRlci1oZWlnaHQpKX0uY2FwaWJhcmEgLnNlbGVjdC1jb250YWluZXJ7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MDtoZWlnaHQ6MH0uY2FwaWJhcmEgLnNlbGVjdC1jb250YWluZXIgLnNlbGVjdGVkLWRheXt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpoc2xhKDAsMCUsNzQuMSUsLjQpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDVweCBoc2xhKDAsMCUsNzQuMSUsLjgpfS5jYXBpYmFyYSAuc2VsZWN0LWNvbnRhaW5lciAuc2VsZWN0ZWQtZGF5W2NhcC1iYWRnZV06YWZ0ZXJ7Y29udGVudDphdHRyKGNhcC1iYWRnZSk7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotM3B4O3RvcDotM3B4O2JhY2tncm91bmQ6IzE1NjVjMDtmb250LXNpemU6Ljc1ZW07Y29sb3I6I2ZmZjt3aWR0aDoxLjVlbTtoZWlnaHQ6MS41ZW07Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjJweDtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4zKX0uY2FwaWJhcmEgLmRldGFpbC1kYXl7bWluLWhlaWdodDo1MHB4O21pbi13aWR0aDoyNTBweDttYXgtd2lkdGg6NDAwcHg7Ym9yZGVyOjFweCBzb2xpZCBncmV5O3BhZGRpbmc6Ljc1ZW07ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO21hcmdpbjowIDAgMCAxZW07Ym94LXNpemluZzpib3JkZXItYm94O2JveC1zaGFkb3c6MCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwuMiksMCAxMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLC4xMik7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1cHg7dHJhbnNpdGlvbjphbGwgLjNzIGVhc2U7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLGxlZnQsdG9wO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0taXRlbS1oZWlnaHQpLzIqLTEpKTt6LWluZGV4OjQ7b3BhY2l0eToxfS5jYXBpYmFyYSAuZGV0YWlsLWRheTphZnRlcntjb250ZW50OlxcXCJcXFwiO2JhY2tncm91bmQ6aW5oZXJpdDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTFweDt0b3A6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvMiArIDdweCk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7Ym9yZGVyLWNvbG9yOmdyZXk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIDAgMXB4IDFweH0uY2FwaWJhcmEgLmRldGFpbC1kYXkuZGQtaGlkZXtkaXNwbGF5Om5vbmV9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1yaWdodC1hcnJvd3ttYXJnaW46MCAxNnB4IDAgMDt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCAtIHZhcigtLWRheS13aWR0aCkpKSB0cmFuc2xhdGVZKGNhbGModmFyKC0taXRlbS1oZWlnaHQpLzIqLTEpKX0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLXJpZ2h0LWFycm93OmFmdGVye2JvcmRlci13aWR0aDoxcHggMXB4IDAgMDtsZWZ0OnVuc2V0O3JpZ2h0Oi0xMXB4fS5jYXBpYmFyYSAuZGV0YWlsLWRheS5oYXMtY2VpbC1hcnJvd3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgtN3B4KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLWNlaWwtYXJyb3c6YWZ0ZXJ7dG9wOjZweH0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLWNlaWwtYXJyb3cuaGFzLXJpZ2h0LWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4IC0gdmFyKC0tZGF5LXdpZHRoKSkpIHRyYW5zbGF0ZVkoLTdweCl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1jZWlsLWFycm93Lmhhcy1yaWdodC1hcnJvdzphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xMXB4fS5jYXBpYmFyYSAuZGV0YWlsLWRheS5oYXMtbWlkZGxlLWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLTUwJSArIHZhcigtLWl0ZW0taGVpZ2h0KS8yKSl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1taWRkbGUtYXJyb3c6YWZ0ZXJ7dG9wOmNhbGMoNTAlIC0gMTBweCl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1taWRkbGUtYXJyb3cuaGFzLXJpZ2h0LWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4IC0gdmFyKC0tZGF5LXdpZHRoKSkpIHRyYW5zbGF0ZVkoY2FsYygtNTAlICsgdmFyKC0taXRlbS1oZWlnaHQpLzIpKX0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLW1pZGRsZS1hcnJvdy5oYXMtcmlnaHQtYXJyb3c6YWZ0ZXJ7bGVmdDp1bnNldDtyaWdodDotMTFweH0uY2FwaWJhcmEgLmRldGFpbC1kYXkuaGFzLWJvdHRvbS1hcnJvd3t0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKC0xMDAlICsgdmFyKC0taXRlbS1oZWlnaHQpKSl9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1ib3R0b20tYXJyb3c6YWZ0ZXJ7dG9wOnVuc2V0O2JvdHRvbTo0cHh9LmNhcGliYXJhIC5kZXRhaWwtZGF5Lmhhcy1ib3R0b20tYXJyb3cuaGFzLXJpZ2h0LWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4IC0gdmFyKC0tZGF5LXdpZHRoKSkpIHRyYW5zbGF0ZVkoY2FsYygtMTAwJSArIHZhcigtLWl0ZW0taGVpZ2h0KSkpfS5jYXBpYmFyYSAuZGV0YWlsLWRheS5oYXMtYm90dG9tLWFycm93Lmhhcy1yaWdodC1hcnJvdzphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xMXB4fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuaGVhZGVyLWRldGFpbCAudGl0bGV7Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo3MDA7bWFyZ2luLWJvdHRvbTouMjVlbTttaW4td2lkdGg6MTBlbTttYXgtd2lkdGg6MjBlbTtsaW5lLWhlaWdodDp1bnNldH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmhlYWRlci1kZXRhaWwgLnN1YnRpdGxle2ZvbnQtc2l6ZTouODc1ZW07bWFyZ2luLWJvdHRvbTo4cHg7bWluLXdpZHRoOjEwZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbHttYXJnaW46MDtmbGV4OjAgMCBhdXRvfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWx7bWFyZ2luOjA7Zm9udC1zaXplOi44NzVlbTtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi41ZW0gLjVlbSAuNWVtIDFlbTtib3JkZXItcmFkaXVzOjA7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjp1bnNldDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLmxlZnQtaWNvbnt3aWR0aDo4cHg7aGVpZ2h0OjhweDttaW4taGVpZ2h0OnVuc2V0IWltcG9ydGFudDtsZWZ0OjFweDt0b3A6MTBweDtib3JkZXItcmFkaXVzOjUwJX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5sZWZ0LWljb24uZGlhbW9uZHtib3JkZXItcmFkaXVzOjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgc2tldygxMGRlZywxMGRlZyl9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAubGVmdC1pY29uLm91dGxpbmVke2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAubGVmdC1pY29uLnRyaWFuZ2xle2JvcmRlci1yYWRpdXM6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSBza2V3KDEwZGVnLDEwZGVnKSB0cmFuc2xhdGUoM3B4LDNweCk7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItd2lkdGg6NXB4O2JvcmRlci1zdHlsZTpzb2xpZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLm5hbWV7ZmxleDowIDEgNDAlO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1yaWdodDoxZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbntmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RhcnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzY3tkaXNwbGF5OmZsZXg7bWFyZ2luLWJvdHRvbTozcHg7YWxpZ24taXRlbXM6YmFzZWxpbmV9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYy5kZXNjLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RhcnQ7d2lkdGg6MTAwJTtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO21hcmdpbi1ib3R0b206MDtwYWRkaW5nLWJvdHRvbTowfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLml0ZW0tZGVzY3JpcHRpb24gLmRlc2MuZGVzYy1jb2x1bW46bGFzdC1jaGlsZHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYy5kZXNjLWNvbHVtbiAubGFiZWx7bWFyZ2luLXJpZ2h0OjB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYyAubGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleDoxIDEgNjUlO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tcmlnaHQ6LjVlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5pdGVtLWRlc2NyaXB0aW9uIC5kZXNjIC52YWx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO21hcmdpbi1sZWZ0OjFlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5pdGVtLWRlc2NyaXB0aW9uIC5kZXNjIC5wcmVmaXgsLmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYyAuc3VmZml4e2ZvbnQtc2l6ZTouODVlbTtmbGV4OjAgMCBhdXRvfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwgLml0ZW0tZGVzY3JpcHRpb24gLmRlc2MgLnZhbHVlOm5vdChlbXB0eSl7bWFyZ2luLXJpZ2h0Oi4yZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuaXRlbS1kZXNjcmlwdGlvbiAuZGVzYyBzdXB7dG9wOi0xZW0haW1wb3J0YW50fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwuZmxleHtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydDtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZmxvdzp3cmFwOy1tcy13cml0aW5nLW1vZGU6dGItbHI7d3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyO21heC1oZWlnaHQ6MjUlfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwuZmxleCAuaXRlbS1kZXRhaWx7ZmxleDowIDAgYXV0bzttaW4td2lkdGg6OGVtOy1tcy13cml0aW5nLW1vZGU6bHItdGI7d3JpdGluZy1tb2RlOmhvcml6b250YWwtdGJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5jb2x1bW57LW1vei1jb2x1bW5zOjdlbSAzO2NvbHVtbnM6N2VtIDM7bWluLXdpZHRoOjMwZW19LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5jb2x1bW4gLml0ZW0tZGV0YWlse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWx7bWFyZ2luOjRweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi41ZW0gMWVtO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwgLm5hbWV7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206LjVlbTtjb2xvcjp2YXIoLS1sb2NhbC1jb2xvci1mb250LGluaGVyaXQpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsIC5pdGVtLWRlc2NyaXB0aW9uIC5kZXNjIC5sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDo3MDB9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbCAuaXRlbS1kZXRhaWwgLmxlZnQtaWNvbnt3aWR0aDo2cHg7bWluLWhlaWdodDoxMHB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtiYWNrZ3JvdW5kOnZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwgLml0ZW0tZGV0YWlsIC5sZWZ0LWljb24ub3V0bGluZWR7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCB2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbCAubGVmdC1pY29uLnRyaWFuZ2xle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuZWxlbWVudHMtZGV0YWlse3BhZGRpbmc6LjVlbSAwIC4yNWVtO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmVsZW1lbnRzLWRldGFpbCAubmFtZXtmbGV4OjEgMCAxMDAlO2ZvbnQtd2VpZ2h0OjcwMH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmVsZW1lbnRzLWRldGFpbCAuZWxlbWVudHMtbGlzdHttYXJnaW46NHB4IC00cHh9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5lbGVtZW50cy1kZXRhaWwgLmVsZW1lbnRzLWxpc3QgLmVsZW1lbnQtZGV0YWlse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6LjI1ZW0gLjg3NWVtO2JvcmRlci1yYWRpdXM6M3B4O2NvbG9yOiNmZmY7bWFyZ2luOi4yNWVtfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuYWxlcnR7cGFkZGluZzouNWVtIDAgLjI1ZW0gMmVtO3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDoxNWVtO21pbi13aWR0aDoxMGVtO21heC13aWR0aDozMGVtfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuYWxlcnQgLmFsZXJ0LWljb257bWF4LXdpZHRoOjJlbTtmb250LXNpemU6MS43NWVtO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6LjVlbTtjb2xvcjpncmV5fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAuYWxlcnQgLnJlZHtjb2xvcjojZjQ0MzM2fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubXNqLWNvbnRhaW5lcnttYXJnaW46MCAtLjc4ZW0gLS43NWVtO2JvcmRlcjoxcHggc29saWQgZ3JleTt6LWluZGV4OjJ9LmNhcGliYXJhIC5kZXRhaWwtZGF5IC5tc2otY29udGFpbmVyIHByZXt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3aGl0ZS1zcGFjZTotbW96LXByZS13cmFwO3doaXRlLXNwYWNlOi1wcmUtd3JhcDt3aGl0ZS1zcGFjZTotby1wcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZH0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXIgLm1zanttaW4td2lkdGg6MTBlbTttYXgtd2lkdGg6MzBlbTttYXJnaW46MCAwIC41ZW07cGFkZGluZzouNzVlbTtmb250LXNpemU6Ljg3NWVtfS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubXNqLWNvbnRhaW5lciAubXNqLWRldGFpbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6LjI1ZW0gLjVlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXIgLm1zai1kZXRhaWwgLmVtYWlse2ZvbnQtc2l6ZTouODc1ZW07Zm9udC1zdHlsZTppdGFsaWM7b3BhY2l0eTouNX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXIgLm1zai1kZXRhaWwgLmRhdGV7Zm9udC1zaXplOi43MjVlbX0uY2FwaWJhcmEgLmRldGFpbC1kYXl7Y29sb3I6IzM3NDc0ZjtiYWNrZ3JvdW5kOiNmZmZ9LmNhcGliYXJhIC5kZXRhaWwtZGF5LC5jYXBpYmFyYSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwsLmNhcGliYXJhIC5kZXRhaWwtZGF5IC5saXN0LWRldGFpbC5saXN0IC5pdGVtLWRldGFpbCAuZGVzYy1jb2x1bW4sLmNhcGliYXJhIC5kZXRhaWwtZGF5OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLmVsZW1lbnRzLWRldGFpbCAuZWxlbWVudHMtbGlzdCAuZWxlbWVudC1kZXRhaWx7YmFja2dyb3VuZDpyZ2JhKDU1LDcxLDc5LC44KX0uY2FwaWJhcmEgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXJ7YmFja2dyb3VuZDojZmZlY2IzO2JvcmRlci1jb2xvcjojZmZjYTI4fS5jYXBpYmFyYSAuZGV0YWlsLWRheSAubXNqLWNvbnRhaW5lciAubXNqLWRldGFpbHtiYWNrZ3JvdW5kOiNmZmUwODI7Ym9yZGVyLWNvbG9yOiNmZmNhMjh9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXl7Y29sb3I6I2YwZjBmMDtib3JkZXItY29sb3I6IzQwNGU2OTtiYWNrZ3JvdW5kOiMyMjI4Mzd9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXk6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0MDRlNjl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsIC5pdGVtLWRldGFpbHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudH0uY2FwaWJhcmEuZGFyay10aGVtZSAuZGV0YWlsLWRheSAubGlzdC1kZXRhaWwubGlzdCAuaXRlbS1kZXRhaWwsLmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXkgLmxpc3QtZGV0YWlsLmxpc3QgLml0ZW0tZGV0YWlsIC5kZXNjLWNvbHVtbntib3JkZXItY29sb3I6IzQwNGU2OX0uY2FwaWJhcmEuZGFyay10aGVtZSAuZGV0YWlsLWRheSAuZWxlbWVudHMtZGV0YWlsIC5lbGVtZW50cy1saXN0IC5lbGVtZW50LWRldGFpbHtiYWNrZ3JvdW5kOiMyOTMyNDN9LmNhcGliYXJhLmRhcmstdGhlbWUgLmRldGFpbC1kYXkgLm1zai1jb250YWluZXJ7YmFja2dyb3VuZDojMjkzMjQzO2JvcmRlci1jb2xvcjpyZ2JhKDI1MSwxOTIsNDUsLjQpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5kZXRhaWwtZGF5IC5tc2otY29udGFpbmVyIC5tc2otZGV0YWlse2JhY2tncm91bmQ6cmdiYSgyNTEsMTkyLDQ1LC4xKX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt6LWluZGV4OjEwO3dpbGwtY2hhbmdlOnRyYW5zZm9ybSxsZWZ0LHRvcH0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyLmNtLWhpZGUgLmNhcC1jb250ZXh0LW1lbnV7dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eTowfS5jYXBpYmFyYSAuY2FwLWNvbnRleHQtbWVudS1jb250YWluZXIgLmNhcC1jb250ZXh0LW1lbnV7cG9zaXRpb246YWJzb2x1dGU7bWluLXdpZHRoOjI1MHB4O3otaW5kZXg6Mjtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MXB4IHNvbGlkIGdyZXk7Ym94LXNoYWRvdzowIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDZweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDAsMCwwLC4xMik7Zm9udC1zaXplOi43NWVtO3RyYW5zaXRpb246YWxsIC4xcyBsaW5lYXI7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MTtwYWRkaW5nOi40ZW0gMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNhcGliYXJhIC5jYXAtY29udGV4dC1tZW51LWNvbnRhaW5lciAuY2FwLWNvbnRleHQtbWVudV9pdGVte3BhZGRpbmc6LjVlbSAxZW07ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW06aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDIwLDIwLDIwLC4yKX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW0uaXMtZGlzYWJsZWR7b3BhY2l0eTouNTtjdXJzb3I6dW5zZXR9LmNhcGliYXJhIC5jYXAtY29udGV4dC1tZW51LWNvbnRhaW5lciAuY2FwLWNvbnRleHQtbWVudV9pdGVtLmlzLWRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6bm9uZX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW0uaXMtZGl2aWRlcntjdXJzb3I6dW5zZXQ7aGVpZ2h0OjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyMCwyMCwyMCwuMik7cGFkZGluZzowO21hcmdpbjouM2VtIDFlbX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW1faWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmbGV4OjAgMCBhdXRvO3BhZGRpbmctcmlnaHQ6LjVlbX0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51X2l0ZW1faWNvbiBzdmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51e2NvbG9yOiMzNzQ3NGY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpO2JhY2tncm91bmQ6I2ZmZn0uY2FwaWJhcmEgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51IHN2ZyBwYXRoe2ZpbGw6IzM3NDc0Zn0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWNvbnRleHQtbWVudS1jb250YWluZXIgLmNhcC1jb250ZXh0LW1lbnV7Y29sb3I6I2YwZjBmMDtib3JkZXItY29sb3I6IzQwNGU2OTtiYWNrZ3JvdW5kOiMyMjI4Mzd9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyIC5jYXAtY29udGV4dC1tZW51IHN2ZyBwYXRoe2ZpbGw6I2YwZjBmMH0uY2FwaWJhcmEgLmhvdXItaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjRweDttYXJnaW46OHB4IDRweDtvdmVyZmxvdzpoaWRkZW59LmNhcGliYXJhIC5ob3VyLWlucHV0IGlucHV0e3dpZHRoOjUwJTtoZWlnaHQ6aW5oZXJpdDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44NzVlbX0uY2FwaWJhcmEgLmhvdXItaW5wdXQgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSAuaG91ci1pbnB1dCBpbnB1dDpmb2N1c3tib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpfS5jYXBpYmFyYSAuaG91ci1pbnB1dCBzcGFue3dpZHRoOjhweDt0ZXh0LWFsaWduOmNlbnRlcn0uY2FwaWJhcmEgLmhvdXItaW5wdXQgLmhoe3RleHQtYWxpZ246cmlnaHR9LmNhcGliYXJhIC50aW1le2JvcmRlci1yYWRpdXM6NnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTowfS5jYXBpYmFyYSAudGltZSAuc3ltYm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDphdXRvO3dpZHRoOjIwcHg7Zm9udC1zaXplOjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246Y2VudGVyfS5jYXBpYmFyYSAudGltZSBpbnB1dHtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50O3dpZHRoOjUycHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjJyZW07cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2U7b3V0bGluZTpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cGFkZGluZzo2cHh9LmNhcGliYXJhIC50aW1lIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLnRpbWUgaW5wdXQ6Zm9jdXN7dHJhbnNmb3JtOnNjYWxlKDEuMDMpfS5jYXBpYmFyYSAuYnV0dG9ucy1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jYXBpYmFyYSAuYnV0dG9ucy1ncm91cCBidXR0b24uY2FwLWJ0bi1vdXRsaW5le2JvcmRlci1yYWRpdXM6MDttYXJnaW46MCAtMnB4IDAgMH0uY2FwaWJhcmEgLmJ1dHRvbnMtZ3JvdXAgYnV0dG9uLmNhcC1idG4tb3V0bGluZTpmaXJzdC1vZi10eXBle2JvcmRlci1yYWRpdXM6NnB4IDAgMCA2cHg7bWFyZ2luLWxlZnQ6NHB4fS5jYXBpYmFyYSAuYnV0dG9ucy1ncm91cCBidXR0b24uY2FwLWJ0bi1vdXRsaW5lOmxhc3Qtb2YtdHlwZXtib3JkZXItcmFkaXVzOjAgNnB4IDZweCAwO21hcmdpbi1yaWdodDo0cHh9LmNhcGliYXJhIC5pbnB1dC1ib3gtdGFiLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTtmbGV4LXdyYXA6bm93cmFwO2JvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7Ym9yZGVyOnNvbGlkIGdyZXk7Ym9yZGVyLXdpZHRoOjJweCAycHggMH0uY2FwaWJhcmEgLmlucHV0LWJveC10YWItY29udGFpbmVyIC5pbnB1dC1ib3gtdGFie2ZsZXg6MSAxIGF1dG87cGFkZGluZzouM2VtIDFlbTtmb250LXNpemU6LjllbTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIGdyZXk7Y3Vyc29yOnBvaW50ZXJ9LmNhcGliYXJhIC5pbnB1dC1ib3gtdGFiLWNvbnRhaW5lciAuaW5wdXQtYm94LXRhYi5hY3RpdmV7YmFja2dyb3VuZDpoc2xhKDAsMCUsNTguOCUsLjMpfS5jYXBpYmFyYSAuaW5wdXQtYm94LXRhYi1jb250YWluZXIgLmlucHV0LWJveC10YWI6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZX0uY2FwaWJhcmEgLmlucHV0LWJveC10YWItY29udGFpbmVyKy5pbnB1dC1ib3h7Ym9yZGVyLXJhZGl1czowIDAgNnB4IDZweH0uY2FwaWJhcmEgLmlucHV0LWJveHttYXJnaW46MCAxNnB4O21pbi1oZWlnaHQ6MTgwcHg7Ym9yZGVyOjJweCBzb2xpZCBncmV5O2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93LXk6c2Nyb2xsO3BhZGRpbmctYm90dG9tOjYwcHg7d2lkdGg6MTAwJTttYXgtaGVpZ2h0OjMwMHB4fS5jYXBpYmFyYSAuaW5wdXQtYm94IC5zZWFyY2gtaW5wdXQtY29udGFpbmVye3BhZGRpbmc6LjNlbTttYXgtd2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCBoc2xhKDAsMCUsMzkuMiUsLjMpO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5zZWFyY2gtaW5wdXQtY29udGFpbmVyIC5zZWFyY2gtaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCAjNjQ2NDY0O2JvcmRlci1yYWRpdXM6MTNweDtoZWlnaHQ6MjZweDtwYWRkaW5nOi41ZW0gMWVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCU7Zm9udC1zaXplOi44ZW07Y29sb3I6aW5oZXJpdH0uY2FwaWJhcmEgLmlucHV0LWJveCAuc2VhcmNoLWlucHV0LWNvbnRhaW5lciAuc2VhcmNoLWlucHV0Oi1tb3otcGxhY2Vob2xkZXItc2hvd24rLnNlYXJjaC1pbnB1dC1jbGVhcntkaXNwbGF5Om5vbmV9LmNhcGliYXJhIC5pbnB1dC1ib3ggLnNlYXJjaC1pbnB1dC1jb250YWluZXIgLnNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIrLnNlYXJjaC1pbnB1dC1jbGVhcntkaXNwbGF5Om5vbmV9LmNhcGliYXJhIC5pbnB1dC1ib3ggLnNlYXJjaC1pbnB1dC1jb250YWluZXIgLnNlYXJjaC1pbnB1dDpwbGFjZWhvbGRlci1zaG93bisuc2VhcmNoLWlucHV0LWNsZWFye2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmlucHV0LWJveCAuc2VhcmNoLWlucHV0LWNvbnRhaW5lciAuc2VhcmNoLWlucHV0LWNsZWFye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjFlbTt0b3A6LjRlbTtjb2xvcjpoc2xhKDAsMCUsMzkuMiUsLjYpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOm5vbmV9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbntwYWRkaW5nOi41ZW0gMmVtIC41ZW0gLjVlbTt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCBoc2xhKDAsMCUsMzkuMiUsLjMpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24uaGFzLWljb257cGFkZGluZzouNWVtIDJlbSAuNWVtIDEuNWVtfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24uY2xpY2tlYWJsZXtjdXJzb3I6cG9pbnRlcn0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLmNsaWNrZWFibGU6aG92ZXIgbGFiZWx7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLmlzLXRpdGxle2JhY2tncm91bmQ6aHNsYSgwLDAlLDM5LjIlLC4xKX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLmlzLXRpdGxlIC5taW5pLWlucHV0LXNlY3Rpb24tLXRpdGxle29wYWNpdHk6LjZ9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0tdG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDoxLjVlbTtkaXNwbGF5Om5vbmU7cGFkZGluZzouNWVtO21hcmdpbjoxZW07Y29sb3I6IzAwMDtib3JkZXItcmFkaXVzOjNweDt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDJweCA1cHggcmdiYSgwLDAsMCwuMyl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbiBsYWJlbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXA7Zm9udC1zaXplOi44NzVlbTthbGlnbi1pdGVtczpiYXNlbGluZX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZXN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpzdGFydDttYXgtd2lkdGg6MTAwJTtmbGV4OjAgMSBhdXRvfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZW5kO2ZsZXg6MSAwIGF1dG87Zm9udC1zaXplOjFlbTtwYWRkaW5nOjAgLjVlbX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1zdWJ0aXRsZSwuY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDp1bnNldDttYXgtd2lkdGg6MTAwJTtmbGV4LWdyb3c6MX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1zdWJ0aXRsZXtmb250LXNpemU6Ljg3NWVtfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLXN1ZmZpeHtmbGV4OjAgMCBhdXRvO2ZvbnQtc2l6ZTouODc1ZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LjVlbTt0b3A6Ljc1ZW07d2lkdGg6Ljc1ZW07aGVpZ2h0Oi43NWVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tbG9jYWwtY29sb3IsZ3JleSk7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMyl9LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0tbGlua3tvcGFjaXR5Oi42O2NvbG9yOiMyMTk2ZjM7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LjVlbTt0b3A6Ljc1ZW19LmNhcGliYXJhIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbi0tbGluayBzdmd7d2lkdGg6MThweCFpbXBvcnRhbnQ7aGVpZ2h0OjE4cHghaW1wb3J0YW50fS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb246aG92ZXIgLm1pbmktaW5wdXQtc2VjdGlvbi0tdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24gaW5wdXR7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6NGVtO21hcmdpbi1yaWdodDouNWVtO2JvcmRlcjoxcHggc29saWQgZ3JleTtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC4yKTtmb250LXNpemU6MWVtO2ZsZXg6MCAwIDRlbX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6aHNsYSgwLDAlLDEwMCUsLjgpfS5jYXBpYmFyYSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLWZvb3RlcnttYXJnaW4tdG9wOi4yNWVtO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uY2FwaWJhcmEgc2VsZWN0LmlucHV0LXNlbGVjdHtwYWRkaW5nOi4zZW0gMWVtO3dpZHRoOjEwMCU7ZmxleDoxIDAgMTAwJTtib3JkZXI6MXB4IHNvbGlkIGdyZXk7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDppbmhlcml0O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtYXBwZWFyYW5jZTphdXRvOy1tb3otYXBwZWFyYW5jZTphdXRvO2FwcGVhcmFuY2U6YXV0b30uY2FwaWJhcmEgc2VsZWN0LmlucHV0LXNlbGVjdCBvcHRpb257cGFkZGluZzouM2VtO2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDppbmhlcml0fS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi1saXN0e21hcmdpbjoxNnB4IDB9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLWxpc3QgLmlucHV0LXNlY3Rpb24tdGl0bGV7bWFyZ2luLWJvdHRvbTo4cHh9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLWxpc3QgLmlucHV0LXNlY3Rpb257bWFyZ2luOjAgMTZweCA4cHh9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9ue21hcmdpbjoxNnB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC13cmFwOm5vd3JhcDthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLnRvLXJpZ2h0e2FsaWduLWl0ZW1zOmVuZH0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLnNtYWxsLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xMHB4O3RvcDotMTBweDt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Zm9udC1zaXplOi45ZW07Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2JveC1zaGFkb3c6MXB4IDFweCAycHggcmdiYSgwLDAsMCwuNCk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJlZDtib3JkZXItcmFkaXVzOjUwJTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC50ZXh0LXN1YnRpdGxle3RleHQtYWxpZ246Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi10aXRsZXtmbGV4OjEgMSAxMDAlO3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi10aXRsZSBidXR0b257bWFyZ2luLWxlZnQ6YXV0bztmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi1saW5re2ZsZXg6MSAxIDEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmJhc2VsaW5lO3BhZGRpbmctdG9wOi4yNWVtfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi1saW5rIGF7Y29sb3I6IzIxOTZmMzttYXJnaW4tdG9wOi43NXJlbX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24uaXMtaW52YWxpZCAuaW5wdXQtYm94LC5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi5pcy1pbnZhbGlkIGlucHV0Lm5hdi1pbnB1dHtib3JkZXI6MnB4IHNvbGlkIHJlZCFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgM3B4IHJlZCFpbXBvcnRhbnR9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLmRlbnNlIGlucHV0Lm5hdi1pbnB1dHt3aWR0aDo1MCU7Zm9udC1zaXplOjFlbTtwYWRkaW5nOjNweCA2cHh9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtib3JkZXI6MnB4IHNvbGlkIGhzbGEoMCwwJSw1MC4yJSwuNyk7Ym9yZGVyLXJhZGl1czo2cHg7d2lkdGg6MTAwJTttaW4td2lkdGg6MTMwcHg7bWF4LXdpZHRoOjE3MHB4O2ZvbnQtc2l6ZToyZW07dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozcHggNnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3V0bGluZTpub25lO3RyYW5zaXRpb246YWxsIC4xcyBlYXNlO21hcmdpbi1ib3R0b206OHB4fS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXQ6Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCBncmV5O2JveC1zaGFkb3c6MCA0cHggNnB4IGhzbGEoMCwwJSw1MC4yJSwuMil9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dC5zbWFsbHtmb250LXNpemU6MS4zZW19LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZXtib3JkZXI6MnB4IHNvbGlkIGhzbGEoMCwwJSw1MC4yJSwuNyk7Ym9yZGVyLXJhZGl1czo2cHg7d2lkdGg6NzAlO21pbi13aWR0aDoxMzBweDtwYWRkaW5nOjNweCA2cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2U7cG9zaXRpb246cmVsYXRpdmV9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1c3tib3JkZXI6MnB4IHNvbGlkIGdyZXk7Ym94LXNoYWRvdzowIDRweCA2cHggaHNsYSgwLDAlLDUwLjIlLC4yKX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlIGxhYmVse2ZsZXg6MSAxIGF1dG99LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZSBpbnB1dFt0eXBlPWZpbGVde2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLmlucHV0LXNlY3Rpb24tY29se3dpZHRoOmF1dG87cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxIDEgMTAlfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiAuaW5wdXQtc2VjdGlvbi1jb2wgaW5wdXQubmF2LWlucHV0e21pbi13aWR0aDp1bnNldDt3aWR0aDpjYWxjKDEwMCUgLSAxcmVtKTttYXgtd2lkdGg6N3JlbX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7b3V0bGluZTpub25lO2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoycHggc29saWQgZ3JleTt3aWR0aDoxMDAlO21pbi13aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwcHg7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2U7cGFkZGluZzo4cHg7Ym94LXNpemluZzpib3JkZXItYm94fS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoMjU1LDE2MCwwLC4yKX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gaW5wdXRbdHlwZT1jaGVja2JveF17d2lkdGg6MThweDtoZWlnaHQ6MThweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNhcGliYXJhIC50aW1le2JvcmRlcjoycHggc29saWQgcmdiYSgwLDEyOCwwLC43KTtjb2xvcjpncmVlbn0uY2FwaWJhcmEgLnRpbWUgLnN5bWJvbCwuY2FwaWJhcmEgLnRpbWUgaW5wdXR7Y29sb3I6IzM3NDc0Zn0uY2FwaWJhcmEgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYSAudGltZSBpbnB1dDpmb2N1c3tib3JkZXItY29sb3I6Z3JlZW47Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDEyOCwwLC4yKX0uY2FwaWJhcmEgLmlucHV0LWJveC10YWItY29udGFpbmVyLC5jYXBpYmFyYSAuaW5wdXQtYm94LXRhYi1jb250YWluZXIgLmlucHV0LWJveC10YWJ7Ym9yZGVyLWNvbG9yOmdyZWVufS5jYXBpYmFyYSAuaW5wdXQtYm94e2NvbG9yOiMzNzQ3NGY7Ym9yZGVyOjJweCBzb2xpZCBncmVlbn0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6I2ZhZmFmYX0uY2FwaWJhcmEgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uLS10b29sdGlwe2JhY2tncm91bmQ6I2ZhZmFmYTtjb2xvcjojMzc0NzRmO2JvcmRlcjoxcHggc29saWQgIzM3NDc0Zn0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdHtjb2xvcjojMzc0NzRmO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDEyOCwwLC43KX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdDphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3Q6Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCBncmVlbjtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDAsMTI4LDAsLjIpfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0IG9wdGlvbntiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6IzM3NDc0Zn0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbiBpbnB1dC5uYXYtaW5wdXR7Y29sb3I6IzM3NDc0Zjtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwxMjgsMCwuNyl9LmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTpmb2N1cywuY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmFjdGl2ZSwuY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlcjoycHggc29saWQgZ3JlZW47Ym94LXNoYWRvdzowIDRweCA2cHggcmdiYSgwLDEyOCwwLC4yKX0uY2FwaWJhcmEgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNDksMTk2LC42KTtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwwLDAsLjQpfS5jYXBpYmFyYSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajphY3RpdmUsLmNhcGliYXJhIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgyNTUsMjQ5LDE5NiwuOCk7Ym94LXNoYWRvdzowIDRweCA2cHggdHJhbnNwYXJlbnR9LmNhcGliYXJhLmRhcmstdGhlbWUgLnRpbWV7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDY0LDc4LDEwNSwuNyk7Y29sb3I6IzQwNGU2OX0uY2FwaWJhcmEuZGFyay10aGVtZSAudGltZSAuc3ltYm9sLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC50aW1lIGlucHV0e2NvbG9yOiNmMGYwZjB9LmNhcGliYXJhLmRhcmstdGhlbWUgLnRpbWUgaW5wdXQ6YWN0aXZlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC50aW1lIGlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjojNDA0ZTY5O2JveC1zaGFkb3c6MCA0cHggNnB4IHJnYmEoNjQsNzgsMTA1LC4yKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtYm94LXRhYi1jb250YWluZXIsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LWJveC10YWItY29udGFpbmVyIC5pbnB1dC1ib3gtdGFie2JvcmRlci1jb2xvcjojNDA0ZTY5fS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1ib3h7Y29sb3I6I2YwZjBmMDtib3JkZXI6MnB4IHNvbGlkICM0MDRlNjl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0e2JhY2tncm91bmQ6IzQwNGU2OTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1ib3ggLm1pbmktaW5wdXQtc2VjdGlvbiBpbnB1dDphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LWJveCAubWluaS1pbnB1dC1zZWN0aW9uIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6IzIyMjgzN30uY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtYm94IC5taW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXB7YmFja2dyb3VuZDojMjIyODM3O2NvbG9yOiNmMGYwZjA7Ym9yZGVyOjFweCBzb2xpZCAjZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIHNlbGVjdC5pbnB1dC1zZWxlY3R7Y29sb3I6I2YwZjBmMDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoNjQsNzgsMTA1LC43KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbiBzZWxlY3QuaW5wdXQtc2VsZWN0OmZvY3Vze2JvcmRlcjoycHggc29saWQgIzQwNGU2OTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDY0LDc4LDEwNSwuMil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gc2VsZWN0LmlucHV0LXNlbGVjdCBvcHRpb257YmFja2dyb3VuZDojMjIyODM3O2NvbG9yOiNmMGYwZjB9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dHtjb2xvcjojZjBmMGYwO2JvcmRlcjoycHggc29saWQgcmdiYSg2NCw3OCwxMDUsLjcpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIC5uYXYtaW5wdXQtZmlsZTphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gLm5hdi1pbnB1dC1maWxlOmZvY3VzLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uIGlucHV0Lm5hdi1pbnB1dDphY3RpdmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24gaW5wdXQubmF2LWlucHV0OmZvY3Vze2JvcmRlcjoycHggc29saWQgIzQwNGU2OTtib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDY0LDc4LDEwNSwuMil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmlucHV0LXNlY3Rpb24ubXNqLWlucHV0LWNvbnRhaW5lciB0ZXh0YXJlYS5tc2p7YmFja2dyb3VuZDpyZ2JhKDI1MSwxOTIsNDUsLjEpO2JvcmRlcjoycHggc29saWQgIzllOWU5ZTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5pbnB1dC1zZWN0aW9uLm1zai1pbnB1dC1jb250YWluZXIgdGV4dGFyZWEubXNqOmFjdGl2ZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuaW5wdXQtc2VjdGlvbi5tc2otaW5wdXQtY29udGFpbmVyIHRleHRhcmVhLm1zajpmb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMjUxLDE5Miw0NSwuMyk7Ym94LXNoYWRvdzowIDRweCA2cHggaHNsYSgwLDAlLDYyJSwuMil9LmNhcGliYXJhIGJ1dHRvbntvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXJ9LmNhcGliYXJhIGJ1dHRvbi5jYXAtcm90YXRlIC5tZGk6YmVmb3JlLC5jYXBpYmFyYSBidXR0b24uY2FwLXJvdGF0ZSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1vdXRsaW5lOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1yYWlzZWQ6Zm9jdXMsLmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMCwwLDAsLjMpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uOmRpc2FibGVkLC5jYXBpYmFyYSAuY2FwLWJ0bi1vdXRsaW5lOmRpc2FibGVkLC5jYXBpYmFyYSAuY2FwLWJ0bi1yYWlzZWQ6ZGlzYWJsZWQsLmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlOmRpc2FibGVke29wYWNpdHk6LjZ9LmNhcGliYXJhIGJ1dHRvbi5jYXAtYnRuLXNte2ZvbnQtc2l6ZTouNzVlbTttYXJnaW46NHB4O3BhZGRpbmc6NHB4IDhweH0uY2FwaWJhcmEgLmNhcC1idG4tb3V0bGluZXtjdXJzb3I6cG9pbnRlcjtjb2xvcjpncmV5O2JvcmRlcjoycHggc29saWQgZ3JleTtwYWRkaW5nOjhweCAxNnB4O21hcmdpbjowIDhweDtib3JkZXItcmFkaXVzOjZweDtmb250LXdlaWdodDo3MDB9LmNhcGliYXJhIC5jYXAtYnRuLW91dGxpbmUuc2VsZWN0ZWR7YmFja2dyb3VuZDpncmV5fS5jYXBpYmFyYSAuY2FwLWJ0bi1yYWlzZWR7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo4cHggMTZweDttYXJnaW46MCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDpncmV5O2JvcmRlcjoycHggc29saWQgZ3JleTtmb250LXdlaWdodDo3MDB9LmNhcGliYXJhIC5jYXAtYnRuLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjMycHg7d2lkdGg6MzJweDtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoxNnB4O21hcmdpbi10b3A6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHg7Zm9udC1zaXplOjE4cHg7Y29sb3I6Z3JleTtib3JkZXItcmFkaXVzOjUwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbiBzdmd7ZmlsbDpncmV5fS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taGFzLWJhZGdlOmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotLjJlbTt0b3A6LS4yZW07d2lkdGg6LjhlbTtoZWlnaHQ6LjhlbTtiYWNrZ3JvdW5kOmdyZXk7Ym9yZGVyLXJhZGl1czo1MCV9LmNhcGliYXJhIC5jYXAtYnRuLWljb24uY2FwLWJ0bi1pY29uLXJhaXNlZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOm5vbmV9LmNhcGliYXJhIC5jYXAtYnRuLWljb24uY2FwLWJ0bi1pY29uLW91dGxpbmV7Ym9yZGVyOjFweCBzb2xpZCBncmV5fS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4tdG9nZ2xlLXNpZGViYXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MTBweDt6LWluZGV4OjI7bWFyZ2luOjB9LmNhcGliYXJhIC5jYXAtYnRuLWljb24gLm1kaXtmb250LXNpemU6MjRweH0uY2FwaWJhcmEgLmNhcC1idG4taWNvbiAubG9hZGluZy1pY29ue2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjB9LmNhcGliYXJhIC5jYXAtYnRuLWljb24ubG9hZGluZz46bm90KC5sb2FkaW5nLWljb24pe2Rpc3BsYXk6bm9uZX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5sb2FkaW5nIC5sb2FkaW5nLWljb257ZGlzcGxheTp1bnNldH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjo0cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtwYWRkaW5nOjA7Zm9udC1zaXplOjE0cHh9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlIC5tZGl7Zm9udC1zaXplOjI0cHh9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xle3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjpub25lO3BhZGRpbmc6MH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweDt0b3A6MnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6Z3JleTt3aWR0aDoyMnB4O2hlaWdodDoyMnB4fS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MXB4O3RvcDo2cHg7d2lkdGg6MTAwJTtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyfS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS1vdXRsaW5le3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjpub25lO3BhZGRpbmc6MH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1jaXJjbGUtb3V0bGluZTpiZWZvcmV7Y29udGVudDpcXFwiXFxcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MnB4O3RvcDozcHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjJweCBzb2xpZCBncmV5O3dpZHRoOjIycHg7aGVpZ2h0OjIycHh9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLW91dGxpbmUgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjFweDt0b3A6NnB4O3dpZHRoOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6Z3JleTt0ZXh0LWFsaWduOmNlbnRlcn0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9we3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjpub25lO3BhZGRpbmc6MH0uY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wOmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHg7dG9wOjA7Ym9yZGVyLXJhZGl1czowIDUwJSA1MCUgNTAlO2JhY2tncm91bmQ6Z3JleTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCw0cHgpIHJvdGF0ZSg0NWRlZyl9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tZHJvcCBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6NnB4O3dpZHRoOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcn0uY2FwaWJhcmEuZXh0ZW5kZWQtcmlnaHQgW3RvZ2dsZS1zaWRlYmFyLXJpZ2h0XSBzdmcsLmNhcGliYXJhLmhlYWRlci1leHRlbmRlZCBbdG9nZ2xlLWhlYWRlcl0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uY2FwaWJhcmEgLmNhcC1idG4tcmFpc2Vke2JhY2tncm91bmQ6IzAwZjtib3JkZXI6MnB4IHNvbGlkICMwMGY7Y29sb3I6I2ZmZn0uY2FwaWJhcmEgLmNhcC1idG4tb3V0bGluZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoycHggc29saWQgIzAwZjtjb2xvcjojMDBmfS5jYXBpYmFyYSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6IzAwZjtjb2xvcjojZmZmfS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZXtjb2xvcjojMzc0NzRmfS5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZSwuY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9we2NvbG9yOiNmZmZ9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlOmJlZm9yZSwuY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wOmJlZm9yZXtiYWNrZ3JvdW5kOiMzODhlM2N9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLmlzLWVtcHR5OmJlZm9yZSwuY2FwaWJhcmEgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wLmlzLWVtcHR5OmJlZm9yZXtiYWNrZ3JvdW5kOiM2MTYxNjF9LmNhcGliYXJhIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLW91dGxpbmU6YmVmb3Jle2JvcmRlci1jb2xvcjojMzg4ZTNjfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLC5jYXBpYmFyYSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS1vdXRsaW5lIHNwYW57Y29sb3I6IzM3NDc0Zn0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWhhcy1iYWRnZTphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMjQ1LDEyNCwwLC44KX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tcmFpc2Vke2JhY2tncm91bmQ6cmdiYSg4NCwxMTAsMTIyLC4xKTtib3JkZXItY29sb3I6IzU0NmU3YTtjb2xvcjojNTQ2ZTdhfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6YWN0aXZle2JhY2tncm91bmQ6IzU0NmU3YX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tcmFpc2VkOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDg0LDExMCwxMjIsLjMpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOiM1NDZlN2E7Y29sb3I6IzU0NmU3YX0uY2FwaWJhcmEgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tb3V0bGluZTphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDg0LDExMCwxMjIsLjMpfS5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmZvY3VzLC5jYXBpYmFyYSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmhvdmVye2JhY2tncm91bmQ6cmdiYSg4NCwxMTAsMTIyLC4xKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1yYWlzZWR7YmFja2dyb3VuZDojNDA0ZTY5O2JvcmRlcjoycHggc29saWQgI2YwZjBmMDtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLW91dGxpbmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MnB4IHNvbGlkICNmMGYwZjA7Y29sb3I6I2YwZjBmMH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1vdXRsaW5lLnNlbGVjdGVke2JhY2tncm91bmQ6IzQwNGU2OTtjb2xvcjojZjBmMGYwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlLC5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tZHJvcHtjb2xvcjpoc2xhKDAsMCUsOTQuMSUsLjgpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLXNoYXBlLmNhcC1idG4tY2lyY2xlOmJlZm9yZSwuY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWRyb3A6YmVmb3Jle2JhY2tncm91bmQ6IzJlN2QzMn0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS5pcy1lbXB0eTpiZWZvcmUsLmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1kcm9wLmlzLWVtcHR5OmJlZm9yZXtiYWNrZ3JvdW5kOiM2MTYxNjF9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4tc2hhcGUuY2FwLWJ0bi1jaXJjbGUtb3V0bGluZTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiMyZTdkMzJ9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4taWNvbiwuY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1zaGFwZS5jYXAtYnRuLWNpcmNsZS1vdXRsaW5lIHNwYW57Y29sb3I6aHNsYSgwLDAlLDk0LjElLC44KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taGFzLWJhZGdlOmFmdGVye2JhY2tncm91bmQ6cmdiYSg1NiwxNDIsNjAsLjgpfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5jYXAtYnRuLWljb24uY2FwLWJ0bi1pY29uLXJhaXNlZHtiYWNrZ3JvdW5kOmhzbGEoMCwwJSw5NC4xJSwuMSk7Ym9yZGVyLWNvbG9yOmhzbGEoMCwwJSw5NC4xJSwuOCk7Y29sb3I6aHNsYSgwLDAlLDk0LjElLC44KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6YWN0aXZle2JhY2tncm91bmQ6I2YwZjBmMH0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1yYWlzZWQ6Zm9jdXMsLmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tcmFpc2VkOmhvdmVye2JhY2tncm91bmQ6aHNsYSgwLDAlLDk0LjElLC4zKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOmhzbGEoMCwwJSw5NC4xJSwuOCk7Y29sb3I6aHNsYSgwLDAlLDk0LjElLC44KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmFjdGl2ZXtiYWNrZ3JvdW5kOmhzbGEoMCwwJSw5NC4xJSwuMSl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmNhcC1idG4taWNvbi5jYXAtYnRuLWljb24tb3V0bGluZTpmb2N1cywuY2FwaWJhcmEuZGFyay10aGVtZSAuY2FwLWJ0bi1pY29uLmNhcC1idG4taWNvbi1vdXRsaW5lOmhvdmVye2JhY2tncm91bmQ6aHNsYSgwLDAlLDk0LjElLDApfS5jYXBpYmFyYSBbY2FwLXRvb2x0aXBde3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jYXBpYmFyYSBbY2FwLXRvb2x0aXBdOmhvdmVyOmJlZm9yZXtwYWRkaW5nOjhweDtvcGFjaXR5OjE7Ym9yZGVyLXdpZHRoOjFweDtoZWlnaHQ6YXV0b30uY2FwaWJhcmEgW2NhcC10b29sdGlwXTpiZWZvcmV7b3BhY2l0eTouMztoZWlnaHQ6MDtwYWRkaW5nOjAgOHB4O3RleHQtYWxpZ246bGVmdDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyAxOHB4KTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRleCgtNTAlKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlcjowIHNvbGlkICMwMDA7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtjb250ZW50OmF0dHIoY2FwLXRvb2x0aXApO3RleHQtdHJhbnNmb3JtOm5vbmU7bWluLXdpZHRoOjEwMHB4O3otaW5kZXg6NX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXJ7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MDtoZWlnaHQ6MH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXI6aG92ZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLWNvbnRhaW5lciAubG9uZy1iYXJ7b3BhY2l0eTouM30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveHt3aWR0aDp2YXIoLS1kYXktd2lkdGgpO21heC13aWR0aDp2YXIoLS1kYXktd2lkdGgpO21pbi13aWR0aDp2YXIoLS1kYXktd2lkdGgpO2hlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7bWF4LWhlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7bWluLWhlaWdodDp2YXIoLS1pdGVtLWhlaWdodCk7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpkZWZhdWx0O3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpbGwtY2hhbmdlOmRpc3BsYXl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3hbZGF0YS1pcy12aXNpYmxlPWZhbHNlXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94OmhvdmVye3otaW5kZXg6Mn0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveDpob3ZlcisuZmxvYXQtYm94LWV4dCAubG9uZy1iYXJ7ei1pbmRleDo2O29wYWNpdHk6MX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC5oYXMtbWVzc2FnZTphZnRlcntjb250ZW50OlxcXCJcXFwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtyaWdodDowO3RvcDowO2JvcmRlci1jb2xvcjpyZWQgcmVkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6NnB4O3otaW5kZXg6MX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC5oYXMtZXJyb3JzOmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6N3B4O2hlaWdodDo3cHg7bGVmdDoxcHg7dG9wOjFweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNkMzJmMmY7ei1pbmRleDoxfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3QtY29udGFpbmVyLWJvdHRvbSwuY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci1taWRkbGUsLmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC1jb250YWluZXItdG9we3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO292ZXJmbG93OnZpc2libGU7aGVpZ2h0OjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC1jb250YWluZXItdG9we3RvcDoxcHh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLmRvdC1jb250YWluZXItdG9wIC5kb3R7Ym9yZGVyLXJhZGl1czowIDAgNTAlIDUwJX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci1taWRkbGV7dG9wOmNhbGMoNTAlIC0gNHB4KX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci1ib3R0b217Ym90dG9tOjVweH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LWNvbnRhaW5lci1ib3R0b20gLmRvdHtib3JkZXItcmFkaXVzOjAgMCA1MCUgNTAlfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3R7d2lkdGg6OHB4O21pbi13aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW46MXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxvY2FsLWNvbG9yLGhzbGEoMCwwJSwxMDAlLC44KSk7YmFja2dyb3VuZDp2YXIoLS1sb2NhbC1jb2xvcixoc2xhKDAsMCUsMzkuMiUsLjUpKX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LmRpYW1vbmR7Ym9yZGVyLXJhZGl1czowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHNrZXcoMTBkZWcsMTBkZWcpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5kb3Qub3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAuZG90LnRyaWFuZ2xle3dpZHRoOjA7aGVpZ2h0OjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgc2tldygxMGRlZywxMGRlZykgdHJhbnNsYXRlKDFweCwxcHgpO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB2YXIoLS1sb2NhbC1jb2xvcixoc2xhKDAsMCUsMzkuMiUsLjgpKTtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkIHZhcigtLWxvY2FsLWNvbG9yLGhzbGEoMCwwJSwzOS4yJSwuOCkpO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YXt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOi44NzVlbTt0ZXh0LWFsaWduOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzIpO2xpbmUtaGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzIpO21hcmdpbi1ib3R0b206MnB4O2ZvbnQtd2VpZ2h0OjcwMDtib3gtc2hhZG93Omluc2V0IDAgMCAxMHB4IGhzbGEoMCwwJSwxMDAlLC4yKTtib3JkZXItcmFkaXVzOjNweDtjb2xvcjp2YXIoLS1sb2NhbC1jb2xvci1mb250LCNmZmYpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm9wYWNpdHkoMjAlKTtiYWNrZHJvcC1maWx0ZXI6b3BhY2l0eSgyMCUpO2JhY2tncm91bmQ6dmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuNCkpO2JvcmRlcjoycHggc29saWQgdmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuMikpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtb3V0bGluZWQ6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7b3BhY2l0eTouMzstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDJweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMnB4KTtiYWNrZ3JvdW5kOnZhcigtLWxvY2FsLWNvbG9yLGluaGVyaXQpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTFweDt0b3A6LTFweDt3aWR0aDpjYWxjKDEwMCUgKyAycHgpO2hlaWdodDpjYWxjKDEwMCUgKyAycHgpO2Rpc3BsYXk6YmxvY2s7ei1pbmRleDotMX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFye2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KS80IC0gMS41cHgpO3dpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoKSAtIDZweCk7bGluZS1oZWlnaHQ6MDtjb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjFweDttYXJnaW46MCAzcHh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLWJhcjpmaXJzdC1vZi10eXBle21hcmdpbi10b3A6M3B4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXItb3V0bGluZWR7aGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzQgLSAxLjVweCk7d2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpIC0gNnB4KTtsaW5lLWhlaWdodDowO2NvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MXB4O21hcmdpbjowIDNweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFyLW91dGxpbmVkOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDozcHh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLWJhci1vdXRsaW5lZDpiZWZvcmV7Y29udGVudDpcXFwiXFxcIjtvcGFjaXR5Oi4zOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMnB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigycHgpO2JhY2tncm91bmQ6dmFyKC0tbG9jYWwtY29sb3IsaW5oZXJpdCk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMXB4O3RvcDotMXB4O3dpZHRoOmNhbGMoMTAwJSArIDJweCk7aGVpZ2h0OmNhbGMoMTAwJSArIDJweCk7ZGlzcGxheTpibG9ja30uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFyLWRhc2hlZHtoZWlnaHQ6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvNCAtIDEuNXB4KTt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkgLSA2cHgpO2xpbmUtaGVpZ2h0OjA7Y29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxcHg7bWFyZ2luOjAgM3B4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXItZGFzaGVkOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDozcHh9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5kYXRhLnNoYXBlLWJhci1kYXNoZWQ6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7YmFja2dyb3VuZDp2YXIoLS1sb2NhbC1jb2xvcixpbmhlcml0KTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xcHg7dG9wOi0xcHg7d2lkdGg6Y2FsYygxMDAlICsgMnB4KTtoZWlnaHQ6Y2FsYygxMDAlICsgMnB4KTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1zaXplOjEwcHggMTBweDtiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsdmFyKC0tbG9jYWwtY29sb3IsaW5oZXJpdCksdmFyKC0tbG9jYWwtY29sb3IsaW5oZXJpdCkgM3B4LHRyYW5zcGFyZW50IDAsdHJhbnNwYXJlbnQgNTAlKX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLnJvd2RvdC0tcm93e2Rpc3BsYXk6ZmxleDttYXgtaGVpZ2h0OmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzQgLSAxcHgpO2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KS80IC0gMXB4KTt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCkgLSAycHgpO2xpbmUtaGVpZ2h0OjA7Y29sb3I6dHJhbnNwYXJlbnQ7bWFyZ2luOjFweDtib3JkZXItY29sb3I6dmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuMikpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4ucm93ZG90LS1yb3c6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tdG9wOjNweH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLnJvd2RvdC0tcm93OmVtcHR5e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggc3Bhbi5yb3dkb3QtLXJvdyAucm93ZG90LS1kb3R7d2lkdGg6Y2FsYyh2YXIoLS1kYXktd2lkdGgpLzQgLSAycHgpO2hlaWdodDpjYWxjKHZhcigtLWl0ZW0taGVpZ2h0KS80IC0gMnB4KTttYXJnaW4tcmlnaHQ6MXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXI6M3B4IHNvbGlkIHZhcigtLWxvY2FsLWNvbG9yLGhzbGEoMCwwJSwxMDAlLC44KSk7YmFja2dyb3VuZDp2YXIoLS1sb2NhbC1jb2xvcixoc2xhKDAsMCUsMzkuMiUsLjgpKTtib3gtc2hhZG93OjAgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjIpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4ucm93ZG90LS1yb3cgLnJvd2RvdC0tZG90LnNoYXBlLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDM5LjIlLC4yKX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLnJvd2RvdC0tcm93IC5yb3dkb3QtLWRvdC5zaGFwZS1yb3VuZGVke2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOmNhbGModmFyKC0taXRlbS1oZWlnaHQpLzQgLSAuNXB4KX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLnJvd2RvdC0tcm93IC5yb3dkb3QtLWRvdC5zaGFwZS1vdXRsaW5lZC1yb3VuZGVke2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvNCAtIC41cHgpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5wbG90LWZsb2F0Ym94LWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzp2aXNpYmxlfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IC5wbG90LWZsb2F0Ym94LWNvbnRhaW5lciAucGxvdC1mbG9hdGJveHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxvY2FsLWNvbG9yLHJnYmEoMCwwLDAsLjQpKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2V9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3ggLnBsb3QtZmxvYXRib3gtY29udGFpbmVyIC5wbG90LWZsb2F0Ym94LnN0cmlwZXtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNTNkZWcsdmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuNCkpLHZhcigtLWxvY2FsLWNvbG9yLHJnYmEoMCwwLDAsLjQpKSA1cHgsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCAxMnB4KX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCAucGxvdC1mbG9hdGJveC1jb250YWluZXIgLnBsb3QtZmxvYXRib3guc3RyaXBlLWludmVyc2V7YmFja2dyb3VuZDpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDEyN2RlZyx2YXIoLS1sb2NhbC1jb2xvcixyZ2JhKDAsMCwwLC40KSksdmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuNCkpIDVweCx0cmFuc3BhcmVudCAwLHRyYW5zcGFyZW50IDEycHgpfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dHtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzp2aXNpYmxlO2N1cnNvcjpkZWZhdWx0O3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgZWFzZTt3aWxsLWNoYW5nZTpkaXNwbGF5O3BvaW50ZXItZXZlbnRzOm5vbmV9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDp2YXIoLS1kYXktd2lkdGgpO3RvcDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnN0YXJ0O2FsaWduLWl0ZW1zOnN0YXJ0fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXItY29udGFpbmVyIC5sb25nLWJhcnt3aWR0aDpjYWxjKHZhcigtLWRheS13aWR0aCwgMCkqdmFyKC0tbG9uZywgMCkgLSB2YXIoLS1kYXktd2lkdGgsIDApKjAuNSk7bWluLXdpZHRoOmNhbGModmFyKC0tZGF5LXdpZHRoLCAwKSp2YXIoLS1sb25nLCAwKSAtIHZhcigtLWRheS13aWR0aCwgMCkqMC41KTtoZWlnaHQ6Y2FsYyh2YXIoLS1pdGVtLWhlaWdodCkvNCAtIDMuNXB4KTtsaW5lLWhlaWdodDowO2NvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQ6dmFyKC0tbG9jYWwtY29sb3IscmdiYSgwLDAsMCwuNCkpO2JvcmRlci1yYWRpdXM6MCAzcHggM3B4IDA7bWFyZ2luLWxlZnQ6LTNweDttYXJnaW4tdG9wOjFweDttYXJnaW4tYm90dG9tOjFweDtvcGFjaXR5OnZhcigtLWxvY2FsLW9wYWNpdHksMSk7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtib3JkZXItbGVmdC13aWR0aDowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZX0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLWNvbnRhaW5lciAubG9uZy1iYXI6aG92ZXJ7ei1pbmRleDoxMH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLWNvbnRhaW5lciAubG9uZy1iYXIuc29saWR7b3BhY2l0eToxfS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94LWV4dCAubG9uZy1iYXItY29udGFpbmVyIC5sb25nLWJhcjpmaXJzdC1vZi10eXBle21hcmdpbi10b3A6NHB4fS5jYXBpYmFyYSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94OmhvdmVye2JveC1zaGFkb3c6MCAwIDJweCA3cHggcmdiYSgxMTMsMTg5LDI1NSwuNCl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3g6aG92ZXIrLmZsb2F0LWJveC1leHQgLmxvbmctYmFye2JveC1zaGFkb3c6MCAwIDJweCA0cHggcmdiYSgxMTMsMTg5LDI1NSwuNCl9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3grLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLnJlZC1saWdodHtiYWNrZ3JvdW5kOiNmODQ3NDd9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3grLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLnllbGxvdy1saWdodHtiYWNrZ3JvdW5kOiNmZGQ4MzV9LmNhcGliYXJhIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3grLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmdyZWVuLWxpZ2h0e2JhY2tncm91bmQ6IzM4OTkzZH0uY2FwaWJhcmEgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCBzcGFuLmRhdGEuc2hhcGUtYmFye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX0uY2FwaWJhcmEuZGFyay10aGVtZSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94OmhvdmVye2JveC1zaGFkb3c6MCAwIDJweCA3cHggaHNsYSgwLDAlLDQ3LjglLC42KX0uY2FwaWJhcmEuZGFyay10aGVtZSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94OmhvdmVyKy5mbG9hdC1ib3gtZXh0IC5sb25nLWJhcntib3gtc2hhZG93OjAgMCAycHggNHB4IGhzbGEoMCwwJSw0Ny44JSwuNil9LmNhcGliYXJhLmRhcmstdGhlbWUgLmZsb2F0LWJveC1jb250YWluZXIgLmZsb2F0LWJveCsuZmxvYXQtYm94LWV4dCAubG9uZy1iYXIucmVkLWxpZ2h0e2JhY2tncm91bmQ6I2FhMWExYX0uY2FwaWJhcmEuZGFyay10aGVtZSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94Ky5mbG9hdC1ib3gtZXh0IC5sb25nLWJhci55ZWxsb3ctbGlnaHR7YmFja2dyb3VuZDojZmJjZDAwfS5jYXBpYmFyYS5kYXJrLXRoZW1lIC5mbG9hdC1ib3gtY29udGFpbmVyIC5mbG9hdC1ib3grLmZsb2F0LWJveC1leHQgLmxvbmctYmFyLmdyZWVuLWxpZ2h0e2JhY2tncm91bmQ6IzM4OGUzY30uY2FwaWJhcmEuZGFyay10aGVtZSAuZmxvYXQtYm94LWNvbnRhaW5lciAuZmxvYXQtYm94IHNwYW4uZGF0YS5zaGFwZS1iYXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjMpfS5jYXBpYmFyYSAucHJvZ3Jlc3MtYmFye3dpZHRoOjEwMCU7aGVpZ2h0OjRweDtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSw4Ni43JSwuMik7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDt0cmFuc2l0aW9uOmhlaWdodCAxcyBlYXNlfS5jYXBpYmFyYSAucHJvZ3Jlc3MtYmFyLmhpZGUtcHJvZ3Jlc3N7aGVpZ2h0OjB9LmNhcGliYXJhIC5wcm9ncmVzcy1iYXI6YmVmb3Jley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6bG9hZGluZy1mYXN0MTthbmltYXRpb24tbmFtZTpsb2FkaW5nLWZhc3QxOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0Oy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS5jYXBpYmFyYSAucHJvZ3Jlc3MtYmFyOmFmdGVyLC5jYXBpYmFyYSAucHJvZ3Jlc3MtYmFyOmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt3aWR0aDo2Mi41JTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiMyOTI5Mjk7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MnM7YW5pbWF0aW9uLWR1cmF0aW9uOjJzfS5jYXBpYmFyYSAucHJvZ3Jlc3MtYmFyOmFmdGVyey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6bG9hZGluZy1mYXN0MjthbmltYXRpb24tbmFtZTpsb2FkaW5nLWZhc3QyOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjEuM3M7YW5pbWF0aW9uLWRlbGF5OjEuM3M7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9c3Bhbi5tZGl7bWluLXdpZHRoOjE0cHg7bWluLWhlaWdodDoxNHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfXNwYW4ubWRpLm1kaS1zdWJkaXJlY3RvcnktYXJyb3ctcmlnaHR7Y29sb3I6cmdiYSgwLDAsMCwuMil9LmNhcGliYXJhIC5saWdodHtkaXNwbGF5OmJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZmxleDowIDAgMThweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW46MTJweCA4cHg7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLC4zKTtiYWNrZ3JvdW5kOnZhcigtLWxpZ2h0LWNvbG9yLHVuc2V0KTtib3JkZXItY29sb3I6aHNsYSgwLDAlLDEwMCUsLjgpfS5jYXBpYmFyYSAubGlnaHQucmVkLWxpZ2h0e2JhY2tncm91bmQ6I2Y4NDc0N30uY2FwaWJhcmEgLmxpZ2h0LnllbGxvdy1saWdodHtiYWNrZ3JvdW5kOiNmZGQ4MzV9LmNhcGliYXJhIC5saWdodC5ncmVlbi1saWdodHtiYWNrZ3JvdW5kOiMzODk5M2R9LmNhcGliYXJhIC5saWdodC5kaXNhYmxlZC1saWdodHtiYWNrZ3JvdW5kOiM3MzczNzN9LmNhcGliYXJhIC5saWdodC5ibHVlLWxpZ2h0e2JhY2tncm91bmQ6IzAyNzdiZH0uY2FwaWJhcmEuZGFyay10aGVtZSAubGlnaHR7Ym9yZGVyLWNvbG9yOiM0MDRlNjl9LmNhcGliYXJhLmRhcmstdGhlbWUgLmxpZ2h0LnJlZC1saWdodHtiYWNrZ3JvdW5kOiNhYTFhMWF9LmNhcGliYXJhLmRhcmstdGhlbWUgLmxpZ2h0LnllbGxvdy1saWdodHtiYWNrZ3JvdW5kOiNmYmNkMDB9LmNhcGliYXJhLmRhcmstdGhlbWUgLmxpZ2h0LmdyZWVuLWxpZ2h0e2JhY2tncm91bmQ6IzM4OGUzY30uY2FwaWJhcmEgc2VsZWN0LnRhYnMtc2VsZWN0e2JhY2tncm91bmQ6Z3JleTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNnB4O291dGxpbmU6bm9uZTt3aWR0aDoxMDBweDtwYWRkaW5nOjNweCAxOHB4O2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbjo4cHg7Ym9yZGVyLXJhZGl1czozMHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmNhcGliYXJhIHNlbGVjdC50YWJzLXNlbGVjdCBvcHRpb257Y29sb3I6Z3JleTtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxNXB4fS5jYXBpYmFyYSBzZWxlY3QudGFicy1zZWxlY3Q6YWZ0ZXJ7Y29udGVudDpcXFwiXFxcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7dG9wOjRweDtib3JkZXItd2lkdGg6NHB4O2JvcmRlci1jb2xvcjojZmZmO3otaW5kZXg6Mn0uY2FwaWJhcmEgc2VsZWN0LnRhYnMtc2VsZWN0LmRpc2FibGVke2NvbG9yOmdyZXl9LmNhcGliYXJhIHNlbGVjdC50YWJzLXNlbGVjdDpob3Zlcntib3JkZXItY29sb3I6Z3JleX1cIiwgXCJcIl0pO1xuLy8gRXhwb3J0c1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src/index.js!./node_modules/sass-loader/dist/cjs.js!./src/scss/style.scss\n");
|
|
107
107
|
|
|
108
108
|
/***/ }),
|
|
109
109
|
|
|
@@ -219,7 +219,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uti
|
|
|
219
219
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
220
220
|
|
|
221
221
|
"use strict";
|
|
222
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n /**\n * Crea elemento Dom, con opciones de :\n * - classNames\n * - text\n * - style\n * - attributes\n *\n * @param {String} [tag = \"div\"] - tipo de tag, default DIV\n * @param {Object} [options = {}] - opciones \n * @return {[TODO:type]} [TODO:description]\n */\n createElement(tag = \"div\", options = {}) {\n var e = document.createElement(tag);\n\n if (options.className) {\n e.classList.add(options.className);\n }\n\n if (options.classNames && options.classNames.length > 0) {\n options.classNames.forEach(c => {\n if (c !== \"\") {\n e.classList.add(c);\n }\n });\n }\n\n if (options.attributes) {\n options.attributes.forEach(attr => {\n e.setAttribute(attr.name, attr.value);\n });\n }\n\n if (options.text) {\n e.appendChild(document.createTextNode(options.text));\n }\n\n if (options.style) {\n Object.assign(e.style, options.style);\n }\n\n return e;\n },\n\n /**\n * Crea elemento Dom desde String\n *\n * Basado en \n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro\n *\n * @param {String} [htmlString = \"\"] - String a evaluar\n * @return {Object} elemento Dom creado\n */\n createElementFromHTML(htmlString = \"\") {\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim(); // Change this to div.childNodes to support multiple top-level nodes\n\n return div.firstChild;\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC9kb21VdGlscy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NhcGliYXJhLy4vc3JjL3V0aWwvZG9tVXRpbHMuanM/
|
|
222
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n /**\n * Crea elemento Dom, con opciones de :\n * - classNames\n * - text\n * - style\n * - attributes\n *\n * @param {String} [tag = \"div\"] - tipo de tag, default DIV\n * @param {Object} [options = {}] - opciones \n * @return {[TODO:type]} [TODO:description]\n */\n createElement(tag = \"div\", options = {}) {\n var e = document.createElement(tag);\n\n if (options.className) {\n e.classList.add(options.className);\n }\n\n if (options.classNames && options.classNames.length > 0) {\n options.classNames.forEach(c => {\n if (c !== \"\") {\n e.classList.add(c);\n }\n });\n }\n\n if (options.attributes) {\n options.attributes.forEach(attr => {\n e.setAttribute(attr.name, attr.value);\n });\n }\n\n if (options.text) {\n e.appendChild(document.createTextNode(options.text));\n }\n\n if (options.style) {\n Object.assign(e.style, options.style);\n }\n\n return e;\n },\n\n /**\n * Crea elemento Dom desde String\n *\n * Basado en \n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro\n *\n * @param {String} [htmlString = \"\"] - String a evaluar\n * @return {Object} elemento Dom creado\n */\n createElementFromHTML(htmlString = \"\") {\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim(); // Change this to div.childNodes to support multiple top-level nodes\n\n return div.firstChild;\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC9kb21VdGlscy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NhcGliYXJhLy4vc3JjL3V0aWwvZG9tVXRpbHMuanM/YWJiMyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG5cblxuICAvKipcbiAgICogQ3JlYSBlbGVtZW50byBEb20sIGNvbiBvcGNpb25lcyBkZSA6XG4gICAqIC0gY2xhc3NOYW1lc1xuICAgKiAtIHRleHRcbiAgICogLSBzdHlsZVxuICAgKiAtIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IFt0YWcgPSBcImRpdlwiXSAtIHRpcG8gZGUgdGFnLCBkZWZhdWx0IERJVlxuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnMgPSB7fV0gLSBvcGNpb25lcyBcbiAgICogQHJldHVybiB7W1RPRE86dHlwZV19IFtUT0RPOmRlc2NyaXB0aW9uXVxuICAgKi9cbiAgY3JlYXRlRWxlbWVudCh0YWcgPSBcImRpdlwiLCBvcHRpb25zID0ge30pIHtcbiAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTtcbiAgICBpZiAob3B0aW9ucy5jbGFzc05hbWUpIHtcbiAgICAgIGUuY2xhc3NMaXN0LmFkZChvcHRpb25zLmNsYXNzTmFtZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmNsYXNzTmFtZXMgJiYgb3B0aW9ucy5jbGFzc05hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIG9wdGlvbnMuY2xhc3NOYW1lcy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoYyAhPT0gXCJcIikge1xuICAgICAgICAgIGUuY2xhc3NMaXN0LmFkZChjKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5hdHRyaWJ1dGVzKSB7XG4gICAgICBvcHRpb25zLmF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgZS5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnRleHQpIHtcbiAgICAgIGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUob3B0aW9ucy50ZXh0KSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuc3R5bGUpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZS5zdHlsZSwgb3B0aW9ucy5zdHlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGU7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgZWxlbWVudG8gRG9tIGRlc2RlIFN0cmluZ1xuICAgKlxuICAgKiBCYXNhZG8gZW4gXG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5NDE0My9jcmVhdGluZy1hLW5ldy1kb20tZWxlbWVudC1mcm9tLWFuLWh0bWwtc3RyaW5nLXVzaW5nLWJ1aWx0LWluLWRvbS1tZXRob2RzLW9yLXByb1xuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gW2h0bWxTdHJpbmcgPSBcIlwiXSAtIFN0cmluZyBhIGV2YWx1YXJcbiAgICogQHJldHVybiB7T2JqZWN0fSBlbGVtZW50byBEb20gY3JlYWRvXG4gICAqL1xuICBjcmVhdGVFbGVtZW50RnJvbUhUTUwoaHRtbFN0cmluZyA9IFwiXCIpIHtcbiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LmlubmVySFRNTCA9IGh0bWxTdHJpbmcudHJpbSgpO1xuXG4gICAgLy8gQ2hhbmdlIHRoaXMgdG8gZGl2LmNoaWxkTm9kZXMgdG8gc3VwcG9ydCBtdWx0aXBsZSB0b3AtbGV2ZWwgbm9kZXNcbiAgICByZXR1cm4gZGl2LmZpcnN0Q2hpbGQ7XG4gIH0sXG5cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUE1REEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/util/domUtils.js\n");
|
|
223
223
|
|
|
224
224
|
/***/ }),
|
|
225
225
|
|
|
@@ -231,7 +231,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
231
231
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
232
232
|
|
|
233
233
|
"use strict";
|
|
234
|
-
eval("__webpack_require__.r(__webpack_exports__);\nconst closeIcon = `<span class=\"close-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" />\n </svg>\n </span>`;\nconst linkIcon = `<span class=\"close-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" />\n </svg>\n </span>`;\nconst toggleLegends = `<span class=\"toggle-legends-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z\" />\n </svg>\n </span>`;\nconst chevronDown = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" />\n </svg>\n </span>`;\nconst chevronRight = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n </svg>\n </span>`;\nconst arrowRight = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M4,10V14H13L9.5,17.5L11.92,19.92L19.84,12L11.92,4.08L9.5,6.5L13,10H4Z\" />\n </svg>\n </span>`;\nconst arrowLeft = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M20,10V14H11L14.5,17.5L12.08,19.92L4.16,12L12.08,4.08L14.5,6.5L11,10H20Z\" />\n </svg>\n </span>\n `;\nconst loadingIcon = `<span class=\"loading-icon\">\n <svg version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n width=\"32px\" height=\"32px\" viewBox=\"0 0 40 40\" enable-background=\"new 0 0 40 40\" xml:space=\"preserve\">\n <path opacity=\"0.2\" fill=\"#000\" d=\"M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946\n s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634\n c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z\"/>\n <path fill=\"#000\" d=\"M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0\n C22.32,8.481,24.301,9.057,26.013,10.047z\">\n <animateTransform attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 20 20\"\n to=\"360 20 20\"\n dur=\"1.5s\"\n repeatCount=\"indefinite\"/>\n </path>\n </svg>\n </span>`;\nconst light = `<span class=\"light-icon hide-dark\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 16,17.1 13.1,17.2M2,5H9.5C9.3,5.4 9,5.8 8.9,6.4C8.8,6.6 8.8,6.8 8.7,7H2V5M8,11H2V9H8.2C8.1,9.6 8.1,10.3 8,11M8.7,17C8.9,17.8 9.2,18.4 9.6,19H2.1V17H8.7M8.2,15H2V13H8C8.1,13.7 8.1,14.4 8.2,15Z\" />\n </svg>\n </span>`;\nconst dark = `<span class=\"dark-icon hide-light\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 15.9,17.1 13.1,17.2M8,10.5C8,11 7.9,11.5 7.9,12C7.9,12.2 7.9,12.4 7.9,12.6L2.4,14L1.9,12.1L8,10.5M2,7L9.4,5.1C9.2,5.4 9,5.8 8.9,6.3C8.8,6.6 8.7,7 8.6,7.4L2.5,8.9L2,7M8.2,15.5C8.3,16.2 8.5,16.9 8.7,17.4L2.4,19L1.9,17.1L8.2,15.5Z\" />\n </svg>\n </span>`;\nconst calendar = `<span class=\"calendar-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M17,12H12V17H17V12Z\" />\n </svg>\n </span>`;\nconst alert = `<span class=\"alert-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\" />\n </svg>\n </span>`;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n closeIcon,\n linkIcon,\n toggleLegends,\n chevronDown,\n chevronRight,\n arrowLeft,\n arrowRight,\n loadingIcon,\n light,\n dark,\n calendar,\n alert\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC9pY29ucy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NhcGliYXJhLy4vc3JjL3V0aWwvaWNvbnMuanM/YWU0ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjbG9zZUljb24gPSBgPHNwYW4gY2xhc3M9XCJjbG9zZS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE5LDYuNDFMMTcuNTksNUwxMiwxMC41OUw2LjQxLDVMNSw2LjQxTDEwLjU5LDEyTDUsMTcuNTlMNi40MSwxOUwxMiwxMy40MUwxNy41OSwxOUwxOSwxNy41OUwxMy40MSwxMkwxOSw2LjQxWlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gO1xuXG5jb25zdCBsaW5rSWNvbiA9IGA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMTQsM1Y1SDE3LjU5TDcuNzYsMTQuODNMOS4xNywxNi4yNEwxOSw2LjQxVjEwSDIxVjNNMTksMTlINVY1SDEyVjNINUMzLjg5LDMgMywzLjkgMyw1VjE5QTIsMiAwIDAsMCA1LDIxSDE5QTIsMiAwIDAsMCAyMSwxOVYxMkgxOVYxOVpcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgdG9nZ2xlTGVnZW5kcyA9IGA8c3BhbiBjbGFzcz1cInRvZ2dsZS1sZWdlbmRzLWljb25cIj5cbiAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTcsNUgyMVY3SDdWNU03LDEzVjExSDIxVjEzSDdNNCw0LjVBMS41LDEuNSAwIDAsMSA1LjUsNkExLjUsMS41IDAgMCwxIDQsNy41QTEuNSwxLjUgMCAwLDEgMi41LDZBMS41LDEuNSAwIDAsMSA0LDQuNU00LDEwLjVBMS41LDEuNSAwIDAsMSA1LjUsMTJBMS41LDEuNSAwIDAsMSA0LDEzLjVBMS41LDEuNSAwIDAsMSAyLjUsMTJBMS41LDEuNSAwIDAsMSA0LDEwLjVNNywxOVYxN0gyMVYxOUg3TTQsMTYuNUExLjUsMS41IDAgMCwxIDUuNSwxOEExLjUsMS41IDAgMCwxIDQsMTkuNUExLjUsMS41IDAgMCwxIDIuNSwxOEExLjUsMS41IDAgMCwxIDQsMTYuNVpcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgY2hldnJvbkRvd24gPSBgPHNwYW4gY2xhc3M9XCJhcnJvdy1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTcuNDEsOC41OEwxMiwxMy4xN0wxNi41OSw4LjU4TDE4LDEwTDEyLDE2TDYsMTBMNy40MSw4LjU4WlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgY2hldnJvblJpZ2h0ID0gYDxzcGFuIGNsYXNzPVwiYXJyb3ctaWNvblwiPlxuICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTguNTksMTYuNThMMTMuMTcsMTJMOC41OSw3LjQxTDEwLDZMMTYsMTJMMTAsMThMOC41OSwxNi41OFpcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5gO1xuXG5jb25zdCBhcnJvd1JpZ2h0ID0gYDxzcGFuIGNsYXNzPVwiYXJyb3ctaWNvblwiPlxuICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQsMTBWMTRIMTNMOS41LDE3LjVMMTEuOTIsMTkuOTJMMTkuODQsMTJMMTEuOTIsNC4wOEw5LjUsNi41TDEzLDEwSDRaXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgYXJyb3dMZWZ0ID0gYDxzcGFuIGNsYXNzPVwiYXJyb3ctaWNvblwiPlxuICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTIwLDEwVjE0SDExTDE0LjUsMTcuNUwxMi4wOCwxOS45Mkw0LjE2LDEyTDEyLjA4LDQuMDhMMTQuNSw2LjVMMTEsMTBIMjBaXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIGA7XG5cbmNvbnN0IGxvYWRpbmdJY29uID0gYDxzcGFuIGNsYXNzPVwibG9hZGluZy1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmVyc2lvbj1cIjEuMVwiIGlkPVwibG9hZGVyLTFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgeD1cIjBweFwiIHk9XCIwcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMzJweFwiIGhlaWdodD1cIjMycHhcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDQwIDQwXCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBvcGFjaXR5PVwiMC4yXCIgZmlsbD1cIiMwMDBcIiBkPVwiTTIwLjIwMSw1LjE2OWMtOC4yNTQsMC0xNC45NDYsNi42OTItMTQuOTQ2LDE0Ljk0NmMwLDguMjU1LDYuNjkyLDE0Ljk0NiwxNC45NDYsMTQuOTQ2XG4gICAgICAgICAgICAgICAgICAgIHMxNC45NDYtNi42OTEsMTQuOTQ2LTE0Ljk0NkMzNS4xNDYsMTEuODYxLDI4LjQ1NSw1LjE2OSwyMC4yMDEsNS4xNjl6IE0yMC4yMDEsMzEuNzQ5Yy02LjQyNSwwLTExLjYzNC01LjIwOC0xMS42MzQtMTEuNjM0XG4gICAgICAgICAgICAgICAgICAgIGMwLTYuNDI1LDUuMjA5LTExLjYzNCwxMS42MzQtMTEuNjM0YzYuNDI1LDAsMTEuNjMzLDUuMjA5LDExLjYzMywxMS42MzRDMzEuODM0LDI2LjU0MSwyNi42MjYsMzEuNzQ5LDIwLjIwMSwzMS43NDl6XCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjMDAwXCIgZD1cIk0yNi4wMTMsMTAuMDQ3bDEuNjU0LTIuODY2Yy0yLjE5OC0xLjI3Mi00Ljc0My0yLjAxMi03LjQ2Ni0yLjAxMmgwdjMuMzEyaDBcbiAgICAgICAgICAgICAgICAgICAgQzIyLjMyLDguNDgxLDI0LjMwMSw5LjA1NywyNi4wMTMsMTAuMDQ3elwiPlxuICAgICAgICAgICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPVwieG1sXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICBmcm9tPVwiMCAyMCAyMFwiXG4gICAgICAgICAgICAgICAgICAgIHRvPVwiMzYwIDIwIDIwXCJcbiAgICAgICAgICAgICAgICAgICAgZHVyPVwiMS41c1wiXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgbGlnaHQgPSBgPHNwYW4gY2xhc3M9XCJsaWdodC1pY29uIGhpZGUtZGFya1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoICBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xMyw0LjhDOSw0LjggOSwxOS4yIDEzLDE5LjJDMTcsMTkuMiAyMiwxNi41IDIyLDEyQzIyLDcuNSAxNyw0LjggMTMsNC44TTEzLjEsMTcuMkMxMi43LDE2LjggMTIsMTUgMTIsMTJDMTIsOSAxMi43LDcuMiAxMy4xLDYuOEMxNiw2LjkgMjAsOC43IDIwLDEyQzIwLDE1LjMgMTYsMTcuMSAxMy4xLDE3LjJNMiw1SDkuNUM5LjMsNS40IDksNS44IDguOSw2LjRDOC44LDYuNiA4LjgsNi44IDguNyw3SDJWNU04LDExSDJWOUg4LjJDOC4xLDkuNiA4LjEsMTAuMyA4LDExTTguNywxN0M4LjksMTcuOCA5LjIsMTguNCA5LjYsMTlIMi4xVjE3SDguN004LjIsMTVIMlYxM0g4QzguMSwxMy43IDguMSwxNC40IDguMiwxNVpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgZGFyayA9IGA8c3BhbiBjbGFzcz1cImRhcmstaWNvbiBoaWRlLWxpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTEzLDQuOEM5LDQuOCA5LDE5LjIgMTMsMTkuMkMxNywxOS4yIDIyLDE2LjUgMjIsMTJDMjIsNy41IDE3LDQuOCAxMyw0LjhNMTMuMSwxNy4yQzEyLjcsMTYuOCAxMiwxNSAxMiwxMkMxMiw5IDEyLjcsNy4yIDEzLjEsNi44QzE2LDYuOSAyMCw4LjcgMjAsMTJDMjAsMTUuMyAxNS45LDE3LjEgMTMuMSwxNy4yTTgsMTAuNUM4LDExIDcuOSwxMS41IDcuOSwxMkM3LjksMTIuMiA3LjksMTIuNCA3LjksMTIuNkwyLjQsMTRMMS45LDEyLjFMOCwxMC41TTIsN0w5LjQsNS4xQzkuMiw1LjQgOSw1LjggOC45LDYuM0M4LjgsNi42IDguNyw3IDguNiw3LjRMMi41LDguOUwyLDdNOC4yLDE1LjVDOC4zLDE2LjIgOC41LDE2LjkgOC43LDE3LjRMMi40LDE5TDEuOSwxNy4xTDguMiwxNS41WlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgPC9zcGFuPmA7XG5cbmNvbnN0IGNhbGVuZGFyID0gYDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE5LDE5SDVWOEgxOU0xNiwxVjNIOFYxSDZWM0g1QzMuODksMyAzLDMuODkgMyw1VjE5QTIsMiAwIDAsMCA1LDIxSDE5QTIsMiAwIDAsMCAyMSwxOVY1QzIxLDMuODkgMjAuMSwzIDE5LDNIMThWMU0xNywxMkgxMlYxN0gxN1YxMlpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgYWxlcnQgPSBgPHNwYW4gY2xhc3M9XCJhbGVydC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMTMgMTRIMTFWOUgxM00xMyAxOEgxMVYxNkgxM00xIDIxSDIzTDEyIDJMMSAyMVpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBjbG9zZUljb24sXG4gIGxpbmtJY29uLFxuICB0b2dnbGVMZWdlbmRzLFxuICBjaGV2cm9uRG93bixcbiAgY2hldnJvblJpZ2h0LFxuICBhcnJvd0xlZnQsXG4gIGFycm93UmlnaHQsXG4gIGxvYWRpbmdJY29uLFxuICBsaWdodCxcbiAgZGFyayxcbiAgY2FsZW5kYXIsXG4gIGFsZXJ0XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/util/icons.js\n");
|
|
234
|
+
eval("__webpack_require__.r(__webpack_exports__);\nconst closeIcon = `<span class=\"close-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" />\n </svg>\n </span>`;\nconst linkIcon = `<span class=\"close-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" />\n </svg>\n </span>`;\nconst toggleLegends = `<span class=\"toggle-legends-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z\" />\n </svg>\n </span>`;\nconst chevronDown = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" />\n </svg>\n </span>`;\nconst chevronRight = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n </svg>\n </span>`;\nconst arrowRight = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M4,10V14H13L9.5,17.5L11.92,19.92L19.84,12L11.92,4.08L9.5,6.5L13,10H4Z\" />\n </svg>\n </span>`;\nconst arrowLeft = `<span class=\"arrow-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M20,10V14H11L14.5,17.5L12.08,19.92L4.16,12L12.08,4.08L14.5,6.5L11,10H20Z\" />\n </svg>\n </span>\n `;\nconst loadingIcon = `<span class=\"loading-icon\">\n <svg version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n width=\"32px\" height=\"32px\" viewBox=\"0 0 40 40\" enable-background=\"new 0 0 40 40\" xml:space=\"preserve\">\n <path opacity=\"0.2\" fill=\"#000\" d=\"M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946\n s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634\n c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z\"/>\n <path fill=\"#000\" d=\"M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0\n C22.32,8.481,24.301,9.057,26.013,10.047z\">\n <animateTransform attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 20 20\"\n to=\"360 20 20\"\n dur=\"1.5s\"\n repeatCount=\"indefinite\"/>\n </path>\n </svg>\n </span>`;\nconst light = `<span class=\"light-icon hide-dark\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 16,17.1 13.1,17.2M2,5H9.5C9.3,5.4 9,5.8 8.9,6.4C8.8,6.6 8.8,6.8 8.7,7H2V5M8,11H2V9H8.2C8.1,9.6 8.1,10.3 8,11M8.7,17C8.9,17.8 9.2,18.4 9.6,19H2.1V17H8.7M8.2,15H2V13H8C8.1,13.7 8.1,14.4 8.2,15Z\" />\n </svg>\n </span>`;\nconst dark = `<span class=\"dark-icon hide-light\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 15.9,17.1 13.1,17.2M8,10.5C8,11 7.9,11.5 7.9,12C7.9,12.2 7.9,12.4 7.9,12.6L2.4,14L1.9,12.1L8,10.5M2,7L9.4,5.1C9.2,5.4 9,5.8 8.9,6.3C8.8,6.6 8.7,7 8.6,7.4L2.5,8.9L2,7M8.2,15.5C8.3,16.2 8.5,16.9 8.7,17.4L2.4,19L1.9,17.1L8.2,15.5Z\" />\n </svg>\n </span>`;\nconst calendar = `<span class=\"calendar-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M17,12H12V17H17V12Z\" />\n </svg>\n </span>`;\nconst alert = `<span class=\"alert-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\" />\n </svg>\n </span>`;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n closeIcon,\n linkIcon,\n toggleLegends,\n chevronDown,\n chevronRight,\n arrowLeft,\n arrowRight,\n loadingIcon,\n light,\n dark,\n calendar,\n alert\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC9pY29ucy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NhcGliYXJhLy4vc3JjL3V0aWwvaWNvbnMuanM/YWU0ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjbG9zZUljb24gPSBgPHNwYW4gY2xhc3M9XCJjbG9zZS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE5LDYuNDFMMTcuNTksNUwxMiwxMC41OUw2LjQxLDVMNSw2LjQxTDEwLjU5LDEyTDUsMTcuNTlMNi40MSwxOUwxMiwxMy40MUwxNy41OSwxOUwxOSwxNy41OUwxMy40MSwxMkwxOSw2LjQxWlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gO1xuXG5jb25zdCBsaW5rSWNvbiA9IGA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMTQsM1Y1SDE3LjU5TDcuNzYsMTQuODNMOS4xNywxNi4yNEwxOSw2LjQxVjEwSDIxVjNNMTksMTlINVY1SDEyVjNINUMzLjg5LDMgMywzLjkgMyw1VjE5QTIsMiAwIDAsMCA1LDIxSDE5QTIsMiAwIDAsMCAyMSwxOVYxMkgxOVYxOVpcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgdG9nZ2xlTGVnZW5kcyA9IGA8c3BhbiBjbGFzcz1cInRvZ2dsZS1sZWdlbmRzLWljb25cIj5cbiAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTcsNUgyMVY3SDdWNU03LDEzVjExSDIxVjEzSDdNNCw0LjVBMS41LDEuNSAwIDAsMSA1LjUsNkExLjUsMS41IDAgMCwxIDQsNy41QTEuNSwxLjUgMCAwLDEgMi41LDZBMS41LDEuNSAwIDAsMSA0LDQuNU00LDEwLjVBMS41LDEuNSAwIDAsMSA1LjUsMTJBMS41LDEuNSAwIDAsMSA0LDEzLjVBMS41LDEuNSAwIDAsMSAyLjUsMTJBMS41LDEuNSAwIDAsMSA0LDEwLjVNNywxOVYxN0gyMVYxOUg3TTQsMTYuNUExLjUsMS41IDAgMCwxIDUuNSwxOEExLjUsMS41IDAgMCwxIDQsMTkuNUExLjUsMS41IDAgMCwxIDIuNSwxOEExLjUsMS41IDAgMCwxIDQsMTYuNVpcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgY2hldnJvbkRvd24gPSBgPHNwYW4gY2xhc3M9XCJhcnJvdy1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTcuNDEsOC41OEwxMiwxMy4xN0wxNi41OSw4LjU4TDE4LDEwTDEyLDE2TDYsMTBMNy40MSw4LjU4WlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgY2hldnJvblJpZ2h0ID0gYDxzcGFuIGNsYXNzPVwiYXJyb3ctaWNvblwiPlxuICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTguNTksMTYuNThMMTMuMTcsMTJMOC41OSw3LjQxTDEwLDZMMTYsMTJMMTAsMThMOC41OSwxNi41OFpcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5gO1xuXG5jb25zdCBhcnJvd1JpZ2h0ID0gYDxzcGFuIGNsYXNzPVwiYXJyb3ctaWNvblwiPlxuICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQsMTBWMTRIMTNMOS41LDE3LjVMMTEuOTIsMTkuOTJMMTkuODQsMTJMMTEuOTIsNC4wOEw5LjUsNi41TDEzLDEwSDRaXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgYXJyb3dMZWZ0ID0gYDxzcGFuIGNsYXNzPVwiYXJyb3ctaWNvblwiPlxuICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTIwLDEwVjE0SDExTDE0LjUsMTcuNUwxMi4wOCwxOS45Mkw0LjE2LDEyTDEyLjA4LDQuMDhMMTQuNSw2LjVMMTEsMTBIMjBaXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIGA7XG5cbmNvbnN0IGxvYWRpbmdJY29uID0gYDxzcGFuIGNsYXNzPVwibG9hZGluZy1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmVyc2lvbj1cIjEuMVwiIGlkPVwibG9hZGVyLTFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgeD1cIjBweFwiIHk9XCIwcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMzJweFwiIGhlaWdodD1cIjMycHhcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDQwIDQwXCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBvcGFjaXR5PVwiMC4yXCIgZmlsbD1cIiMwMDBcIiBkPVwiTTIwLjIwMSw1LjE2OWMtOC4yNTQsMC0xNC45NDYsNi42OTItMTQuOTQ2LDE0Ljk0NmMwLDguMjU1LDYuNjkyLDE0Ljk0NiwxNC45NDYsMTQuOTQ2XG4gICAgICAgICAgICAgICAgICAgIHMxNC45NDYtNi42OTEsMTQuOTQ2LTE0Ljk0NkMzNS4xNDYsMTEuODYxLDI4LjQ1NSw1LjE2OSwyMC4yMDEsNS4xNjl6IE0yMC4yMDEsMzEuNzQ5Yy02LjQyNSwwLTExLjYzNC01LjIwOC0xMS42MzQtMTEuNjM0XG4gICAgICAgICAgICAgICAgICAgIGMwLTYuNDI1LDUuMjA5LTExLjYzNCwxMS42MzQtMTEuNjM0YzYuNDI1LDAsMTEuNjMzLDUuMjA5LDExLjYzMywxMS42MzRDMzEuODM0LDI2LjU0MSwyNi42MjYsMzEuNzQ5LDIwLjIwMSwzMS43NDl6XCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjMDAwXCIgZD1cIk0yNi4wMTMsMTAuMDQ3bDEuNjU0LTIuODY2Yy0yLjE5OC0xLjI3Mi00Ljc0My0yLjAxMi03LjQ2Ni0yLjAxMmgwdjMuMzEyaDBcbiAgICAgICAgICAgICAgICAgICAgQzIyLjMyLDguNDgxLDI0LjMwMSw5LjA1NywyNi4wMTMsMTAuMDQ3elwiPlxuICAgICAgICAgICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPVwieG1sXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICBmcm9tPVwiMCAyMCAyMFwiXG4gICAgICAgICAgICAgICAgICAgIHRvPVwiMzYwIDIwIDIwXCJcbiAgICAgICAgICAgICAgICAgICAgZHVyPVwiMS41c1wiXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgbGlnaHQgPSBgPHNwYW4gY2xhc3M9XCJsaWdodC1pY29uIGhpZGUtZGFya1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoICBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xMyw0LjhDOSw0LjggOSwxOS4yIDEzLDE5LjJDMTcsMTkuMiAyMiwxNi41IDIyLDEyQzIyLDcuNSAxNyw0LjggMTMsNC44TTEzLjEsMTcuMkMxMi43LDE2LjggMTIsMTUgMTIsMTJDMTIsOSAxMi43LDcuMiAxMy4xLDYuOEMxNiw2LjkgMjAsOC43IDIwLDEyQzIwLDE1LjMgMTYsMTcuMSAxMy4xLDE3LjJNMiw1SDkuNUM5LjMsNS40IDksNS44IDguOSw2LjRDOC44LDYuNiA4LjgsNi44IDguNyw3SDJWNU04LDExSDJWOUg4LjJDOC4xLDkuNiA4LjEsMTAuMyA4LDExTTguNywxN0M4LjksMTcuOCA5LjIsMTguNCA5LjYsMTlIMi4xVjE3SDguN004LjIsMTVIMlYxM0g4QzguMSwxMy43IDguMSwxNC40IDguMiwxNVpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgZGFyayA9IGA8c3BhbiBjbGFzcz1cImRhcmstaWNvbiBoaWRlLWxpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTEzLDQuOEM5LDQuOCA5LDE5LjIgMTMsMTkuMkMxNywxOS4yIDIyLDE2LjUgMjIsMTJDMjIsNy41IDE3LDQuOCAxMyw0LjhNMTMuMSwxNy4yQzEyLjcsMTYuOCAxMiwxNSAxMiwxMkMxMiw5IDEyLjcsNy4yIDEzLjEsNi44QzE2LDYuOSAyMCw4LjcgMjAsMTJDMjAsMTUuMyAxNS45LDE3LjEgMTMuMSwxNy4yTTgsMTAuNUM4LDExIDcuOSwxMS41IDcuOSwxMkM3LjksMTIuMiA3LjksMTIuNCA3LjksMTIuNkwyLjQsMTRMMS45LDEyLjFMOCwxMC41TTIsN0w5LjQsNS4xQzkuMiw1LjQgOSw1LjggOC45LDYuM0M4LjgsNi42IDguNyw3IDguNiw3LjRMMi41LDguOUwyLDdNOC4yLDE1LjVDOC4zLDE2LjIgOC41LDE2LjkgOC43LDE3LjRMMi40LDE5TDEuOSwxNy4xTDguMiwxNS41WlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgPC9zcGFuPmA7XG5cbmNvbnN0IGNhbGVuZGFyID0gYDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE5LDE5SDVWOEgxOU0xNiwxVjNIOFYxSDZWM0g1QzMuODksMyAzLDMuODkgMyw1VjE5QTIsMiAwIDAsMCA1LDIxSDE5QTIsMiAwIDAsMCAyMSwxOVY1QzIxLDMuODkgMjAuMSwzIDE5LDNIMThWMU0xNywxMkgxMlYxN0gxN1YxMlpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuY29uc3QgYWxlcnQgPSBgPHNwYW4gY2xhc3M9XCJhbGVydC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMTMgMTRIMTFWOUgxM00xMyAxOEgxMVYxNkgxM00xIDIxSDIzTDEyIDJMMSAyMVpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNsb3NlSWNvbixcbiAgICBsaW5rSWNvbixcbiAgICB0b2dnbGVMZWdlbmRzLFxuICAgIGNoZXZyb25Eb3duLFxuICAgIGNoZXZyb25SaWdodCxcbiAgICBhcnJvd0xlZnQsXG4gICAgYXJyb3dSaWdodCxcbiAgICBsb2FkaW5nSWNvbixcbiAgICBsaWdodCxcbiAgICBkYXJrLFxuICAgIGNhbGVuZGFyLFxuICAgIGFsZXJ0XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/util/icons.js\n");
|
|
235
235
|
|
|
236
236
|
/***/ }),
|
|
237
237
|
|
|
@@ -243,7 +243,7 @@ eval("__webpack_require__.r(__webpack_exports__);\nconst closeIcon = `<span clas
|
|
|
243
243
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
244
244
|
|
|
245
245
|
"use strict";
|
|
246
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/util/utils.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n cleanStyle(config) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-right-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-item-col-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--initial-nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--btn-nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-height\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-top-height\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-header-height\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--day-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--item-height\", null);\n },\n\n setNavStyle(config) {\n if (config.timeline.nav.left.initial.width && !_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-width\", config.timeline.nav.left.initial.width + \"px\");\n }\n\n if (config.timeline.nav.left.initial.mobile && _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-width\", config.timeline.nav.left.initial.mobile.width + \"px\");\n }\n\n if (config.timeline.nav.right.width) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-right-width\", config.timeline.nav.right.width + \"px\");\n }\n\n if (config.timeline.nav.columnWidth) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-item-col-width\", config.timeline.nav.columnWidth + \"px\");\n }\n },\n\n setNavLeftInitialStyle(config, isShow, tab) {\n this.setSubNavStyle(config, isShow, \"left.initial\", \"--initial-nav-width\", tab);\n },\n\n setNavLeftExtendedStyle(config, isShow, tab) {\n this.setSubNavStyle(config, isShow, \"left.extend\", \"--ex-nav-width\", tab);\n },\n\n setNavLeftButtonsStyle(config, isShow, tab) {\n this.setSubNavStyle(config, isShow, \"left.buttons\", \"--btn-nav-width\", tab);\n },\n\n setSubNavStyle(config, isShow, path, cssVarName, tab = null) {\n let columnWidth = parseFloat(_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getCSSVariable(config, \"--nav-item-col-width\"));\n\n let nav = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.get(config, \"timeline.nav.\" + path);\n\n let width = null;\n\n if (nav) {\n if (isShow) {\n if (nav.columnWidth) {\n columnWidth = nav.columnWidth;\n }\n\n if (nav.width) {\n width = nav.width;\n } else if (nav.vars && columnWidth) {\n let navVarsFiltered = nav.vars.filter(v => v.onlyTab == undefined || v.onlyTab && tab && v.onlyTab == tab.key);\n width = columnWidth * navVarsFiltered.length;\n }\n } else {\n width = 0;\n }\n\n if (width !== null) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, cssVarName, width + \"px\");\n }\n }\n },\n\n setHeaderStyle(config) {\n if (config.timeline.header.height) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-height\", config.timeline.header.height + \"px\");\n }\n\n if (config.timeline.header.top && config.timeline.header.top.height) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-top-height\", config.timeline.header.top.height + \"px\");\n }\n\n if (config.timeline.header.extend.enabled === false) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-header-height\", \"0px\");\n }\n\n if (config.timeline.header.extend.height) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-header-height\", config.timeline.header.extend.height + \"px\");\n }\n },\n\n setTableStyle(config) {\n if (config.timeline.day.width) {\n if (config.timeline.day.mobile && _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--day-width\", config.timeline.day.mobile.width + \"px\");\n } else {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--day-width\", config.timeline.day.width + \"px\");\n }\n }\n\n if (config.timeline.day.height) {\n if (config.timeline.day.mobile && _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--item-height\", config.timeline.day.mobile.height + \"px\");\n } else {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--item-height\", config.timeline.day.height + \"px\");\n }\n }\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC9zdHlsZVV0aWxzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2FwaWJhcmEvLi9zcmMvdXRpbC9zdHlsZVV0aWxzLmpzPzEzNmUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNsZWFuU3R5bGUoY29uZmlnKXtcblxuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LXdpZHRoXCIsIG51bGwpO1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LXJpZ2h0LXdpZHRoXCIsIG51bGwpO1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LWl0ZW0tY29sLXdpZHRoXCIsIG51bGwpO1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taW5pdGlhbC1uYXYtd2lkdGhcIiwgbnVsbCk7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1leC1uYXYtd2lkdGhcIiwgbnVsbCk7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1idG4tbmF2LXdpZHRoXCIsIG51bGwpO1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taGVhZGVyLWhlaWdodFwiLCBudWxsKTtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWhlYWRlci10b3AtaGVpZ2h0XCIsIG51bGwpO1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZXgtaGVhZGVyLWhlaWdodFwiLCBudWxsKTtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWRheS13aWR0aFwiLCBudWxsKTtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIsIG51bGwpO1xuICB9LFxuXG4gICAgc2V0TmF2U3R5bGUoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmxlZnQuaW5pdGlhbC53aWR0aCAmJiAhdXRpbHMuY2hlY2tJc01vYmlsZSgpKSB7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtd2lkdGhcIiwgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmluaXRpYWwud2lkdGggKyBcInB4XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmxlZnQuaW5pdGlhbC5tb2JpbGUgJiYgdXRpbHMuY2hlY2tJc01vYmlsZSgpKSB7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtd2lkdGhcIiwgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmluaXRpYWwubW9iaWxlLndpZHRoICsgXCJweFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLnRpbWVsaW5lLm5hdi5yaWdodC53aWR0aCkge1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LXJpZ2h0LXdpZHRoXCIsIGNvbmZpZy50aW1lbGluZS5uYXYucmlnaHQud2lkdGgrIFwicHhcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5uYXYuY29sdW1uV2lkdGgpIHtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLW5hdi1pdGVtLWNvbC13aWR0aFwiLCBjb25maWcudGltZWxpbmUubmF2LmNvbHVtbldpZHRoICsgXCJweFwiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0TmF2TGVmdEluaXRpYWxTdHlsZShjb25maWcsIGlzU2hvdywgdGFiKSB7XG4gICAgICAgIHRoaXMuc2V0U3ViTmF2U3R5bGUoY29uZmlnLCBpc1Nob3csIFwibGVmdC5pbml0aWFsXCIsIFwiLS1pbml0aWFsLW5hdi13aWR0aFwiLCB0YWIpO1xuICAgIH0sXG4gICAgc2V0TmF2TGVmdEV4dGVuZGVkU3R5bGUoY29uZmlnLCBpc1Nob3csIHRhYikge1xuICAgICAgICB0aGlzLnNldFN1Yk5hdlN0eWxlKGNvbmZpZywgaXNTaG93LCBcImxlZnQuZXh0ZW5kXCIsIFwiLS1leC1uYXYtd2lkdGhcIiwgdGFiKTtcbiAgICB9LFxuICAgIHNldE5hdkxlZnRCdXR0b25zU3R5bGUoY29uZmlnLCBpc1Nob3csIHRhYikge1xuICAgICAgICB0aGlzLnNldFN1Yk5hdlN0eWxlKGNvbmZpZywgaXNTaG93LCBcImxlZnQuYnV0dG9uc1wiLCBcIi0tYnRuLW5hdi13aWR0aFwiLCB0YWIpO1xuICAgIH0sXG5cbiAgICBzZXRTdWJOYXZTdHlsZShjb25maWcsIGlzU2hvdywgcGF0aCwgY3NzVmFyTmFtZSwgdGFiID0gbnVsbCkge1xuICAgICAgICBsZXQgY29sdW1uV2lkdGggPSBwYXJzZUZsb2F0KHV0aWxzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLW5hdi1pdGVtLWNvbC13aWR0aFwiKSk7XG4gICAgICAgIGxldCBuYXYgPSBfLmdldChjb25maWcsIFwidGltZWxpbmUubmF2LlwiICsgcGF0aCk7XG4gICAgICAgIGxldCB3aWR0aCA9IG51bGw7XG4gICAgICAgIGlmIChuYXYpIHtcbiAgICAgICAgICAgIGlmIChpc1Nob3cpIHtcbiAgICAgICAgICAgICAgICBpZiAobmF2LmNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoID0gbmF2LmNvbHVtbldpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobmF2LndpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gbmF2LndpZHRoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmF2LnZhcnMgJiYgY29sdW1uV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBuYXZWYXJzRmlsdGVyZWQgPSBuYXYudmFycy5maWx0ZXIodiA9PiAodi5vbmx5VGFiID09IHVuZGVmaW5lZCB8fCAodi5vbmx5VGFiICYmIHRhYiAmJiB2Lm9ubHlUYWIgPT0gdGFiLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgIHdpZHRoID0gY29sdW1uV2lkdGggKiBuYXZWYXJzRmlsdGVyZWQubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2lkdGggPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAod2lkdGggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIGNzc1Zhck5hbWUsIHdpZHRoICsgXCJweFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzZXRIZWFkZXJTdHlsZShjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5oZWFkZXIuaGVpZ2h0KSB7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1oZWFkZXItaGVpZ2h0XCIsIGNvbmZpZy50aW1lbGluZS5oZWFkZXIuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLnRvcCAmJiBjb25maWcudGltZWxpbmUuaGVhZGVyLnRvcC5oZWlnaHQpIHtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWhlYWRlci10b3AtaGVpZ2h0XCIsIGNvbmZpZy50aW1lbGluZS5oZWFkZXIudG9wLmhlaWdodCArIFwicHhcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWV4LWhlYWRlci1oZWlnaHRcIixcIjBweFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5oZWlnaHQpIHtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWV4LWhlYWRlci1oZWlnaHRcIiwgY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgfVxuXG4gICAgfSxcblxuICAgIHNldFRhYmxlU3R5bGUoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuZGF5LndpZHRoKSB7XG4gICAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5kYXkubW9iaWxlICYmIHV0aWxzLmNoZWNrSXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIsIGNvbmZpZy50aW1lbGluZS5kYXkubW9iaWxlLndpZHRoICsgXCJweFwiKTtcbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWRheS13aWR0aFwiLCBjb25maWcudGltZWxpbmUuZGF5LndpZHRoICsgXCJweFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5kYXkuaGVpZ2h0KSB7XG4gICAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5kYXkubW9iaWxlICYmIHV0aWxzLmNoZWNrSXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIiwgY29uZmlnLnRpbWVsaW5lLmRheS5tb2JpbGUuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIsIGNvbmZpZy50aW1lbGluZS5kYXkuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBckdBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/util/styleUtils.js\n");
|
|
246
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/util/utils.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n cleanStyle(config) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-right-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-item-col-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--initial-nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--btn-nav-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-height\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-top-height\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-header-height\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--day-width\", null);\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--item-height\", null);\n },\n\n setNavStyle(config) {\n if (config.timeline.nav.left.initial.width && !_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-width\", config.timeline.nav.left.initial.width + \"px\");\n }\n\n if (config.timeline.nav.left.initial.mobile && _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-width\", config.timeline.nav.left.initial.mobile.width + \"px\");\n }\n\n if (config.timeline.nav.right.width) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-right-width\", config.timeline.nav.right.width + \"px\");\n }\n\n if (config.timeline.nav.columnWidth) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--nav-item-col-width\", config.timeline.nav.columnWidth + \"px\");\n }\n },\n\n setNavLeftInitialStyle(config, isShow, tab) {\n this.setSubNavStyle(config, isShow, \"left.initial\", \"--initial-nav-width\", tab);\n },\n\n setNavLeftExtendedStyle(config, isShow, tab) {\n this.setSubNavStyle(config, isShow, \"left.extend\", \"--ex-nav-width\", tab);\n },\n\n setNavLeftButtonsStyle(config, isShow, tab) {\n this.setSubNavStyle(config, isShow, \"left.buttons\", \"--btn-nav-width\", tab);\n },\n\n setSubNavStyle(config, isShow, path, cssVarName, tab = null) {\n let columnWidth = parseFloat(_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getCSSVariable(config, \"--nav-item-col-width\"));\n\n let nav = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.get(config, \"timeline.nav.\" + path);\n\n let width = null;\n\n if (nav) {\n if (isShow) {\n if (nav.columnWidth) {\n columnWidth = nav.columnWidth;\n }\n\n if (nav.width) {\n width = nav.width;\n } else if (nav.vars && columnWidth) {\n let navVarsFiltered = nav.vars.filter(v => v.onlyTab == undefined || v.onlyTab && tab && v.onlyTab == tab.key);\n width = columnWidth * navVarsFiltered.length;\n }\n } else {\n width = 0;\n }\n\n if (width !== null) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, cssVarName, width + \"px\");\n }\n }\n },\n\n setHeaderStyle(config) {\n if (config.timeline.header.height) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-height\", config.timeline.header.height + \"px\");\n }\n\n if (config.timeline.header.top && config.timeline.header.top.height) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--header-top-height\", config.timeline.header.top.height + \"px\");\n }\n\n if (config.timeline.header.extend.enabled === false) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-header-height\", \"0px\");\n }\n\n if (config.timeline.header.extend.height) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--ex-header-height\", config.timeline.header.extend.height + \"px\");\n }\n },\n\n setTableStyle(config) {\n if (config.timeline.day.width) {\n if (config.timeline.day.mobile && _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--day-width\", config.timeline.day.mobile.width + \"px\");\n } else {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--day-width\", config.timeline.day.width + \"px\");\n }\n }\n\n if (config.timeline.day.height) {\n if (config.timeline.day.mobile && _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkIsMobile()) {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--item-height\", config.timeline.day.mobile.height + \"px\");\n } else {\n _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setCSSVariable(config, \"--item-height\", config.timeline.day.height + \"px\");\n }\n }\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC9zdHlsZVV0aWxzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2FwaWJhcmEvLi9zcmMvdXRpbC9zdHlsZVV0aWxzLmpzPzEzNmUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgY2xlYW5TdHlsZShjb25maWcpIHtcblxuICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtd2lkdGhcIiwgbnVsbCk7XG4gICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLW5hdi1yaWdodC13aWR0aFwiLCBudWxsKTtcbiAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LWl0ZW0tY29sLXdpZHRoXCIsIG51bGwpO1xuICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1pbml0aWFsLW5hdi13aWR0aFwiLCBudWxsKTtcbiAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZXgtbmF2LXdpZHRoXCIsIG51bGwpO1xuICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1idG4tbmF2LXdpZHRoXCIsIG51bGwpO1xuICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1oZWFkZXItaGVpZ2h0XCIsIG51bGwpO1xuICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1oZWFkZXItdG9wLWhlaWdodFwiLCBudWxsKTtcbiAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZXgtaGVhZGVyLWhlaWdodFwiLCBudWxsKTtcbiAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIsIG51bGwpO1xuICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1pdGVtLWhlaWdodFwiLCBudWxsKTtcbiAgICB9LFxuXG4gICAgc2V0TmF2U3R5bGUoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmxlZnQuaW5pdGlhbC53aWR0aCAmJiAhdXRpbHMuY2hlY2tJc01vYmlsZSgpKSB7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtd2lkdGhcIiwgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmluaXRpYWwud2lkdGggKyBcInB4XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmxlZnQuaW5pdGlhbC5tb2JpbGUgJiYgdXRpbHMuY2hlY2tJc01vYmlsZSgpKSB7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtd2lkdGhcIiwgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmluaXRpYWwubW9iaWxlLndpZHRoICsgXCJweFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLnRpbWVsaW5lLm5hdi5yaWdodC53aWR0aCkge1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LXJpZ2h0LXdpZHRoXCIsIGNvbmZpZy50aW1lbGluZS5uYXYucmlnaHQud2lkdGggKyBcInB4XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICB1dGlscy5zZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtaXRlbS1jb2wtd2lkdGhcIiwgY29uZmlnLnRpbWVsaW5lLm5hdi5jb2x1bW5XaWR0aCArIFwicHhcIik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNldE5hdkxlZnRJbml0aWFsU3R5bGUoY29uZmlnLCBpc1Nob3csIHRhYikge1xuICAgICAgICB0aGlzLnNldFN1Yk5hdlN0eWxlKGNvbmZpZywgaXNTaG93LCBcImxlZnQuaW5pdGlhbFwiLCBcIi0taW5pdGlhbC1uYXYtd2lkdGhcIiwgdGFiKTtcbiAgICB9LFxuICAgIHNldE5hdkxlZnRFeHRlbmRlZFN0eWxlKGNvbmZpZywgaXNTaG93LCB0YWIpIHtcbiAgICAgICAgdGhpcy5zZXRTdWJOYXZTdHlsZShjb25maWcsIGlzU2hvdywgXCJsZWZ0LmV4dGVuZFwiLCBcIi0tZXgtbmF2LXdpZHRoXCIsIHRhYik7XG4gICAgfSxcbiAgICBzZXROYXZMZWZ0QnV0dG9uc1N0eWxlKGNvbmZpZywgaXNTaG93LCB0YWIpIHtcbiAgICAgICAgdGhpcy5zZXRTdWJOYXZTdHlsZShjb25maWcsIGlzU2hvdywgXCJsZWZ0LmJ1dHRvbnNcIiwgXCItLWJ0bi1uYXYtd2lkdGhcIiwgdGFiKTtcbiAgICB9LFxuXG4gICAgc2V0U3ViTmF2U3R5bGUoY29uZmlnLCBpc1Nob3csIHBhdGgsIGNzc1Zhck5hbWUsIHRhYiA9IG51bGwpIHtcbiAgICAgICAgbGV0IGNvbHVtbldpZHRoID0gcGFyc2VGbG9hdCh1dGlscy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtaXRlbS1jb2wtd2lkdGhcIikpO1xuICAgICAgICBsZXQgbmF2ID0gXy5nZXQoY29uZmlnLCBcInRpbWVsaW5lLm5hdi5cIiArIHBhdGgpO1xuICAgICAgICBsZXQgd2lkdGggPSBudWxsO1xuICAgICAgICBpZiAobmF2KSB7XG4gICAgICAgICAgICBpZiAoaXNTaG93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hdi5jb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCA9IG5hdi5jb2x1bW5XaWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5hdi53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG5hdi53aWR0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hdi52YXJzICYmIGNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYXZWYXJzRmlsdGVyZWQgPSBuYXYudmFycy5maWx0ZXIodiA9PiAodi5vbmx5VGFiID09IHVuZGVmaW5lZCB8fCAodi5vbmx5VGFiICYmIHRhYiAmJiB2Lm9ubHlUYWIgPT0gdGFiLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBjb2x1bW5XaWR0aCAqIG5hdlZhcnNGaWx0ZXJlZC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgY3NzVmFyTmFtZSwgd2lkdGggKyBcInB4XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIHNldEhlYWRlclN0eWxlKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmhlYWRlci5oZWlnaHQpIHtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWhlYWRlci1oZWlnaHRcIiwgY29uZmlnLnRpbWVsaW5lLmhlYWRlci5oZWlnaHQgKyBcInB4XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5oZWFkZXIudG9wICYmIGNvbmZpZy50aW1lbGluZS5oZWFkZXIudG9wLmhlaWdodCkge1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taGVhZGVyLXRvcC1oZWlnaHRcIiwgY29uZmlnLnRpbWVsaW5lLmhlYWRlci50b3AuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5lbmFibGVkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZXgtaGVhZGVyLWhlaWdodFwiLCBcIjBweFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5oZWlnaHQpIHtcbiAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWV4LWhlYWRlci1oZWlnaHRcIiwgY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgfVxuXG4gICAgfSxcblxuICAgIHNldFRhYmxlU3R5bGUoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuZGF5LndpZHRoKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmRheS5tb2JpbGUgJiYgdXRpbHMuY2hlY2tJc01vYmlsZSgpKSB7XG4gICAgICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIsIGNvbmZpZy50aW1lbGluZS5kYXkubW9iaWxlLndpZHRoICsgXCJweFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXRpbHMuc2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIsIGNvbmZpZy50aW1lbGluZS5kYXkud2lkdGggKyBcInB4XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcudGltZWxpbmUuZGF5LmhlaWdodCkge1xuICAgICAgICAgICAgaWYgKGNvbmZpZy50aW1lbGluZS5kYXkubW9iaWxlICYmIHV0aWxzLmNoZWNrSXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIsIGNvbmZpZy50aW1lbGluZS5kYXkubW9iaWxlLmhlaWdodCArIFwicHhcIik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWxzLnNldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIsIGNvbmZpZy50aW1lbGluZS5kYXkuaGVpZ2h0ICsgXCJweFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFyR0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/util/styleUtils.js\n");
|
|
247
247
|
|
|
248
248
|
/***/ }),
|
|
249
249
|
|
|
@@ -255,7 +255,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uti
|
|
|
255
255
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
256
256
|
|
|
257
257
|
"use strict";
|
|
258
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util_domUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/domUtils */ \"./src/util/domUtils.js\");\n/* harmony import */ var _util_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/utils */ \"./src/util/utils.js\");\n/* harmony import */ var _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/dateUtils */ \"./src/util/dateUtils.js\");\n/* harmony import */ var _util_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/icons */ \"./src/util/icons.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n /**\n * Crea elemento Table\n * Contendrá los elementos que apareceran dentro de la tabla de planilla\n * Se Usa para :\n * - Agregar background con patron estilo tabla\n * - Agregar dayMouseOver, div que indica posicion de mouse\n * - Agregar DetailDay, para detalles de datos en tabla\n * - Agregar SelectedContainer, para dias seleccionados\n * - Agregar FloatBoxContainer, para visualizacion de datos en tabla\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom creado\n */\n createAgTable(config) {\n let e = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"capibara\"\n });\n\n if (config.timeline.dark) {\n e.classList.add(\"dark-theme\");\n }\n\n if (config.timeline.header.extend.isShow) {\n e.classList.add(\"header-extended\");\n }\n\n return e;\n },\n\n /**\n * Recrea Background, que es el fondo grid, como tabla\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento relacionado, donde se cre el background\n * @return {Object} Elemento Dom Corner Footer\n */\n redrawBackground(config, $elem) {\n return this.createBackground(config, $elem);\n },\n\n /**\n * Crea y posiciona fondo de tabla\n * Este fondo contiene un patron de CSS que le da la apariencia de tabla\n * por lo cual se debe reposicionar segun la fecha de inicio, para hacer\n * calzar los fines de semana\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} [$elem = null] - Elemento background, si es null, lo crea\n * @return {Object} elemento Dom Background\n */\n createBackground(config, $elem = null) {\n let {\n height,\n width,\n dayWidth\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n let start = new Date(config.timeline.start);\n let end = new Date(config.timeline.end);\n end.setTime(end.getTime() + _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].dayInMilliseconds); // add 24 hours\n\n let dCorrected = new Date(start.valueOf() + start.getTimezoneOffset() * 60000);\n let weekDay = dCorrected.getDay();\n let diffWeekDays = (weekDay - 1) * dayWidth * -1;\n $elem = $elem || _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"background-grid\"\n });\n $elem.style[\"background-position\"] = diffWeekDays + \"px 0, 0 0, \" + diffWeekDays + \"px 0\";\n $elem.style.width = width + \"px\";\n $elem.style.height = height + 1 + \"px\";\n return $elem;\n },\n\n /**\n * Crea Plot Container Vertical\n * Los plots son elementos que agregan secciones de fondo en la planilla\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom plotVerticalContainer\n */\n createPlotVerticalContainer(config) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"plot-vertical-container\"\n });\n return this.redrawPlotVerticalContainer(config, $elem);\n },\n\n createPlotHorizontalContainer(config) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"plot-horizontal-container\"\n });\n return this.redrawPlotHorizontalContainer(config, $elem);\n },\n\n /**\n * Recrea plotVerticalContainer, usando elemento existente\n * usa un elemento existente para usar la funcion para redibujar el elemento\n *\n * Los Plots se insertan como divs, con posicion especificada,\n * con ancho de dia\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento Dom donde crea plotVerticalContainer\n * @return {Object} Elemento Dom plotVerticalContainer\n */\n redrawPlotVerticalContainer(config, $elem) {\n $elem.innerHTML = \"\";\n\n if (config.timeline.plots && config.timeline.plots.vertical) {\n let {\n height,\n dayWidth\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n config.timeline.plots.vertical.forEach(p => {\n let diffDays = Math.floor(_util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].diffDays(config.timeline.start, p.date));\n let left = diffDays * dayWidth;\n let plot = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n classNames: [\"plot-vertical\", p.className || \"\"],\n style: {\n \"margin-left\": left + \"px\",\n height: height + \"px\"\n }\n });\n $elem.appendChild(plot);\n });\n }\n\n return $elem;\n },\n\n redrawPlotHorizontalContainer(config, $elem) {\n $elem.innerHTML = \"\";\n\n if (config.timeline.plots && config.timeline.plots.horizontal) {\n let {\n width,\n itemHeight\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n config.timeline.plots.horizontal.forEach(p => {\n let item = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, p.idNode, p.typeNode);\n let topPosition = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPositionByItem(config, item, \"parent\");\n let plot = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n classNames: [\"plot-horizontal\", p.className || \"\"],\n style: {\n \"margin-top\": topPosition * itemHeight + \"px\",\n width: width + \"px\"\n }\n });\n $elem.appendChild(plot);\n });\n }\n\n return $elem;\n },\n\n /**\n * Crea Corner Izquierdo\n * Se usa para :\n * - titulos relacionados con los datos del sidebar izquierdo\n * - titulos para inputs de header, absolute a la derecha\n * - boton para mostrar/ocultar sidebar izquierdo\n * - promedios\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner\n */\n createCorner(config, tab = null) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"corner\"\n });\n return this.redrawCorner($elem, config, tab);\n },\n\n redrawCorner($elem, config, tab = null) {\n let labelsInitialCorner = config.timeline.nav.left.initial.vars.filter(v => v.onlyTab == undefined || v.onlyTab && tab && v.onlyTab == tab.key).map(d => `<span class=\"item-col\">${d.label}</span>`).join(\"\");\n let labelsExtendCorner = config.timeline.nav.left.extend.vars.filter(v => v.onlyTab == undefined || v.onlyTab && tab && v.onlyTab == tab.key).map(d => `<span class=\"item-col\">${d.label}</span>`).join(\"\");\n let labelsHeaderExtend = config.timeline.header.extend.data.map(d => {\n if (d.isHidden) return \"\";\n let avg = \"\";\n let tooltip = \"\";\n let className = \"\";\n let isAccent = d.isAccent;\n\n if (d.average) {\n avg = ` <span class=\"average \"> ( <span> <span class=\"symbol\">x̄</span> ${d.average} </span>) </span> `;\n tooltip = `cap-tooltip=\"Promedio ${d.label} : ${d.average} ${d.suffix || \"\"}\"`;\n }\n\n if (d.color) {\n if (isAccent) {\n className = d.color ? \"c-\" + d.color + \"--background\" : \"\";\n } else {\n className = d.color ? \"c-\" + d.color + \"--text \" : \"\";\n }\n }\n\n return `<div class=\"input-title-container ${isAccent ? \"input-title--accent\" : \"\"} ${d.isPersistent ? \"persistent\" : \"\"}\">\n <span ${tooltip} class=\"input-title ${className}\">\n ${avg}\n ${d.label}\n </span>\n\n </div>`;\n }).join(\"\");\n let toggleSidebarBtnString = `\n <button toggle-sidebar class=\"cap-btn-icon cap-btn-icon-raised cap-btn-toggle-sidebar \">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chevronRight}\n </button> `;\n\n if (config.timeline.nav.left.hideToggleSidebarButton) {\n toggleSidebarBtnString = \"\";\n }\n\n let template = `<div>\n\n ${toggleSidebarBtnString}\n <div class=\"corner-title\">\n <span class=\"bottom-text\">\n ${config.timeline.corner.left.label}\n </span>\n </div>\n\n <div class=\"initial-corner\">\n <div class=\"initial-corner-title\">\n <span class=\"bottom-container hide\">\n ${config.timeline.corner.initial.label}\n </span>\n\n <div class=\"bottom-container\">\n ${labelsInitialCorner}\n </div>\n\n </div>\n </div>\n\n\n <div class=\"extend-corner\">\n <div class=\"ex-corner-title\">\n <span class=\"bottom-container hide\">\n ${config.timeline.corner.extend.label}\n </span>\n\n <div class=\"bottom-container\">\n ${labelsExtendCorner}\n </div>\n\n </div>\n </div>\n\n\n <div class=\"cap-btn-nav-corner\">\n <div class=\"input-titles\">\n ${labelsHeaderExtend}\n </div>\n </div>\n\n <div class=\"progress-bar progress-bar-left hide-progress\"></div>\n\n </div>`;\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(template);\n $elem.innerHTML = \"\";\n $elem.append(r);\n let toggleSidebar = $elem.querySelector(\"[toggle-sidebar]\");\n\n if (toggleSidebar) {\n toggleSidebar.addEventListener(\"click\", e => {\n r.dispatchEvent(new CustomEvent(\"toggleSidebar\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }\n\n return $elem;\n },\n\n /**\n * Crea Corner Derecho\n * Se usa para :\n * - titulos relacionados con los datos del sidebar Derecho\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom corner\n */\n createCornerRight(config, tab = null) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n classNames: [\"corner\", \"right\"]\n });\n return this.redrawCornerRight($elem, config, tab);\n },\n\n redrawCornerRight($el, config, tab = null) {\n let label = \"\";\n\n if (config.timeline.corner.right.label) {\n ` <span>\n ${config.timeline.corner.right.label}\n </span>`;\n }\n\n let str = `\n <div class=\"corner-title\">\n ${label}\n <div class=\"btn-container\"></div>\n </div>\n <div class=\"progress-bar progress-bar-right hide-progress\"></div>\n `;\n $el.innerHTML = str.trim();\n let $btnContainer = $el.querySelector(\".btn-container\");\n\n if (config.timeline.corner.right.buttons) {\n config.timeline.corner.right.buttons.forEach(btn => {\n let isEnabled = btn.getIsEnabled ? btn.getIsEnabled() : true;\n\n if (isEnabled) {\n let $btn = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <button class=\"corner-btn cap-btn-raised\">\n ${btn.label || \"\"}\n </button> `);\n\n if (btn.onClick) {\n $btn.addEventListener(\"click\", btn.onClick);\n }\n\n $btnContainer.appendChild($btn);\n }\n });\n }\n\n if (config.timeline.corner.right.inputs) {\n config.timeline.corner.right.inputs.forEach(input => {\n let $input = this.createCornerRightInput({\n inputConfig: input\n });\n $btnContainer.appendChild($btn);\n });\n }\n\n return $el;\n },\n\n createCornerRightInput({\n inputConfig,\n dataDay = null,\n daySelected = null\n }) {\n let r = null;\n\n switch (inputConfig.type) {\n case \"autocomplete-crud\":\n r = this.createCornerRightInputAutocompleteCrud({\n inputConfig,\n dataDay,\n daySelected\n });\n break;\n }\n\n return r;\n },\n\n createCornerRightInputAutocompleteCrud({\n inputConfig,\n dataDay,\n daySelected\n }) {\n let elem = \"test\";\n return elem;\n },\n\n /**\n * Crea Header Top\n * Se usa para :\n * - Manejo de tabs\n * - Botones de navegación y selección de fecha\n * - Boton toggle Dark mode\n * - Boton toggle Header extended\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom\n */\n createHeaderTop(config, tabSelected = null) {\n return this.redrawHeaderTop(config, tabSelected, _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\"));\n },\n\n redrawHeaderTop(config, tabSelected = null, $elem) {\n let str = `\n <div class=\"header-top\">`;\n\n if (config.timeline.tabs) {\n let showTabs = true;\n\n if (config.timeline.tabs.filter(t => !t.isHidden).length == 0) {\n showTabs = false;\n }\n\n if (showTabs) {\n str += ` <div class=\"tab-select-container c-d-desktop-none c-d-mobile-flex\">\n <select class=\"tabs-select\" >`;\n config.timeline.tabs.forEach(tab => {\n if (!tab.isHidden) {\n str += ` <option ${tab == tabSelected ? 'selected=\"selected\"' : \"\"} value=\"${tab.id}\"> ${tab.label} </option>`;\n }\n });\n str += `</select> </div>`;\n str += ` <div class=\"tabs-container c-d-desktop-flex c-d-mobile-none\">`;\n config.timeline.tabs.forEach(tab => {\n if (!tab.isHidden) {\n str += ` <button\n class=\"tab ${tab.disabled ? \"disabled\" : \"\"} ${tab == tabSelected ? \"active\" : \"\"} ${tab.color}\"\n color=\"${tab.color}\"\n input-key=\"${tab.id}\"\n ${tab.tooltip ? 'cap-tooltip=\"' + tab.tooltip + '\"' : \"\"} >\n <span>${tab.label}</span>\n ${tab.icon || \"\"}\n </button>\n `;\n }\n });\n str += `</div>`;\n }\n }\n\n if (tabSelected) {\n if (tabSelected.legends) {\n str += ` \n <button toggle-legends class=\"cap-btn-icon cap-btn-icon-raised \">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].toggleLegends}\n </button> \n\n <div class=\"legends-container force-mobile-style hide\"> `;\n tabSelected.legends.forEach(legend => {\n let colorClass = \"\";\n let colorBg = \"\";\n\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(legend.color)) {\n colorBg = \"background:\" + legend.color;\n } else {\n colorClass = legend.color ? legend.color + \"--background\" : \"\";\n }\n\n str += ` <div\n class=\"legend ${legend.active ? \"active\" : \"\"}\"\n input-key=\"${legend.key}\"\n ${legend.tooltip ? `cap-tooltip=\"${legend.tooltip}\"` : \"\"} >\n <div class=\"icon-legend ${colorClass} ${legend.shape}\" style=\"${colorBg}\"></div>\n <span>${legend.label}</span>\n </div>`;\n });\n str += `</div>`;\n }\n }\n\n str += `\n\n <div class=\"spacer\"></div>\n\n\n\n <button cap-btn-prev class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].arrowLeft}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadingIcon} \n </button>\n\n\n <button cap-btn-calendar class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].calendar}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadingIcon}\n </button>\n\n <button cap-btn-next class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].arrowRight}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadingIcon}\n </button>\n\n <div class=\"spacer\"></div>\n\n <button toggle-dark class=\"cap-btn-icon cap-btn-header c-d-mobile-none ${config.timeline.withDarkToggle == false ? \"hide\" : \"\"}\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dark}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].light}\n </button>`;\n\n if (config.timeline.header.extend.enabled !== false) {\n str += `<button toggle-header class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chevronDown}\n </button>`;\n }\n\n str += ` <div class=\"button-right-container\"></div>\n </div>`;\n /*\n `\n <button toggle-sidebar-right class=\"cap-btn-icon cap-btn-icon-raised\">\n <span>\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n </svg>\n </span>\n </button>\n </div>\n `;\n */\n\n let $r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n $elem.replaceWith($r);\n\n if (config.timeline.header.rightButtons) {\n let $buttonContainer = $r.querySelector(\".button-right-container\");\n config.timeline.header.rightButtons.forEach(button => {\n let hasBadge = false;\n\n if (button.hasBadge) {\n hasBadge = button.hasBadge();\n }\n\n let str = `<button class=\"cap-btn-icon cap-btn-icon-raised ${hasBadge ? \"cap-btn-has-badge\" : \"\"}\">\n <span>\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"${button.icon}\" />\n </svg>\n </span>\n </button>`;\n let $button = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n $button.addEventListener(\"click\", evt => button.onClick({\n evt\n }));\n $buttonContainer.append($button);\n });\n }\n\n let $toggleDark = $r.querySelector(\"[toggle-dark]\");\n\n if ($toggleDark) {\n $toggleDark.addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"toggleDark\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }\n\n let $btnCalendar = $r.querySelector(\"[cap-btn-calendar]\");\n\n if ($btnCalendar) {\n $btnCalendar.addEventListener(\"click\", e => {\n let x = e.x;\n let y = e.y;\n $r.dispatchEvent(new CustomEvent(\"clickCalendarIcon\", {\n bubbles: true,\n cancelable: false,\n detail: {\n x,\n y\n }\n }));\n });\n }\n\n let $btnToggleHeader = $r.querySelector(\"[toggle-header]\");\n\n if ($btnToggleHeader) {\n $btnToggleHeader.addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"toggleHeader\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }\n /*\n $r.querySelector(\"[toggle-sidebar-right]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"toggleSidebarRight\", {\n bubbles: true,\n cancelable: false,\n }));\n });\n */\n\n\n $r.querySelector(\"[cap-btn-prev]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"headerPrev\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e\n }\n }));\n });\n $r.querySelector(\"[cap-btn-calendar]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"headerCalendar\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e\n }\n }));\n });\n $r.querySelector(\"[cap-btn-next]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"headerNext\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e\n }\n }));\n });\n let $toggleLegendsBtn = $r.querySelector(\"[toggle-legends]\");\n\n if ($toggleLegendsBtn) {\n $toggleLegendsBtn.addEventListener(\"click\", e => {\n let $legendContainer = $r.querySelector(\".legends-container\");\n\n if ($legendContainer) {\n $legendContainer.classList.toggle(\"hide\");\n }\n });\n }\n\n $r.querySelectorAll(\".legend\").forEach($legend => {\n $legend.addEventListener(\"click\", e => {\n let key = e.currentTarget.getAttribute(\"input-key\");\n\n if (key) {\n let legendSelected = tabSelected.legends.find(tab => tab.key === key);\n\n if (legendSelected) {\n $r.dispatchEvent(new CustomEvent(\"selectLegendHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n legend: legendSelected,\n $legend\n }\n }));\n }\n }\n });\n });\n $r.querySelectorAll(\".tab:not(.disabled)\").forEach($tab => {\n $tab.addEventListener(\"click\", e => {\n let key = e.currentTarget.getAttribute(\"input-key\");\n\n if (key) {\n let tabSelected = config.timeline.tabs.find(tab => tab.id == key);\n\n if (tabSelected) {\n $r.dispatchEvent(new CustomEvent(\"selectTabHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n tab: tabSelected\n }\n }));\n }\n }\n });\n });\n $r.querySelectorAll(\".tabs-select:not(.disabled)\").forEach($tab => {\n $tab.addEventListener(\"change\", e => {\n let key = parseFloat(e.currentTarget.value);\n\n if (key) {\n let tabSelected = config.timeline.tabs.find(tab => tab.id == key);\n\n if (tabSelected) {\n $r.dispatchEvent(new CustomEvent(\"selectTabHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n tab: tabSelected\n }\n }));\n }\n }\n });\n });\n return $r;\n },\n\n /**\n * Crea Header\n * Se usa para :\n * - Mostrar fechas en header\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom\n */\n createHeader(config) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"header\");\n return this.redrawHeader(config, $elem);\n },\n\n /**\n * Recrea Header, usado para redibujar\n * utiliza $elem como elemento dom donde recrearlo\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento Dom donde crea Header\n * @return {Object} Elemento Dom\n */\n redrawHeader(config, $elem) {\n let datesTree = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getDateTreeRange(new Date(config.timeline.start), new Date(config.timeline.end));\n let str = `<div class=\"header-container\"> `;\n Object.keys(datesTree).forEach(keyY => {\n let year = datesTree[keyY];\n str += `<div class=\"agno-calendario\">\n <span class=\"agno hide\">${keyY}</span>\n <div class=\"meses\">`;\n Object.keys(year).forEach(keyM => {\n let month = datesTree[keyY][keyM];\n str += ` <div class=\"mes-calendario\">\n <div class=\"mes ${Object.keys(month).length < 4 ? \"mes-reduced mes-reduced-\" + Object.keys(month).length : \"\"}\">\n <div class=\"mes-label\">\n ${_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getMonthByPosition(keyM)} ${keyY}\n </div>\n </div>\n <div class=\"dias\">`;\n Object.keys(month).forEach(keyD => {\n let day = datesTree[keyY][keyM][keyD];\n let isWeekend = day.isWeekend;\n let isToday = day.isToday;\n let date = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDate(day.Date);\n str += `<div class=\"dia-calendario ${isToday ? \"today\" : \"\"} ${isWeekend ? \"weekend\" : \"\"} ${config.timeline.dateSelectable ? \"is-clickeable\" : \"\"}\" date=\"${date}\">${keyD}</div>`;\n });\n str += `</div></div>`;\n });\n str += `</div> </div>`;\n });\n str += `</div>`;\n $elem.innerHTML = \"\";\n $elem.append(_util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str));\n\n if (config.timeline.dateSelectable) {\n $elem.querySelectorAll(\".dia-calendario[date]\").forEach($dia => {\n $dia.addEventListener(\"contextmenu\", evt => {\n $elem.dispatchEvent(new CustomEvent(\"contextMenuDate\", {\n bubbles: true,\n cancelable: false,\n detail: {\n $elem: $dia,\n date: $dia.getAttribute(\"date\"),\n clientX: evt.clientX,\n clientY: evt.clientY\n }\n }));\n });\n $dia.addEventListener(\"click\", evt => {\n $elem.dispatchEvent(new CustomEvent(\"clickDate\", {\n bubbles: true,\n cancelable: false,\n detail: {\n $elem: $dia,\n date: $dia.getAttribute(\"date\")\n }\n }));\n });\n });\n }\n\n return $elem;\n },\n\n /**\n * Crea Header extended\n * Se usa para :\n * -Mostrar inputs y datos para fechas en header\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom headerExtended\n */\n createHeaderExtended(config) {\n if (config.timeline.header.extend.enabled == false) return null;\n let dates = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getDateRange(new Date(config.timeline.start), new Date(config.timeline.end));\n let str = `<div class=\"header-container-extended\">`;\n config.timeline.header.extend.data.forEach((d, d_index) => {\n if (d.isHidden) return \"\";\n let isPersistent = d.isPersistent;\n str += `<div class=\"input-list ${isPersistent ? \"persistent\" : \"\"}\">`;\n str += dates.map(date => {\n let value = \"\";\n let isFuture = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isFuture(date);\n let isToday = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isToday(date);\n\n if (d.data) {\n let dataFounded = d.data.find(dataInput => {\n return _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isSameDate(new Date(dataInput.date), date);\n });\n\n if (dataFounded) {\n value = dataFounded.value || \"\";\n }\n }\n\n if (d.editable === false || isFuture && d.editableFuture == false || isToday && d.editableToday == false) {\n return `<div>\n <span date=\"${date}\" \n index=\"${d_index}\" \n class=\"${date.varName} ${d.color ? \"c-\" + d.color + \"--text\" : \"\"}\" > \n ${value} \n </span>\n </div>`;\n }\n\n let isDisabled = false;\n\n if (config.timeline.editable === false) {\n isDisabled = true;\n }\n\n return `<div class=\"dia-input\">\n <input \n date=\"${date}\" \n index=\"${d_index}\" \n class=\"header-input \n ${date.varName} ${d.color ? \"c-\" + d.color + \"--text\" : \"\"}\" \n type=\"number\"\n ${isDisabled ? \"disabled\" : \"\"} \n value=\"${value}\">\n </div>`;\n }).join(\"\");\n str += `</div>`;\n });\n str += `</div>`;\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n r.querySelectorAll(\"input.header-input\").forEach(input => {\n input.addEventListener(\"input\", e => {\n let date = e.currentTarget.getAttribute(\"date\");\n let index = e.currentTarget.getAttribute(\"index\");\n let value = e.currentTarget.value;\n let typeData = config.timeline.header.extend.data[index]; //refresh config value\n\n let data = typeData.data.find(d => _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isSameDate(new Date(d.date), new Date(date)));\n\n if (data) {\n data.value = value;\n } else {\n typeData.data.push({\n date: date,\n value: value\n });\n }\n\n r.dispatchEvent(new CustomEvent(\"changeInputHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n date: date,\n typeData: typeData,\n value: value\n }\n }));\n });\n });\n return r;\n },\n\n /**\n * Crear Sidebar Izquierdo\n * - Maneja items como arbol de 2 niveles (parent, children)\n * - El sidebar se divide en navList - InitialNav - extendedNav - BtnNav\n * - Se agrega itemDetail, para detalles de items\n *\n *\n * TODO: para evitar incrustar las ids en los inputs, se deben crear\n * los nodos uno por uno como elemento DOM, y agregarles los eventos directamente\n * ahora se hace seleccionando todos los inputs con querySelectorAll\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Sidebar Izquierdo\n */\n createNavLeft(config, tab = null) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"nav\", {\n className: \"left\"\n });\n return this.redrawNavLeft($elem, config, tab);\n },\n\n /**\n * Recrea Sidebar izquierdo, usado para redibujar\n * Utiliza $elem como elemento dom donde recrearlo\n *\n *\n * @param {Object} $elem - Elemento Dom donde crea el sidebar izquierdo\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom navLeft\n */\n redrawNavLeft($elem, config, tab = null) {\n let navList = \"\";\n let initialNavList = \"\";\n let exNavList = \"\";\n let btnNavList = \"\";\n let isDisabled = false;\n\n if (config.timeline.editable === false) {\n isDisabled = true;\n }\n\n config.data.forEach(d => {\n if (d.isHidden) return;\n navList += `\n <div class=\"nav-item\">\n\n\n <div class=\"nav-item-container parent\">`;\n\n if (d.children) {\n navList += `<button class=\"tree-icon ${d.isClosed ? \"\" : \"cap-rotate\"}\" item-id=\"${d.id || -1}\" type-node=\"${d.type || \"\"}\" >\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chevronDown}\n </button>`;\n }\n\n navList += `\n <div class=\"item-title truncate full-width ${d.clickeable ? \"clickeable\" : \"\"}\n ${d.navOver ? \"hoverable\" : \"\"} \" item-id=\"${d.id || -1}\" type-node=\"${d.type || \"\"}\" >\n ${d.label}\n </div>\n </div>`;\n\n if (d.children) {\n navList += `\n <div class=\"children-items ${d.isClosed ? \"hide\" : \"\"} \" child-list=\"${d.id || -1}\">`;\n d.children.forEach(c => {\n if (c.isHidden) return;\n let lightColor = null;\n let lightClass = null;\n let lightSpan = \"\";\n\n if (c.light) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(c.light)) {\n lightColor = c.light;\n } else {\n lightClass = c.light;\n }\n }\n\n if (c.light) {\n lightSpan = `<span \n class=\"light ${lightClass ? lightClass + \"-light\" : \"\"}\" \n style=\"${lightColor ? \"--light-color:\" + lightColor : \"\"}\">\n </span>`;\n }\n\n navList += `\n <div class=\"child-nav-item\">\n <div class=\"nav-item-container\">\n `;\n /*\n <span class=\"nav-item-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M19,15L13,21L11.58,19.58L15.17,16H4V4H6V14H15.17L11.58,10.42L13,9L19,15Z\" />\n </svg>\n </span>\n */\n\n navList += `\n ${lightSpan}\n <div class=\"item-title ${c.clickeable ? \"clickeable\" : \"\"}\n ${c.navOver ? \"hoverable\" : \"\"}\" item-id=\"${c.id || -1}\" type-node=\"${c.type || \"\"}\">\n <div class=\"truncate\">\n ${c.label}\n </div>\n </div>\n </div>\n </div>`;\n });\n navList += `\n </div>`;\n }\n\n navList += `</div>`; //initial\n\n initialNavList += `<div class=\"initial-nav-item parent\">`;\n\n if (d.withNav) {\n config.timeline.nav.left.initial.vars.forEach(v => {\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(d.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value.split(\":\");\n let hhValue = value[0];\n let mmValue = value[1];\n initialNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n initialNavList += `\n <div class=\"item-col has-input\">\n <input \n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n initialNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n initialNavList += `\n </div>`;\n\n if (d.children) {\n d.children.forEach(c => {\n if (c.isHidden) return;\n initialNavList += `<div class=\"child-initial-nav-item ${d.isClosed ? \"hide\" : \"\"}\" child=\"${d.id || -1}\">`;\n\n if (c.withNav !== false) {\n config.timeline.nav.left.initial.vars.forEach(v => {\n if (v.onlyTab && tab && v.onlyTab !== tab.key) return;\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(c.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value.split(\":\");\n let hhValue = value[0];\n let mmValue = value[1];\n initialNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n initialNavList += `\n <div class=\"item-col has-input\">\n <input\n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n initialNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n initialNavList += `\n </div>`;\n });\n } //Ext\n\n\n exNavList += `<div class=\"ex-nav-item parent\">`;\n\n if (d.withExNav) {\n config.timeline.nav.left.extend.vars.forEach(v => {\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(d.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value.split(\":\");\n let hhValue = value[0];\n let mmValue = value[1];\n exNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n exNavList += `\n <div class=\"item-col has-input\">\n <input\n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n exNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n exNavList += `\n </div>`;\n\n if (d.children) {\n d.children.forEach(c => {\n if (c.isHidden) return;\n exNavList += `<div class=\"child-ex-nav-item ${d.isClosed ? \"hide\" : \"\"}\" child=\"${d.id || -1}\">`;\n\n if (c.withNav !== false) {\n config.timeline.nav.left.extend.vars.forEach(v => {\n if (v.onlyTab && tab && v.onlyTab !== tab.key) return;\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(c.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value ? value.split(\":\") : [0, 0];\n let hhValue = value[0];\n let mmValue = value[1];\n exNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n exNavList += `\n <div class=\"item-col has-input\">\n <input \n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n exNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n exNavList += `\n </div>`;\n });\n } //buttons\n\n\n btnNavList += `<div class=\"cap-btn-nav-item parent\">\n <div class=\"cap-btn-nav-item-content\">`;\n\n if (config.timeline.nav.left.buttons && config.timeline.nav.left.buttons.vars) {\n config.timeline.nav.left.buttons.vars.forEach(btn => {\n if (d.withBtnNav) {\n let btnContent = \"\";\n let className = btn.className || \"\";\n\n if (btn.icon) {\n btnContent = btn.icon ? btn.icon : \"\";\n }\n\n if (btn.iconFormatter) {\n btnContent = btn.iconFormatter ? btn.iconFormatter(d, btn) : \"\";\n }\n\n if (btn.shape) {\n className += \" cap-btn-\" + btn.shape;\n btnContent += `<span> ${btn.formatter ? btn.formatter(d, btn) : \"\"} </span> `;\n }\n\n if (btn.btnClassNameFormatter) {\n let newClassName = btn.btnClassNameFormatter(d, btn);\n\n if (newClassName) {\n className += \" \" + newClassName;\n }\n }\n\n btnNavList += `\n <button class=\"cap-btn-shape ${className}\"\n input-key=\"${btn.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n ${isDisabled ? \"disabled\" : \"\"}\n type-node=\"${d.type || \"\"}\">\n ${btnContent}\n </button>`;\n }\n });\n }\n\n btnNavList += `\n </div>\n </div>`;\n\n if (d.children) {\n d.children.forEach(c => {\n if (c.isHidden) return; //buttons\n\n btnNavList += `<div class=\"cap-btn-child-nav-item parent ${d.isClosed ? \"hide\" : \"\"}\" child=\"${d.id || -1}\">\n <div class=\"cap-btn-nav-item-content\">`;\n\n if (config.timeline.nav.left.buttons && config.timeline.nav.left.buttons.vars) {\n config.timeline.nav.left.buttons.vars.forEach(btn => {\n if (c.withNav !== false) {\n let btnContent = \"\";\n let className = btn.className || \"\";\n\n if (btn.icon) {\n btnContent = btn.icon ? btn.icon : \"\";\n }\n\n if (btn.iconFormatter) {\n btnContent = btn.iconFormatter ? btn.iconFormatter(c, btn) : \"\";\n }\n\n if (btn.shape) {\n className += \" cap-btn-\" + btn.shape;\n btnContent += `<span> ${btn.formatter ? btn.formatter(c, btn) : \"\"} </span> `;\n }\n\n if (btn.btnClassNameFormatter) {\n let newClassName = btn.btnClassNameFormatter(c, btn);\n\n if (newClassName) {\n className += \" \" + newClassName;\n }\n }\n\n btnNavList += `\n <button class=\"cap-btn-shape ${className}\"\n input-key=\"${btn.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n ${isDisabled ? \"disabled\" : \"\"}\n type-node=\"${c.type || \"\"}\">\n ${btnContent}\n </button>`;\n }\n });\n }\n\n btnNavList += `\n </div>\n </div>`;\n });\n }\n });\n let itemDetail = ` <div class=\"detail-nav-item hide\">\n ${this.getDetailNavItemContent()}\n </div>`;\n let str = `<div class=\"nav-container\">\n ${itemDetail}\n <div class=\"nav-item-list\">\n ${navList}\n </div>\n <div class=\"initial-nav-list\">\n ${initialNavList}\n </div>\n <div class=\"extend-nav-list\">\n ${exNavList}\n </div>\n <div class=\"cap-btn-nav-list\">\n ${btnNavList}\n </div>\n </div>`;\n let navContainer = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n $elem.innerHTML = \"\";\n $elem.append(navContainer); //detalle de nav-item\n\n $elem.querySelectorAll(\".item-title.hoverable\").forEach(i => {\n i.addEventListener(\"mouseover\", e => {\n let pos = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].eventToPositionNavLeft(config, e, $elem);\n let itemId = i.getAttribute(\"item-id\");\n let item = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, itemId);\n let typeNode = i.getAttribute(\"type-node\");\n i.dispatchEvent(new CustomEvent(\"overNavItem\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e,\n item: item,\n type: typeNode,\n pos: pos\n }\n }));\n });\n }); //oculta detalle de nav-item, al salir del nav-item-list\n\n $elem.querySelectorAll(\".nav-item-list\").forEach(i => {\n i.addEventListener(\"mouseleave\", e => {\n i.dispatchEvent(new CustomEvent(\"leaveNavItem\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }); //oculta detalle de nav-item-list, al salir de nav-item\n\n $elem.querySelectorAll(\".item-title:not(.hoverable)\").forEach(i => {\n i.addEventListener(\"mousemove\", e => {\n i.dispatchEvent(new CustomEvent(\"leaveNavItem\", {\n bubbles: true,\n cancelable: false\n }));\n });\n });\n $elem.querySelectorAll(\".item-title.clickeable\").forEach(i => {\n i.addEventListener(\"click\", e => {\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n let value = i.value;\n i.dispatchEvent(new CustomEvent(\"clickNavLeftItem\", {\n bubbles: true,\n cancelable: false,\n detail: {\n itemId: itemId,\n type: typeNode,\n value: value\n }\n }));\n });\n });\n $elem.querySelectorAll(\"input\").forEach(i => {\n i.addEventListener(\"change\", e => {\n let inputType = i.getAttribute(\"input-type\");\n let key = i.getAttribute(\"input-key\");\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n let item = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, itemId);\n let value = i.value;\n\n if (inputType == \"time\") {\n let hh_input = i.parentElement.querySelector(\"input.hh\").value;\n let mm_input = i.parentElement.querySelector(\"input.mm\").value;\n mm_input = mm_input < 10 ? \"0\" + parseFloat(mm_input) : mm_input;\n i.parentElement.querySelector(\"input.mm\").value = mm_input;\n value = hh_input + \":\" + mm_input;\n }\n\n i.dispatchEvent(new CustomEvent(\"saveNavLeftInput\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: key,\n itemId: itemId,\n item: item,\n type: typeNode,\n value: value,\n tabSelected: tab\n }\n }));\n });\n });\n $elem.querySelectorAll(\"button.cap-btn-shape\").forEach(i => {\n i.addEventListener(\"click\", e => {\n let key = i.getAttribute(\"input-key\");\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n i.dispatchEvent(new CustomEvent(\"clickNavLeftButton\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: key,\n itemId: itemId,\n type: typeNode\n }\n }));\n });\n });\n $elem.querySelectorAll(\"button.tree-icon\").forEach(i => {\n i.addEventListener(\"click\", e => {\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n let dataConfig = config.data.find(d => d.id == itemId);\n let $navItem = e.currentTarget.closest(\".nav-item\");\n let $children = $navItem.querySelector(\".children-items\");\n let itemsToHide = e.currentTarget.closest(\"nav.left\").querySelectorAll(\"[child='\" + itemId + \"'], [child-list='\" + itemId + \"']\");\n\n if ($children) {\n if ($children.classList.contains(\"hide\")) {\n e.currentTarget.classList.add(\"cap-rotate\");\n itemsToHide.forEach(i => i.classList.remove(\"hide\"));\n dataConfig.isClosed = false;\n } else {\n e.currentTarget.classList.remove(\"cap-rotate\");\n itemsToHide.forEach(i => i.classList.add(\"hide\"));\n dataConfig.isClosed = true;\n }\n }\n\n i.dispatchEvent(new CustomEvent(\"clickNavLeftTreeIcon\", {\n bubbles: true,\n cancelable: false,\n detail: {\n itemId: itemId,\n type: typeNode\n }\n })); //e.currentTarget.parent\n });\n });\n return $elem;\n },\n\n /**\n * Crea Html como String, para el detalle de items en el Sidebar Izquierdo\n *\n * @param {Object} [item={}] - Configuracion de item\n * @return {String} Html de ventana de detalle\n */\n getDetailNavItemContent(item = {}) {\n if (item.navOver == undefined) item.navOver = {};\n return `\n <div class=\"header-detail\">\n <div class=\"detail-title truncate\">\n ${item.label || \"\"}\n </div>\n <div class=\"detail-subtitle\">\n ${item.navOver.subtitle || \"\"}\n </div>\n <div class=\"header-chip ${item.light ? item.light + \"-light\" : \"\"} ${item.navOver.chip ? \"\" : \"hide\"}\">\n ${item.navOver.chip || \"\"}\n </div>\n </div>\n\n <div class=\"detail-container\">\n ${item.navOver.content || \"\"}\n </div>`;\n },\n\n /**\n * Crea Sidebar Derecho\n * Usado principalmente para formulario de ingreso de datos para los dias\n * seleccionados\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} tab - Tab de referencia, para la creacion del formulario\n * @return {Object} {element, inputs}, element es el elemento Dom del sidebar,\n * inputs es un array de elementos Dom de cada input creado\n * (no son elementos html de tipo input)\n */\n createNavRight(config, tab = null) {\n var $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"nav\", {\n className: \"right\"\n });\n return this.redrawNavRight(config, $elem, tab, []);\n },\n\n /**\n * Recrea Sidebar Derecho\n * Utiliza $elem como elemento dom donde recrearlo\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento Dom donde crea el sidebar derecho\n * @param {Object} tab - Tab de referencia, para la creacion del formulario\n * @param {Object} dataDay - datos del dia seleccionando, para autorrelleno de formulario\n * @param {Object} daySelected - datos del dia seleccionado\n * @param {String} daySelected.date - fecha del dia seleccionado\n * @param {Object} daySelected.item - Item de Sidebar relacionado al dia seleccionado\n * @param {Object} daySelected.pos - posicion de dia seleccionado\n * @return {Object} Elemento Dom Sidebar Derecho\n */\n redrawNavRight(config, $elem, selected = null, tab = null, dataDay = null, daySelected = null) {\n let $navRight = $elem; //dom.createElement(\"nav\",{className:\"right\"});\n\n let $divContainer = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"nav-input-container\"\n });\n let $inputs = [];\n let checkboxInputs = [];\n let inputsWithReload = [];\n let tabSelected = tab;\n selected = selected || [daySelected];\n\n if (tabSelected && tabSelected.inputs) {\n tabSelected.inputs.forEach(i => {\n if (i.disabled) return;\n let $input = this.createInput(i, dataDay, daySelected, selected);\n\n if ($input) {\n $divContainer.appendChild($input);\n $inputs.push($input);\n\n if (i.type == \"checkbox\") {\n checkboxInputs.push($input);\n }\n\n if (i.reloadOnSelect != null) {\n inputsWithReload.push({\n $input,\n config: i\n });\n }\n }\n });\n } //manejo de eventos para inputs con showIf\n\n\n if (checkboxInputs) {\n checkboxInputs.forEach($c => {\n //obtiene key de checkbox\n let key = $c.getAttribute(\"input-key\");\n let props = tabSelected.inputs.find(i => {\n return i.key == key;\n });\n let isChecked = false;\n\n if (dataDay) {\n isChecked = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n } //obtiene inputs relacionados desde config para mostrar/ocultar\n\n\n let inputsToHide = tabSelected.inputs.filter(i => {\n return i.showIf && i.showIf == key;\n });\n let inputsToHideKeys = inputsToHide.map(i => i.key); //obtiene inputs del dom, filtrando con inputsToHide\n\n let $inputsHidden = $inputs.filter($i => {\n let inputKey = $i.getAttribute(\"input-key\");\n return inputsToHideKeys.indexOf(inputKey) > -1;\n }); //si hay inputs,\n\n if ($inputsHidden) {\n if (!isChecked) {\n $inputsHidden.forEach($i => {\n $i.classList.add(\"hide\");\n });\n }\n\n $c.addEventListener(\"input\", e => {\n $inputsHidden.forEach($i => {\n let fn = $c.querySelector(\"input[type='checkbox']\").checked ? \"remove\" : \"add\";\n $i.classList[fn](\"hide\");\n });\n });\n }\n });\n }\n\n let saveCancelBtns = this.createNavRightbuttons();\n $divContainer.appendChild(saveCancelBtns);\n $navRight.innerHTML = \"\";\n $navRight.appendChild($divContainer);\n return {\n element: $navRight,\n inputs: $inputs,\n inputsWithReload,\n saveCancelBtns\n };\n },\n\n /**\n * Crea Corner inferior izquierdo, como titulo para footer\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner Footer\n */\n createCornerFooter(config) {\n if (config.timeline.footer === undefined || config.timeline.footer.enabled == false) return null;\n let str = \"\";\n\n if (config.timeline.footer) {\n str += `<div class=\"corner-footer\">\n <div class=\"corner-title\">\n <span>\n ${config.timeline.footer.label}\n </span>\n </div>\n </div>`;\n }\n\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n },\n\n /**\n * Crea Footer para planilla\n * Inicialmente creado para totales\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner Footer\n */\n createFooter(config) {\n if (config.timeline.footer === undefined || config.timeline.footer.enabled == false) return null;\n let str = `\n <footer>\n <div class=\"footer-container\">\n `;\n config.timeline.footer.data.forEach(d => {\n str += `\n <div class=\"footer-item\">${d.value}</div>\n `;\n });\n str += `\n </div>\n </footer>\n `;\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n },\n\n /**\n * Crea Footer para planilla\n * Inicialmente creado para totales\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object[]} selected - array de objetos, de dias seleccionados\n * @return {Object} Elemento Dom Corner Footer\n */\n createSelectBoard(config, selected) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"select-container\"\n });\n return this.redrawSelectBoard($elem, selected);\n },\n\n /**\n * Crea linea vertical para fecha Actual\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner Footer\n */\n createTodayLine(config) {\n return this.redrawTodayLine(config, _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"today-line\"\n }));\n },\n\n /**\n * Recrea linea vertical para fecha Actual\n * si el elemento $elem no es enviado, se crea un nuevo elemento\n *\n * Si el dia actual no esta dentro del rango de fechas del config,\n * deshabilita la linea con la clase css .disable-line\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} [$elem=null] - Elemento Dom donde recrea la linea, si es null, la crea\n * @return {Object} Elemento Dom Corner Footer\n */\n redrawTodayLine(config, $elem = null) {\n let endTime = new Date(config.timeline.end).getTime();\n let todayTime = new Date().getTime();\n let {\n height,\n dayWidth\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n if ($elem == null) $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"today-line\"\n });\n\n if (endTime < todayTime) {\n $elem.classList.add(\"disable-line\");\n } else {\n $elem.classList.remove(\"disable-line\");\n }\n\n let diffDays = Math.floor(_util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].diffDays(config.timeline.start, _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDate(new Date())));\n let diff = diffDays * dayWidth;\n diff += dayWidth / 2 - 2; // para centrar linea\n\n Object.assign($elem.style, {\n \"margin-left\": diff + \"px\",\n height: height + \"px\"\n });\n return $elem;\n },\n\n /**\n * Crea elemento FloatBox, que contiene los datos que se muestra en la tabla\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} tab - Tab de referencia, para mostrar datos configurados por tab\n * @return {Object} Elemento Dom Corner Footer\n */\n createFloatBox(config, tab) {\n let $container = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"float-box-container\"\n });\n return this.redrawFloatBox(config, tab, $container);\n },\n\n /**\n * Recrea elemento FloatBox, que contiene los datos que se muestra en la tabla\n * Se usa principalmente para mostrar datos en la tabla de la planilla\n * los muestra de manera flotante, calculando el Top y el Left segun la poscion\n *\n * Se consideran los elementos padres ocultos, para ocultar los datos\n *\n * Se insertan los elementos FloatBox, como elemento con datos de un item y dia especifico\n *\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} tab - Tab de referencia, para mostrar datos configurados por tab\n * @return {Object} Elemento Dom Corner Footer\n */\n redrawFloatBox(config, tab, $container) {\n $container.innerHTML = \"\"; //let tabSelected = tab || null;\n\n config.data.forEach(de => {\n if (de.isHidden) return;\n de.children.forEach(ds => {\n if (ds.isHidden) return;\n ds.data.forEach(data => {\n if ((!data.message || data.message.value == null) && (data.values == null || data.values == undefined || Object.entries(data.values).length === 0)) {\n return null;\n } //children Data\n\n\n let position = this.getPositionFloatBox(config, data, ds);\n let className = \"\";\n\n if (data.errors && data.errors.length > 0) {\n className += \"has-errors \";\n }\n\n if (de.isClosed) {\n className += \"hide \";\n }\n\n let msg = null;\n\n if (tab.floaBox && tab.floatBox.messagePath) {\n msg = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data, tab.floatBox.messagePath);\n }\n\n if (msg || data.message && data.message.value) {\n className += \"has-message \";\n }\n\n let str = `\n <div class=\"float-box ${className} ${de.isClosed ? \"hide\" : \"\"}\"\n style=\"${position ? position : \"\"}\"\n item-id=\"${ds.id || -1}\"\n type-node=\"${ds.type || \"\"}\"> `;\n let strExt = `\n <div class=\"float-box-ext ${de.isClosed ? \"hide\" : \"\"}\"\n style=\"${position ? position : \"\"}\"\n item-id=\"${ds.id || -1}-ext\"\n type-node=\"${ds.type || \"\"}\">\n <div class=\"long-bar-container\">`;\n\n if (tab && tab.floatBox) {\n if (tab.floatBox.plots) {\n str += `<div class=\"plot-floatbox-container\">`;\n tab.floatBox.plots.forEach(n => {\n let cssVars = \"\";\n let className = \"\";\n\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varName) !== null) {\n if (n.color) {\n cssVars = `--local-color:${n.color};`;\n }\n\n className = n.className || \"\";\n str += `<div class=\"plot-floatbox ${className} ${n.style || \"\"}\" style=\"${cssVars} \"></div>`;\n }\n });\n str += `\n </div>`;\n } //numeros en el floatBox\n\n\n if (tab.floatBox.nums) {\n tab.floatBox.nums.forEach(n => {\n if (tab.legends && n.tabKey) {\n let legend = tab.legends.find(l => l.key == n.tabKey);\n if (legend && !legend.active) return;\n }\n\n let dataFloatBox = null;\n let className = \"\";\n let showIf = true;\n let hideIf = false;\n let colorClass = \"\";\n let colorStyle = \"\";\n let classNamesExt = \"\";\n let colorStyleExt = \"\";\n let cssVars = \"\";\n\n if (n.varName) {\n dataFloatBox = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varName);\n }\n\n if (n.varShow) {\n showIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varShow));\n dataFloatBox = dataFloatBox || \"\";\n }\n\n if (n.varHide) {\n hideIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varHide));\n }\n\n if (n.shape) {\n className += \"shape-\" + n.shape;\n }\n\n if (n.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(n.color)) {\n colorStyle = `--local-color: ${n.color};`;\n } else {\n colorClass = n.color;\n }\n }\n\n if (n.longBar) {\n let longBarColor = \"\";\n let longBarOpacity = \"\";\n\n if (n.longBarColor) {\n longBarColor = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBarColor);\n }\n\n if (longBarColor) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(longBarColor)) {\n colorStyleExt = `--local-color: ${longBarColor};`;\n } else {\n classNamesExt += longBarColor + \"-light \";\n }\n } else if (colorClass && colorClass != \"\") {\n classNamesExt += colorClass;\n } else if (colorStyle && colorStyle != \"\") {\n colorStyleExt = colorStyle;\n }\n\n if (n.longBarOpacity) {\n longBarOpacity = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBarOpacity) || null;\n\n if (longBarOpacity) {\n colorStyleExt += \"--local-opacity: \" + longBarOpacity + \";\";\n }\n }\n\n if (n.longBarClassName) {\n classNamesExt += _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBarClassName) || \"\";\n }\n\n let longBar = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBar);\n\n if (longBar) {\n cssVars = `--long:${longBar};`;\n }\n }\n\n if (dataFloatBox !== null && showIf && !hideIf) {\n str += `<span class=\"data ${colorClass} ${className}\" style=\"${colorStyle}\">\n ${typeof dataFloatBox == \"string\" ? dataFloatBox : \"\"}\n ${typeof dataFloatBox == \"number\" ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(dataFloatBox, n.round) : \"\"}\n </span>`;\n\n if (n.longBar && cssVars) {\n strExt += `<div class=\"long-bar ${classNamesExt}\" style=\"${colorStyleExt} ${cssVars} \"></div> `;\n }\n }\n });\n } //puntos en el floatBox\n\n\n if (tab.floatBox.dots) {\n str += `<div class=\"dot-container-middle\">`;\n tab.floatBox.dots.forEach(dot => {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varName) !== null) {\n let className = \"\";\n let colorClass = \"\";\n let colorStyle = \"\";\n\n if (dot.shape) {\n className += dot.shape;\n }\n\n if (dot.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(dot.color)) {\n colorStyle = `--local-color: ${dot.color}`;\n } else {\n colorClass = dot.color;\n }\n }\n\n str += `\n <div class=\"dot ${colorClass} ${className}\" style=\"${colorStyle}\" ></div>`;\n }\n });\n str += `\n </div>`;\n } //fila de puntos en floatBox\n\n\n if (tab.floatBox.rowDots) {\n tab.floatBox.rowDots.forEach(row => {\n let freeColumns = 4;\n str += `<span class=\"rowdot--row \">`;\n row.forEach(dot => {\n if (tab.legends && dot.tabKey) {\n let legend = tab.legends.find(l => l.key == dot.tabKey);\n if (legend && !legend.active) return;\n }\n\n let dataFloatBox = null;\n let className = \"\";\n let showIf = true;\n let hideIf = false;\n let colorClass = \"\";\n let colorStyle = \"\";\n\n if (dot.varName) {\n dataFloatBox = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varName);\n dataFloatBox = parseInt(dataFloatBox);\n }\n\n if (dot.varShow) {\n showIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varShow));\n dataFloatBox = dataFloatBox || \"\";\n }\n\n if (dot.varHide) {\n hideIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varHide));\n }\n\n if (dot.shape) {\n className += \" shape-\" + dot.shape;\n }\n\n if (dot.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(dot.color)) {\n colorStyle = `--local-color: ${dot.color}`;\n } else {\n colorClass = dot.color;\n }\n }\n\n if (dataFloatBox !== null && dataFloatBox > 0 && showIf && !hideIf && freeColumns > 0) {\n let n = dataFloatBox > freeColumns ? freeColumns : dataFloatBox;\n freeColumns -= n;\n\n for (let index = 0; index < n; index++) {\n str += `<div class=\"rowdot--dot ${colorClass} ${className}\" style=\"${colorStyle}\"></div>`;\n }\n }\n });\n str += `</span>`;\n });\n }\n }\n\n str += `\n </div>`;\n strExt += `\n </div>\n </div>`;\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $elemExt = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(strExt);\n $elem.addEventListener(\"mouseover\", e => {\n $elem.dispatchEvent(new CustomEvent(\"mouseOverFloatBox\", {\n bubbles: true,\n cancelable: false,\n detail: {\n item: ds,\n data: data,\n originalEvt: e\n }\n }));\n });\n $elem.addEventListener(\"click\", e => {\n $elem.dispatchEvent(new CustomEvent(\"clickFloatBox\", {\n bubbles: true,\n cancelable: false,\n detail: {\n item: ds,\n data: data,\n originalEvt: e\n }\n }));\n });\n $container.appendChild($elem);\n $container.appendChild($elemExt);\n });\n });\n });\n return $container;\n },\n\n /**\n * Crea DetailDay, detalle de valores de item y Dia\n * se usa para:\n * - Muestra nombre de item y detalles\n * - Muestra capsulas de datos\n * - Muestra Pills, pildoras de datos resumidos\n * - Muestra alertas\n * - Muestra Mensaje\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} item - Item relacionado\n * @param {Object} dataDay - valores de item y Dia\n * @param {Boolean} [onlyStringContent = false] - para escoger si devuelve String o DomElement\n * @return {String|Object} Elemento como String o DomElement\n */\n createDetailDay(config, item = {}, dataDay, tabSelected, onlyStringContent = false) {\n let str = `\n <div class=\"header-detail\">\n <div class=\"title truncate\">\n ${item.label || \"\"}\n </div>\n <div class=\"subtitle\">\n ${dataDay ? _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDateReadeable(dataDay.date) : \"\"}\n </div>\n </div>\n\n <div class=\"list-detail list\">`; //CAPSULES\n\n if (dataDay) {\n config.timeline.detailDay.capsules.forEach(cap => {\n //para comprobar si tiene datos, se obtiene el primer valor\n //de la lista de values de una capsula\n let hasValues = cap.values.filter(v => _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay.values, v.varName) !== null).length > 0;\n let hideIf = false;\n\n if (cap.hideIf) {\n hideIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay.values, cap.hideIf));\n }\n\n let colorClass = \"\";\n let colorStyle = \"\";\n\n if (cap.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(cap.color)) {\n colorStyle = `--local-color: ${cap.color};`;\n colorStyle += `--local-color-font: ${cap.color};`;\n } else {\n colorClass = cap.color;\n }\n }\n\n if (hasValues && !hideIf) {\n str += `\n <div class=\"item-detail ${colorClass}\" style=\"${colorStyle}\">\n\n <div class=\"left-icon ${cap.shape || \"\"} \"></div>\n\n <div class=\"name\">\n <span>\n ${cap.title || \"\"}\n </span>\n </div>`;\n str += `\n <div class=\"item-description\"> `;\n cap.values.forEach(v => {\n let value = v.varName ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay.values, v.varName) : null;\n\n if (cap.isLabeledArray) {\n value.forEach(valueLabeled => {\n let outputValue = null;\n let valueName = v.valueName ? v.valueName : \"value\";\n let tempValue = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(valueLabeled, valueName);\n\n if (tempValue) {\n outputValue = v.round ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(tempValue, v.round) : tempValue;\n }\n\n if (v.formatter) {\n outputValue = v.formatter(valueLabeled);\n }\n\n if (typeof outputValue == \"number\") {\n outputValue = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatNumber(outputValue);\n }\n\n str += outputValue == null ? \"\" : `\n <div class=\"desc ${v.showColumn ? \"desc-column\" : \"\"}\">\n <div class=\"label\">\n ${v.hideLabel ? \"\" : valueLabeled.label}\n </div >\n <div class=\"val\">\n <span class=\"prefix\">\n ${v.prefix || \"\"}\n </span>\n <span class=\"value\">\n ${outputValue}\n </span>\n <span class=\"suffix\">\n ${valueLabeled.suffix || v.suffix || \"\"}\n </span>\n </div>\n </div>`;\n });\n } else {\n let outputValue = v.round ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round) : value;\n\n if (v.formatter) {\n outputValue = v.formatter({\n options: v,\n dataDay,\n outputValue\n });\n }\n\n if (typeof outputValue == \"number\") {\n outputValue = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatNumber(outputValue);\n }\n\n str += outputValue == null ? \"\" : `\n <div class=\"desc\">\n <span class=\"prefix\">\n ${v.prefix || \"\"}\n </span>\n <span class=\"value\">\n ${outputValue}\n </span>\n <span class=\"suffix\">\n ${v.suffix || \"\"}\n </span>\n </div>`;\n }\n });\n str += `\n </div>`;\n str += `\n </div>`; // end .item-detail\n }\n });\n }\n\n str += `\n </div>`; // list-detail\n //PILLS\n\n if (config.timeline.detailDay.pillsVarName && dataDay && dataDay.values[config.timeline.detailDay.pillsVarName]) {\n str += `\n <div class=\"elements-detail\">\n <div class=\"name\"> ${config.timeline.detailDay.pillsTitle} </div>\n <div class=\"elements-list\">`;\n dataDay.values[config.timeline.detailDay.pillsVarName].forEach(e => {\n let value = e.value;\n\n if (typeof outputValue == \"number\") {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatNumber(value);\n }\n\n str += `\n <div class=\"element-detail\">\n <b>${e.label}</b>\n ${value}\n </div>`;\n });\n str += `\n </div>\n </div>`; //end .element-detail > .element-list\n } //str += `</div>`;\n\n\n if (dataDay && dataDay.errors && dataDay.errors.length > 0) {\n dataDay.errors.forEach(err => {\n str += `\n <div class=\"alert\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].alert}\n ${err.label}\n </div>`;\n });\n }\n\n let msg = null;\n let author = null;\n let dateMsg = null;\n\n if (dataDay && tabSelected.floatBox && tabSelected.floatBox.messagePath) {\n msg = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, tabSelected.floatBox.messagePath);\n }\n\n if (!msg && dataDay && dataDay.message && dataDay.message.value) {\n msg = dataDay.message.value;\n author = dataDay.message.author;\n dateMsg = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDateReadeable(new Date(dataDay.message.date));\n }\n\n if (msg) {\n //msg = msg.replace(/(\\r\\n|\\r|\\n)/g, '<br>');\n str += `\n <div class=\"msj-container\">\n <div class=\"msj\">\n <pre>${msg || \"\"}</pre>\n </div>\n <div class=\"msj-detail\">\n <span class=\"email\"> ${author || \"\"} </span>\n <span class=\"date\"> ${dateMsg || \"\"} </span>\n </div>\n </div>`;\n }\n\n let strContainer = `<div class=\"detail-day dd-hide\"> ${str} </div>`;\n if (onlyStringContent) return str;\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(strContainer);\n },\n\n /**\n * Recrea HTML de detailDay\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} item - Item relacionado\n * @param {Object} dataDay - valores de item y Dia\n * @return {String} Elemento como String, de detailDay\n */\n redrawDetailDay(config, item, dataDay, tabSelected) {\n return this.createDetailDay(config, item, dataDay, tabSelected, true);\n },\n\n /**\n * Reposiciona FloatBox\n * verifica si el parent esta desplegado, para ocultar los datos\n *\n * Solo actualiza las alturas de los floatbox\n * no recrea los floatbox, es mas optimo\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} item - Item relacionado\n */\n repositionFloatBox(config, $floatBoxContainer) {\n $floatBoxContainer.querySelectorAll(\".float-box\").forEach($f => {\n let itemId = $f.getAttribute(\"item-id\");\n let itemHeight = parseFloat(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCSSVariable(config, \"--item-height\"));\n let item, parent;\n ({\n item,\n parent\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, itemId, \"child\", true));\n\n if (item) {\n let top = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPositionByItem(config, item);\n $f.style.top = top * itemHeight + \"px\";\n\n if (parent && parent.isClosed) {\n $f.classList.add(\"hide\");\n } else if ($f.classList.contains(\"hide\")) {\n $f.classList.remove(\"hide\");\n }\n }\n });\n },\n\n /**\n * Recrea indicadores de dias seleccionados\n *\n * @param {Object} $elem - Elemento Dom donde crea los elementos seleccionados\n * @param {Object[]} selected - Array con los dias seleccionados\n * @return {Object} Elemento Dom que contiene los indicadores de dias seleccionados\n */\n redrawSelectBoard($elem, selected) {\n $elem.innerHTML = \"\";\n let hasNumber = true;\n\n if (selected) {\n if (selected.length == 1) hasNumber = false;\n selected.forEach(s => {\n let attributes = [];\n\n if (hasNumber) {\n attributes.push({\n name: \"cap-badge\",\n value: s.index\n });\n }\n\n let $s = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"selected-day\",\n attributes\n });\n $s.style.left = s.pos.left + \"px\";\n $s.style.top = s.pos.top + \"px\";\n $elem.append($s);\n });\n }\n\n return $elem;\n },\n\n /**\n * Obtiene String con estilos CSS de la posicion de un floatBox\n * calculado segun item y fecha de los valores\n *\n * @param {Object} config - Configuracion capibara, para ver fecha de inicio\n * @param {Object} data - Datos del dia indicado\n * @param {Object} item - Item relacionado\n * @return {String} String CSS top y left , para posicionar floatBox en table\n */\n getPositionFloatBox(config, data, item) {\n let left = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].diffDays(config.timeline.start, data.date);\n let top = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPositionByItem(config, item);\n let dayWidth = parseFloat(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCSSVariable(config, \"--day-width\"));\n let itemHeight = parseFloat(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCSSVariable(config, \"--item-height\"));\n left *= dayWidth;\n top *= itemHeight;\n return \"top: \" + top + \".5px; left:\" + left + \".5px;\";\n },\n\n /**\n * Crea Boton como elemento Dom\n *\n * @param {Object} props - propiedades para boton\n * @param {String} props.className - classes css para boton\n * @param {*} props.key - key para identificar a boton\n * @param {String} props.label - Texto boton\n * @return {Object} Elemento Dom del boton creado\n */\n createButton(props) {\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <button class=\"${props.className || \"\"}\" input-key=\"${props.key || \"\"}\">\n ${props.label || \"\"}\n </button>`);\n },\n\n /**\n * Crea Botones de guardar y cancelar los datos de formulario del sidebar derecho\n *\n * @return {Object} Elemento Dom del botones creados\n */\n createNavRightbuttons() {\n let saveBtn = this.createButton({\n label: \"Guardar\",\n className: \"cap-btn-raised\"\n });\n let cancelBtn = this.createButton({\n label: \"Cancelar\",\n className: \"cap-btn-outline\"\n });\n let btnSection = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`<div class=\"button-section\"></div>`);\n btnSection.appendChild(saveBtn);\n btnSection.appendChild(cancelBtn);\n saveBtn.addEventListener(\"click\", e => {\n saveBtn.dispatchEvent(new CustomEvent(\"saveMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n });\n cancelBtn.addEventListener(\"click\", e => {\n cancelBtn.dispatchEvent(new CustomEvent(\"cancelMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n });\n return btnSection;\n },\n\n /**\n * Crea Input como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} [dataDay = null] - valores de item y Dia, opcional\n * @param {Object} [daySelected = null] - datos del dia seleccionado\n * @param {Object[]} [selected = []] - array de objetos, de dias seleccionados\n * @return {Object} Elemento Dom del input creado\n */\n createInput(props, dataDay = null, daySelected = null, selected = []) {\n let r = null;\n if (props.ignoreRender == true) return r;\n\n switch (props.type) {\n case \"custom\":\n r = props.render ? props.render({\n props,\n dataDay,\n daySelected,\n selected\n }) : null;\n r.setAttribute(\"input-key\", props.key);\n break;\n\n case \"select\":\n r = this.createInputSelect(props, dataDay, daySelected);\n break;\n\n case \"file\":\n r = this.createInputFile(props, dataDay);\n break;\n\n case \"fileLink\":\n r = this.createFileLink(props, dataDay);\n break;\n\n case \"text\":\n r = this.createText(props, selected);\n break;\n\n case \"title\":\n r = this.createTitle(props);\n break;\n\n case \"number\":\n r = this.createInputNumber(props, dataDay);\n break;\n\n case \"float\":\n r = this.createInputFloat(props, dataDay);\n break;\n\n case \"message\":\n r = this.createInputMessage(props, dataDay);\n break;\n\n case \"textarea\":\n r = this.createInputTextArea(props, dataDay);\n break;\n\n case \"checkbox\":\n r = this.createInputCheckbox(props, dataDay);\n break;\n\n case \"inputList\":\n r = this.createInputList(props, dataDay, daySelected);\n break;\n\n case \"input-box\":\n r = this.createInputBox(props, dataDay);\n break;\n\n case \"list\":\n r = this.createList(props, dataDay);\n break;\n\n case \"data-list\":\n r = this.createDataList(props, dataDay, daySelected, selected);\n break;\n\n case \"button\":\n r = this.createInputButton(props, dataDay);\n break;\n\n case \"buttons-group\":\n r = this.createInputButtonsGroup(props, dataDay);\n break;\n\n case \"time\":\n r = this.createInputTime(props, dataDay);\n break;\n\n case \"text\":\n default:\n r = this.createInputText(props, dataDay);\n }\n\n return r;\n },\n\n /**\n * Crea Input con formato Hora, como elemento Dom\n *\n * Usa 2 inputs, hora y minutos\n *\n * el value que interpreta es String HH:MM\n *\n * @param {Object} props - config para Input\n * @param {Object} [dataDay = null] - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputTime(props, dataDay) {\n let hhValue = \"\";\n let mmValue = \"\";\n\n if (dataDay && dataDay.values) {\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n\n if (value) {\n value = value.split(\":\");\n hhValue = value[0];\n mmValue = value[1];\n }\n }\n\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label || \"\"}\n </span>\n <div class=\"d-flex\">\n <div class=\"time\">\n <input type=\"number\"\n class=\"hour\"\n id=\"test\"\n placeholder=\"00\"\n min=\"0\"\n max=\"24\"\n value=\"${hhValue}\">\n <span class=\"symbol\">:</span>\n <input type=\"number\"\n class=\"minutes\"\n placeholder=\"00\"\n min=\"0\"\n max=\"59\"\n value=\"${mmValue}\">\n </div>\n <span class=\"text-hint\">\n ${props.textHint || \"\"}\n </span>\n </div>\n </div>`);\n let $hhInput = $elem.querySelector(\".hour\");\n let $mmInput = $elem.querySelector(\".minutes\");\n $hhInput.addEventListener(\"input\", e => {\n $hhInput.dispatchEvent(new CustomEvent(\"changeTimeInputHH\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: props.key,\n value: e.srcElement.value\n }\n }));\n });\n $mmInput.addEventListener(\"input\", e => {\n $mmInput.dispatchEvent(new CustomEvent(\"changeTimeInputMM\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: props.key,\n value: e.srcElement.value\n }\n }));\n });\n this.addKeyDownInputEvents($hhInput, $elem, props);\n this.addKeyDownInputEvents($mmInput, $elem, props);\n return $elem;\n },\n\n /**\n * Crea Text como elemento Dom\n * Se configura como input, pero no devuelve datos, es un texto\n *\n * @param {Object} props - config para Input\n * @return {Object} Elemento Dom del input creado\n */\n createText(props, selected) {\n let label = props.label;\n\n if (props.formatter) {\n label = props.formatter({\n selected\n });\n }\n\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"${props.classNames || \"\"}\">\n ${label}\n </span>\n </div>`);\n return $elem;\n },\n\n /**\n * Crea Title como elemento Dom\n * Se configura como input, pero no devuelve datos, es un texto\n *\n * @param {Object} props - config para Input\n * @return {Object} Elemento Dom del input creado\n */\n createTitle(props) {\n let classNames = \"text-title\";\n\n if (props.isSubtitle) {\n classNames = \"text-subtitle\";\n }\n\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"${classNames}\">\n ${props.label}\n </span>\n </div>`);\n },\n\n /**\n * Crea Input tipo Numerico como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputNumber(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n value = value || \"\";\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.classNames || \"\"} ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <div class=\"input-section-title\">\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n <span class=\"text-subtitle-2 \">\n ${props.suffix ? \"(\" + props.suffix + \")\" : \"\"}\n </span>\n </div>\n <div class=\"d-flex\">\n <input type=\"number\"\n class=\"nav-input\"\n value=\"${value}\">\n\n <span class=\"text-hint\">\n ${props.textHint || \"\"}\n </span>\n </div>\n </div>`);\n let inputElem = elem.querySelector(\"input\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n /**\n * Crea Input tipo FIlepicker como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputFile(props, dataDay) {\n let value = \"\";\n let fileName = \"\";\n let filePath = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n fileName = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.fileNameValue);\n filePath = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.filePathValue);\n }\n\n value = value || \"\";\n fileName = fileName || \"\";\n filePath = filePath || \"\";\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.classNames || \"\"} ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n\n <div class=\"input-section-title\">\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n </div>\n\n <div class=\"nav-input-file\" >\n <button class=\"small-close clear-file-input\">x</button>\n <label >\n <span class=\"nav-input-file-label\">\n ${props.pickerLabel || \"Seleccionar Archivo\"}\n </span>\n <input type=\"file\" value=\"${value}\">\n </label>\n </div>\n\n <div class=\"input-section-link\">\n <a href=\"${filePath}\" target=\"_blank\" >\n ${fileName}\n </a>\n </div>\n\n </div>`);\n let $inputElem = elem.querySelector(\"input\");\n let $clearBtn = elem.querySelector(\".clear-file-input\");\n let $fileInputLabel = elem.querySelector(\".nav-input-file-label\");\n $inputElem.addEventListener(\"change\", evt => {\n let fileName = $inputElem.files[0].name;\n $fileInputLabel.textContent = fileName;\n });\n $clearBtn.addEventListener(\"click\", evt => {\n $inputElem.value = \"\";\n $fileInputLabel.textContent = props.pickerLabel || \"Seleccionar Archivo\";\n evt.stopPropagation();\n });\n return elem;\n },\n\n createFileLink(props, dataDay) {\n let fileName = \"\";\n let filePath = \"\";\n\n if (dataDay && dataDay.values) {\n //value = utils.getVarByPath(dataDay, props.varName);\n fileName = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.fileNameValue);\n filePath = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.filePathValue);\n }\n\n if (fileName == \"\") return null;\n fileName = fileName || \"\";\n filePath = filePath || \"\";\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.classNames || \"\"} ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n\n <div class=\"input-section-title\">\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n </div>\n\n <div class=\"input-section-link\">\n <a href=\"${filePath}\" target=\"_blank\" >\n ${fileName}\n </a>\n </div>\n\n </div>`);\n return elem;\n },\n\n /**\n * Crea lista de Inputs, con array de valores, como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @param {Object} [daySelected = null] - datos del dia seleccionado\n * @return {Object} Elemento Dom del input creado\n */\n createInputList(props, dataDay, daySelected = null) {\n let inputList = []; //obtiene inputs default, para crearlos, sin valores\n\n if (daySelected && Array.isArray(daySelected.item.values[props.inputList])) {\n inputList = daySelected.item.values[props.inputList].map(inputRow => {\n //limpia inputList inputs\n inputRow.inputs.map(input => {\n input.value = null;\n return input;\n }); //obtiene valores del dia\n\n if (dataDay && dataDay.values) {\n let inputValues = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.valuesPath); //autorrellena\n\n if (inputValues) {\n inputRow.inputs.forEach(input => {\n let values = inputValues.find(v => v.id == inputRow.id);\n input.value = values ? values[input.varName] : null;\n });\n }\n }\n\n return inputRow;\n });\n }\n\n let str = `<div input-key=\"${props.key || \"\"}\" class=\"input-section-list ${props.isHidden ? 'hide' : ''} \">\n <div class=\"input-section-title\">\n <span class=\"text-title\">\n ${props.label}\n </span> \n </div>`;\n inputList.forEach(inputRow => {\n str += `\n <div class=\"input-section ${props.toRight ? \"to-right\" : \"\"}\" >\n <span class=\"text-subtitle\">\n ${inputRow.label}\n </span>`;\n inputRow.inputs.forEach(input => {\n str += ` \n <div class=\"input-section-col\" >\n <span class=\"text-subtitle \">\n ${input.label}\n </span>\n <input type=\"number\"\n input-id=\"${inputRow.id}\"\n input-label=\"${input.label}\"\n class=\"nav-input small\"\n value=\"${input.value}\">\n </div>`;\n });\n str += `\n </div>`;\n });\n str += `</div>`;\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let inputsElem = elem.querySelectorAll(\"input\");\n inputsElem.forEach(inputElem => this.addKeyDownInputEvents(inputElem, elem, props));\n return elem;\n },\n\n createInputSelect(props, dataDay, daySelected = null) {\n let value = null;\n let options = props.options;\n\n if (dataDay && dataDay.values) {\n let val = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n value = val ? val.value : null;\n }\n\n let str = `<div input-key=\"${props.key || \"\"}\" class=\"${props.isHidden ? 'hide' : ''}\" >\n <div class=\"input-section \" >\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n\n <select class=\"input-select\">\n\n <option value=\"\" ${value == null ? \"selected\" : \"\"}>\n ${props.noDataLabel || \"-- sin asignar --\"}\n </option>\n\n `;\n options.forEach(option => {\n str += `\n <option value=\"${option.id}\" ${option.id == value ? \"selected\" : \"\"}>\n ${option.label}\n </option>\n `;\n });\n str += `\n\n </select>\n </div>\n\n </div>`;\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n return elem;\n },\n\n /**\n * Crea Input de texto TextArea como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputTextArea(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n <textarea class=\"\" value=\"${value}\"></textarea>\n </div>`);\n let inputElem = elem.querySelector(\"textarea\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n /**\n * Crea Input de Mensaje como elemento Dom\n * utiliza TextArea\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputMessage(props, dataDay) {\n let value = dataDay ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName) : null;\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section msj-input-container ${props.isHidden ? 'hide' : ''} \"\n input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n Mensaje\n </span>\n <textarea class=\"msj\">${value || \"\"}</textarea>\n </div>`);\n let inputElem = elem.querySelector(\"textarea\"); //this.addKeyDownInputEvents(inputElem);\n\n return elem;\n },\n\n /**\n * Crea Input de texto como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputText(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n <input type=\"text\" class=\"nav-input\" value=\"${value}\">\n </div>`);\n let inputElem = elem.querySelector(\"input\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n /**\n * Crea Input Numero Flotante, como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputFloat(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n <input type=\"number\" class=\"nav-input\" value=\"${value}\">\n </div>`);\n let inputElem = elem.querySelector(\"input\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n createDataList(props, dataDay, daySelected, selected) {\n let list = [];\n\n if (dataDay && dataDay.values) {\n list = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName) || [];\n }\n\n let searchInput = ` <div class=\"search-input-container\">\n <input id=\"\" type=\"text\" name=\"\" class=\"search-input\" placeholder=\"buscar\">\n <button class=\"search-input-clear\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].closeIcon}\n </button>\n </div>`;\n let editBtn = \"\";\n\n if (props.editButton) {\n editBtn = `<button class=\"cap-btn-raised cap-btn-sm edit-btn\" input-key=\"${props.editButton.key}\">\n ${props.editButton.label} \n </button> `;\n }\n\n let str = `\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <div class=\"input-section-title\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n ${editBtn}\t\n </div>\n <div class=\"input-box \" input-key=\"${props.key || \"\"}\">\n ${searchInput}\n </div>\n </div> `;\n let $el = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $searchInput = $el.querySelector(\".search-input\");\n let $searchInputClear = $el.querySelector(\".search-input-clear\");\n let $inputBox = $el.querySelector(\".input-box\");\n let $items = list.map((item, j) => {\n let label = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameLabel) || dataDay.label || \"__\";\n let $elItem = this.createDataListItem({\n label,\n valueText: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameValueText) || \"\",\n subText: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameSubText) || \"\",\n id: \"list-item-\" + (dataDay.id || j),\n key: \"list-item-\" + (dataDay.id || j),\n tooltip: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameTooltip) || label,\n //colorIcon: \"c-red\",\n link: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameLink) || null,\n suffix: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameSuffix) || null //value: JSON.stringify(utils.getVarByPath(item, props.varNameInput)) || {}\n\n });\n $inputBox.appendChild($elItem);\n });\n $searchInputClear.addEventListener(\"click\", e => {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n $searchInput.addEventListener(\"keydown\", e => {\n if (e.key === \"Escape\") {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n });\n $searchInput.addEventListener(\"input\", e => {\n let $inputs = [];\n $inputs = $el.querySelectorAll(\".mini-input-section\") || [];\n $inputs.forEach($i => {\n let label = $i.getAttribute(\"label\");\n let search = $searchInput.value;\n\n if (label.toLowerCase().includes(search.toLowerCase())) {\n $i.classList.remove(\"hide\");\n } else {\n $i.classList.add(\"hide\");\n }\n });\n });\n\n if (props.editButton.onClick) {\n let button = $el.querySelector(\"button.edit-btn\");\n\n if (button && props.editButton) {\n button.addEventListener(\"click\", e => props.editButton.onClick({\n event: e,\n props,\n dataDay,\n daySelected,\n selected,\n $element: $el\n }));\n }\n\n $items.forEach($i => {\n $el.addEventListener(\"click\", e => {\n props.editButton.onClick({\n event: e,\n props,\n dataDay,\n daySelected,\n selected,\n $element: $el\n });\n });\n });\n }\n\n return $el;\n },\n\n createDataListItem({\n label = \"\",\n valueText = \"\",\n subText = \"\",\n id = \"\",\n key = \"\",\n tooltip = \"\",\n colorIcon = \"\",\n link = null,\n suffix = null,\n value = \"\"\n }) {\n let tooltipStr = \"\";\n let iconStr = null;\n let linkStr = \"\";\n let str = \"\";\n\n if (tooltip) {\n tooltipStr = `\n <div class=\"mini-input-section--tooltip\">\n ${tooltip}\n </div>`;\n }\n\n if (colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(itemFormated.colorIcon)) {\n iconStr = `<div class=\"mini-input-section--icon\" style=\"background:${colorIcon}\"> </div>`;\n } else {\n iconStr = `<div class=\"mini-input-section--icon ${colorIcon}\"> </div>`;\n }\n }\n\n if (link) {\n linkStr = `<a class=\"mini-input-section--link\" target=\"_blank\" href=\"${link}\">${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].linkIcon}</a> `;\n }\n\n str += `\n <div class=\"mini-input-section clickeable ${iconStr ? \"has-icon\" : \"\"} \" \n label=\"${label}\" \n data-id=\"${id}\"\n data-key=\"${key}\"\n data-value=\"${value || ''}\"\n >\n <label>\n ${iconStr || \"\"}\n\n <div class=\"mini-input-section--titles\">\n <div class=\"mini-input-section--title truncate\">\n ${label}\n </div>\n <div class=\"mini-input-section--subtitle truncate\">\n ${subText}\n </div>\n </div>\n\n <div class=\"mini-input-section--content\" >\n ${valueText}\n </div>\n <div class=\"mini-input-section--suffix\" >\n ${suffix}\n </div>\n\n ${linkStr}\n\n </label>\n ${tooltipStr}\n </div>`;\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n },\n\n createList(props, dataDay) {\n let tabsContainer = \"\";\n\n if (props.tabs) {\n let tabs = \"\";\n props.tabs.forEach(tab => {\n tabs += `\n <div class=\"input-box-tab\" tab-key=\"${tab.key}\">\n ${tab.name}\n </div>`;\n });\n tabsContainer = `\n <div class=\"input-box-tab-container\">\n ${tabs}\n </div>\n `;\n }\n\n let searchInput = `\n <div class=\"search-input-container\">\n <input id=\"\" type=\"text\" name=\"\" class=\"search-input\" placeholder=\"buscar\">\n <button class=\"search-input-clear\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].closeIcon}\n </button>\n </div>\n `;\n let str = `\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n\n ${tabsContainer}\n <div class=\"input-box \" input-key=\"${props.key || \"\"}\">\n\n ${searchInput}\n `; //TODO obtener input segun fila\n\n if (props.inputs) {\n props.inputs.forEach(i => {\n if (i.isTitle) {\n let tooltip = \"\";\n let icon = null;\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n ${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n str += `\n <div class=\"mini-input-section is-title ${icon ? \"has-icon\" : \"\"}\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n ${icon || \"\"}\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n </label>\n ${tooltip}\n </div>`;\n } else {\n let tooltip = \"\";\n let icon = null;\n let link = \"\";\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n if (i.link) {\n link = `<a class=\"mini-input-section--link\" target=\"_blank\" href=\"${i.link}\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].linkIcon}\n </a> `;\n }\n\n str += `\n <div class=\"mini-input-section ${icon ? \"has-icon\" : \"\"}\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n\n ${icon}\n\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n\n <div class=\"mini-input-section--suffix\" >${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}</div>\n\n ${link}\n\n </label>\n <div class=\"mini-input-section--footer\">\n <span class=\"start\"> start</span>\n <span class=\"end\"> end </span>\n </div>\n ${tooltip}\n </div>`;\n }\n });\n }\n\n str += `\n </div>\n </div> `;\n let $el = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $tabs = $el.querySelectorAll(\".input-box-tab[tab-key]\") || [];\n let $searchInput = $el.querySelector(\".search-input\") || null;\n let $searchInputClear = $el.querySelector(\".search-input-clear\") || null;\n $tabs.forEach(t => {\n t.addEventListener(\"click\", e => {\n this.selectInputBoxTab(t, $el);\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n });\n\n if ($searchInputClear) {\n $searchInputClear.addEventListener(\"click\", e => {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n }\n\n if ($searchInput) {\n $searchInput.addEventListener(\"keydown\", e => {\n if (e.key === \"Escape\") {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n });\n $searchInput.addEventListener(\"input\", e => {\n let $tabSelected = $el.querySelector(\".input-box-tab[tab-key].active\") || null;\n let $inputs = [];\n\n if ($tabSelected) {\n let tabKey = $tabSelected.getAttribute(\"tab-key\");\n $inputs = $el.querySelectorAll(\".mini-input-section[input-tab-key='\" + tabKey + \"']\") || [];\n } else {\n $inputs = $el.querySelectorAll(\".mini-input-section\") || [];\n }\n\n $inputs.forEach($i => {\n let label = $i.getAttribute(\"label\");\n let search = $searchInput.value;\n\n if (label.toLowerCase().includes(search.toLowerCase())) {\n $i.classList.remove(\"hide\");\n } else {\n $i.classList.add(\"hide\");\n }\n });\n });\n }\n\n this.selectInputBoxTab(_.first($tabs), $el);\n return $el;\n },\n\n /**\n * Crea InputBox, como elemento Dom\n * un InputBox es un contenedor con una lista de inputs\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputBox(props, dataDay) {\n let value = [];\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let tabsContainer = \"\";\n\n if (props.tabs) {\n let tabs = \"\";\n props.tabs.forEach(tab => {\n tabs += `\n <div class=\"input-box-tab\" tab-key=\"${tab.key}\">\n ${tab.name}\n </div>`;\n });\n tabsContainer = `\n <div class=\"input-box-tab-container\">\n ${tabs}\n </div>\n `;\n }\n\n let searchInput = `\n <div class=\"search-input-container\">\n <input id=\"\" type=\"text\" name=\"\" class=\"search-input\" placeholder=\"buscar\">\n <button class=\"search-input-clear\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].closeIcon}\n </button>\n </div>\n `;\n let str = `\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n\n ${tabsContainer}\n\n <div class=\"input-box \" input-key=\"${props.key || \"\"}\">\n\n ${searchInput}\n `;\n\n if (props.inputs) {\n props.inputs.forEach(i => {\n if (i.isTitle) {\n let tooltip = \"\";\n let icon = \"\";\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n ${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n str += `\n <div class=\"mini-input-section is-title\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n ${icon}\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n </label>\n ${tooltip}\n </div>`;\n } else {\n let value_found = value ? value.find(val => val.id == i.id) : null;\n let v = value_found || \"\";\n let inputValue = props.varNameInput && v[props.varNameInput] ? v[props.varNameInput] : v.value;\n let tooltip = \"\";\n let icon = \"\";\n let link = \"\";\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n if (i.link) {\n link = `<a class=\"mini-input-section--link\" target=\"_blank\" href=\"${i.link}\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].linkIcon}\n </a> `;\n }\n\n str += `\n <div class=\"mini-input-section ${icon ? \"has-icon\" : \"\"}\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n <input type=\"number\"\n class=\"mini-input\"\n input-id=\"${i.id || \"\"}\"\n input-key=\"${i.key || i.label}\"\n value=\"${inputValue || \"\"}\">\n\n ${icon || \"\"}\n\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n\n <div class=\"mini-input-section--suffix\" >${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}</div>\n\n ${link}\n\n </label>\n ${tooltip}\n </div>`;\n }\n });\n }\n\n str += `\n </div>\n </div> `;\n let $el = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $tabs = $el.querySelectorAll(\".input-box-tab[tab-key]\") || [];\n let $inputs = $el.querySelectorAll(\"input.mini-input\") || [];\n let $searchInput = $el.querySelector(\".search-input\") || null;\n let $searchInputClear = $el.querySelector(\".search-input-clear\") || null;\n $tabs.forEach(t => {\n t.addEventListener(\"click\", e => {\n this.selectInputBoxTab(t, $el);\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n });\n\n if ($searchInputClear) {\n $searchInputClear.addEventListener(\"click\", e => {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n }\n\n if ($searchInput) {\n $searchInput.addEventListener(\"keydown\", e => {\n if (e.key === \"Escape\") {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n });\n $searchInput.addEventListener(\"input\", e => {\n let $tabSelected = $el.querySelector(\".input-box-tab[tab-key].active\") || null;\n let $inputs = [];\n\n if ($tabSelected) {\n let tabKey = $tabSelected.getAttribute(\"tab-key\");\n $inputs = $el.querySelectorAll(\".mini-input-section[input-tab-key='\" + tabKey + \"']\") || [];\n } else {\n $inputs = $el.querySelectorAll(\".mini-input-section\") || [];\n }\n\n $inputs.forEach($i => {\n let label = $i.getAttribute(\"label\");\n let search = $searchInput.value;\n\n if (label.toLowerCase().includes(search.toLowerCase())) {\n $i.classList.remove(\"hide\");\n } else {\n $i.classList.add(\"hide\");\n }\n });\n });\n }\n\n this.selectInputBoxTab(_.first($tabs), $el);\n $inputs.forEach(i => this.addKeyDownInputEvents(i, $el, props));\n return $el;\n },\n\n selectInputBoxTab($tab, $el) {\n let $tabs = $el.querySelectorAll(\".input-box-tab[tab-key]\") || [];\n let $inputSections = $el.querySelectorAll(\".mini-input-section\") || [];\n $tabs.forEach(t => {\n t.classList.remove(\"active\");\n });\n\n if ($tab) {\n $tab.classList.add(\"active\");\n $inputSections.forEach(i => {\n let key = i.getAttribute(\"input-tab-key\");\n\n if (key == $tab.getAttribute(\"tab-key\")) {\n i.classList.remove(\"hide\");\n } else {\n i.classList.add(\"hide\");\n }\n });\n }\n },\n\n /**\n * Crea Checkbox, como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputCheckbox(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <label>\n <input type=\"checkbox\" name=\"${props.key || \"\"}\" input-key=\"${props.key || \"\"}\" ${value ? \"checked\" : \"\"}>\n ${props.label}\n </label>\n </div>`);\n return r;\n },\n\n createInputButtonsGroup(props) {\n let $container = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <div class=\"buttons-group\"> </div>\n </div>`);\n let $containerButtonGroup = $container.querySelector(\".buttons-group\");\n let $buttons = [];\n $buttons = props.buttons.map(buttonProp => {\n let buttonStr = `\n <button \n name=\"${buttonProp.key || \"\"}\" \n input-key=\"${buttonProp.key || \"\"}\"\n class=\"cap-btn-outline cap-btn-sm ${buttonProp.isSelected ? 'selected' : ''} \">\n ${buttonProp.label}\n </button>`;\n let $button = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(buttonStr);\n $containerButtonGroup.append($button);\n $button.addEventListener(\"click\", e => {\n if (props.isSelectable) {\n $buttons.forEach($b => $b.classList.remove(\"selected\"));\n $button.classList.add(\"selected\");\n }\n\n buttonProp.onClick({\n props,\n event: e,\n buttonsElements: $buttons\n });\n });\n return $button;\n });\n return $container;\n },\n\n createInputButton(props) {\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <button \n name=\"${props.key || \"\"}\"\n input-key=\"${props.key || \"\"}\"\n class=\"cap-btn-outline\">\n ${props.label}\n </button>\n </div>`);\n let button = r.querySelector(\"button\");\n button.addEventListener(\"click\", e => props.onClick({\n props,\n event: e\n }));\n return r;\n },\n\n addKeyDownInputEvents($input, $inputContainer, props) {\n $input.addEventListener(\"keydown\", function (event) {\n if (event.keyCode === 13) {\n //ENTER\n $input.dispatchEvent(new CustomEvent(\"saveMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n }\n\n if (event.keyCode === 27) {\n //ESC\n $input.dispatchEvent(new CustomEvent(\"cancelMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n }\n });\n $input.addEventListener(\"input\", e => {\n if (props.onInput) {\n props.onInput({\n event: e,\n value: e.srcElement.value,\n props,\n $element: $inputContainer\n });\n }\n });\n },\n\n createContextMenu({\n config,\n $capibaraElem = null,\n evt = null,\n date = null,\n item = null,\n selected = [],\n tabSelected = null,\n left = null,\n top = null,\n name = \"\"\n }) {\n if (config.timeline.contextMenu === undefined) return {\n elem: null,\n isVisible: false\n };\n let className = \"\";\n let style = \"\";\n let strHtml = \"\";\n let leftPosition = null;\n let topPosition = null;\n let isVisible = true;\n let boundRectCapibara = null;\n let gap = 15; //px\n\n if ($capibaraElem) {\n boundRectCapibara = $capibaraElem.getBoundingClientRect();\n }\n\n if (evt && boundRectCapibara) {\n left = evt.clientX;\n top = evt.clientY - boundRectCapibara.top;\n }\n\n if (left) {\n leftPosition = left;\n }\n\n if (top) {\n topPosition = top;\n }\n\n if (leftPosition !== null & topPosition !== null) {\n if (boundRectCapibara) {\n let transformStyle = \"\";\n\n if (topPosition > boundRectCapibara.height * 2 / 6 && topPosition <= boundRectCapibara.height * 4 / 6) {\n transformStyle += `translateY(-50%)`;\n }\n\n if (topPosition > boundRectCapibara.height * 4 / 6) {\n transformStyle += `translateY(-100%)`;\n }\n\n if (leftPosition > boundRectCapibara.width * 4 / 6) {\n transformStyle += `translateX(-100%)`;\n leftPosition -= gap;\n } else {\n leftPosition += gap;\n }\n\n if (transformStyle != \"\") {\n style += ` transform: ${transformStyle};`;\n }\n }\n\n style += `top: ${topPosition}px; left: ${leftPosition}px;`;\n } else {\n className += \"cm-hide\";\n isVisible = false;\n }\n\n strHtml += ` <div class=\"cap-context-menu-container ${className}\">\n <div class=\"cap-context-menu\" style=\"${style}\">\n </div>\n </div>`;\n let $contextMenuContainer = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(strHtml);\n let $contextMenu = $contextMenuContainer.querySelector(\".cap-context-menu\");\n config.timeline.contextMenu.options.forEach(option => {\n if (option.showIf) {\n let show = option.showIf({\n item,\n date,\n selected,\n name,\n tabSelected\n });\n if (!show) return;\n }\n\n let isEnabled = true;\n let isClickeable = true;\n\n if (option.enableIf) {\n isEnabled = option.enableIf({\n item,\n date,\n selected,\n name,\n tabSelected\n });\n }\n\n let optionClassName = \"\";\n let strIcon = \"\";\n let label = \"\";\n\n if (!isEnabled) {\n optionClassName += \"is-disabled \";\n }\n\n if (option.isDivider) {\n isClickeable = false;\n optionClassName += \"is-divider \";\n }\n\n if (option.label) {\n label = `<span>${option.label}</span>`;\n }\n\n if (option.icon) {\n strIcon = `<div class=\"cap-context-menu_item_icon\">\n <svg viewBox=\"0 0 24 24\">\n <path d=\"${option.icon}\" />\n </svg>\n </div>`;\n }\n\n let optionStrHtml = `\n <div class=\"cap-context-menu_item ${optionClassName}\">\n ${strIcon}\n ${label}\n </div>`;\n let $option = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(optionStrHtml);\n\n if (isEnabled && isClickeable) {\n $option.addEventListener(\"click\", evtClick => option.onClick({\n config,\n evt: evtClick,\n date,\n item,\n selected,\n tabSelected\n }));\n } else {\n $option.addEventListener(\"click\", evtClick => {\n evtClick.preventDefault();\n evtClick.stopPropagation();\n });\n }\n\n $contextMenu.append($option);\n });\n return {\n elem: $contextMenuContainer,\n isVisible\n };\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC90YWJsZUVsZW1lbnRzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2FwaWJhcmEvLi9zcmMvdXRpbC90YWJsZUVsZW1lbnRzLmpzPzFkODYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvbSBmcm9tIFwiLi4vdXRpbC9kb21VdGlsc1wiO1xuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi91dGlsL3V0aWxzXCI7XG5pbXBvcnQgZGF0ZVV0aWxzIGZyb20gXCIuLi91dGlsL2RhdGVVdGlsc1wiO1xuaW1wb3J0IGljb25zIGZyb20gXCIuLi91dGlsL2ljb25zXCI7XG5pbXBvcnQgZG9tVXRpbHMgZnJvbSBcIi4uL3V0aWwvZG9tVXRpbHNcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAvKipcbiAgICogQ3JlYSBlbGVtZW50byBUYWJsZVxuICAgKiBDb250ZW5kcsOhIGxvcyBlbGVtZW50b3MgcXVlIGFwYXJlY2VyYW4gZGVudHJvIGRlIGxhIHRhYmxhIGRlIHBsYW5pbGxhXG4gICAqIFNlIFVzYSBwYXJhIDpcbiAgICogICAgLSBBZ3JlZ2FyIGJhY2tncm91bmQgY29uIHBhdHJvbiBlc3RpbG8gdGFibGFcbiAgICogICAgLSBBZ3JlZ2FyIGRheU1vdXNlT3ZlciwgZGl2IHF1ZSBpbmRpY2EgcG9zaWNpb24gZGUgbW91c2VcbiAgICogICAgLSBBZ3JlZ2FyIERldGFpbERheSwgcGFyYSBkZXRhbGxlcyBkZSBkYXRvcyBlbiB0YWJsYVxuICAgKiAgICAtIEFncmVnYXIgU2VsZWN0ZWRDb250YWluZXIsIHBhcmEgZGlhcyBzZWxlY2Npb25hZG9zXG4gICAqICAgIC0gQWdyZWdhciBGbG9hdEJveENvbnRhaW5lciwgcGFyYSB2aXN1YWxpemFjaW9uIGRlIGRhdG9zIGVuIHRhYmxhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlQWdUYWJsZShjb25maWcpIHtcbiAgICBsZXQgZSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNhcGliYXJhXCIgfSk7XG4gICAgaWYgKGNvbmZpZy50aW1lbGluZS5kYXJrKSB7XG4gICAgICBlLmNsYXNzTGlzdC5hZGQoXCJkYXJrLXRoZW1lXCIpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuaXNTaG93KSB7XG4gICAgICBlLmNsYXNzTGlzdC5hZGQoXCJoZWFkZXItZXh0ZW5kZWRcIik7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNyZWEgQmFja2dyb3VuZCwgcXVlIGVzIGVsIGZvbmRvIGdyaWQsIGNvbW8gdGFibGFcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9ICRlbGVtIC0gRWxlbWVudG8gcmVsYWNpb25hZG8sIGRvbmRlIHNlIGNyZSBlbCBiYWNrZ3JvdW5kXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIENvcm5lciBGb290ZXJcbiAgICovXG4gIHJlZHJhd0JhY2tncm91bmQoY29uZmlnLCAkZWxlbSkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJhY2tncm91bmQoY29uZmlnLCAkZWxlbSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgeSBwb3NpY2lvbmEgZm9uZG8gZGUgdGFibGFcbiAgICogRXN0ZSBmb25kbyBjb250aWVuZSB1biBwYXRyb24gZGUgQ1NTIHF1ZSBsZSBkYSBsYSBhcGFyaWVuY2lhIGRlIHRhYmxhXG4gICAqIHBvciBsbyBjdWFsIHNlIGRlYmUgcmVwb3NpY2lvbmFyIHNlZ3VuIGxhIGZlY2hhIGRlIGluaWNpbywgcGFyYSBoYWNlclxuICAgKiBjYWx6YXIgbG9zIGZpbmVzIGRlIHNlbWFuYVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcGFyYW0ge09iamVjdH0gWyRlbGVtID0gbnVsbF0gLSBFbGVtZW50byBiYWNrZ3JvdW5kLCBzaSBlcyBudWxsLCBsbyBjcmVhXG4gICAqIEByZXR1cm4ge09iamVjdH0gZWxlbWVudG8gRG9tIEJhY2tncm91bmRcbiAgICovXG4gIGNyZWF0ZUJhY2tncm91bmQoY29uZmlnLCAkZWxlbSA9IG51bGwpIHtcbiAgICBsZXQgeyBoZWlnaHQsIHdpZHRoLCBkYXlXaWR0aCB9ID0gdXRpbHMuZ2V0VGFibGVEaW1lbnNpb25zKGNvbmZpZyk7XG5cbiAgICBsZXQgc3RhcnQgPSBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuc3RhcnQpO1xuICAgIGxldCBlbmQgPSBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuZW5kKTtcblxuICAgIGVuZC5zZXRUaW1lKGVuZC5nZXRUaW1lKCkgKyBkYXRlVXRpbHMuZGF5SW5NaWxsaXNlY29uZHMpOyAvLyBhZGQgMjQgaG91cnNcblxuICAgIGxldCBkQ29ycmVjdGVkID0gbmV3IERhdGUoXG4gICAgICBzdGFydC52YWx1ZU9mKCkgKyBzdGFydC5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDBcbiAgICApO1xuICAgIGxldCB3ZWVrRGF5ID0gZENvcnJlY3RlZC5nZXREYXkoKTtcbiAgICBsZXQgZGlmZldlZWtEYXlzID0gKHdlZWtEYXkgLSAxKSAqIGRheVdpZHRoICogLTE7XG5cbiAgICAkZWxlbSA9ICRlbGVtIHx8IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImJhY2tncm91bmQtZ3JpZFwiIH0pO1xuICAgICRlbGVtLnN0eWxlW1wiYmFja2dyb3VuZC1wb3NpdGlvblwiXSA9XG4gICAgICBkaWZmV2Vla0RheXMgKyBcInB4IDAsIDAgMCwgXCIgKyBkaWZmV2Vla0RheXMgKyBcInB4IDBcIjtcbiAgICAkZWxlbS5zdHlsZS53aWR0aCA9IHdpZHRoICsgXCJweFwiO1xuICAgICRlbGVtLnN0eWxlLmhlaWdodCA9IGhlaWdodCArIDEgKyBcInB4XCI7XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIFBsb3QgQ29udGFpbmVyIFZlcnRpY2FsXG4gICAqIExvcyBwbG90cyBzb24gZWxlbWVudG9zIHF1ZSBhZ3JlZ2FuIHNlY2Npb25lcyBkZSBmb25kbyBlbiBsYSBwbGFuaWxsYVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBwbG90VmVydGljYWxDb250YWluZXJcbiAgICovXG4gIGNyZWF0ZVBsb3RWZXJ0aWNhbENvbnRhaW5lcihjb25maWcpIHtcbiAgICBsZXQgJGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwicGxvdC12ZXJ0aWNhbC1jb250YWluZXJcIlxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnJlZHJhd1Bsb3RWZXJ0aWNhbENvbnRhaW5lcihjb25maWcsICRlbGVtKTtcbiAgfSxcblxuICBjcmVhdGVQbG90SG9yaXpvbnRhbENvbnRhaW5lcihjb25maWcpIHtcbiAgICBsZXQgJGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwicGxvdC1ob3Jpem9udGFsLWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3UGxvdEhvcml6b250YWxDb250YWluZXIoY29uZmlnLCAkZWxlbSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBwbG90VmVydGljYWxDb250YWluZXIsIHVzYW5kbyBlbGVtZW50byBleGlzdGVudGVcbiAgICogdXNhIHVuIGVsZW1lbnRvIGV4aXN0ZW50ZSBwYXJhIHVzYXIgbGEgZnVuY2lvbiBwYXJhIHJlZGlidWphciBlbCBlbGVtZW50b1xuICAgKlxuICAgKiBMb3MgUGxvdHMgc2UgaW5zZXJ0YW4gY29tbyBkaXZzLCBjb24gcG9zaWNpb24gZXNwZWNpZmljYWRhLFxuICAgKiBjb24gYW5jaG8gZGUgZGlhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSAkZWxlbSAtIEVsZW1lbnRvIERvbSBkb25kZSBjcmVhIHBsb3RWZXJ0aWNhbENvbnRhaW5lclxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBwbG90VmVydGljYWxDb250YWluZXJcbiAgICovXG4gIHJlZHJhd1Bsb3RWZXJ0aWNhbENvbnRhaW5lcihjb25maWcsICRlbGVtKSB7XG4gICAgJGVsZW0uaW5uZXJIVE1MID0gXCJcIjtcbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLnBsb3RzICYmIGNvbmZpZy50aW1lbGluZS5wbG90cy52ZXJ0aWNhbCkge1xuICAgICAgbGV0IHsgaGVpZ2h0LCBkYXlXaWR0aCB9ID0gdXRpbHMuZ2V0VGFibGVEaW1lbnNpb25zKGNvbmZpZyk7XG5cbiAgICAgIGNvbmZpZy50aW1lbGluZS5wbG90cy52ZXJ0aWNhbC5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgIGxldCBkaWZmRGF5cyA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgZGF0ZVV0aWxzLmRpZmZEYXlzKGNvbmZpZy50aW1lbGluZS5zdGFydCwgcC5kYXRlKVxuICAgICAgICApO1xuICAgICAgICBsZXQgbGVmdCA9IGRpZmZEYXlzICogZGF5V2lkdGg7XG4gICAgICAgIGxldCBwbG90ID0gZG9tLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZXM6IFtcInBsb3QtdmVydGljYWxcIiwgcC5jbGFzc05hbWUgfHwgXCJcIl0sXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIFwibWFyZ2luLWxlZnRcIjogbGVmdCArIFwicHhcIixcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0ICsgXCJweFwiXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgJGVsZW0uYXBwZW5kQ2hpbGQocGxvdCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIHJlZHJhd1Bsb3RIb3Jpem9udGFsQ29udGFpbmVyKGNvbmZpZywgJGVsZW0pIHtcbiAgICAkZWxlbS5pbm5lckhUTUwgPSBcIlwiO1xuICAgIGlmIChjb25maWcudGltZWxpbmUucGxvdHMgJiYgY29uZmlnLnRpbWVsaW5lLnBsb3RzLmhvcml6b250YWwpIHtcbiAgICAgIGxldCB7IHdpZHRoLCBpdGVtSGVpZ2h0IH0gPSB1dGlscy5nZXRUYWJsZURpbWVuc2lvbnMoY29uZmlnKTtcbiAgICAgIGNvbmZpZy50aW1lbGluZS5wbG90cy5ob3Jpem9udGFsLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgbGV0IGl0ZW0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIHAuaWROb2RlLCBwLnR5cGVOb2RlKTtcbiAgICAgICAgbGV0IHRvcFBvc2l0aW9uID0gdXRpbHMuZ2V0UG9zaXRpb25CeUl0ZW0oY29uZmlnLCBpdGVtLCBcInBhcmVudFwiKTtcbiAgICAgICAgbGV0IHBsb3QgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lczogW1wicGxvdC1ob3Jpem9udGFsXCIsIHAuY2xhc3NOYW1lIHx8IFwiXCJdLFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBcIm1hcmdpbi10b3BcIjogdG9wUG9zaXRpb24gKiBpdGVtSGVpZ2h0ICsgXCJweFwiLFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoICsgXCJweFwiXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgJGVsZW0uYXBwZW5kQ2hpbGQocGxvdCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIENvcm5lciBJenF1aWVyZG9cbiAgICogU2UgdXNhIHBhcmEgOlxuICAgKiAgICAtIHRpdHVsb3MgcmVsYWNpb25hZG9zIGNvbiBsb3MgZGF0b3MgZGVsIHNpZGViYXIgaXpxdWllcmRvXG4gICAqICAgIC0gdGl0dWxvcyBwYXJhIGlucHV0cyBkZSBoZWFkZXIsIGFic29sdXRlIGEgbGEgZGVyZWNoYVxuICAgKiAgICAtIGJvdG9uIHBhcmEgbW9zdHJhci9vY3VsdGFyIHNpZGViYXIgaXpxdWllcmRvXG4gICAqICAgIC0gcHJvbWVkaW9zXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIENvcm5lclxuICAgKi9cbiAgY3JlYXRlQ29ybmVyKGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNvcm5lclwiIH0pO1xuICAgIHJldHVybiB0aGlzLnJlZHJhd0Nvcm5lcigkZWxlbSwgY29uZmlnLCB0YWIpO1xuICB9LFxuXG4gIHJlZHJhd0Nvcm5lcigkZWxlbSwgY29uZmlnLCB0YWIgPSBudWxsKSB7XG4gICAgbGV0IGxhYmVsc0luaXRpYWxDb3JuZXIgPSBjb25maWcudGltZWxpbmUubmF2LmxlZnQuaW5pdGlhbC52YXJzXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAodikgPT5cbiAgICAgICAgICB2Lm9ubHlUYWIgPT0gdW5kZWZpbmVkIHx8ICh2Lm9ubHlUYWIgJiYgdGFiICYmIHYub25seVRhYiA9PSB0YWIua2V5KVxuICAgICAgKVxuICAgICAgLm1hcCgoZCkgPT4gYDxzcGFuIGNsYXNzPVwiaXRlbS1jb2xcIj4ke2QubGFiZWx9PC9zcGFuPmApXG4gICAgICAuam9pbihcIlwiKTtcblxuICAgIGxldCBsYWJlbHNFeHRlbmRDb3JuZXIgPSBjb25maWcudGltZWxpbmUubmF2LmxlZnQuZXh0ZW5kLnZhcnNcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgICh2KSA9PlxuICAgICAgICAgIHYub25seVRhYiA9PSB1bmRlZmluZWQgfHwgKHYub25seVRhYiAmJiB0YWIgJiYgdi5vbmx5VGFiID09IHRhYi5rZXkpXG4gICAgICApXG4gICAgICAubWFwKChkKSA9PiBgPHNwYW4gY2xhc3M9XCJpdGVtLWNvbFwiPiR7ZC5sYWJlbH08L3NwYW4+YClcbiAgICAgIC5qb2luKFwiXCIpO1xuXG4gICAgbGV0IGxhYmVsc0hlYWRlckV4dGVuZCA9IGNvbmZpZy50aW1lbGluZS5oZWFkZXIuZXh0ZW5kLmRhdGFcbiAgICAgIC5tYXAoKGQpID0+IHtcbiAgICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybiBcIlwiO1xuXG4gICAgICAgIGxldCBhdmcgPSBcIlwiO1xuICAgICAgICBsZXQgdG9vbHRpcCA9IFwiXCI7XG4gICAgICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgICAgICBsZXQgaXNBY2NlbnQgPSBkLmlzQWNjZW50O1xuXG4gICAgICAgIGlmIChkLmF2ZXJhZ2UpIHtcbiAgICAgICAgICBhdmcgPSBgIDxzcGFuIGNsYXNzPVwiYXZlcmFnZSBcIj4gKCA8c3Bhbj4gPHNwYW4gY2xhc3M9XCJzeW1ib2xcIj54zIQ8L3NwYW4+ICR7ZC5hdmVyYWdlfSA8L3NwYW4+KSAgPC9zcGFuPiAgIGA7XG5cbiAgICAgICAgICB0b29sdGlwID0gYGNhcC10b29sdGlwPVwiUHJvbWVkaW8gJHtkLmxhYmVsfSA6ICR7ZC5hdmVyYWdlfSAke2Quc3VmZml4IHx8IFwiXCJcbiAgICAgICAgICAgIH1cImA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZC5jb2xvcikge1xuICAgICAgICAgIGlmIChpc0FjY2VudCkge1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gZC5jb2xvciA/IFwiYy1cIiArIGQuY29sb3IgKyBcIi0tYmFja2dyb3VuZFwiIDogXCJcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gZC5jb2xvciA/IFwiYy1cIiArIGQuY29sb3IgKyBcIi0tdGV4dCBcIiA6IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiaW5wdXQtdGl0bGUtY29udGFpbmVyICR7aXNBY2NlbnQgPyBcImlucHV0LXRpdGxlLS1hY2NlbnRcIiA6IFwiXCJcbiAgICAgICAgICB9ICR7ZC5pc1BlcnNpc3RlbnQgPyBcInBlcnNpc3RlbnRcIiA6IFwiXCJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gJHt0b29sdGlwfSBjbGFzcz1cImlucHV0LXRpdGxlICR7Y2xhc3NOYW1lfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHthdmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2QubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCJcIik7XG5cbiAgICBsZXQgdG9nZ2xlU2lkZWJhckJ0blN0cmluZyA9IGBcbiAgICAgICAgICA8YnV0dG9uIHRvZ2dsZS1zaWRlYmFyIGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taWNvbi1yYWlzZWQgY2FwLWJ0bi10b2dnbGUtc2lkZWJhciBcIj5cbiAgICAgICAgICAke2ljb25zLmNoZXZyb25SaWdodH1cbiAgICAgICAgICA8L2J1dHRvbj4gYDtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmxlZnQuaGlkZVRvZ2dsZVNpZGViYXJCdXR0b24pIHtcbiAgICAgIHRvZ2dsZVNpZGViYXJCdG5TdHJpbmcgPSBcIlwiO1xuICAgIH1cblxuICAgIGxldCB0ZW1wbGF0ZSA9IGA8ZGl2PlxuXG4gICAgICAgICAgJHt0b2dnbGVTaWRlYmFyQnRuU3RyaW5nfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29ybmVyLXRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tdGV4dFwiPlxuICAgICAgICAgICAgJHtjb25maWcudGltZWxpbmUuY29ybmVyLmxlZnQubGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5pdGlhbC1jb3JuZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5pdGlhbC1jb3JuZXItdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm90dG9tLWNvbnRhaW5lciBoaWRlXCI+XG4gICAgICAgICAgICAgICR7Y29uZmlnLnRpbWVsaW5lLmNvcm5lci5pbml0aWFsLmxhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAke2xhYmVsc0luaXRpYWxDb3JuZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHRlbmQtY29ybmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4LWNvcm5lci10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tY29udGFpbmVyIGhpZGVcIj5cbiAgICAgICAgICAgICAgJHtjb25maWcudGltZWxpbmUuY29ybmVyLmV4dGVuZC5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgJHtsYWJlbHNFeHRlbmRDb3JuZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXAtYnRuLW5hdi1jb3JuZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtdGl0bGVzXCI+XG4gICAgICAgICAgICAgICR7bGFiZWxzSGVhZGVyRXh0ZW5kfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1sZWZ0IGhpZGUtcHJvZ3Jlc3NcIj48L2Rpdj5cblxuICAgICAgPC9kaXY+YDtcblxuICAgIGxldCByID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTCh0ZW1wbGF0ZSk7XG5cbiAgICAkZWxlbS5pbm5lckhUTUwgPSBcIlwiO1xuICAgICRlbGVtLmFwcGVuZChyKTtcblxuICAgIGxldCB0b2dnbGVTaWRlYmFyID0gJGVsZW0ucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtc2lkZWJhcl1cIik7XG4gICAgaWYgKHRvZ2dsZVNpZGViYXIpIHtcbiAgICAgIHRvZ2dsZVNpZGViYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVTaWRlYmFyXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gJGVsZW07XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgQ29ybmVyIERlcmVjaG9cbiAgICogU2UgdXNhIHBhcmEgOlxuICAgKiAgICAtIHRpdHVsb3MgcmVsYWNpb25hZG9zIGNvbiBsb3MgZGF0b3MgZGVsIHNpZGViYXIgRGVyZWNob1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBjb3JuZXJcbiAgICovXG4gIGNyZWF0ZUNvcm5lclJpZ2h0KGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lczogW1wiY29ybmVyXCIsIFwicmlnaHRcIl0gfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3Q29ybmVyUmlnaHQoJGVsZW0sIGNvbmZpZywgdGFiKTtcbiAgfSxcblxuICByZWRyYXdDb3JuZXJSaWdodCgkZWwsIGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCBsYWJlbCA9IFwiXCI7XG5cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5sYWJlbCkge1xuICAgICAgYCA8c3Bhbj5cbiAgICAgICAgICAgICR7Y29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5sYWJlbH1cbiAgICAgICAgICA8L3NwYW4+YDtcbiAgICB9XG5cbiAgICBsZXQgc3RyID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29ybmVyLXRpdGxlXCI+XG4gICAgICAgICR7bGFiZWx9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1yaWdodCBoaWRlLXByb2dyZXNzXCI+PC9kaXY+XG4gICAgYDtcbiAgICAkZWwuaW5uZXJIVE1MID0gc3RyLnRyaW0oKTtcbiAgICBsZXQgJGJ0bkNvbnRhaW5lciA9ICRlbC5xdWVyeVNlbGVjdG9yKFwiLmJ0bi1jb250YWluZXJcIik7XG5cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5idXR0b25zKSB7XG4gICAgICBjb25maWcudGltZWxpbmUuY29ybmVyLnJpZ2h0LmJ1dHRvbnMuZm9yRWFjaCgoYnRuKSA9PiB7XG4gICAgICAgIGxldCBpc0VuYWJsZWQgPSBidG4uZ2V0SXNFbmFibGVkID8gYnRuLmdldElzRW5hYmxlZCgpIDogdHJ1ZTtcbiAgICAgICAgaWYgKGlzRW5hYmxlZCkge1xuICAgICAgICAgIGxldCAkYnRuID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29ybmVyLWJ0biBjYXAtYnRuLXJhaXNlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke2J0bi5sYWJlbCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IGApO1xuXG4gICAgICAgICAgaWYgKGJ0bi5vbkNsaWNrKSB7XG4gICAgICAgICAgICAkYnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBidG4ub25DbGljayk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJGJ0bkNvbnRhaW5lci5hcHBlbmRDaGlsZCgkYnRuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZWxpbmUuY29ybmVyLnJpZ2h0LmlucHV0cykge1xuICAgICAgY29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgbGV0ICRpbnB1dCA9IHRoaXMuY3JlYXRlQ29ybmVyUmlnaHRJbnB1dCh7IGlucHV0Q29uZmlnOiBpbnB1dCB9KTtcbiAgICAgICAgJGJ0bkNvbnRhaW5lci5hcHBlbmRDaGlsZCgkYnRuKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gJGVsO1xuICB9LFxuXG4gIGNyZWF0ZUNvcm5lclJpZ2h0SW5wdXQoeyBpbnB1dENvbmZpZywgZGF0YURheSA9IG51bGwsIGRheVNlbGVjdGVkID0gbnVsbCB9KSB7XG4gICAgbGV0IHIgPSBudWxsO1xuICAgIHN3aXRjaCAoaW5wdXRDb25maWcudHlwZSkge1xuICAgICAgY2FzZSBcImF1dG9jb21wbGV0ZS1jcnVkXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUNvcm5lclJpZ2h0SW5wdXRBdXRvY29tcGxldGVDcnVkKHtcbiAgICAgICAgICBpbnB1dENvbmZpZyxcbiAgICAgICAgICBkYXRhRGF5LFxuICAgICAgICAgIGRheVNlbGVjdGVkXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0sXG5cbiAgY3JlYXRlQ29ybmVyUmlnaHRJbnB1dEF1dG9jb21wbGV0ZUNydWQoe1xuICAgIGlucHV0Q29uZmlnLFxuICAgIGRhdGFEYXksXG4gICAgZGF5U2VsZWN0ZWRcbiAgfSkge1xuICAgIGxldCBlbGVtID0gXCJ0ZXN0XCI7XG4gICAgcmV0dXJuIGVsZW07XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSGVhZGVyIFRvcFxuICAgKiBTZSB1c2EgcGFyYSA6XG4gICAqICAgIC0gTWFuZWpvIGRlIHRhYnNcbiAgICogICAgLSBCb3RvbmVzIGRlIG5hdmVnYWNpw7NuIHkgc2VsZWNjacOzbiBkZSBmZWNoYVxuICAgKiAgICAtIEJvdG9uIHRvZ2dsZSBEYXJrIG1vZGVcbiAgICogICAgLSBCb3RvbiB0b2dnbGUgSGVhZGVyIGV4dGVuZGVkXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tXG4gICAqL1xuXG4gIGNyZWF0ZUhlYWRlclRvcChjb25maWcsIHRhYlNlbGVjdGVkID0gbnVsbCkge1xuICAgIHJldHVybiB0aGlzLnJlZHJhd0hlYWRlclRvcChjb25maWcsIHRhYlNlbGVjdGVkLCBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiKSk7XG4gIH0sXG5cbiAgcmVkcmF3SGVhZGVyVG9wKGNvbmZpZywgdGFiU2VsZWN0ZWQgPSBudWxsLCAkZWxlbSkge1xuICAgIGxldCBzdHIgPSBgXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRvcFwiPmA7XG5cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLnRhYnMpIHtcbiAgICAgIGxldCBzaG93VGFicyA9IHRydWU7XG5cbiAgICAgIGlmIChjb25maWcudGltZWxpbmUudGFicy5maWx0ZXIoKHQpID0+ICF0LmlzSGlkZGVuKS5sZW5ndGggPT0gMCkge1xuICAgICAgICBzaG93VGFicyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2hvd1RhYnMpIHtcbiAgICAgICAgc3RyICs9IGAgPGRpdiBjbGFzcz1cInRhYi1zZWxlY3QtY29udGFpbmVyIGMtZC1kZXNrdG9wLW5vbmUgYy1kLW1vYmlsZS1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidGFicy1zZWxlY3RcIiA+YDtcblxuICAgICAgICBjb25maWcudGltZWxpbmUudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICBpZiAoIXRhYi5pc0hpZGRlbikge1xuICAgICAgICAgICAgc3RyICs9IGAgPG9wdGlvbiAke3RhYiA9PSB0YWJTZWxlY3RlZCA/ICdzZWxlY3RlZD1cInNlbGVjdGVkXCInIDogXCJcIlxuICAgICAgICAgICAgICB9IHZhbHVlPVwiJHt0YWIuaWR9XCI+ICR7dGFiLmxhYmVsfSA8L29wdGlvbj5gO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3RyICs9IGA8L3NlbGVjdD4gPC9kaXY+YDtcblxuICAgICAgICBzdHIgKz0gYCA8ZGl2IGNsYXNzPVwidGFicy1jb250YWluZXIgYy1kLWRlc2t0b3AtZmxleCBjLWQtbW9iaWxlLW5vbmVcIj5gO1xuXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgIGlmICghdGFiLmlzSGlkZGVuKSB7XG4gICAgICAgICAgICBzdHIgKz0gYCA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYiAke3RhYi5kaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9ICAke3RhYiA9PSB0YWJTZWxlY3RlZCA/IFwiYWN0aXZlXCIgOiBcIlwiXG4gICAgICAgICAgICAgIH0gICR7dGFiLmNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIiR7dGFiLmNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke3RhYi5pZH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0YWIudG9vbHRpcCA/ICdjYXAtdG9vbHRpcD1cIicgKyB0YWIudG9vbHRpcCArICdcIicgOiBcIlwiXG4gICAgICAgICAgICAgIH0gPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3RhYi5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICR7dGFiLmljb24gfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0ciArPSBgPC9kaXY+YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGFiU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0YWJTZWxlY3RlZC5sZWdlbmRzKSB7XG4gICAgICAgIHN0ciArPSBgIFxuICAgICAgICA8YnV0dG9uIHRvZ2dsZS1sZWdlbmRzIGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taWNvbi1yYWlzZWQgXCI+XG4gICAgICAgICAgJHtpY29ucy50b2dnbGVMZWdlbmRzfVxuICAgICAgICA8L2J1dHRvbj4gXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZHMtY29udGFpbmVyIGZvcmNlLW1vYmlsZS1zdHlsZSBoaWRlXCI+IGA7XG5cbiAgICAgICAgdGFiU2VsZWN0ZWQubGVnZW5kcy5mb3JFYWNoKChsZWdlbmQpID0+IHtcbiAgICAgICAgICBsZXQgY29sb3JDbGFzcyA9IFwiXCI7XG4gICAgICAgICAgbGV0IGNvbG9yQmcgPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IobGVnZW5kLmNvbG9yKSkge1xuICAgICAgICAgICAgY29sb3JCZyA9IFwiYmFja2dyb3VuZDpcIiArIGxlZ2VuZC5jb2xvcjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sb3JDbGFzcyA9IGxlZ2VuZC5jb2xvciA/IGxlZ2VuZC5jb2xvciArIFwiLS1iYWNrZ3JvdW5kXCIgOiBcIlwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0ciArPSBgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxlZ2VuZCAke2xlZ2VuZC5hY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7bGVnZW5kLmtleX1cIlxuICAgICAgICAgICAgICAgICAgICAgICR7bGVnZW5kLnRvb2x0aXAgPyBgY2FwLXRvb2x0aXA9XCIke2xlZ2VuZC50b29sdGlwfVwiYCA6IFwiXCJcbiAgICAgICAgICAgIH0gPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tbGVnZW5kICR7Y29sb3JDbGFzc30gJHtsZWdlbmQuc2hhcGVcbiAgICAgICAgICAgIH1cIiBzdHlsZT1cIiR7Y29sb3JCZ31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7bGVnZW5kLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdHIgKz0gYDwvZGl2PmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3RyICs9IGBcblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj5cblxuXG5cbiAgICAgICAgICA8YnV0dG9uIGNhcC1idG4tcHJldiBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgICAgJHtpY29ucy5hcnJvd0xlZnR9XG4gICAgICAgICAgICAgJHtpY29ucy5sb2FkaW5nSWNvbn0gXG4gICAgICAgICAgPC9idXR0b24+XG5cblxuICAgICAgICAgIDxidXR0b24gY2FwLWJ0bi1jYWxlbmRhciBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgICAke2ljb25zLmNhbGVuZGFyfVxuICAgICAgICAgICAgJHtpY29ucy5sb2FkaW5nSWNvbn1cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b24gY2FwLWJ0bi1uZXh0IGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taWNvbi1yYWlzZWRcIj5cbiAgICAgICAgICAgICR7aWNvbnMuYXJyb3dSaWdodH1cbiAgICAgICAgICAgICR7aWNvbnMubG9hZGluZ0ljb259XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uIHRvZ2dsZS1kYXJrIGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taGVhZGVyIGMtZC1tb2JpbGUtbm9uZSAke2NvbmZpZy50aW1lbGluZS53aXRoRGFya1RvZ2dsZSA9PSBmYWxzZSA/IFwiaGlkZVwiIDogXCJcIlxuICAgICAgfVwiPlxuICAgICAgICAgICAgJHtpY29ucy5kYXJrfVxuICAgICAgICAgICAgJHtpY29ucy5saWdodH1cbiAgICAgICAgICA8L2J1dHRvbj5gO1xuXG4gICAgaWYgKGNvbmZpZy50aW1lbGluZS5oZWFkZXIuZXh0ZW5kLmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICBzdHIgKz0gYDxidXR0b24gdG9nZ2xlLWhlYWRlciBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgJHtpY29ucy5jaGV2cm9uRG93bn1cbiAgICAgICAgICA8L2J1dHRvbj5gO1xuICAgIH1cblxuICAgIHN0ciArPSBgIDxkaXYgY2xhc3M9XCJidXR0b24tcmlnaHQtY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgLypcbiAgICAgICAgICBgXG4gICAgICAgICAgPGJ1dHRvbiB0b2dnbGUtc2lkZWJhci1yaWdodCBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNS40MSwxNi41OEwxMC44MywxMkwxNS40MSw3LjQxTDE0LDZMOCwxMkwxNCwxOEwxNS40MSwxNi41OFpcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAqL1xuXG4gICAgbGV0ICRyID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgICRlbGVtLnJlcGxhY2VXaXRoKCRyKTtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLnJpZ2h0QnV0dG9ucykge1xuICAgICAgbGV0ICRidXR0b25Db250YWluZXIgPSAkci5xdWVyeVNlbGVjdG9yKFwiLmJ1dHRvbi1yaWdodC1jb250YWluZXJcIik7XG4gICAgICBjb25maWcudGltZWxpbmUuaGVhZGVyLnJpZ2h0QnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgbGV0IGhhc0JhZGdlID0gZmFsc2U7XG4gICAgICAgIGlmIChidXR0b24uaGFzQmFkZ2UpIHtcbiAgICAgICAgICBoYXNCYWRnZSA9IGJ1dHRvbi5oYXNCYWRnZSgpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdHIgPSBgPGJ1dHRvbiBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkICR7aGFzQmFkZ2UgPyBcImNhcC1idG4taGFzLWJhZGdlXCIgOiBcIlwiXG4gICAgICAgICAgfVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCIke2J1dHRvbi5pY29ufVwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPmA7XG4gICAgICAgIGxldCAkYnV0dG9uID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgICAgICAkYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZXZ0KSA9PiBidXR0b24ub25DbGljayh7IGV2dCB9KSk7XG4gICAgICAgICRidXR0b25Db250YWluZXIuYXBwZW5kKCRidXR0b24pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0ICR0b2dnbGVEYXJrID0gJHIucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtZGFya11cIik7XG4gICAgaWYgKCR0b2dnbGVEYXJrKSB7XG4gICAgICAkdG9nZ2xlRGFyay5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVEYXJrXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgJGJ0bkNhbGVuZGFyID0gJHIucXVlcnlTZWxlY3RvcihcIltjYXAtYnRuLWNhbGVuZGFyXVwiKTtcbiAgICBpZiAoJGJ0bkNhbGVuZGFyKSB7XG4gICAgICAkYnRuQ2FsZW5kYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCB4ID0gZS54O1xuICAgICAgICBsZXQgeSA9IGUueTtcbiAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja0NhbGVuZGFySWNvblwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWw6IHsgeCwgeSB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCAkYnRuVG9nZ2xlSGVhZGVyID0gJHIucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtaGVhZGVyXVwiKTtcbiAgICBpZiAoJGJ0blRvZ2dsZUhlYWRlcikge1xuICAgICAgJGJ0blRvZ2dsZUhlYWRlci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVIZWFkZXJcIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qXG4gICAgJHIucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtc2lkZWJhci1yaWdodF1cIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgJHIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVTaWRlYmFyUmlnaHRcIiwge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICAqL1xuXG4gICAgJHIucXVlcnlTZWxlY3RvcihcIltjYXAtYnRuLXByZXZdXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwiaGVhZGVyUHJldlwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3IoXCJbY2FwLWJ0bi1jYWxlbmRhcl1cIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAkci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJoZWFkZXJDYWxlbmRhclwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3IoXCJbY2FwLWJ0bi1uZXh0XVwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICRyLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudChcImhlYWRlck5leHRcIiwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBvcmlnaW5hbEV2dDogZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsZXQgJHRvZ2dsZUxlZ2VuZHNCdG4gPSAkci5xdWVyeVNlbGVjdG9yKFwiW3RvZ2dsZS1sZWdlbmRzXVwiKTtcbiAgICBpZiAoJHRvZ2dsZUxlZ2VuZHNCdG4pIHtcbiAgICAgICR0b2dnbGVMZWdlbmRzQnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgJGxlZ2VuZENvbnRhaW5lciA9ICRyLnF1ZXJ5U2VsZWN0b3IoXCIubGVnZW5kcy1jb250YWluZXJcIik7XG4gICAgICAgIGlmICgkbGVnZW5kQ29udGFpbmVyKSB7XG4gICAgICAgICAgJGxlZ2VuZENvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKFwiaGlkZVwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgJHIucXVlcnlTZWxlY3RvckFsbChcIi5sZWdlbmRcIikuZm9yRWFjaCgoJGxlZ2VuZCkgPT4ge1xuICAgICAgJGxlZ2VuZC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0IGtleSA9IGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoXCJpbnB1dC1rZXlcIik7XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGxldCBsZWdlbmRTZWxlY3RlZCA9IHRhYlNlbGVjdGVkLmxlZ2VuZHMuZmluZChcbiAgICAgICAgICAgICh0YWIpID0+IHRhYi5rZXkgPT09IGtleVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxlZ2VuZFNlbGVjdGVkKSB7XG4gICAgICAgICAgICAkci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzZWxlY3RMZWdlbmRIZWFkZXJcIiwge1xuICAgICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBsZWdlbmQ6IGxlZ2VuZFNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgJGxlZ2VuZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFiOm5vdCguZGlzYWJsZWQpXCIpLmZvckVhY2goKCR0YWIpID0+IHtcbiAgICAgICR0YWIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBrZXkgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKFwiaW5wdXQta2V5XCIpO1xuXG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICBsZXQgdGFiU2VsZWN0ZWQgPSBjb25maWcudGltZWxpbmUudGFicy5maW5kKCh0YWIpID0+IHRhYi5pZCA9PSBrZXkpO1xuICAgICAgICAgIGlmICh0YWJTZWxlY3RlZCkge1xuICAgICAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic2VsZWN0VGFiSGVhZGVyXCIsIHtcbiAgICAgICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgdGFiOiB0YWJTZWxlY3RlZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFicy1zZWxlY3Q6bm90KC5kaXNhYmxlZClcIikuZm9yRWFjaCgoJHRhYikgPT4ge1xuICAgICAgJHRhYi5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBrZXkgPSBwYXJzZUZsb2F0KGUuY3VycmVudFRhcmdldC52YWx1ZSk7XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGxldCB0YWJTZWxlY3RlZCA9IGNvbmZpZy50aW1lbGluZS50YWJzLmZpbmQoKHRhYikgPT4gdGFiLmlkID09IGtleSk7XG4gICAgICAgICAgaWYgKHRhYlNlbGVjdGVkKSB7XG4gICAgICAgICAgICAkci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzZWxlY3RUYWJIZWFkZXJcIiwge1xuICAgICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICB0YWI6IHRhYlNlbGVjdGVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICRyO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIEhlYWRlclxuICAgKiBTZSB1c2EgcGFyYSA6XG4gICAqICAgIC0gTW9zdHJhciBmZWNoYXMgZW4gaGVhZGVyXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tXG4gICAqL1xuICBjcmVhdGVIZWFkZXIoY29uZmlnKSB7XG4gICAgbGV0ICRlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnQoXCJoZWFkZXJcIik7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3SGVhZGVyKGNvbmZpZywgJGVsZW0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNyZWEgSGVhZGVyLCB1c2FkbyBwYXJhIHJlZGlidWphclxuICAgKiB1dGlsaXphICRlbGVtIGNvbW8gZWxlbWVudG8gZG9tIGRvbmRlIHJlY3JlYXJsb1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcGFyYW0ge09iamVjdH0gJGVsZW0gLSBFbGVtZW50byBEb20gZG9uZGUgY3JlYSBIZWFkZXJcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb21cbiAgICovXG4gIHJlZHJhd0hlYWRlcihjb25maWcsICRlbGVtKSB7XG4gICAgbGV0IGRhdGVzVHJlZSA9IGRhdGVVdGlscy5nZXREYXRlVHJlZVJhbmdlKFxuICAgICAgbmV3IERhdGUoY29uZmlnLnRpbWVsaW5lLnN0YXJ0KSxcbiAgICAgIG5ldyBEYXRlKGNvbmZpZy50aW1lbGluZS5lbmQpXG4gICAgKTtcblxuICAgIGxldCBzdHIgPSBgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIj4gYDtcblxuICAgIE9iamVjdC5rZXlzKGRhdGVzVHJlZSkuZm9yRWFjaCgoa2V5WSkgPT4ge1xuICAgICAgbGV0IHllYXIgPSBkYXRlc1RyZWVba2V5WV07XG4gICAgICBzdHIgKz0gYDxkaXYgY2xhc3M9XCJhZ25vLWNhbGVuZGFyaW9cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZ25vIGhpZGVcIj4ke2tleVl9PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzZXNcIj5gO1xuXG4gICAgICBPYmplY3Qua2V5cyh5ZWFyKS5mb3JFYWNoKChrZXlNKSA9PiB7XG4gICAgICAgIGxldCBtb250aCA9IGRhdGVzVHJlZVtrZXlZXVtrZXlNXTtcbiAgICAgICAgc3RyICs9IGAgPGRpdiBjbGFzcz1cIm1lcy1jYWxlbmRhcmlvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXMgJHtPYmplY3Qua2V5cyhtb250aCkubGVuZ3RoIDwgNFxuICAgICAgICAgICAgPyBcIm1lcy1yZWR1Y2VkIG1lcy1yZWR1Y2VkLVwiICsgT2JqZWN0LmtleXMobW9udGgpLmxlbmd0aFxuICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXMtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dXRpbHMuZ2V0TW9udGhCeVBvc2l0aW9uKGtleU0pfSAke2tleVl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhc1wiPmA7XG4gICAgICAgIE9iamVjdC5rZXlzKG1vbnRoKS5mb3JFYWNoKChrZXlEKSA9PiB7XG4gICAgICAgICAgbGV0IGRheSA9IGRhdGVzVHJlZVtrZXlZXVtrZXlNXVtrZXlEXTtcbiAgICAgICAgICBsZXQgaXNXZWVrZW5kID0gZGF5LmlzV2Vla2VuZDtcbiAgICAgICAgICBsZXQgaXNUb2RheSA9IGRheS5pc1RvZGF5O1xuICAgICAgICAgIGxldCBkYXRlID0gZGF0ZVV0aWxzLmZvcm1hdERhdGUoZGF5LkRhdGUpO1xuICAgICAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cImRpYS1jYWxlbmRhcmlvICR7aXNUb2RheSA/IFwidG9kYXlcIiA6IFwiXCJ9ICAke2lzV2Vla2VuZCA/IFwid2Vla2VuZFwiIDogXCJcIlxuICAgICAgICAgICAgfSAke2NvbmZpZy50aW1lbGluZS5kYXRlU2VsZWN0YWJsZSA/IFwiaXMtY2xpY2tlYWJsZVwiIDogXCJcIlxuICAgICAgICAgICAgfVwiIGRhdGU9XCIke2RhdGV9XCI+JHtrZXlEfTwvZGl2PmA7XG4gICAgICAgIH0pO1xuICAgICAgICBzdHIgKz0gYDwvZGl2PjwvZGl2PmA7XG4gICAgICB9KTtcbiAgICAgIHN0ciArPSBgPC9kaXY+IDwvZGl2PmA7XG4gICAgfSk7XG5cbiAgICBzdHIgKz0gYDwvZGl2PmA7XG4gICAgJGVsZW0uaW5uZXJIVE1MID0gXCJcIjtcbiAgICAkZWxlbS5hcHBlbmQoZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpKTtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUuZGF0ZVNlbGVjdGFibGUpIHtcbiAgICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZGlhLWNhbGVuZGFyaW9bZGF0ZV1cIikuZm9yRWFjaCgoJGRpYSkgPT4ge1xuICAgICAgICAkZGlhLmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgJGVsZW0uZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNvbnRleHRNZW51RGF0ZVwiLCB7XG4gICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAkZWxlbTogJGRpYSxcbiAgICAgICAgICAgICAgICBkYXRlOiAkZGlhLmdldEF0dHJpYnV0ZShcImRhdGVcIiksXG4gICAgICAgICAgICAgICAgY2xpZW50WDogZXZ0LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogZXZ0LmNsaWVudFlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICAkZGlhLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgJGVsZW0uZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNsaWNrRGF0ZVwiLCB7XG4gICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAkZWxlbTogJGRpYSxcbiAgICAgICAgICAgICAgICBkYXRlOiAkZGlhLmdldEF0dHJpYnV0ZShcImRhdGVcIilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiAkZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBIZWFkZXIgZXh0ZW5kZWRcbiAgICogU2UgdXNhIHBhcmEgOlxuICAgKiAgICAtTW9zdHJhciBpbnB1dHMgeSBkYXRvcyBwYXJhIGZlY2hhcyBlbiBoZWFkZXJcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gaGVhZGVyRXh0ZW5kZWRcbiAgICovXG4gIGNyZWF0ZUhlYWRlckV4dGVuZGVkKGNvbmZpZykge1xuICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5lbmFibGVkID09IGZhbHNlKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBkYXRlcyA9IGRhdGVVdGlscy5nZXREYXRlUmFuZ2UoXG4gICAgICBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuc3RhcnQpLFxuICAgICAgbmV3IERhdGUoY29uZmlnLnRpbWVsaW5lLmVuZClcbiAgICApO1xuICAgIGxldCBzdHIgPSBgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXItZXh0ZW5kZWRcIj5gO1xuXG4gICAgY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuZGF0YS5mb3JFYWNoKChkLCBkX2luZGV4KSA9PiB7XG4gICAgICBpZiAoZC5pc0hpZGRlbikgcmV0dXJuIFwiXCI7XG5cbiAgICAgIGxldCBpc1BlcnNpc3RlbnQgPSBkLmlzUGVyc2lzdGVudDtcbiAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cImlucHV0LWxpc3QgJHtpc1BlcnNpc3RlbnQgPyBcInBlcnNpc3RlbnRcIiA6IFwiXCJ9XCI+YDtcbiAgICAgIHN0ciArPSBkYXRlc1xuICAgICAgICAubWFwKChkYXRlKSA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICAgICAgICBsZXQgaXNGdXR1cmUgPSBkYXRlVXRpbHMuaXNGdXR1cmUoZGF0ZSk7XG4gICAgICAgICAgbGV0IGlzVG9kYXkgPSBkYXRlVXRpbHMuaXNUb2RheShkYXRlKTtcblxuICAgICAgICAgIGlmIChkLmRhdGEpIHtcbiAgICAgICAgICAgIGxldCBkYXRhRm91bmRlZCA9IGQuZGF0YS5maW5kKChkYXRhSW5wdXQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRhdGVVdGlscy5pc1NhbWVEYXRlKG5ldyBEYXRlKGRhdGFJbnB1dC5kYXRlKSwgZGF0ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmRlZCkge1xuICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFGb3VuZGVkLnZhbHVlIHx8IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZC5lZGl0YWJsZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgICAgIChpc0Z1dHVyZSAmJiBkLmVkaXRhYmxlRnV0dXJlID09IGZhbHNlKSB8fFxuICAgICAgICAgICAgKGlzVG9kYXkgJiYgZC5lZGl0YWJsZVRvZGF5ID09IGZhbHNlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGU9XCIke2RhdGV9XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9XCIke2RfaW5kZXh9XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2RhdGUudmFyTmFtZX0gJHtkLmNvbG9yID8gXCJjLVwiICsgZC5jb2xvciArIFwiLS10ZXh0XCIgOiBcIlwiXG4gICAgICAgICAgICAgIH1cIiA+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsdWV9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIGlmIChjb25maWcudGltZWxpbmUuZWRpdGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkaWEtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgIGRhdGU9XCIke2RhdGV9XCIgXG4gICAgICAgICAgICAgICAgICBpbmRleD1cIiR7ZF9pbmRleH1cIiBcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWlucHV0IFxuICAgICAgICAgICAgICAgICAgJHtkYXRlLnZhck5hbWV9ICR7ZC5jb2xvciA/IFwiYy1cIiArIGQuY29sb3IgKyBcIi0tdGV4dFwiIDogXCJcIn1cIiBcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn0gXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgICBzdHIgKz0gYDwvZGl2PmA7XG4gICAgfSk7XG5cbiAgICBzdHIgKz0gYDwvZGl2PmA7XG5cbiAgICBsZXQgciA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcblxuICAgIHIucXVlcnlTZWxlY3RvckFsbChcImlucHV0LmhlYWRlci1pbnB1dFwiKS5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBkYXRlID0gZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGVcIik7XG4gICAgICAgIGxldCBpbmRleCA9IGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoXCJpbmRleFwiKTtcbiAgICAgICAgbGV0IHZhbHVlID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICBsZXQgdHlwZURhdGEgPSBjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5kYXRhW2luZGV4XTtcblxuICAgICAgICAvL3JlZnJlc2ggY29uZmlnIHZhbHVlXG4gICAgICAgIGxldCBkYXRhID0gdHlwZURhdGEuZGF0YS5maW5kKChkKSA9PlxuICAgICAgICAgIGRhdGVVdGlscy5pc1NhbWVEYXRlKG5ldyBEYXRlKGQuZGF0ZSksIG5ldyBEYXRlKGRhdGUpKVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIGRhdGEudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0eXBlRGF0YS5kYXRhLnB1c2goe1xuICAgICAgICAgICAgZGF0ZTogZGF0ZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNoYW5nZUlucHV0SGVhZGVyXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBkYXRlOiBkYXRlLFxuICAgICAgICAgICAgICB0eXBlRGF0YTogdHlwZURhdGEsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiByO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhciBTaWRlYmFyIEl6cXVpZXJkb1xuICAgKiAgICAtIE1hbmVqYSBpdGVtcyBjb21vIGFyYm9sIGRlIDIgbml2ZWxlcyAocGFyZW50LCBjaGlsZHJlbilcbiAgICogICAgLSBFbCBzaWRlYmFyIHNlIGRpdmlkZSBlbiBuYXZMaXN0IC0gSW5pdGlhbE5hdiAtIGV4dGVuZGVkTmF2IC0gQnRuTmF2XG4gICAqICAgIC0gU2UgYWdyZWdhIGl0ZW1EZXRhaWwsIHBhcmEgZGV0YWxsZXMgZGUgaXRlbXNcbiAgICpcbiAgICpcbiAgICogVE9ETzogcGFyYSBldml0YXIgaW5jcnVzdGFyIGxhcyBpZHMgZW4gbG9zIGlucHV0cywgc2UgZGViZW4gY3JlYXJcbiAgICogbG9zIG5vZG9zIHVubyBwb3IgdW5vIGNvbW8gZWxlbWVudG8gRE9NLCB5IGFncmVnYXJsZXMgbG9zIGV2ZW50b3MgZGlyZWN0YW1lbnRlXG4gICAqIGFob3JhIHNlIGhhY2Ugc2VsZWNjaW9uYW5kbyB0b2RvcyBsb3MgaW5wdXRzIGNvbiBxdWVyeVNlbGVjdG9yQWxsXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIFNpZGViYXIgSXpxdWllcmRvXG4gICAqL1xuICBjcmVhdGVOYXZMZWZ0KGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwibmF2XCIsIHsgY2xhc3NOYW1lOiBcImxlZnRcIiB9KTtcbiAgICByZXR1cm4gdGhpcy5yZWRyYXdOYXZMZWZ0KCRlbGVtLCBjb25maWcsIHRhYik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBTaWRlYmFyIGl6cXVpZXJkbywgdXNhZG8gcGFyYSByZWRpYnVqYXJcbiAgICogVXRpbGl6YSAkZWxlbSBjb21vIGVsZW1lbnRvIGRvbSBkb25kZSByZWNyZWFybG9cbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9ICRlbGVtIC0gRWxlbWVudG8gRG9tIGRvbmRlIGNyZWEgZWwgc2lkZWJhciBpenF1aWVyZG9cbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gbmF2TGVmdFxuICAgKi9cblxuICByZWRyYXdOYXZMZWZ0KCRlbGVtLCBjb25maWcsIHRhYiA9IG51bGwpIHtcbiAgICBsZXQgbmF2TGlzdCA9IFwiXCI7XG4gICAgbGV0IGluaXRpYWxOYXZMaXN0ID0gXCJcIjtcbiAgICBsZXQgZXhOYXZMaXN0ID0gXCJcIjtcbiAgICBsZXQgYnRuTmF2TGlzdCA9IFwiXCI7XG4gICAgbGV0IGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmVkaXRhYmxlID09PSBmYWxzZSkge1xuICAgICAgaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uZmlnLmRhdGEuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybjtcblxuICAgICAgbmF2TGlzdCArPSBgXG4gICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtXCI+XG5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0tY29udGFpbmVyIHBhcmVudFwiPmA7XG5cbiAgICAgIGlmIChkLmNoaWxkcmVuKSB7XG4gICAgICAgIG5hdkxpc3QgKz0gYDxidXR0b24gY2xhc3M9XCJ0cmVlLWljb24gJHtkLmlzQ2xvc2VkID8gXCJcIiA6IFwiY2FwLXJvdGF0ZVwiXG4gICAgICAgICAgfVwiIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCIgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIiA+XG4gICAgICAgICR7aWNvbnMuY2hldnJvbkRvd259XG4gICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPmA7XG4gICAgICB9XG5cbiAgICAgIG5hdkxpc3QgKz0gYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlIHRydW5jYXRlIGZ1bGwtd2lkdGggJHtkLmNsaWNrZWFibGUgPyBcImNsaWNrZWFibGVcIiA6IFwiXCJcbiAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICR7ZC5uYXZPdmVyID8gXCJob3ZlcmFibGVcIiA6IFwiXCJ9IFwiIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTFcbiAgICAgICAgfVwiIHR5cGUtbm9kZT1cIiR7ZC50eXBlIHx8IFwiXCJ9XCIgPlxuICAgICAgICAgICAgJHtkLmxhYmVsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5gO1xuXG4gICAgICBpZiAoZC5jaGlsZHJlbikge1xuICAgICAgICBuYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaWxkcmVuLWl0ZW1zICR7ZC5pc0Nsb3NlZCA/IFwiaGlkZVwiIDogXCJcIlxuICAgICAgICAgIH0gXCIgY2hpbGQtbGlzdD1cIiR7ZC5pZCB8fCAtMX1cIj5gO1xuXG4gICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmlzSGlkZGVuKSByZXR1cm47XG5cbiAgICAgICAgICBsZXQgbGlnaHRDb2xvciA9IG51bGw7XG4gICAgICAgICAgbGV0IGxpZ2h0Q2xhc3MgPSBudWxsO1xuICAgICAgICAgIGxldCBsaWdodFNwYW4gPSBcIlwiO1xuXG5cbiAgICAgICAgICBpZiAoYy5saWdodCkge1xuICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IoYy5saWdodCkpIHtcbiAgICAgICAgICAgICAgbGlnaHRDb2xvciA9IGMubGlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsaWdodENsYXNzID0gYy5saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cblxuICAgICAgICAgIGlmIChjLmxpZ2h0KSB7XG4gICAgICAgICAgICBsaWdodFNwYW4gPSBgPHNwYW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlnaHQgJHtsaWdodENsYXNzID8gbGlnaHRDbGFzcyArIFwiLWxpZ2h0XCIgOiBcIlwifVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIiR7bGlnaHRDb2xvciA/IFwiLS1saWdodC1jb2xvcjpcIiArIGxpZ2h0Q29sb3IgOiBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPmA7XG4gICAgICAgICAgfVxuXG5cblxuICAgICAgICAgIG5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZC1uYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICBgO1xuXG4gICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtaXRlbS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE5LDE1TDEzLDIxTDExLjU4LDE5LjU4TDE1LjE3LDE2SDRWNEg2VjE0SDE1LjE3TDExLjU4LDEwLjQyTDEzLDlMMTksMTVaXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICBuYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgJHtsaWdodFNwYW59XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlICR7Yy5jbGlja2VhYmxlID8gXCJjbGlja2VhYmxlXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICR7Yy5uYXZPdmVyID8gXCJob3ZlcmFibGVcIiA6IFwiXCJ9XCIgaXRlbS1pZD1cIiR7Yy5pZCB8fCAtMVxuICAgICAgICAgICAgfVwiIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke2MubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9XG5cbiAgICAgIG5hdkxpc3QgKz0gYDwvZGl2PmA7XG5cbiAgICAgIC8vaW5pdGlhbFxuICAgICAgaW5pdGlhbE5hdkxpc3QgKz0gYDxkaXYgY2xhc3M9XCJpbml0aWFsLW5hdi1pdGVtIHBhcmVudFwiPmA7XG4gICAgICBpZiAoZC53aXRoTmF2KSB7XG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5pbml0aWFsLnZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkLnZhbHVlcywgdi52YXJOYW1lKTtcblxuICAgICAgICAgIGlmICh2LnJvdW5kICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdXRpbHMucm91bmQodmFsdWUsIHYucm91bmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodi5pbnB1dCkge1xuICAgICAgICAgICAgc3dpdGNoICh2LmlucHV0KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJob3VyXCI6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIjpcIik7XG4gICAgICAgICAgICAgICAgbGV0IGhoVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgICAgICAgICBsZXQgbW1WYWx1ZSA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7ZC50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke2hoVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7ZC50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke21tVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpbml0aWFsTmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuXG4gICAgICBpZiAoZC5jaGlsZHJlbikge1xuICAgICAgICBkLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICBpZiAoYy5pc0hpZGRlbikgcmV0dXJuO1xuICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGA8ZGl2IGNsYXNzPVwiY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAke2QuaXNDbG9zZWQgPyBcImhpZGVcIiA6IFwiXCJcbiAgICAgICAgICAgIH1cIiBjaGlsZD1cIiR7ZC5pZCB8fCAtMX1cIj5gO1xuXG4gICAgICAgICAgaWYgKGMud2l0aE5hdiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5pbml0aWFsLnZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgICBpZiAodi5vbmx5VGFiICYmIHRhYiAmJiB2Lm9ubHlUYWIgIT09IHRhYi5rZXkpIHJldHVybjtcblxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoYy52YWx1ZXMsIHYudmFyTmFtZSk7XG4gICAgICAgICAgICAgIGlmICh2LnJvdW5kICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHV0aWxzLnJvdW5kKHZhbHVlLCB2LnJvdW5kKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodi5pbnB1dCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodi5pbnB1dCkge1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIjpcIik7XG4gICAgICAgICAgICAgICAgICAgIGxldCBoaFZhbHVlID0gdmFsdWVbMF07XG4gICAgICAgICAgICAgICAgICAgIGxldCBtbVZhbHVlID0gdmFsdWVbMV07XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtjLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke2hoVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtjLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke21tVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbCBoYXMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2MuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtjLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy9FeHRcbiAgICAgIGV4TmF2TGlzdCArPSBgPGRpdiBjbGFzcz1cImV4LW5hdi1pdGVtIHBhcmVudFwiPmA7XG4gICAgICBpZiAoZC53aXRoRXhOYXYpIHtcbiAgICAgICAgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmV4dGVuZC52YXJzLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZC52YWx1ZXMsIHYudmFyTmFtZSk7XG4gICAgICAgICAgaWYgKHYucm91bmQgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB1dGlscy5yb3VuZCh2YWx1ZSwgdi5yb3VuZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2LmlucHV0KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHYuaW5wdXQpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KFwiOlwiKTtcbiAgICAgICAgICAgICAgICBsZXQgaGhWYWx1ZSA9IHZhbHVlWzBdO1xuICAgICAgICAgICAgICAgIGxldCBtbVZhbHVlID0gdmFsdWVbMV07XG4gICAgICAgICAgICAgICAgZXhOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aGhWYWx1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtdHlwZT1cInRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9XCI1OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke3Yua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1pZD1cIiR7ZC5pZCB8fCAtMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2QudHlwZSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHttbVZhbHVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNEaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0ZXh0XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBleE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbCBoYXMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4TmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZXhOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgIGlmIChkLmNoaWxkcmVuKSB7XG4gICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmlzSGlkZGVuKSByZXR1cm47XG4gICAgICAgICAgZXhOYXZMaXN0ICs9IGA8ZGl2IGNsYXNzPVwiY2hpbGQtZXgtbmF2LWl0ZW0gJHtkLmlzQ2xvc2VkID8gXCJoaWRlXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgY2hpbGQ9XCIke2QuaWQgfHwgLTF9XCI+YDtcblxuICAgICAgICAgIGlmIChjLndpdGhOYXYgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb25maWcudGltZWxpbmUubmF2LmxlZnQuZXh0ZW5kLnZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgICBpZiAodi5vbmx5VGFiICYmIHRhYiAmJiB2Lm9ubHlUYWIgIT09IHRhYi5rZXkpIHJldHVybjtcblxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoYy52YWx1ZXMsIHYudmFyTmFtZSk7XG4gICAgICAgICAgICAgIGlmICh2LnJvdW5kICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHV0aWxzLnJvdW5kKHZhbHVlLCB2LnJvdW5kKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh2LmlucHV0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh2LmlucHV0KSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiaG91clwiOlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoXCI6XCIpIDogWzAsIDBdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaGhWYWx1ZSA9IHZhbHVlWzBdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW1WYWx1ZSA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgICAgICBleE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbCBoYXMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtdHlwZT1cInRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke3Yua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1pZD1cIiR7Yy5pZCB8fCAtMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2MudHlwZSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHtoaFZhbHVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNEaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC10eXBlPVwidGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtjLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke21tVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgZXhOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2MuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtjLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4TmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBleE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvL2J1dHRvbnNcbiAgICAgIGJ0bk5hdkxpc3QgKz0gYDxkaXYgY2xhc3M9XCJjYXAtYnRuLW5hdi1pdGVtIHBhcmVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcC1idG4tbmF2LWl0ZW0tY29udGVudFwiPmA7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5idXR0b25zICYmXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5idXR0b25zLnZhcnNcbiAgICAgICkge1xuICAgICAgICBjb25maWcudGltZWxpbmUubmF2LmxlZnQuYnV0dG9ucy52YXJzLmZvckVhY2goKGJ0bikgPT4ge1xuICAgICAgICAgIGlmIChkLndpdGhCdG5OYXYpIHtcbiAgICAgICAgICAgIGxldCBidG5Db250ZW50ID0gXCJcIjtcbiAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBidG4uY2xhc3NOYW1lIHx8IFwiXCI7XG5cbiAgICAgICAgICAgIGlmIChidG4uaWNvbikge1xuICAgICAgICAgICAgICBidG5Db250ZW50ID0gYnRuLmljb24gPyBidG4uaWNvbiA6IFwiXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChidG4uaWNvbkZvcm1hdHRlcikge1xuICAgICAgICAgICAgICBidG5Db250ZW50ID0gYnRuLmljb25Gb3JtYXR0ZXIgPyBidG4uaWNvbkZvcm1hdHRlcihkLCBidG4pIDogXCJcIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGJ0bi5zaGFwZSkge1xuICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gXCIgY2FwLWJ0bi1cIiArIGJ0bi5zaGFwZTtcbiAgICAgICAgICAgICAgYnRuQ29udGVudCArPSBgPHNwYW4+ICR7YnRuLmZvcm1hdHRlciA/IGJ0bi5mb3JtYXR0ZXIoZCwgYnRuKSA6IFwiXCJcbiAgICAgICAgICAgICAgICB9IDwvc3Bhbj4gYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChidG4uYnRuQ2xhc3NOYW1lRm9ybWF0dGVyKSB7XG4gICAgICAgICAgICAgIGxldCBuZXdDbGFzc05hbWUgPSBidG4uYnRuQ2xhc3NOYW1lRm9ybWF0dGVyKGQsIGJ0bik7XG4gICAgICAgICAgICAgIGlmIChuZXdDbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gXCIgXCIgKyBuZXdDbGFzc05hbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnRuTmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXAtYnRuLXNoYXBlICR7Y2xhc3NOYW1lfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtidG4ua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2QudHlwZSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7YnRuQ29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgYnRuTmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgIGlmIChkLmNoaWxkcmVuKSB7XG4gICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmlzSGlkZGVuKSByZXR1cm47XG5cbiAgICAgICAgICAvL2J1dHRvbnNcbiAgICAgICAgICBidG5OYXZMaXN0ICs9IGA8ZGl2IGNsYXNzPVwiY2FwLWJ0bi1jaGlsZC1uYXYtaXRlbSBwYXJlbnQgJHtkLmlzQ2xvc2VkID8gXCJoaWRlXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgY2hpbGQ9XCIke2QuaWQgfHwgLTF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcC1idG4tbmF2LWl0ZW0tY29udGVudFwiPmA7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcudGltZWxpbmUubmF2LmxlZnQuYnV0dG9ucyAmJlxuICAgICAgICAgICAgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmJ1dHRvbnMudmFyc1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmJ1dHRvbnMudmFycy5mb3JFYWNoKChidG4pID0+IHtcbiAgICAgICAgICAgICAgaWYgKGMud2l0aE5hdiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBsZXQgYnRuQ29udGVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IGJ0bi5jbGFzc05hbWUgfHwgXCJcIjtcblxuICAgICAgICAgICAgICAgIGlmIChidG4uaWNvbikge1xuICAgICAgICAgICAgICAgICAgYnRuQ29udGVudCA9IGJ0bi5pY29uID8gYnRuLmljb24gOiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChidG4uaWNvbkZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgYnRuQ29udGVudCA9IGJ0bi5pY29uRm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgICAgID8gYnRuLmljb25Gb3JtYXR0ZXIoYywgYnRuKVxuICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJ0bi5zaGFwZSkge1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiIGNhcC1idG4tXCIgKyBidG4uc2hhcGU7XG4gICAgICAgICAgICAgICAgICBidG5Db250ZW50ICs9IGA8c3Bhbj4gJHtidG4uZm9ybWF0dGVyID8gYnRuLmZvcm1hdHRlcihjLCBidG4pIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICB9IDwvc3Bhbj4gYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJ0bi5idG5DbGFzc05hbWVGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBuZXdDbGFzc05hbWUgPSBidG4uYnRuQ2xhc3NOYW1lRm9ybWF0dGVyKGMsIGJ0bik7XG4gICAgICAgICAgICAgICAgICBpZiAobmV3Q2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArPSBcIiBcIiArIG5ld0NsYXNzTmFtZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidG5OYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FwLWJ0bi1zaGFwZSAke2NsYXNzTmFtZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtidG4ua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2MuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNEaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2MudHlwZSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtidG5Db250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPmA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJ0bk5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGl0ZW1EZXRhaWwgPSBgIDxkaXYgY2xhc3M9XCJkZXRhaWwtbmF2LWl0ZW0gaGlkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0RGV0YWlsTmF2SXRlbUNvbnRlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgc3RyID0gYDxkaXYgY2xhc3M9XCJuYXYtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtpdGVtRGV0YWlsfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7bmF2TGlzdH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbml0aWFsLW5hdi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtpbml0aWFsTmF2TGlzdH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHRlbmQtbmF2LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2V4TmF2TGlzdH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXAtYnRuLW5hdi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtidG5OYXZMaXN0fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgbmF2Q29udGFpbmVyID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgICRlbGVtLmlubmVySFRNTCA9IFwiXCI7XG4gICAgJGVsZW0uYXBwZW5kKG5hdkNvbnRhaW5lcik7XG5cbiAgICAvL2RldGFsbGUgZGUgbmF2LWl0ZW1cbiAgICAkZWxlbS5xdWVyeVNlbGVjdG9yQWxsKFwiLml0ZW0tdGl0bGUuaG92ZXJhYmxlXCIpLmZvckVhY2goKGkpID0+IHtcbiAgICAgIGkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgcG9zID0gdXRpbHMuZXZlbnRUb1Bvc2l0aW9uTmF2TGVmdChjb25maWcsIGUsICRlbGVtKTtcbiAgICAgICAgbGV0IGl0ZW1JZCA9IGkuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgICAgbGV0IGl0ZW0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIGl0ZW1JZCk7XG4gICAgICAgIGxldCB0eXBlTm9kZSA9IGkuZ2V0QXR0cmlidXRlKFwidHlwZS1ub2RlXCIpO1xuICAgICAgICBpLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwib3Zlck5hdkl0ZW1cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlLFxuICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICB0eXBlOiB0eXBlTm9kZSxcbiAgICAgICAgICAgICAgcG9zOiBwb3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvL29jdWx0YSBkZXRhbGxlIGRlIG5hdi1pdGVtLCBhbCBzYWxpciBkZWwgbmF2LWl0ZW0tbGlzdFxuICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCIubmF2LWl0ZW0tbGlzdFwiKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIChlKSA9PiB7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJsZWF2ZU5hdkl0ZW1cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy9vY3VsdGEgZGV0YWxsZSBkZSBuYXYtaXRlbS1saXN0LCBhbCBzYWxpciBkZSBuYXYtaXRlbVxuICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuaXRlbS10aXRsZTpub3QoLmhvdmVyYWJsZSlcIikuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgaS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIChlKSA9PiB7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJsZWF2ZU5hdkl0ZW1cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJGVsZW0ucXVlcnlTZWxlY3RvckFsbChcIi5pdGVtLXRpdGxlLmNsaWNrZWFibGVcIikuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgaS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1JZCA9IGkuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgICAgbGV0IHR5cGVOb2RlID0gaS5nZXRBdHRyaWJ1dGUoXCJ0eXBlLW5vZGVcIik7XG4gICAgICAgIGxldCB2YWx1ZSA9IGkudmFsdWU7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja05hdkxlZnRJdGVtXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW1JZCxcbiAgICAgICAgICAgICAgdHlwZTogdHlwZU5vZGUsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFwiKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0IGlucHV0VHlwZSA9IGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQtdHlwZVwiKTtcbiAgICAgICAgbGV0IGtleSA9IGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQta2V5XCIpO1xuICAgICAgICBsZXQgaXRlbUlkID0gaS5nZXRBdHRyaWJ1dGUoXCJpdGVtLWlkXCIpO1xuICAgICAgICBsZXQgdHlwZU5vZGUgPSBpLmdldEF0dHJpYnV0ZShcInR5cGUtbm9kZVwiKTtcbiAgICAgICAgbGV0IGl0ZW0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIGl0ZW1JZCk7XG4gICAgICAgIGxldCB2YWx1ZSA9IGkudmFsdWU7XG4gICAgICAgIGlmIChpbnB1dFR5cGUgPT0gXCJ0aW1lXCIpIHtcbiAgICAgICAgICBsZXQgaGhfaW5wdXQgPSBpLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcihcImlucHV0LmhoXCIpLnZhbHVlO1xuICAgICAgICAgIGxldCBtbV9pbnB1dCA9IGkucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXQubW1cIikudmFsdWU7XG4gICAgICAgICAgbW1faW5wdXQgPSBtbV9pbnB1dCA8IDEwID8gXCIwXCIgKyBwYXJzZUZsb2F0KG1tX2lucHV0KSA6IG1tX2lucHV0O1xuICAgICAgICAgIGkucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXQubW1cIikudmFsdWUgPSBtbV9pbnB1dDtcbiAgICAgICAgICB2YWx1ZSA9IGhoX2lucHV0ICsgXCI6XCIgKyBtbV9pbnB1dDtcbiAgICAgICAgfVxuICAgICAgICBpLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic2F2ZU5hdkxlZnRJbnB1dFwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXRlbUlkLFxuICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICB0eXBlOiB0eXBlTm9kZSxcbiAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICB0YWJTZWxlY3RlZDogdGFiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJGVsZW0ucXVlcnlTZWxlY3RvckFsbChcImJ1dHRvbi5jYXAtYnRuLXNoYXBlXCIpLmZvckVhY2goKGkpID0+IHtcbiAgICAgIGkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBrZXkgPSBpLmdldEF0dHJpYnV0ZShcImlucHV0LWtleVwiKTtcbiAgICAgICAgbGV0IGl0ZW1JZCA9IGkuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgICAgbGV0IHR5cGVOb2RlID0gaS5nZXRBdHRyaWJ1dGUoXCJ0eXBlLW5vZGVcIik7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja05hdkxlZnRCdXR0b25cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW1JZCxcbiAgICAgICAgICAgICAgdHlwZTogdHlwZU5vZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAkZWxlbS5xdWVyeVNlbGVjdG9yQWxsKFwiYnV0dG9uLnRyZWUtaWNvblwiKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgaXRlbUlkID0gaS5nZXRBdHRyaWJ1dGUoXCJpdGVtLWlkXCIpO1xuICAgICAgICBsZXQgdHlwZU5vZGUgPSBpLmdldEF0dHJpYnV0ZShcInR5cGUtbm9kZVwiKTtcbiAgICAgICAgbGV0IGRhdGFDb25maWcgPSBjb25maWcuZGF0YS5maW5kKChkKSA9PiBkLmlkID09IGl0ZW1JZCk7XG5cbiAgICAgICAgbGV0ICRuYXZJdGVtID0gZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoXCIubmF2LWl0ZW1cIik7XG4gICAgICAgIGxldCAkY2hpbGRyZW4gPSAkbmF2SXRlbS5xdWVyeVNlbGVjdG9yKFwiLmNoaWxkcmVuLWl0ZW1zXCIpO1xuICAgICAgICBsZXQgaXRlbXNUb0hpZGUgPSBlLmN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAuY2xvc2VzdChcIm5hdi5sZWZ0XCIpXG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBcIltjaGlsZD0nXCIgKyBpdGVtSWQgKyBcIiddLCBbY2hpbGQtbGlzdD0nXCIgKyBpdGVtSWQgKyBcIiddXCJcbiAgICAgICAgICApO1xuXG4gICAgICAgIGlmICgkY2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoJGNoaWxkcmVuLmNsYXNzTGlzdC5jb250YWlucyhcImhpZGVcIikpIHtcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5jbGFzc0xpc3QuYWRkKFwiY2FwLXJvdGF0ZVwiKTtcbiAgICAgICAgICAgIGl0ZW1zVG9IaWRlLmZvckVhY2goKGkpID0+IGkuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIikpO1xuICAgICAgICAgICAgZGF0YUNvbmZpZy5pc0Nsb3NlZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuY2xhc3NMaXN0LnJlbW92ZShcImNhcC1yb3RhdGVcIik7XG4gICAgICAgICAgICBpdGVtc1RvSGlkZS5mb3JFYWNoKChpKSA9PiBpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpKTtcbiAgICAgICAgICAgIGRhdGFDb25maWcuaXNDbG9zZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja05hdkxlZnRUcmVlSWNvblwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtSWQsXG4gICAgICAgICAgICAgIHR5cGU6IHR5cGVOb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICAvL2UuY3VycmVudFRhcmdldC5wYXJlbnRcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIEh0bWwgY29tbyBTdHJpbmcsIHBhcmEgZWwgZGV0YWxsZSBkZSBpdGVtcyBlbiBlbCBTaWRlYmFyIEl6cXVpZXJkb1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2l0ZW09e31dIC0gQ29uZmlndXJhY2lvbiBkZSBpdGVtXG4gICAqIEByZXR1cm4ge1N0cmluZ30gSHRtbCBkZSB2ZW50YW5hIGRlIGRldGFsbGVcbiAgICovXG4gIGdldERldGFpbE5hdkl0ZW1Db250ZW50KGl0ZW0gPSB7fSkge1xuICAgIGlmIChpdGVtLm5hdk92ZXIgPT0gdW5kZWZpbmVkKSBpdGVtLm5hdk92ZXIgPSB7fTtcblxuICAgIHJldHVybiBgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC10aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpdGVtLmxhYmVsIHx8IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpdGVtLm5hdk92ZXIuc3VidGl0bGUgfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNoaXAgJHtpdGVtLmxpZ2h0ID8gaXRlbS5saWdodCArIFwiLWxpZ2h0XCIgOiBcIlwiXG4gICAgICB9ICAke2l0ZW0ubmF2T3Zlci5jaGlwID8gXCJcIiA6IFwiaGlkZVwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpdGVtLm5hdk92ZXIuY2hpcCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7aXRlbS5uYXZPdmVyLmNvbnRlbnQgfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBTaWRlYmFyIERlcmVjaG9cbiAgICogVXNhZG8gcHJpbmNpcGFsbWVudGUgcGFyYSBmb3JtdWxhcmlvIGRlIGluZ3Jlc28gZGUgZGF0b3MgcGFyYSBsb3MgZGlhc1xuICAgKiBzZWxlY2Npb25hZG9zXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0YWIgLSBUYWIgZGUgcmVmZXJlbmNpYSwgcGFyYSBsYSBjcmVhY2lvbiBkZWwgZm9ybXVsYXJpb1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IHtlbGVtZW50LCBpbnB1dHN9LCBlbGVtZW50IGVzIGVsIGVsZW1lbnRvIERvbSBkZWwgc2lkZWJhcixcbiAgICogICAgICAgICAgICAgICAgICBpbnB1dHMgZXMgdW4gYXJyYXkgZGUgZWxlbWVudG9zIERvbSBkZSBjYWRhIGlucHV0IGNyZWFkb1xuICAgKiAgICAgICAgICAgICAgICAgIChubyBzb24gZWxlbWVudG9zIGh0bWwgZGUgdGlwbyBpbnB1dClcbiAgICovXG4gIGNyZWF0ZU5hdlJpZ2h0KGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIHZhciAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwibmF2XCIsIHsgY2xhc3NOYW1lOiBcInJpZ2h0XCIgfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3TmF2UmlnaHQoY29uZmlnLCAkZWxlbSwgdGFiLCBbXSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBTaWRlYmFyIERlcmVjaG9cbiAgICogVXRpbGl6YSAkZWxlbSBjb21vIGVsZW1lbnRvIGRvbSBkb25kZSByZWNyZWFybG9cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9ICRlbGVtIC0gRWxlbWVudG8gRG9tIGRvbmRlIGNyZWEgZWwgc2lkZWJhciBkZXJlY2hvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0YWIgLSBUYWIgZGUgcmVmZXJlbmNpYSwgcGFyYSBsYSBjcmVhY2lvbiBkZWwgZm9ybXVsYXJpb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIGRhdG9zIGRlbCBkaWEgc2VsZWNjaW9uYW5kbywgcGFyYSBhdXRvcnJlbGxlbm8gZGUgZm9ybXVsYXJpb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF5U2VsZWN0ZWQgLSBkYXRvcyBkZWwgZGlhIHNlbGVjY2lvbmFkb1xuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF5U2VsZWN0ZWQuZGF0ZSAtIGZlY2hhIGRlbCBkaWEgc2VsZWNjaW9uYWRvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXlTZWxlY3RlZC5pdGVtIC0gSXRlbSBkZSBTaWRlYmFyIHJlbGFjaW9uYWRvIGFsIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHBhcmFtIHtPYmplY3R9IGRheVNlbGVjdGVkLnBvcyAtIHBvc2ljaW9uIGRlIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gU2lkZWJhciBEZXJlY2hvXG4gICAqL1xuICByZWRyYXdOYXZSaWdodChcbiAgICBjb25maWcsXG4gICAgJGVsZW0sXG4gICAgc2VsZWN0ZWQgPSBudWxsLFxuICAgIHRhYiA9IG51bGwsXG4gICAgZGF0YURheSA9IG51bGwsXG4gICAgZGF5U2VsZWN0ZWQgPSBudWxsXG4gICkge1xuICAgIGxldCAkbmF2UmlnaHQgPSAkZWxlbTsgLy9kb20uY3JlYXRlRWxlbWVudChcIm5hdlwiLHtjbGFzc05hbWU6XCJyaWdodFwifSk7XG4gICAgbGV0ICRkaXZDb250YWluZXIgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwibmF2LWlucHV0LWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgbGV0ICRpbnB1dHMgPSBbXTtcbiAgICBsZXQgY2hlY2tib3hJbnB1dHMgPSBbXTtcbiAgICBsZXQgaW5wdXRzV2l0aFJlbG9hZCA9IFtdO1xuICAgIGxldCB0YWJTZWxlY3RlZCA9IHRhYjtcbiAgICBzZWxlY3RlZCA9IHNlbGVjdGVkIHx8IFtkYXlTZWxlY3RlZF07XG5cbiAgICBpZiAodGFiU2VsZWN0ZWQgJiYgdGFiU2VsZWN0ZWQuaW5wdXRzKSB7XG4gICAgICB0YWJTZWxlY3RlZC5pbnB1dHMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICBpZiAoaS5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIGxldCAkaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KGksIGRhdGFEYXksIGRheVNlbGVjdGVkLCBzZWxlY3RlZCk7XG4gICAgICAgIGlmICgkaW5wdXQpIHtcbiAgICAgICAgICAkZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKCRpbnB1dCk7XG4gICAgICAgICAgJGlucHV0cy5wdXNoKCRpbnB1dCk7XG5cbiAgICAgICAgICBpZiAoaS50eXBlID09IFwiY2hlY2tib3hcIikge1xuICAgICAgICAgICAgY2hlY2tib3hJbnB1dHMucHVzaCgkaW5wdXQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpLnJlbG9hZE9uU2VsZWN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlucHV0c1dpdGhSZWxvYWQucHVzaCh7ICRpbnB1dCwgY29uZmlnOiBpIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy9tYW5lam8gZGUgZXZlbnRvcyBwYXJhIGlucHV0cyBjb24gc2hvd0lmXG4gICAgaWYgKGNoZWNrYm94SW5wdXRzKSB7XG4gICAgICBjaGVja2JveElucHV0cy5mb3JFYWNoKCgkYykgPT4ge1xuICAgICAgICAvL29idGllbmUga2V5IGRlIGNoZWNrYm94XG4gICAgICAgIGxldCBrZXkgPSAkYy5nZXRBdHRyaWJ1dGUoXCJpbnB1dC1rZXlcIik7XG4gICAgICAgIGxldCBwcm9wcyA9IHRhYlNlbGVjdGVkLmlucHV0cy5maW5kKChpKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGkua2V5ID09IGtleTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICBpZiAoZGF0YURheSkge1xuICAgICAgICAgIGlzQ2hlY2tlZCA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vb2J0aWVuZSBpbnB1dHMgcmVsYWNpb25hZG9zIGRlc2RlIGNvbmZpZyBwYXJhIG1vc3RyYXIvb2N1bHRhclxuICAgICAgICBsZXQgaW5wdXRzVG9IaWRlID0gdGFiU2VsZWN0ZWQuaW5wdXRzLmZpbHRlcigoaSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpLnNob3dJZiAmJiBpLnNob3dJZiA9PSBrZXk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgaW5wdXRzVG9IaWRlS2V5cyA9IGlucHV0c1RvSGlkZS5tYXAoKGkpID0+IGkua2V5KTtcblxuICAgICAgICAvL29idGllbmUgaW5wdXRzIGRlbCBkb20sIGZpbHRyYW5kbyBjb24gaW5wdXRzVG9IaWRlXG4gICAgICAgIGxldCAkaW5wdXRzSGlkZGVuID0gJGlucHV0cy5maWx0ZXIoKCRpKSA9PiB7XG4gICAgICAgICAgbGV0IGlucHV0S2V5ID0gJGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQta2V5XCIpO1xuICAgICAgICAgIHJldHVybiBpbnB1dHNUb0hpZGVLZXlzLmluZGV4T2YoaW5wdXRLZXkpID4gLTE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vc2kgaGF5IGlucHV0cyxcbiAgICAgICAgaWYgKCRpbnB1dHNIaWRkZW4pIHtcbiAgICAgICAgICBpZiAoIWlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgJGlucHV0c0hpZGRlbi5mb3JFYWNoKCgkaSkgPT4ge1xuICAgICAgICAgICAgICAkaS5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkYy5hZGRFdmVudExpc3RlbmVyKFwiaW5wdXRcIiwgKGUpID0+IHtcbiAgICAgICAgICAgICRpbnB1dHNIaWRkZW4uZm9yRWFjaCgoJGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGZuID0gJGMucXVlcnlTZWxlY3RvcihcImlucHV0W3R5cGU9J2NoZWNrYm94J11cIikuY2hlY2tlZFxuICAgICAgICAgICAgICAgID8gXCJyZW1vdmVcIlxuICAgICAgICAgICAgICAgIDogXCJhZGRcIjtcbiAgICAgICAgICAgICAgJGkuY2xhc3NMaXN0W2ZuXShcImhpZGVcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IHNhdmVDYW5jZWxCdG5zID0gdGhpcy5jcmVhdGVOYXZSaWdodGJ1dHRvbnMoKTtcbiAgICAkZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKHNhdmVDYW5jZWxCdG5zKTtcbiAgICAkbmF2UmlnaHQuaW5uZXJIVE1MID0gXCJcIjtcbiAgICAkbmF2UmlnaHQuYXBwZW5kQ2hpbGQoJGRpdkNvbnRhaW5lcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxlbWVudDogJG5hdlJpZ2h0LFxuICAgICAgaW5wdXRzOiAkaW5wdXRzLFxuICAgICAgaW5wdXRzV2l0aFJlbG9hZCxcbiAgICAgIHNhdmVDYW5jZWxCdG5zXG4gICAgfTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBDb3JuZXIgaW5mZXJpb3IgaXpxdWllcmRvLCBjb21vIHRpdHVsbyBwYXJhIGZvb3RlclxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBDb3JuZXIgRm9vdGVyXG4gICAqL1xuICBjcmVhdGVDb3JuZXJGb290ZXIoY29uZmlnKSB7XG4gICAgaWYgKFxuICAgICAgY29uZmlnLnRpbWVsaW5lLmZvb3RlciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBjb25maWcudGltZWxpbmUuZm9vdGVyLmVuYWJsZWQgPT0gZmFsc2VcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgc3RyID0gXCJcIjtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUuZm9vdGVyKSB7XG4gICAgICBzdHIgKz0gYDxkaXYgY2xhc3M9XCJjb3JuZXItZm9vdGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvcm5lci10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICR7Y29uZmlnLnRpbWVsaW5lLmZvb3Rlci5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBGb290ZXIgcGFyYSBwbGFuaWxsYVxuICAgKiBJbmljaWFsbWVudGUgY3JlYWRvIHBhcmEgdG90YWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBDb3JuZXIgRm9vdGVyXG4gICAqL1xuICBjcmVhdGVGb290ZXIoY29uZmlnKSB7XG4gICAgaWYgKFxuICAgICAgY29uZmlnLnRpbWVsaW5lLmZvb3RlciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBjb25maWcudGltZWxpbmUuZm9vdGVyLmVuYWJsZWQgPT0gZmFsc2VcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzdHIgPSBgXG4gICAgICAgIDxmb290ZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgICAgICBgO1xuICAgIGNvbmZpZy50aW1lbGluZS5mb290ZXIuZGF0YS5mb3JFYWNoKChkKSA9PiB7XG4gICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWl0ZW1cIj4ke2QudmFsdWV9PC9kaXY+XG4gICAgICAgICAgICBgO1xuICAgIH0pO1xuICAgIHN0ciArPSBgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgICAgICBgO1xuXG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBGb290ZXIgcGFyYSBwbGFuaWxsYVxuICAgKiBJbmljaWFsbWVudGUgY3JlYWRvIHBhcmEgdG90YWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcGFyYW0ge09iamVjdFtdfSBzZWxlY3RlZCAtIGFycmF5IGRlIG9iamV0b3MsIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBDb3JuZXIgRm9vdGVyXG4gICAqL1xuICBjcmVhdGVTZWxlY3RCb2FyZChjb25maWcsIHNlbGVjdGVkKSB7XG4gICAgbGV0ICRlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwic2VsZWN0LWNvbnRhaW5lclwiIH0pO1xuICAgIHJldHVybiB0aGlzLnJlZHJhd1NlbGVjdEJvYXJkKCRlbGVtLCBzZWxlY3RlZCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgbGluZWEgdmVydGljYWwgcGFyYSBmZWNoYSBBY3R1YWxcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gQ29ybmVyIEZvb3RlclxuICAgKi9cbiAgY3JlYXRlVG9kYXlMaW5lKGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLnJlZHJhd1RvZGF5TGluZShcbiAgICAgIGNvbmZpZyxcbiAgICAgIGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInRvZGF5LWxpbmVcIiB9KVxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBsaW5lYSB2ZXJ0aWNhbCBwYXJhIGZlY2hhIEFjdHVhbFxuICAgKiBzaSBlbCBlbGVtZW50byAkZWxlbSBubyBlcyBlbnZpYWRvLCBzZSBjcmVhIHVuIG51ZXZvIGVsZW1lbnRvXG4gICAqXG4gICAqIFNpIGVsIGRpYSBhY3R1YWwgbm8gZXN0YSBkZW50cm8gZGVsIHJhbmdvIGRlIGZlY2hhcyBkZWwgY29uZmlnLFxuICAgKiBkZXNoYWJpbGl0YSBsYSBsaW5lYSBjb24gbGEgY2xhc2UgY3NzIC5kaXNhYmxlLWxpbmVcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9IFskZWxlbT1udWxsXSAtIEVsZW1lbnRvIERvbSBkb25kZSByZWNyZWEgbGEgbGluZWEsIHNpIGVzIG51bGwsIGxhIGNyZWFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gQ29ybmVyIEZvb3RlclxuICAgKi9cbiAgcmVkcmF3VG9kYXlMaW5lKGNvbmZpZywgJGVsZW0gPSBudWxsKSB7XG4gICAgbGV0IGVuZFRpbWUgPSBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuZW5kKS5nZXRUaW1lKCk7XG4gICAgbGV0IHRvZGF5VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGxldCB7IGhlaWdodCwgZGF5V2lkdGggfSA9IHV0aWxzLmdldFRhYmxlRGltZW5zaW9ucyhjb25maWcpO1xuXG4gICAgaWYgKCRlbGVtID09IG51bGwpXG4gICAgICAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInRvZGF5LWxpbmVcIiB9KTtcblxuICAgIGlmIChlbmRUaW1lIDwgdG9kYXlUaW1lKSB7XG4gICAgICAkZWxlbS5jbGFzc0xpc3QuYWRkKFwiZGlzYWJsZS1saW5lXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAkZWxlbS5jbGFzc0xpc3QucmVtb3ZlKFwiZGlzYWJsZS1saW5lXCIpO1xuICAgIH1cblxuICAgIGxldCBkaWZmRGF5cyA9IE1hdGguZmxvb3IoXG4gICAgICBkYXRlVXRpbHMuZGlmZkRheXMoXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5zdGFydCxcbiAgICAgICAgZGF0ZVV0aWxzLmZvcm1hdERhdGUobmV3IERhdGUoKSlcbiAgICAgIClcbiAgICApO1xuICAgIGxldCBkaWZmID0gZGlmZkRheXMgKiBkYXlXaWR0aDtcbiAgICBkaWZmICs9IGRheVdpZHRoIC8gMiAtIDI7IC8vIHBhcmEgY2VudHJhciBsaW5lYVxuICAgIE9iamVjdC5hc3NpZ24oJGVsZW0uc3R5bGUsIHtcbiAgICAgIFwibWFyZ2luLWxlZnRcIjogZGlmZiArIFwicHhcIixcbiAgICAgIGhlaWdodDogaGVpZ2h0ICsgXCJweFwiXG4gICAgfSk7XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIGVsZW1lbnRvIEZsb2F0Qm94LCBxdWUgY29udGllbmUgbG9zIGRhdG9zIHF1ZSBzZSBtdWVzdHJhIGVuIGxhIHRhYmxhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0YWIgLSBUYWIgZGUgcmVmZXJlbmNpYSwgcGFyYSBtb3N0cmFyIGRhdG9zIGNvbmZpZ3VyYWRvcyBwb3IgdGFiXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIENvcm5lciBGb290ZXJcbiAgICovXG4gIGNyZWF0ZUZsb2F0Qm94KGNvbmZpZywgdGFiKSB7XG4gICAgbGV0ICRjb250YWluZXIgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiZmxvYXQtYm94LWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3RmxvYXRCb3goY29uZmlnLCB0YWIsICRjb250YWluZXIpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNyZWEgZWxlbWVudG8gRmxvYXRCb3gsIHF1ZSBjb250aWVuZSBsb3MgZGF0b3MgcXVlIHNlIG11ZXN0cmEgZW4gbGEgdGFibGFcbiAgICogU2UgdXNhIHByaW5jaXBhbG1lbnRlIHBhcmEgbW9zdHJhciBkYXRvcyBlbiBsYSB0YWJsYSBkZSBsYSBwbGFuaWxsYVxuICAgKiBsb3MgbXVlc3RyYSBkZSBtYW5lcmEgZmxvdGFudGUsIGNhbGN1bGFuZG8gZWwgVG9wIHkgZWwgTGVmdCBzZWd1biBsYSBwb3NjaW9uXG4gICAqXG4gICAqIFNlIGNvbnNpZGVyYW4gbG9zIGVsZW1lbnRvcyBwYWRyZXMgb2N1bHRvcywgcGFyYSBvY3VsdGFyIGxvcyBkYXRvc1xuICAgKlxuICAgKiBTZSBpbnNlcnRhbiBsb3MgZWxlbWVudG9zIEZsb2F0Qm94LCBjb21vIGVsZW1lbnRvIGNvbiBkYXRvcyBkZSB1biBpdGVtIHkgZGlhIGVzcGVjaWZpY29cbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9IHRhYiAtIFRhYiBkZSByZWZlcmVuY2lhLCBwYXJhIG1vc3RyYXIgZGF0b3MgY29uZmlndXJhZG9zIHBvciB0YWJcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gQ29ybmVyIEZvb3RlclxuICAgKi9cbiAgcmVkcmF3RmxvYXRCb3goY29uZmlnLCB0YWIsICRjb250YWluZXIpIHtcbiAgICAkY29udGFpbmVyLmlubmVySFRNTCA9IFwiXCI7XG4gICAgLy9sZXQgdGFiU2VsZWN0ZWQgPSB0YWIgfHwgbnVsbDtcblxuICAgIGNvbmZpZy5kYXRhLmZvckVhY2goKGRlKSA9PiB7XG4gICAgICBpZiAoZGUuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgIGRlLmNoaWxkcmVuLmZvckVhY2goKGRzKSA9PiB7XG4gICAgICAgIGlmIChkcy5pc0hpZGRlbikgcmV0dXJuO1xuXG4gICAgICAgIGRzLmRhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICghZGF0YS5tZXNzYWdlIHx8IGRhdGEubWVzc2FnZS52YWx1ZSA9PSBudWxsKSAmJlxuICAgICAgICAgICAgKGRhdGEudmFsdWVzID09IG51bGwgfHxcbiAgICAgICAgICAgICAgZGF0YS52YWx1ZXMgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEudmFsdWVzKS5sZW5ndGggPT09IDApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvL2NoaWxkcmVuIERhdGFcbiAgICAgICAgICBsZXQgcG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uRmxvYXRCb3goY29uZmlnLCBkYXRhLCBkcyk7XG5cbiAgICAgICAgICBsZXQgY2xhc3NOYW1lID0gXCJcIjtcblxuICAgICAgICAgIGlmIChkYXRhLmVycm9ycyAmJiBkYXRhLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gXCJoYXMtZXJyb3JzIFwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChkZS5pc0Nsb3NlZCkge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiaGlkZSBcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgbXNnID0gbnVsbDtcbiAgICAgICAgICBpZiAodGFiLmZsb2FCb3ggJiYgdGFiLmZsb2F0Qm94Lm1lc3NhZ2VQYXRoKSB7XG4gICAgICAgICAgICBtc2cgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YSwgdGFiLmZsb2F0Qm94Lm1lc3NhZ2VQYXRoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobXNnIHx8IChkYXRhLm1lc3NhZ2UgJiYgZGF0YS5tZXNzYWdlLnZhbHVlKSkge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiaGFzLW1lc3NhZ2UgXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHN0ciA9IGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtYm94ICR7Y2xhc3NOYW1lfSAke2RlLmlzQ2xvc2VkID8gXCJoaWRlXCIgOiBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIiR7cG9zaXRpb24gPyBwb3NpdGlvbiA6IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2RzLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2RzLnR5cGUgfHwgXCJcIn1cIj4gYDtcblxuICAgICAgICAgIGxldCBzdHJFeHQgPSBgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsb2F0LWJveC1leHQgJHtkZS5pc0Nsb3NlZCA/IFwiaGlkZVwiIDogXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiJHtwb3NpdGlvbiA/IHBvc2l0aW9uIDogXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2RzLmlkIHx8IC0xfS1leHRcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7ZHMudHlwZSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvbmctYmFyLWNvbnRhaW5lclwiPmA7XG5cbiAgICAgICAgICBpZiAodGFiICYmIHRhYi5mbG9hdEJveCkge1xuICAgICAgICAgICAgaWYgKHRhYi5mbG9hdEJveC5wbG90cykge1xuICAgICAgICAgICAgICBzdHIgKz0gYDxkaXYgY2xhc3M9XCJwbG90LWZsb2F0Ym94LWNvbnRhaW5lclwiPmA7XG4gICAgICAgICAgICAgIHRhYi5mbG9hdEJveC5wbG90cy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNzc1ZhcnMgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlmICh1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIG4udmFyTmFtZSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChuLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNzc1ZhcnMgPSBgLS1sb2NhbC1jb2xvcjoke24uY29sb3J9O2A7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSA9IG4uY2xhc3NOYW1lIHx8IFwiXCI7XG5cbiAgICAgICAgICAgICAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cInBsb3QtZmxvYXRib3ggJHtjbGFzc05hbWV9ICR7bi5zdHlsZSB8fCBcIlwiXG4gICAgICAgICAgICAgICAgICAgIH1cIiBzdHlsZT1cIiR7Y3NzVmFyc30gXCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9udW1lcm9zIGVuIGVsIGZsb2F0Qm94XG4gICAgICAgICAgICBpZiAodGFiLmZsb2F0Qm94Lm51bXMpIHtcbiAgICAgICAgICAgICAgdGFiLmZsb2F0Qm94Lm51bXMuZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0YWIubGVnZW5kcyAmJiBuLnRhYktleSkge1xuICAgICAgICAgICAgICAgICAgbGV0IGxlZ2VuZCA9IHRhYi5sZWdlbmRzLmZpbmQoKGwpID0+IGwua2V5ID09IG4udGFiS2V5KTtcbiAgICAgICAgICAgICAgICAgIGlmIChsZWdlbmQgJiYgIWxlZ2VuZC5hY3RpdmUpIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgZGF0YUZsb2F0Qm94ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgY2xhc3NOYW1lID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgc2hvd0lmID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBsZXQgaGlkZUlmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IGNvbG9yQ2xhc3MgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGxldCBjb2xvclN0eWxlID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgY2xhc3NOYW1lc0V4dCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgbGV0IGNvbG9yU3R5bGVFeHQgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGxldCBjc3NWYXJzID0gXCJcIjtcblxuICAgICAgICAgICAgICAgIGlmIChuLnZhck5hbWUpIHtcbiAgICAgICAgICAgICAgICAgIGRhdGFGbG9hdEJveCA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgbi52YXJOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobi52YXJTaG93KSB7XG4gICAgICAgICAgICAgICAgICBzaG93SWYgPSBCb29sZWFuKHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgbi52YXJTaG93KSk7XG4gICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPSBkYXRhRmxvYXRCb3ggfHwgXCJcIjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobi52YXJIaWRlKSB7XG4gICAgICAgICAgICAgICAgICBoaWRlSWYgPSBCb29sZWFuKHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgbi52YXJIaWRlKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG4uc2hhcGUpIHtcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArPSBcInNoYXBlLVwiICsgbi5zaGFwZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobi5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3Iobi5jb2xvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JTdHlsZSA9IGAtLWxvY2FsLWNvbG9yOiAke24uY29sb3J9O2A7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb2xvckNsYXNzID0gbi5jb2xvcjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cblxuXG5cblxuXG4gICAgICAgICAgICAgICAgaWYgKG4ubG9uZ0Jhcikge1xuXG4gICAgICAgICAgICAgICAgICBsZXQgbG9uZ0JhckNvbG9yID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgIGxldCBsb25nQmFyT3BhY2l0eSA9IFwiXCI7XG5cblxuICAgICAgICAgICAgICAgICAgaWYgKG4ubG9uZ0JhckNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvbmdCYXJDb2xvciA9IHV0aWxzLmdldFZhckJ5UGF0aChcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgICBuLmxvbmdCYXJDb2xvclxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAobG9uZ0JhckNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKGxvbmdCYXJDb2xvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvclN0eWxlRXh0ID0gYC0tbG9jYWwtY29sb3I6ICR7bG9uZ0JhckNvbG9yfTtgO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXNFeHQgKz0gbG9uZ0JhckNvbG9yICsgXCItbGlnaHQgXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sb3JDbGFzcyAmJiBjb2xvckNsYXNzICE9IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lc0V4dCArPSBjb2xvckNsYXNzO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2xvclN0eWxlICYmIGNvbG9yU3R5bGUgIT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBjb2xvclN0eWxlRXh0ID0gY29sb3JTdHlsZTtcbiAgICAgICAgICAgICAgICAgIH1cblxuXG5cblxuICAgICAgICAgICAgICAgICAgaWYgKG4ubG9uZ0Jhck9wYWNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9uZ0Jhck9wYWNpdHkgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIG4ubG9uZ0Jhck9wYWNpdHkpIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb25nQmFyT3BhY2l0eSkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yU3R5bGVFeHQgKz0gXCItLWxvY2FsLW9wYWNpdHk6IFwiICsgbG9uZ0Jhck9wYWNpdHkgKyBcIjtcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAobi5sb25nQmFyQ2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXNFeHQgKz0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBuLmxvbmdCYXJDbGFzc05hbWUpIHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgbGV0IGxvbmdCYXIgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIG4ubG9uZ0Jhcik7XG4gICAgICAgICAgICAgICAgICBpZiAobG9uZ0Jhcikge1xuICAgICAgICAgICAgICAgICAgICBjc3NWYXJzID0gYC0tbG9uZzoke2xvbmdCYXJ9O2A7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG5cblxuXG5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGRhdGFGbG9hdEJveCAhPT0gbnVsbCAmJiBzaG93SWYgJiYgIWhpZGVJZikge1xuICAgICAgICAgICAgICAgICAgc3RyICs9IGA8c3BhbiBjbGFzcz1cImRhdGEgJHtjb2xvckNsYXNzfSAke2NsYXNzTmFtZX1cIiBzdHlsZT1cIiR7Y29sb3JTdHlsZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0eXBlb2YgZGF0YUZsb2F0Qm94ID09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICA/IGRhdGFGbG9hdEJveFxuICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dHlwZW9mIGRhdGFGbG9hdEJveCA9PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgPyB1dGlscy5yb3VuZChkYXRhRmxvYXRCb3gsIG4ucm91bmQpXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobi5sb25nQmFyICYmIGNzc1ZhcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyRXh0ICs9IGA8ZGl2IGNsYXNzPVwibG9uZy1iYXIgJHtjbGFzc05hbWVzRXh0fVwiIHN0eWxlPVwiJHtjb2xvclN0eWxlRXh0fSAke2Nzc1ZhcnN9IFwiPjwvZGl2PiBgO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vcHVudG9zIGVuIGVsIGZsb2F0Qm94XG4gICAgICAgICAgICBpZiAodGFiLmZsb2F0Qm94LmRvdHMpIHtcbiAgICAgICAgICAgICAgc3RyICs9IGA8ZGl2IGNsYXNzPVwiZG90LWNvbnRhaW5lci1taWRkbGVcIj5gO1xuICAgICAgICAgICAgICB0YWIuZmxvYXRCb3guZG90cy5mb3JFYWNoKChkb3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBkb3QudmFyTmFtZSkgIT09IG51bGwpIHtcblxuICAgICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICBsZXQgY29sb3JDbGFzcyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICBsZXQgY29sb3JTdHlsZSA9IFwiXCI7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkb3Quc2hhcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICs9IGRvdC5zaGFwZTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGRvdC5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihkb3QuY29sb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3JTdHlsZSA9IGAtLWxvY2FsLWNvbG9yOiAke2RvdC5jb2xvcn1gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yQ2xhc3MgPSBkb3QuY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdCAke2NvbG9yQ2xhc3N9ICR7Y2xhc3NOYW1lfVwiIHN0eWxlPVwiJHtjb2xvclN0eWxlfVwiID48L2Rpdj5gO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vZmlsYSBkZSBwdW50b3MgZW4gZmxvYXRCb3hcbiAgICAgICAgICAgIGlmICh0YWIuZmxvYXRCb3gucm93RG90cykge1xuICAgICAgICAgICAgICB0YWIuZmxvYXRCb3gucm93RG90cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZnJlZUNvbHVtbnMgPSA0O1xuICAgICAgICAgICAgICAgIHN0ciArPSBgPHNwYW4gY2xhc3M9XCJyb3dkb3QtLXJvdyBcIj5gO1xuXG4gICAgICAgICAgICAgICAgcm93LmZvckVhY2goKGRvdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHRhYi5sZWdlbmRzICYmIGRvdC50YWJLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxlZ2VuZCA9IHRhYi5sZWdlbmRzLmZpbmQoKGwpID0+IGwua2V5ID09IGRvdC50YWJLZXkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVnZW5kICYmICFsZWdlbmQuYWN0aXZlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGxldCBkYXRhRmxvYXRCb3ggPSBudWxsO1xuICAgICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICBsZXQgc2hvd0lmID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGxldCBoaWRlSWYgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIGxldCBjb2xvckNsYXNzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgIGxldCBjb2xvclN0eWxlID0gXCJcIjtcblxuICAgICAgICAgICAgICAgICAgaWYgKGRvdC52YXJOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFGbG9hdEJveCA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgZG90LnZhck5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPSBwYXJzZUludChkYXRhRmxvYXRCb3gpO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoZG90LnZhclNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd0lmID0gQm9vbGVhbihcbiAgICAgICAgICAgICAgICAgICAgICB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIGRvdC52YXJTaG93KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPSBkYXRhRmxvYXRCb3ggfHwgXCJcIjtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGRvdC52YXJIaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGVJZiA9IEJvb2xlYW4oXG4gICAgICAgICAgICAgICAgICAgICAgdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBkb3QudmFySGlkZSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGRvdC5zaGFwZSkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gXCIgc2hhcGUtXCIgKyBkb3Quc2hhcGU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkb3QuY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IoZG90LmNvbG9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yU3R5bGUgPSBgLS1sb2NhbC1jb2xvcjogJHtkb3QuY29sb3J9YDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvckNsYXNzID0gZG90LmNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZGF0YUZsb2F0Qm94ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgIGRhdGFGbG9hdEJveCA+IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgc2hvd0lmICYmXG4gICAgICAgICAgICAgICAgICAgICFoaWRlSWYgJiZcbiAgICAgICAgICAgICAgICAgICAgZnJlZUNvbHVtbnMgPiAwXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG4gPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGFGbG9hdEJveCA+IGZyZWVDb2x1bW5zID8gZnJlZUNvbHVtbnMgOiBkYXRhRmxvYXRCb3g7XG4gICAgICAgICAgICAgICAgICAgIGZyZWVDb2x1bW5zIC09IG47XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBuOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RyICs9IGA8ZGl2IGNsYXNzPVwicm93ZG90LS1kb3QgJHtjb2xvckNsYXNzfSAke2NsYXNzTmFtZX1cIiBzdHlsZT1cIiR7Y29sb3JTdHlsZX1cIj48L2Rpdj5gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBzdHIgKz0gYDwvc3Bhbj5gO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgc3RyRXh0ICs9IGBcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcblxuICAgICAgICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcblxuICAgICAgICAgIGxldCAkZWxlbUV4dCA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyRXh0KTtcblxuICAgICAgICAgICRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW92ZXJcIiwgKGUpID0+IHtcbiAgICAgICAgICAgICRlbGVtLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcIm1vdXNlT3ZlckZsb2F0Qm94XCIsIHtcbiAgICAgICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgaXRlbTogZHMsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdnQ6IGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgJGVsZW0uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgICAgICAkZWxlbS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja0Zsb2F0Qm94XCIsIHtcbiAgICAgICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgaXRlbTogZHMsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdnQ6IGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgJGNvbnRhaW5lci5hcHBlbmRDaGlsZCgkZWxlbSk7XG4gICAgICAgICAgJGNvbnRhaW5lci5hcHBlbmRDaGlsZCgkZWxlbUV4dCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gJGNvbnRhaW5lcjtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBEZXRhaWxEYXksIGRldGFsbGUgZGUgdmFsb3JlcyBkZSBpdGVtIHkgRGlhXG4gICAqIHNlIHVzYSBwYXJhOlxuICAgKiAgICAtIE11ZXN0cmEgbm9tYnJlIGRlIGl0ZW0geSBkZXRhbGxlc1xuICAgKiAgICAtIE11ZXN0cmEgY2Fwc3VsYXMgZGUgZGF0b3NcbiAgICogICAgLSBNdWVzdHJhIFBpbGxzLCBwaWxkb3JhcyBkZSBkYXRvcyByZXN1bWlkb3NcbiAgICogICAgLSBNdWVzdHJhIGFsZXJ0YXNcbiAgICogICAgLSBNdWVzdHJhIE1lbnNhamVcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9IGl0ZW0gLSBJdGVtIHJlbGFjaW9uYWRvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhRGF5IC0gdmFsb3JlcyBkZSBpdGVtIHkgRGlhXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW29ubHlTdHJpbmdDb250ZW50ID0gZmFsc2VdIC0gcGFyYSBlc2NvZ2VyIHNpIGRldnVlbHZlIFN0cmluZyBvIERvbUVsZW1lbnRcbiAgICogQHJldHVybiB7U3RyaW5nfE9iamVjdH0gRWxlbWVudG8gY29tbyBTdHJpbmcgbyBEb21FbGVtZW50XG4gICAqL1xuICBjcmVhdGVEZXRhaWxEYXkoXG4gICAgY29uZmlnLFxuICAgIGl0ZW0gPSB7fSxcbiAgICBkYXRhRGF5LFxuICAgIHRhYlNlbGVjdGVkLFxuICAgIG9ubHlTdHJpbmdDb250ZW50ID0gZmFsc2VcbiAgKSB7XG4gICAgbGV0IHN0ciA9IGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWRldGFpbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICR7aXRlbS5sYWJlbCB8fCBcIlwifVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgJHtkYXRhRGF5ID8gZGF0ZVV0aWxzLmZvcm1hdERhdGVSZWFkZWFibGUoZGF0YURheS5kYXRlKSA6IFwiXCJ9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWRldGFpbCBsaXN0XCI+YDtcblxuICAgIC8vQ0FQU1VMRVNcbiAgICBpZiAoZGF0YURheSkge1xuICAgICAgY29uZmlnLnRpbWVsaW5lLmRldGFpbERheS5jYXBzdWxlcy5mb3JFYWNoKChjYXApID0+IHtcbiAgICAgICAgLy9wYXJhIGNvbXByb2JhciBzaSB0aWVuZSBkYXRvcywgc2Ugb2J0aWVuZSBlbCBwcmltZXIgdmFsb3JcbiAgICAgICAgLy9kZSBsYSBsaXN0YSBkZSB2YWx1ZXMgZGUgdW5hIGNhcHN1bGFcbiAgICAgICAgbGV0IGhhc1ZhbHVlcyA9XG4gICAgICAgICAgY2FwLnZhbHVlcy5maWx0ZXIoXG4gICAgICAgICAgICAodikgPT4gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXkudmFsdWVzLCB2LnZhck5hbWUpICE9PSBudWxsXG4gICAgICAgICAgKS5sZW5ndGggPiAwO1xuICAgICAgICBsZXQgaGlkZUlmID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGNhcC5oaWRlSWYpIHtcbiAgICAgICAgICBoaWRlSWYgPSBCb29sZWFuKHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LnZhbHVlcywgY2FwLmhpZGVJZikpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvbG9yQ2xhc3MgPSBcIlwiO1xuICAgICAgICBsZXQgY29sb3JTdHlsZSA9IFwiXCI7XG5cbiAgICAgICAgaWYgKGNhcC5jb2xvcikge1xuICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKGNhcC5jb2xvcikpIHtcbiAgICAgICAgICAgIGNvbG9yU3R5bGUgPSBgLS1sb2NhbC1jb2xvcjogJHtjYXAuY29sb3J9O2A7XG4gICAgICAgICAgICBjb2xvclN0eWxlICs9IGAtLWxvY2FsLWNvbG9yLWZvbnQ6ICR7Y2FwLmNvbG9yfTtgO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2xvckNsYXNzID0gY2FwLmNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFzVmFsdWVzICYmICFoaWRlSWYpIHtcbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWwgJHtjb2xvckNsYXNzfVwiIHN0eWxlPVwiJHtjb2xvclN0eWxlfVwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtaWNvbiAke2NhcC5zaGFwZSB8fCBcIlwifSBcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgJHtjYXAudGl0bGUgfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuXG4gICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPiBgO1xuXG4gICAgICAgICAgY2FwLnZhbHVlcy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSB2LnZhck5hbWVcbiAgICAgICAgICAgICAgPyB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheS52YWx1ZXMsIHYudmFyTmFtZSlcbiAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICBpZiAoY2FwLmlzTGFiZWxlZEFycmF5KSB7XG4gICAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKHZhbHVlTGFiZWxlZCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBvdXRwdXRWYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlTmFtZSA9IHYudmFsdWVOYW1lID8gdi52YWx1ZU5hbWUgOiBcInZhbHVlXCI7XG5cbiAgICAgICAgICAgICAgICBsZXQgdGVtcFZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKHZhbHVlTGFiZWxlZCwgdmFsdWVOYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmICh0ZW1wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID0gdi5yb3VuZFxuICAgICAgICAgICAgICAgICAgICA/IHV0aWxzLnJvdW5kKHRlbXBWYWx1ZSwgdi5yb3VuZClcbiAgICAgICAgICAgICAgICAgICAgOiB0ZW1wVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHYuZm9ybWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgICBvdXRwdXRWYWx1ZSA9IHYuZm9ybWF0dGVyKHZhbHVlTGFiZWxlZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvdXRwdXRWYWx1ZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICBvdXRwdXRWYWx1ZSA9IHV0aWxzLmZvcm1hdE51bWJlcihvdXRwdXRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3RyICs9XG4gICAgICAgICAgICAgICAgICBvdXRwdXRWYWx1ZSA9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICA6IGBcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzYyAke3Yuc2hvd0NvbHVtbiA/IFwiZGVzYy1jb2x1bW5cIiA6IFwiXCJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2LmhpZGVMYWJlbCA/IFwiXCIgOiB2YWx1ZUxhYmVsZWQubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RpdiA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2LnByZWZpeCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke291dHB1dFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx1ZUxhYmVsZWQuc3VmZml4IHx8IHYuc3VmZml4IHx8IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGV0IG91dHB1dFZhbHVlID0gdi5yb3VuZCA/IHV0aWxzLnJvdW5kKHZhbHVlLCB2LnJvdW5kKSA6IHZhbHVlO1xuXG4gICAgICAgICAgICAgIGlmICh2LmZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID0gdi5mb3JtYXR0ZXIoeyBvcHRpb25zOiB2LCBkYXRhRGF5LCBvdXRwdXRWYWx1ZSB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3V0cHV0VmFsdWUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID0gdXRpbHMuZm9ybWF0TnVtYmVyKG91dHB1dFZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHN0ciArPVxuICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID09IG51bGxcbiAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgOiBgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2LnByZWZpeCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke291dHB1dFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2LnN1ZmZpeCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICA8L2Rpdj5gOyAvLyBlbmQgLml0ZW0tZGV0YWlsXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0ciArPSBgXG4gICAgICAgIDwvZGl2PmA7IC8vIGxpc3QtZGV0YWlsXG5cbiAgICAvL1BJTExTXG4gICAgaWYgKFxuICAgICAgY29uZmlnLnRpbWVsaW5lLmRldGFpbERheS5waWxsc1Zhck5hbWUgJiZcbiAgICAgIGRhdGFEYXkgJiZcbiAgICAgIGRhdGFEYXkudmFsdWVzW2NvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkucGlsbHNWYXJOYW1lXVxuICAgICkge1xuICAgICAgc3RyICs9IGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWxlbWVudHMtZGV0YWlsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPiAke2NvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkucGlsbHNUaXRsZX0gPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWxlbWVudHMtbGlzdFwiPmA7XG5cbiAgICAgIGRhdGFEYXkudmFsdWVzW2NvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkucGlsbHNWYXJOYW1lXS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGUudmFsdWU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvdXRwdXRWYWx1ZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgdmFsdWUgPSB1dGlscy5mb3JtYXROdW1iZXIodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbGVtZW50LWRldGFpbFwiPlxuICAgICAgICAgICAgICA8Yj4ke2UubGFiZWx9PC9iPlxuICAgICAgICAgICAgICAke3ZhbHVlfVxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgIH0pO1xuXG4gICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5gOyAvL2VuZCAuZWxlbWVudC1kZXRhaWwgPiAuZWxlbWVudC1saXN0XG4gICAgfVxuXG4gICAgLy9zdHIgKz0gYDwvZGl2PmA7XG5cbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LmVycm9ycyAmJiBkYXRhRGF5LmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBkYXRhRGF5LmVycm9ycy5mb3JFYWNoKChlcnIpID0+IHtcbiAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnRcIj5cbiAgICAgICAgICAgICR7aWNvbnMuYWxlcnR9XG4gICAgICAgICAgICAke2Vyci5sYWJlbH1cbiAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IG1zZyA9IG51bGw7XG4gICAgbGV0IGF1dGhvciA9IG51bGw7XG4gICAgbGV0IGRhdGVNc2cgPSBudWxsO1xuICAgIGlmIChkYXRhRGF5ICYmIHRhYlNlbGVjdGVkLmZsb2F0Qm94ICYmIHRhYlNlbGVjdGVkLmZsb2F0Qm94Lm1lc3NhZ2VQYXRoKSB7XG4gICAgICBtc2cgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgdGFiU2VsZWN0ZWQuZmxvYXRCb3gubWVzc2FnZVBhdGgpO1xuICAgIH1cblxuICAgIGlmICghbXNnICYmIGRhdGFEYXkgJiYgZGF0YURheS5tZXNzYWdlICYmIGRhdGFEYXkubWVzc2FnZS52YWx1ZSkge1xuICAgICAgbXNnID0gZGF0YURheS5tZXNzYWdlLnZhbHVlO1xuICAgICAgYXV0aG9yID0gZGF0YURheS5tZXNzYWdlLmF1dGhvcjtcbiAgICAgIGRhdGVNc2cgPSBkYXRlVXRpbHMuZm9ybWF0RGF0ZVJlYWRlYWJsZShuZXcgRGF0ZShkYXRhRGF5Lm1lc3NhZ2UuZGF0ZSkpO1xuICAgIH1cblxuICAgIGlmIChtc2cpIHtcbiAgICAgIC8vbXNnID0gbXNnLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikvZywgJzxicj4nKTtcbiAgICAgIHN0ciArPSBgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1zai1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtc2pcIj5cbiAgICAgICAgICAgIDxwcmU+JHttc2cgfHwgXCJcIn08L3ByZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zai1kZXRhaWxcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbWFpbFwiPiAke2F1dGhvciB8fCBcIlwifSA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPiAke2RhdGVNc2cgfHwgXCJcIn0gPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgfVxuXG4gICAgbGV0IHN0ckNvbnRhaW5lciA9IGA8ZGl2IGNsYXNzPVwiZGV0YWlsLWRheSBkZC1oaWRlXCI+ICR7c3RyfSA8L2Rpdj5gO1xuXG4gICAgaWYgKG9ubHlTdHJpbmdDb250ZW50KSByZXR1cm4gc3RyO1xuXG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyQ29udGFpbmVyKTtcbiAgfSxcblxuICAvKipcbiAgICogUmVjcmVhIEhUTUwgZGUgZGV0YWlsRGF5XG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtIC0gSXRlbSByZWxhY2lvbmFkb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IEVsZW1lbnRvIGNvbW8gU3RyaW5nLCBkZSBkZXRhaWxEYXlcbiAgICovXG4gIHJlZHJhd0RldGFpbERheShjb25maWcsIGl0ZW0sIGRhdGFEYXksIHRhYlNlbGVjdGVkKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlRGV0YWlsRGF5KGNvbmZpZywgaXRlbSwgZGF0YURheSwgdGFiU2VsZWN0ZWQsIHRydWUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZXBvc2ljaW9uYSBGbG9hdEJveFxuICAgKiB2ZXJpZmljYSBzaSBlbCBwYXJlbnQgZXN0YSBkZXNwbGVnYWRvLCBwYXJhIG9jdWx0YXIgbG9zIGRhdG9zXG4gICAqXG4gICAqIFNvbG8gYWN0dWFsaXphIGxhcyBhbHR1cmFzIGRlIGxvcyBmbG9hdGJveFxuICAgKiBubyByZWNyZWEgbG9zIGZsb2F0Ym94LCBlcyBtYXMgb3B0aW1vXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtIC0gSXRlbSByZWxhY2lvbmFkb1xuICAgKi9cbiAgcmVwb3NpdGlvbkZsb2F0Qm94KGNvbmZpZywgJGZsb2F0Qm94Q29udGFpbmVyKSB7XG4gICAgJGZsb2F0Qm94Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxvYXQtYm94XCIpLmZvckVhY2goKCRmKSA9PiB7XG4gICAgICBsZXQgaXRlbUlkID0gJGYuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgIGxldCBpdGVtSGVpZ2h0ID0gcGFyc2VGbG9hdChcbiAgICAgICAgdXRpbHMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIilcbiAgICAgICk7XG4gICAgICBsZXQgaXRlbSwgcGFyZW50O1xuICAgICAgKHsgaXRlbSwgcGFyZW50IH0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIGl0ZW1JZCwgXCJjaGlsZFwiLCB0cnVlKSk7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBsZXQgdG9wID0gdXRpbHMuZ2V0UG9zaXRpb25CeUl0ZW0oY29uZmlnLCBpdGVtKTtcbiAgICAgICAgJGYuc3R5bGUudG9wID0gdG9wICogaXRlbUhlaWdodCArIFwicHhcIjtcbiAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQuaXNDbG9zZWQpIHtcbiAgICAgICAgICAkZi5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgfSBlbHNlIGlmICgkZi5jbGFzc0xpc3QuY29udGFpbnMoXCJoaWRlXCIpKSB7XG4gICAgICAgICAgJGYuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVjcmVhIGluZGljYWRvcmVzIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gJGVsZW0gLSBFbGVtZW50byBEb20gZG9uZGUgY3JlYSBsb3MgZWxlbWVudG9zIHNlbGVjY2lvbmFkb3NcbiAgICogQHBhcmFtIHtPYmplY3RbXX0gc2VsZWN0ZWQgLSBBcnJheSBjb24gbG9zIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBxdWUgY29udGllbmUgbG9zIGluZGljYWRvcmVzIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKi9cbiAgcmVkcmF3U2VsZWN0Qm9hcmQoJGVsZW0sIHNlbGVjdGVkKSB7XG4gICAgJGVsZW0uaW5uZXJIVE1MID0gXCJcIjtcbiAgICBsZXQgaGFzTnVtYmVyID0gdHJ1ZTtcblxuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCA9PSAxKSBoYXNOdW1iZXIgPSBmYWxzZTtcblxuICAgICAgc2VsZWN0ZWQuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBsZXQgYXR0cmlidXRlcyA9IFtdO1xuXG4gICAgICAgIGlmIChoYXNOdW1iZXIpIHtcbiAgICAgICAgICBhdHRyaWJ1dGVzLnB1c2goeyBuYW1lOiBcImNhcC1iYWRnZVwiLCB2YWx1ZTogcy5pbmRleCB9KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgJHMgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInNlbGVjdGVkLWRheVwiLFxuICAgICAgICAgIGF0dHJpYnV0ZXNcbiAgICAgICAgfSk7XG4gICAgICAgICRzLnN0eWxlLmxlZnQgPSBzLnBvcy5sZWZ0ICsgXCJweFwiO1xuICAgICAgICAkcy5zdHlsZS50b3AgPSBzLnBvcy50b3AgKyBcInB4XCI7XG4gICAgICAgICRlbGVtLmFwcGVuZCgkcyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIFN0cmluZyBjb24gZXN0aWxvcyBDU1MgZGUgbGEgcG9zaWNpb24gZGUgdW4gZmxvYXRCb3hcbiAgICogY2FsY3VsYWRvIHNlZ3VuIGl0ZW0geSBmZWNoYSBkZSBsb3MgdmFsb3Jlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYSwgcGFyYSB2ZXIgZmVjaGEgZGUgaW5pY2lvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRGF0b3MgZGVsIGRpYSBpbmRpY2Fkb1xuICAgKiBAcGFyYW0ge09iamVjdH0gaXRlbSAtIEl0ZW0gcmVsYWNpb25hZG9cbiAgICogQHJldHVybiB7U3RyaW5nfSBTdHJpbmcgQ1NTIHRvcCB5IGxlZnQgLCBwYXJhIHBvc2ljaW9uYXIgZmxvYXRCb3ggZW4gdGFibGVcbiAgICovXG4gIGdldFBvc2l0aW9uRmxvYXRCb3goY29uZmlnLCBkYXRhLCBpdGVtKSB7XG4gICAgbGV0IGxlZnQgPSBkYXRlVXRpbHMuZGlmZkRheXMoY29uZmlnLnRpbWVsaW5lLnN0YXJ0LCBkYXRhLmRhdGUpO1xuICAgIGxldCB0b3AgPSB1dGlscy5nZXRQb3NpdGlvbkJ5SXRlbShjb25maWcsIGl0ZW0pO1xuICAgIGxldCBkYXlXaWR0aCA9IHBhcnNlRmxvYXQodXRpbHMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIpKTtcbiAgICBsZXQgaXRlbUhlaWdodCA9IHBhcnNlRmxvYXQodXRpbHMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIikpO1xuICAgIGxlZnQgKj0gZGF5V2lkdGg7XG4gICAgdG9wICo9IGl0ZW1IZWlnaHQ7XG4gICAgcmV0dXJuIFwidG9wOiBcIiArIHRvcCArIFwiLjVweDsgbGVmdDpcIiArIGxlZnQgKyBcIi41cHg7XCI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgQm90b24gY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gcHJvcGllZGFkZXMgcGFyYSBib3RvblxuICAgKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuY2xhc3NOYW1lIC0gY2xhc3NlcyBjc3MgcGFyYSBib3RvblxuICAgKiBAcGFyYW0geyp9IHByb3BzLmtleSAtIGtleSBwYXJhIGlkZW50aWZpY2FyIGEgYm90b25cbiAgICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsIC0gVGV4dG8gYm90b25cbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGJvdG9uIGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlQnV0dG9uKHByb3BzKSB7XG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIiR7cHJvcHMuY2xhc3NOYW1lIHx8IFwiXCJ9XCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIlxuICAgICAgfVwiPlxuICAgICAgICAgICAgICAke3Byb3BzLmxhYmVsIHx8IFwiXCJ9XG4gICAgICAgICAgICA8L2J1dHRvbj5gKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBCb3RvbmVzIGRlIGd1YXJkYXIgeSBjYW5jZWxhciBsb3MgZGF0b3MgZGUgZm9ybXVsYXJpbyBkZWwgc2lkZWJhciBkZXJlY2hvXG4gICAqXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBib3RvbmVzIGNyZWFkb3NcbiAgICovXG4gIGNyZWF0ZU5hdlJpZ2h0YnV0dG9ucygpIHtcbiAgICBsZXQgc2F2ZUJ0biA9IHRoaXMuY3JlYXRlQnV0dG9uKHtcbiAgICAgIGxhYmVsOiBcIkd1YXJkYXJcIixcbiAgICAgIGNsYXNzTmFtZTogXCJjYXAtYnRuLXJhaXNlZFwiXG4gICAgfSk7XG4gICAgbGV0IGNhbmNlbEJ0biA9IHRoaXMuY3JlYXRlQnV0dG9uKHtcbiAgICAgIGxhYmVsOiBcIkNhbmNlbGFyXCIsXG4gICAgICBjbGFzc05hbWU6IFwiY2FwLWJ0bi1vdXRsaW5lXCJcbiAgICB9KTtcbiAgICBsZXQgYnRuU2VjdGlvbiA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoXG4gICAgICBgPGRpdiBjbGFzcz1cImJ1dHRvbi1zZWN0aW9uXCI+PC9kaXY+YFxuICAgICk7XG4gICAgYnRuU2VjdGlvbi5hcHBlbmRDaGlsZChzYXZlQnRuKTtcbiAgICBidG5TZWN0aW9uLmFwcGVuZENoaWxkKGNhbmNlbEJ0bik7XG5cbiAgICBzYXZlQnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgc2F2ZUJ0bi5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzYXZlTXVsdGlJbnB1dFwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNhbmNlbEJ0bi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgIGNhbmNlbEJ0bi5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjYW5jZWxNdWx0aUlucHV0XCIsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJ0blNlY3Rpb247XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSW5wdXQgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IFtkYXRhRGF5ID0gbnVsbF0gLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbZGF5U2VsZWN0ZWQgPSBudWxsXSAtIGRhdG9zIGRlbCBkaWEgc2VsZWNjaW9uYWRvXG4gICAqIEBwYXJhbSB7T2JqZWN0W119IFtzZWxlY3RlZCA9IFtdXSAtIGFycmF5IGRlIG9iamV0b3MsIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dChwcm9wcywgZGF0YURheSA9IG51bGwsIGRheVNlbGVjdGVkID0gbnVsbCwgc2VsZWN0ZWQgPSBbXSkge1xuICAgIGxldCByID0gbnVsbDtcblxuICAgIGlmIChwcm9wcy5pZ25vcmVSZW5kZXIgPT0gdHJ1ZSkgcmV0dXJuIHI7XG5cbiAgICBzd2l0Y2ggKHByb3BzLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJjdXN0b21cIjpcbiAgICAgICAgciA9IHByb3BzLnJlbmRlciA/IHByb3BzLnJlbmRlcih7IHByb3BzLCBkYXRhRGF5LCBkYXlTZWxlY3RlZCwgc2VsZWN0ZWQgfSkgOiBudWxsO1xuICAgICAgICByLnNldEF0dHJpYnV0ZShcImlucHV0LWtleVwiLCBwcm9wcy5rZXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlSW5wdXRTZWxlY3QocHJvcHMsIGRhdGFEYXksIGRheVNlbGVjdGVkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dEZpbGUocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJmaWxlTGlua1wiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVGaWxlTGluayhwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlVGV4dChwcm9wcywgc2VsZWN0ZWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0aXRsZVwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVUaXRsZShwcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dE51bWJlcihwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImZsb2F0XCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0RmxvYXQocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJtZXNzYWdlXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0TWVzc2FnZShwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0VGV4dEFyZWEocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dENoZWNrYm94KHByb3BzLCBkYXRhRGF5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaW5wdXRMaXN0XCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0TGlzdChwcm9wcywgZGF0YURheSwgZGF5U2VsZWN0ZWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJpbnB1dC1ib3hcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlSW5wdXRCb3gocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJsaXN0XCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUxpc3QocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkYXRhLWxpc3RcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlRGF0YUxpc3QocHJvcHMsIGRhdGFEYXksIGRheVNlbGVjdGVkLCBzZWxlY3RlZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImJ1dHRvblwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dEJ1dHRvbihwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImJ1dHRvbnMtZ3JvdXBcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlSW5wdXRCdXR0b25zR3JvdXAocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0VGltZShwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0VGV4dChwcm9wcywgZGF0YURheSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSW5wdXQgY29uIGZvcm1hdG8gSG9yYSwgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogVXNhIDIgaW5wdXRzLCBob3JhIHkgbWludXRvc1xuICAgKlxuICAgKiBlbCB2YWx1ZSBxdWUgaW50ZXJwcmV0YSBlcyBTdHJpbmcgSEg6TU1cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IFtkYXRhRGF5ID0gbnVsbF0gLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBpbnB1dCBjcmVhZG9cbiAgICovXG4gIGNyZWF0ZUlucHV0VGltZShwcm9wcywgZGF0YURheSkge1xuICAgIGxldCBoaFZhbHVlID0gXCJcIjtcbiAgICBsZXQgbW1WYWx1ZSA9IFwiXCI7XG5cbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgbGV0IHZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuXG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIjpcIik7XG4gICAgICAgIGhoVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgbW1WYWx1ZSA9IHZhbHVlWzFdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICR7cHJvcHMubGFiZWwgfHwgXCJcIn1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJob3VyXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cInRlc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aGhWYWx1ZX1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbFwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWludXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHttbVZhbHVlfVwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWhpbnRcIj5cbiAgICAgICAgICAgICAgICAke3Byb3BzLnRleHRIaW50IHx8IFwiXCJ9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0ICRoaElucHV0ID0gJGVsZW0ucXVlcnlTZWxlY3RvcihcIi5ob3VyXCIpO1xuICAgIGxldCAkbW1JbnB1dCA9ICRlbGVtLnF1ZXJ5U2VsZWN0b3IoXCIubWludXRlc1wiKTtcblxuICAgICRoaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCAoZSkgPT4ge1xuICAgICAgJGhoSW5wdXQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwiY2hhbmdlVGltZUlucHV0SEhcIiwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBrZXk6IHByb3BzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBlLnNyY0VsZW1lbnQudmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgJG1tSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICAkbW1JbnB1dC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjaGFuZ2VUaW1lSW5wdXRNTVwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIGtleTogcHJvcHMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IGUuc3JjRWxlbWVudC52YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cygkaGhJbnB1dCwgJGVsZW0sIHByb3BzKTtcbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cygkbW1JbnB1dCwgJGVsZW0sIHByb3BzKTtcblxuICAgIHJldHVybiAkZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBUZXh0IGNvbW8gZWxlbWVudG8gRG9tXG4gICAqIFNlIGNvbmZpZ3VyYSBjb21vIGlucHV0LCBwZXJvIG5vIGRldnVlbHZlIGRhdG9zLCBlcyB1biB0ZXh0b1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVUZXh0KHByb3BzLCBzZWxlY3RlZCkge1xuICAgIGxldCBsYWJlbCA9IHByb3BzLmxhYmVsO1xuICAgIGlmIChwcm9wcy5mb3JtYXR0ZXIpIHtcbiAgICAgIGxhYmVsID0gcHJvcHMuZm9ybWF0dGVyKHsgc2VsZWN0ZWQgfSk7XG4gICAgfVxuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtwcm9wcy5jbGFzc05hbWVzIHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICAke2xhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PmApO1xuICAgIHJldHVybiAkZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBUaXRsZSBjb21vIGVsZW1lbnRvIERvbVxuICAgKiBTZSBjb25maWd1cmEgY29tbyBpbnB1dCwgcGVybyBubyBkZXZ1ZWx2ZSBkYXRvcywgZXMgdW4gdGV4dG9cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlVGl0bGUocHJvcHMpIHtcbiAgICBsZXQgY2xhc3NOYW1lcyA9IFwidGV4dC10aXRsZVwiO1xuICAgIGlmIChwcm9wcy5pc1N1YnRpdGxlKSB7XG4gICAgICBjbGFzc05hbWVzID0gXCJ0ZXh0LXN1YnRpdGxlXCI7XG4gICAgfVxuICAgIHJldHVybiBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7Y2xhc3NOYW1lc31cIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5gKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBJbnB1dCB0aXBvIE51bWVyaWNvIGNvbW8gZWxlbWVudG8gRG9tXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIGNvbmZpZyBwYXJhIElucHV0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhRGF5IC0gdmFsb3JlcyBkZSBpdGVtIHkgRGlhLCBvcGNpb25hbFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dE51bWJlcihwcm9wcywgZGF0YURheSkge1xuICAgIGxldCB2YWx1ZSA9IFwiXCI7XG4gICAgaWYgKGRhdGFEYXkgJiYgZGF0YURheS52YWx1ZXMpIHtcbiAgICAgIHZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuICAgIH1cbiAgICB2YWx1ZSA9IHZhbHVlIHx8IFwiXCI7XG5cbiAgICBsZXQgZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuY2xhc3NOYW1lcyB8fCBcIlwifSAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJcbiAgICAgIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlLTIgXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5zdWZmaXggPyBcIihcIiArIHByb3BzLnN1ZmZpeCArIFwiKVwiIDogXCJcIn1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCI+XG5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWhpbnRcIj5cbiAgICAgICAgICAgICAgICAgICR7cHJvcHMudGV4dEhpbnQgfHwgXCJcIn1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+YCk7XG5cbiAgICBsZXQgaW5wdXRFbGVtID0gZWxlbS5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7XG5cbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cyhpbnB1dEVsZW0sIGVsZW0sIHByb3BzKTtcblxuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IHRpcG8gRklsZXBpY2tlciBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRGaWxlKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICBsZXQgZmlsZU5hbWUgPSBcIlwiO1xuICAgIGxldCBmaWxlUGF0aCA9IFwiXCI7XG5cbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgICBmaWxlTmFtZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy5maWxlTmFtZVZhbHVlKTtcbiAgICAgIGZpbGVQYXRoID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLmZpbGVQYXRoVmFsdWUpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgfHwgXCJcIjtcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lIHx8IFwiXCI7XG4gICAgZmlsZVBhdGggPSBmaWxlUGF0aCB8fCBcIlwiO1xuXG4gICAgbGV0IGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmNsYXNzTmFtZXMgfHwgXCJcIn0gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwiXG4gICAgICB9XCI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWlucHV0LWZpbGVcIiA+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzbWFsbC1jbG9zZSBjbGVhci1maWxlLWlucHV0XCI+eDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8bGFiZWwgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LWlucHV0LWZpbGUtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICR7cHJvcHMucGlja2VyTGFiZWwgfHwgXCJTZWxlY2Npb25hciBBcmNoaXZvXCJ9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIHZhbHVlPVwiJHt2YWx1ZX1cIj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbi1saW5rXCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCIke2ZpbGVQYXRofVwiIHRhcmdldD1cIl9ibGFua1wiID5cbiAgICAgICAgICAgICAgICAke2ZpbGVOYW1lfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0ICRpbnB1dEVsZW0gPSBlbGVtLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcbiAgICBsZXQgJGNsZWFyQnRuID0gZWxlbS5xdWVyeVNlbGVjdG9yKFwiLmNsZWFyLWZpbGUtaW5wdXRcIik7XG4gICAgbGV0ICRmaWxlSW5wdXRMYWJlbCA9IGVsZW0ucXVlcnlTZWxlY3RvcihcIi5uYXYtaW5wdXQtZmlsZS1sYWJlbFwiKTtcblxuICAgICRpbnB1dEVsZW0uYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCAoZXZ0KSA9PiB7XG4gICAgICBsZXQgZmlsZU5hbWUgPSAkaW5wdXRFbGVtLmZpbGVzWzBdLm5hbWU7XG4gICAgICAkZmlsZUlucHV0TGFiZWwudGV4dENvbnRlbnQgPSBmaWxlTmFtZTtcbiAgICB9KTtcblxuICAgICRjbGVhckJ0bi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2dCkgPT4ge1xuICAgICAgJGlucHV0RWxlbS52YWx1ZSA9IFwiXCI7XG4gICAgICAkZmlsZUlucHV0TGFiZWwudGV4dENvbnRlbnQgPSBwcm9wcy5waWNrZXJMYWJlbCB8fCBcIlNlbGVjY2lvbmFyIEFyY2hpdm9cIjtcbiAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIGNyZWF0ZUZpbGVMaW5rKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IGZpbGVOYW1lID0gXCJcIjtcbiAgICBsZXQgZmlsZVBhdGggPSBcIlwiO1xuXG4gICAgaWYgKGRhdGFEYXkgJiYgZGF0YURheS52YWx1ZXMpIHtcbiAgICAgIC8vdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgICBmaWxlTmFtZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy5maWxlTmFtZVZhbHVlKTtcbiAgICAgIGZpbGVQYXRoID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLmZpbGVQYXRoVmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChmaWxlTmFtZSA9PSBcIlwiKSByZXR1cm4gbnVsbDtcblxuICAgIGZpbGVOYW1lID0gZmlsZU5hbWUgfHwgXCJcIjtcbiAgICBmaWxlUGF0aCA9IGZpbGVQYXRoIHx8IFwiXCI7XG5cbiAgICBsZXQgZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuY2xhc3NOYW1lcyB8fCBcIlwifSAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJcbiAgICAgIH1cIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uLWxpbmtcIj5cbiAgICAgICAgICAgICAgPGEgaHJlZj1cIiR7ZmlsZVBhdGh9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgPlxuICAgICAgICAgICAgICAgICR7ZmlsZU5hbWV9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPC9kaXY+YCk7XG5cbiAgICByZXR1cm4gZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBsaXN0YSBkZSBJbnB1dHMsIGNvbiBhcnJheSBkZSB2YWxvcmVzLCBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHBhcmFtIHtPYmplY3R9IFtkYXlTZWxlY3RlZCA9IG51bGxdIC0gZGF0b3MgZGVsIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRMaXN0KHByb3BzLCBkYXRhRGF5LCBkYXlTZWxlY3RlZCA9IG51bGwpIHtcbiAgICBsZXQgaW5wdXRMaXN0ID0gW107XG5cbiAgICAvL29idGllbmUgaW5wdXRzIGRlZmF1bHQsIHBhcmEgY3JlYXJsb3MsIHNpbiB2YWxvcmVzXG4gICAgaWYgKFxuICAgICAgZGF5U2VsZWN0ZWQgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoZGF5U2VsZWN0ZWQuaXRlbS52YWx1ZXNbcHJvcHMuaW5wdXRMaXN0XSlcbiAgICApIHtcbiAgICAgIGlucHV0TGlzdCA9IGRheVNlbGVjdGVkLml0ZW0udmFsdWVzW3Byb3BzLmlucHV0TGlzdF0ubWFwKChpbnB1dFJvdykgPT4ge1xuICAgICAgICAvL2xpbXBpYSBpbnB1dExpc3QgaW5wdXRzXG4gICAgICAgIGlucHV0Um93LmlucHV0cy5tYXAoKGlucHV0KSA9PiB7XG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBudWxsO1xuICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy9vYnRpZW5lIHZhbG9yZXMgZGVsIGRpYVxuICAgICAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgICAgIGxldCBpbnB1dFZhbHVlcyA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YWx1ZXNQYXRoKTtcblxuICAgICAgICAgIC8vYXV0b3JyZWxsZW5hXG4gICAgICAgICAgaWYgKGlucHV0VmFsdWVzKSB7XG4gICAgICAgICAgICBpbnB1dFJvdy5pbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IGlucHV0VmFsdWVzLmZpbmQoKHYpID0+IHYuaWQgPT0gaW5wdXRSb3cuaWQpO1xuICAgICAgICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlcyA/IHZhbHVlc1tpbnB1dC52YXJOYW1lXSA6IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5wdXRSb3c7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgc3RyID0gYDxkaXYgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIiBjbGFzcz1cImlucHV0LXNlY3Rpb24tbGlzdCAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPiBcbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgaW5wdXRMaXN0LmZvckVhY2goKGlucHV0Um93KSA9PiB7XG4gICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy50b1JpZ2h0ID8gXCJ0by1yaWdodFwiIDogXCJcIlxuICAgICAgICB9XCIgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpbnB1dFJvdy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuICAgICAgaW5wdXRSb3cuaW5wdXRzLmZvckVhY2goKGlucHV0KSA9PiB7XG4gICAgICAgIHN0ciArPSBgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbi1jb2xcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpbnB1dC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWlkPVwiJHtpbnB1dFJvdy5pZH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWxhYmVsPVwiJHtpbnB1dC5sYWJlbH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWlucHV0IHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aW5wdXQudmFsdWV9XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9KTtcbiAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH0pO1xuICAgIHN0ciArPSBgPC9kaXY+YDtcblxuICAgIGxldCBlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuXG4gICAgbGV0IGlucHV0c0VsZW0gPSBlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFwiKTtcbiAgICBpbnB1dHNFbGVtLmZvckVhY2goKGlucHV0RWxlbSkgPT4gdGhpcy5hZGRLZXlEb3duSW5wdXRFdmVudHMoaW5wdXRFbGVtLCBlbGVtLCBwcm9wcykpO1xuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIGNyZWF0ZUlucHV0U2VsZWN0KHByb3BzLCBkYXRhRGF5LCBkYXlTZWxlY3RlZCA9IG51bGwpIHtcbiAgICBsZXQgdmFsdWUgPSBudWxsO1xuICAgIGxldCBvcHRpb25zID0gcHJvcHMub3B0aW9ucztcblxuICAgIGlmIChkYXRhRGF5ICYmIGRhdGFEYXkudmFsdWVzKSB7XG4gICAgICBsZXQgdmFsID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuICAgICAgdmFsdWUgPSB2YWwgPyB2YWwudmFsdWUgOiBudWxsO1xuICAgIH1cblxuICAgIGxldCBzdHIgPSBgPGRpdiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiIGNsYXNzPVwiJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfVwiID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uIFwiID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImlucHV0LXNlbGVjdFwiPlxuXG4gICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiAke3ZhbHVlID09IG51bGwgPyBcInNlbGVjdGVkXCIgOiBcIlwifT5cbiAgICAgICAgICAgICAgICAgICR7cHJvcHMubm9EYXRhTGFiZWwgfHwgXCItLSBzaW4gYXNpZ25hciAtLVwifVxuICAgICAgICAgICAgICAgICA8L29wdGlvbj5cblxuICAgICAgICBgO1xuXG4gICAgb3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcbiAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIke29wdGlvbi5pZH1cIiAke29wdGlvbi5pZCA9PSB2YWx1ZSA/IFwic2VsZWN0ZWRcIiA6IFwiXCJcbiAgICAgICAgfT5cbiAgICAgICAgICAgICAgICAgJHtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIGA7XG4gICAgfSk7XG4gICAgc3RyICs9IGBcblxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcblxuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IGRlIHRleHRvIFRleHRBcmVhIGNvbW8gZWxlbWVudG8gRG9tXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIGNvbmZpZyBwYXJhIElucHV0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhRGF5IC0gdmFsb3JlcyBkZSBpdGVtIHkgRGlhLCBvcGNpb25hbFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dFRleHRBcmVhKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgfVxuICAgIGxldCBlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cIlwiIHZhbHVlPVwiJHt2YWx1ZX1cIj48L3RleHRhcmVhPlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGlucHV0RWxlbSA9IGVsZW0ucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO1xuICAgIHRoaXMuYWRkS2V5RG93bklucHV0RXZlbnRzKGlucHV0RWxlbSwgZWxlbSwgcHJvcHMpO1xuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IGRlIE1lbnNhamUgY29tbyBlbGVtZW50byBEb21cbiAgICogdXRpbGl6YSBUZXh0QXJlYVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRNZXNzYWdlKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gZGF0YURheSA/IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKSA6IG51bGw7XG4gICAgbGV0IGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiBtc2otaW5wdXQtY29udGFpbmVyICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCJcbiAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgIE1lbnNhamVcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cIm1zalwiPiR7dmFsdWUgfHwgXCJcIn08L3RleHRhcmVhPlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGlucHV0RWxlbSA9IGVsZW0ucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO1xuICAgIC8vdGhpcy5hZGRLZXlEb3duSW5wdXRFdmVudHMoaW5wdXRFbGVtKTtcbiAgICByZXR1cm4gZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBJbnB1dCBkZSB0ZXh0byBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRUZXh0KHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgfVxuICAgIGxldCBlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwibmF2LWlucHV0XCIgdmFsdWU9XCIke3ZhbHVlfVwiPlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGlucHV0RWxlbSA9IGVsZW0ucXVlcnlTZWxlY3RvcihcImlucHV0XCIpO1xuICAgIHRoaXMuYWRkS2V5RG93bklucHV0RXZlbnRzKGlucHV0RWxlbSwgZWxlbSwgcHJvcHMpO1xuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IE51bWVybyBGbG90YW50ZSwgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGFEYXkgLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBpbnB1dCBjcmVhZG9cbiAgICovXG4gIGNyZWF0ZUlucHV0RmxvYXQocHJvcHMsIGRhdGFEYXkpIHtcbiAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgIGlmIChkYXRhRGF5ICYmIGRhdGFEYXkudmFsdWVzKSB7XG4gICAgICB2YWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKTtcbiAgICB9XG4gICAgbGV0IGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc3VidGl0bGUgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAke3Byb3BzLmxhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cIm5hdi1pbnB1dFwiIHZhbHVlPVwiJHt2YWx1ZX1cIj5cbiAgICAgICAgICA8L2Rpdj5gKTtcblxuICAgIGxldCBpbnB1dEVsZW0gPSBlbGVtLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cyhpbnB1dEVsZW0sIGVsZW0sIHByb3BzKTtcbiAgICByZXR1cm4gZWxlbTtcbiAgfSxcblxuICBjcmVhdGVEYXRhTGlzdChwcm9wcywgZGF0YURheSwgZGF5U2VsZWN0ZWQsIHNlbGVjdGVkKSB7XG4gICAgbGV0IGxpc3QgPSBbXTtcbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgbGlzdCA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKSB8fCBbXTtcbiAgICB9XG5cbiAgICBsZXQgc2VhcmNoSW5wdXQgPSBgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIlwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIlwiIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJidXNjYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jbGVhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke2ljb25zLmNsb3NlSWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuXG4gICAgbGV0IGVkaXRCdG4gPSBcIlwiO1xuXG4gICAgaWYgKHByb3BzLmVkaXRCdXR0b24pIHtcbiAgICAgIGVkaXRCdG4gPSBgPGJ1dHRvbiBjbGFzcz1cImNhcC1idG4tcmFpc2VkIGNhcC1idG4tc20gZWRpdC1idG5cIiBpbnB1dC1rZXk9XCIke3Byb3BzLmVkaXRCdXR0b24ua2V5fVwiPlxuICAgICAgICAgICAgICAgICAgICAke3Byb3BzLmVkaXRCdXR0b24ubGFiZWx9IFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+IGA7XG4gICAgfVxuXG4gICAgbGV0IHN0ciA9IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAke2VkaXRCdG59XHRcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3ggXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgICR7c2VhcmNoSW5wdXR9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+IGA7XG5cbiAgICBsZXQgJGVsID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgIGxldCAkc2VhcmNoSW5wdXQgPSAkZWwucXVlcnlTZWxlY3RvcihcIi5zZWFyY2gtaW5wdXRcIik7XG4gICAgbGV0ICRzZWFyY2hJbnB1dENsZWFyID0gJGVsLnF1ZXJ5U2VsZWN0b3IoXCIuc2VhcmNoLWlucHV0LWNsZWFyXCIpO1xuICAgIGxldCAkaW5wdXRCb3ggPSAkZWwucXVlcnlTZWxlY3RvcihcIi5pbnB1dC1ib3hcIik7XG5cbiAgICBsZXQgJGl0ZW1zID0gbGlzdC5tYXAoKGl0ZW0sIGopID0+IHtcbiAgICAgIGxldCBsYWJlbCA9XG4gICAgICAgIHV0aWxzLmdldFZhckJ5UGF0aChpdGVtLCBwcm9wcy52YXJOYW1lTGFiZWwpIHx8IGRhdGFEYXkubGFiZWwgfHwgXCJfX1wiO1xuXG4gICAgICBsZXQgJGVsSXRlbSA9IHRoaXMuY3JlYXRlRGF0YUxpc3RJdGVtKHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlVGV4dDogdXRpbHMuZ2V0VmFyQnlQYXRoKGl0ZW0sIHByb3BzLnZhck5hbWVWYWx1ZVRleHQpIHx8IFwiXCIsXG4gICAgICAgIHN1YlRleHQ6IHV0aWxzLmdldFZhckJ5UGF0aChpdGVtLCBwcm9wcy52YXJOYW1lU3ViVGV4dCkgfHwgXCJcIixcbiAgICAgICAgaWQ6IFwibGlzdC1pdGVtLVwiICsgKGRhdGFEYXkuaWQgfHwgaiksXG4gICAgICAgIGtleTogXCJsaXN0LWl0ZW0tXCIgKyAoZGF0YURheS5pZCB8fCBqKSxcbiAgICAgICAgdG9vbHRpcDogdXRpbHMuZ2V0VmFyQnlQYXRoKGl0ZW0sIHByb3BzLnZhck5hbWVUb29sdGlwKSB8fCBsYWJlbCxcbiAgICAgICAgLy9jb2xvckljb246IFwiYy1yZWRcIixcbiAgICAgICAgbGluazogdXRpbHMuZ2V0VmFyQnlQYXRoKGl0ZW0sIHByb3BzLnZhck5hbWVMaW5rKSB8fCBudWxsLFxuICAgICAgICBzdWZmaXg6IHV0aWxzLmdldFZhckJ5UGF0aChpdGVtLCBwcm9wcy52YXJOYW1lU3VmZml4KSB8fCBudWxsLFxuICAgICAgICAvL3ZhbHVlOiBKU09OLnN0cmluZ2lmeSh1dGlscy5nZXRWYXJCeVBhdGgoaXRlbSwgcHJvcHMudmFyTmFtZUlucHV0KSkgfHwge31cbiAgICAgIH0pO1xuICAgICAgJGlucHV0Qm94LmFwcGVuZENoaWxkKCRlbEl0ZW0pO1xuICAgIH0pO1xuXG4gICAgJHNlYXJjaElucHV0Q2xlYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgJHNlYXJjaElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9KTtcblxuICAgICRzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZSkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICRzZWFyY2hJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICRzZWFyY2hJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImlucHV0XCIsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAkc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICBsZXQgJGlucHV0cyA9IFtdO1xuICAgICAgJGlucHV0cyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1pbmktaW5wdXQtc2VjdGlvblwiKSB8fCBbXTtcbiAgICAgICRpbnB1dHMuZm9yRWFjaCgoJGkpID0+IHtcbiAgICAgICAgbGV0IGxhYmVsID0gJGkuZ2V0QXR0cmlidXRlKFwibGFiZWxcIik7XG4gICAgICAgIGxldCBzZWFyY2ggPSAkc2VhcmNoSW5wdXQudmFsdWU7XG4gICAgICAgIGlmIChsYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICRpLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICRpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5lZGl0QnV0dG9uLm9uQ2xpY2spIHtcbiAgICAgIGxldCBidXR0b24gPSAkZWwucXVlcnlTZWxlY3RvcihcImJ1dHRvbi5lZGl0LWJ0blwiKTtcbiAgICAgIGlmIChidXR0b24gJiYgcHJvcHMuZWRpdEJ1dHRvbikge1xuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PlxuICAgICAgICAgIHByb3BzLmVkaXRCdXR0b24ub25DbGljayh7XG4gICAgICAgICAgICBldmVudDogZSxcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgZGF0YURheSxcbiAgICAgICAgICAgIGRheVNlbGVjdGVkLFxuICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAkZWxlbWVudDogJGVsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgICRpdGVtcy5mb3JFYWNoKCgkaSkgPT4ge1xuICAgICAgICAkZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgICAgcHJvcHMuZWRpdEJ1dHRvbi5vbkNsaWNrKHtcbiAgICAgICAgICAgIGV2ZW50OiBlLFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBkYXRhRGF5LFxuICAgICAgICAgICAgZGF5U2VsZWN0ZWQsXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICRlbGVtZW50OiAkZWxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gJGVsO1xuICB9LFxuXG4gIGNyZWF0ZURhdGFMaXN0SXRlbSh7XG4gICAgbGFiZWwgPSBcIlwiLFxuICAgIHZhbHVlVGV4dCA9IFwiXCIsXG4gICAgc3ViVGV4dCA9IFwiXCIsXG4gICAgaWQgPSBcIlwiLFxuICAgIGtleSA9IFwiXCIsXG4gICAgdG9vbHRpcCA9IFwiXCIsXG4gICAgY29sb3JJY29uID0gXCJcIixcbiAgICBsaW5rID0gbnVsbCxcbiAgICBzdWZmaXggPSBudWxsLFxuICAgIHZhbHVlID0gXCJcIlxuICB9KSB7XG4gICAgbGV0IHRvb2x0aXBTdHIgPSBcIlwiO1xuICAgIGxldCBpY29uU3RyID0gbnVsbDtcbiAgICBsZXQgbGlua1N0ciA9IFwiXCI7XG4gICAgbGV0IHN0ciA9IFwiXCI7XG5cbiAgICBpZiAodG9vbHRpcCkge1xuICAgICAgdG9vbHRpcFN0ciA9IGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgJHt0b29sdGlwfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICB9XG5cbiAgICBpZiAoY29sb3JJY29uKSB7XG4gICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihpdGVtRm9ybWF0ZWQuY29sb3JJY29uKSkge1xuICAgICAgICBpY29uU3RyID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQ6JHtjb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpY29uU3RyID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb24gJHtjb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxpbmspIHtcbiAgICAgIGxpbmtTdHIgPSBgPGEgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiJHtsaW5rfVwiPiR7aWNvbnMubGlua0ljb259PC9hPiBgO1xuICAgIH1cblxuICAgIHN0ciArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uIGNsaWNrZWFibGUgJHtpY29uU3RyID8gXCJoYXMtaWNvblwiIDogXCJcIiB9IFwiIFxuICAgICAgICAgICAgICAgIGxhYmVsPVwiJHtsYWJlbH1cIiBcbiAgICAgICAgICAgICAgICBkYXRhLWlkPVwiJHtpZH1cIlxuICAgICAgICAgICAgICAgIGRhdGEta2V5PVwiJHtrZXl9XCJcbiAgICAgICAgICAgICAgICBkYXRhLXZhbHVlPVwiJHt2YWx1ZSB8fCAnJ31cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICR7aWNvblN0ciB8fCBcIlwifVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tdGl0bGVzXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAke2xhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1zdWJ0aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAke3N1YlRleHR9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWNvbnRlbnRcIiA+XG4gICAgICAgICAgICAgICAgICAke3ZhbHVlVGV4dH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1zdWZmaXhcIiA+XG4gICAgICAgICAgICAgICAgICAke3N1ZmZpeH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICR7bGlua1N0cn1cblxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAke3Rvb2x0aXBTdHJ9XG4gICAgICAgICAgICA8L2Rpdj5gO1xuICAgIHJldHVybiBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKHN0cik7XG4gIH0sXG5cbiAgY3JlYXRlTGlzdChwcm9wcywgZGF0YURheSkge1xuICAgIGxldCB0YWJzQ29udGFpbmVyID0gXCJcIjtcblxuICAgIGlmIChwcm9wcy50YWJzKSB7XG4gICAgICBsZXQgdGFicyA9IFwiXCI7XG4gICAgICBwcm9wcy50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICB0YWJzICs9IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveC10YWJcIiB0YWIta2V5PVwiJHt0YWIua2V5fVwiPlxuICAgICAgICAgICR7dGFiLm5hbWV9XG4gICAgICAgIDwvZGl2PmA7XG4gICAgICB9KTtcblxuICAgICAgdGFic0NvbnRhaW5lciA9IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveC10YWItY29udGFpbmVyXCI+XG4gICAgICAgICR7dGFic31cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIGxldCBzZWFyY2hJbnB1dCA9IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cIlwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIlwiIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJidXNjYXJcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jbGVhclwiPlxuICAgICAgICAgJHtpY29ucy5jbG9zZUljb259XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgYDtcblxuICAgIGxldCBzdHIgPSBgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICR7dGFic0NvbnRhaW5lcn1cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveCBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuXG4gICAgICAgICAgICAke3NlYXJjaElucHV0fVxuICAgICAgYDtcblxuICAgIC8vVE9ETyBvYnRlbmVyIGlucHV0IHNlZ3VuIGZpbGFcbiAgICBpZiAocHJvcHMuaW5wdXRzKSB7XG4gICAgICBwcm9wcy5pbnB1dHMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICBpZiAoaS5pc1RpdGxlKSB7XG4gICAgICAgICAgbGV0IHRvb2x0aXAgPSBcIlwiO1xuICAgICAgICAgIGxldCBpY29uID0gbnVsbDtcblxuICAgICAgICAgIGlmIChpLnRvb2x0aXApIHtcbiAgICAgICAgICAgIHRvb2x0aXAgPSBgXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICR7aS50b29sdGlwfVxuICAgICAgICAgICAgICAgICAgICAke2kuc3VmZml4ID8gXCIoXCIgKyBpLnN1ZmZpeCArIFwiKVwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGkuY29sb3JJY29uKSB7XG4gICAgICAgICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihpLmNvbG9ySWNvbikpIHtcbiAgICAgICAgICAgICAgaWNvbiA9IGA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1pY29uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiR7aS5jb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpY29uID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb24gJHtpLmNvbG9ySWNvbn1cIj4gPC9kaXY+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbiBpcy10aXRsZSAgJHtpY29uID8gXCJoYXMtaWNvblwiIDogXCJcIlxuICAgICAgICAgICAgfVwiIGlucHV0LXRhYi1rZXk9XCIke2kudGFiS2V5IHx8IFwiXCJ9XCIgbGFiZWw9XCIke2kubGFiZWx9XCI+XG4gICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAke2ljb24gfHwgXCJcIn1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgJHtpLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAke3Rvb2x0aXB9XG4gICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0b29sdGlwID0gXCJcIjtcbiAgICAgICAgICBsZXQgaWNvbiA9IG51bGw7XG4gICAgICAgICAgbGV0IGxpbmsgPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKGkudG9vbHRpcCkge1xuICAgICAgICAgICAgdG9vbHRpcCA9IGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtpLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpLmNvbG9ySWNvbikge1xuICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IoaS5jb2xvckljb24pKSB7XG4gICAgICAgICAgICAgIGljb24gPSBgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0taWNvblwiIHN0eWxlPVwiYmFja2dyb3VuZDoke2kuY29sb3JJY29ufVwiPiA8L2Rpdj5gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWNvbiA9IGA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1pY29uICR7aS5jb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGkubGluaykge1xuICAgICAgICAgICAgbGluayA9IGA8YSBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tbGlua1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIke2kubGlua31cIj5cbiAgICAgICAgICAgICAgICAke2ljb25zLmxpbmtJY29ufVxuICAgICAgICAgICAgICAgIDwvYT4gYDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbiAgJHtpY29uID8gXCJoYXMtaWNvblwiIDogXCJcIlxuICAgICAgICAgICAgfVwiIGlucHV0LXRhYi1rZXk9XCIke2kudGFiS2V5IHx8IFwiXCJ9XCIgbGFiZWw9XCIke2kubGFiZWx9XCI+XG4gICAgICAgICAgICAgIDxsYWJlbD5cblxuICAgICAgICAgICAgICAgICR7aWNvbn1cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRpdGxlIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAke2kubGFiZWx9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1zdWZmaXhcIiA+JHtpLnN1ZmZpeCA/IFwiKFwiICsgaS5zdWZmaXggKyBcIilcIiA6IFwiXCJcbiAgICAgICAgICAgIH08L2Rpdj5cblxuICAgICAgICAgICAgICAgICR7bGlua31cblxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXJ0XCI+IHN0YXJ0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW5kXCI+IGVuZCA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAke3Rvb2x0aXB9XG4gICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzdHIgKz0gYFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PiBgO1xuXG4gICAgbGV0ICRlbCA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcbiAgICBsZXQgJHRhYnMgPSAkZWwucXVlcnlTZWxlY3RvckFsbChcIi5pbnB1dC1ib3gtdGFiW3RhYi1rZXldXCIpIHx8IFtdO1xuICAgIGxldCAkc2VhcmNoSW5wdXQgPSAkZWwucXVlcnlTZWxlY3RvcihcIi5zZWFyY2gtaW5wdXRcIikgfHwgbnVsbDtcbiAgICBsZXQgJHNlYXJjaElucHV0Q2xlYXIgPSAkZWwucXVlcnlTZWxlY3RvcihcIi5zZWFyY2gtaW5wdXQtY2xlYXJcIikgfHwgbnVsbDtcblxuICAgICR0YWJzLmZvckVhY2goKHQpID0+IHtcbiAgICAgIHQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0SW5wdXRCb3hUYWIodCwgJGVsKTtcbiAgICAgICAgJHNlYXJjaElucHV0LnZhbHVlID0gXCJcIjtcbiAgICAgICAgJHNlYXJjaElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaWYgKCRzZWFyY2hJbnB1dENsZWFyKSB7XG4gICAgICAkc2VhcmNoSW5wdXRDbGVhci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgJHNlYXJjaElucHV0LnZhbHVlID0gXCJcIjtcbiAgICAgICAgJHNlYXJjaElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICgkc2VhcmNoSW5wdXQpIHtcbiAgICAgICRzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZSkgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgICAgICRzZWFyY2hJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImlucHV0XCIsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAkc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICAgIGxldCAkdGFiU2VsZWN0ZWQgPVxuICAgICAgICAgICRlbC5xdWVyeVNlbGVjdG9yKFwiLmlucHV0LWJveC10YWJbdGFiLWtleV0uYWN0aXZlXCIpIHx8IG51bGw7XG4gICAgICAgIGxldCAkaW5wdXRzID0gW107XG4gICAgICAgIGlmICgkdGFiU2VsZWN0ZWQpIHtcbiAgICAgICAgICBsZXQgdGFiS2V5ID0gJHRhYlNlbGVjdGVkLmdldEF0dHJpYnV0ZShcInRhYi1rZXlcIik7XG4gICAgICAgICAgJGlucHV0cyA9XG4gICAgICAgICAgICAkZWwucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgXCIubWluaS1pbnB1dC1zZWN0aW9uW2lucHV0LXRhYi1rZXk9J1wiICsgdGFiS2V5ICsgXCInXVwiXG4gICAgICAgICAgICApIHx8IFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICRpbnB1dHMgPSAkZWwucXVlcnlTZWxlY3RvckFsbChcIi5taW5pLWlucHV0LXNlY3Rpb25cIikgfHwgW107XG4gICAgICAgIH1cbiAgICAgICAgJGlucHV0cy5mb3JFYWNoKCgkaSkgPT4ge1xuICAgICAgICAgIGxldCBsYWJlbCA9ICRpLmdldEF0dHJpYnV0ZShcImxhYmVsXCIpO1xuICAgICAgICAgIGxldCBzZWFyY2ggPSAkc2VhcmNoSW5wdXQudmFsdWU7XG4gICAgICAgICAgaWYgKGxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICAkaS5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZVwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJGkuY2xhc3NMaXN0LmFkZChcImhpZGVcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0SW5wdXRCb3hUYWIoXy5maXJzdCgkdGFicyksICRlbCk7XG5cbiAgICByZXR1cm4gJGVsO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0Qm94LCBjb21vIGVsZW1lbnRvIERvbVxuICAgKiB1biBJbnB1dEJveCBlcyB1biBjb250ZW5lZG9yIGNvbiB1bmEgbGlzdGEgZGUgaW5wdXRzXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIGNvbmZpZyBwYXJhIElucHV0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhRGF5IC0gdmFsb3JlcyBkZSBpdGVtIHkgRGlhLCBvcGNpb25hbFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dEJveChwcm9wcywgZGF0YURheSkge1xuICAgIGxldCB2YWx1ZSA9IFtdO1xuICAgIGlmIChkYXRhRGF5ICYmIGRhdGFEYXkudmFsdWVzKSB7XG4gICAgICB2YWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKTtcbiAgICB9XG5cbiAgICBsZXQgdGFic0NvbnRhaW5lciA9IFwiXCI7XG5cbiAgICBpZiAocHJvcHMudGFicykge1xuICAgICAgbGV0IHRhYnMgPSBcIlwiO1xuICAgICAgcHJvcHMudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgdGFicyArPSBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3gtdGFiXCIgdGFiLWtleT1cIiR7dGFiLmtleX1cIj5cbiAgICAgICAgICAke3RhYi5uYW1lfVxuICAgICAgICA8L2Rpdj5gO1xuICAgICAgfSk7XG5cbiAgICAgIHRhYnNDb250YWluZXIgPSBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3gtdGFiLWNvbnRhaW5lclwiPlxuICAgICAgICAke3RhYnN9XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG5cbiAgICBsZXQgc2VhcmNoSW5wdXQgPSBgXG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8aW5wdXQgaWQ9XCJcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJcIiBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIHBsYWNlaG9sZGVyPVwiYnVzY2FyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWFyY2gtaW5wdXQtY2xlYXJcIj5cbiAgICAgICAgICR7aWNvbnMuY2xvc2VJY29ufVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG5cbiAgICBsZXQgc3RyID0gYFxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc3VidGl0bGUgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAke3Byb3BzLmxhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAke3RhYnNDb250YWluZXJ9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3ggXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cblxuICAgICAgICAgICAgJHtzZWFyY2hJbnB1dH1cbiAgICAgIGA7XG5cbiAgICBpZiAocHJvcHMuaW5wdXRzKSB7XG4gICAgICBwcm9wcy5pbnB1dHMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICBpZiAoaS5pc1RpdGxlKSB7XG4gICAgICAgICAgbGV0IHRvb2x0aXAgPSBcIlwiO1xuICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcblxuICAgICAgICAgIGlmIChpLnRvb2x0aXApIHtcbiAgICAgICAgICAgIHRvb2x0aXAgPSBgXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICR7aS50b29sdGlwfVxuICAgICAgICAgICAgICAgICAgICAke2kuc3VmZml4ID8gXCIoXCIgKyBpLnN1ZmZpeCArIFwiKVwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGkuY29sb3JJY29uKSB7XG4gICAgICAgICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihpLmNvbG9ySWNvbikpIHtcbiAgICAgICAgICAgICAgaWNvbiA9IGA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1pY29uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiR7aS5jb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpY29uID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb24gJHtpLmNvbG9ySWNvbn1cIj4gPC9kaXY+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbiBpcy10aXRsZVwiIGlucHV0LXRhYi1rZXk9XCIke2kudGFiS2V5IHx8IFwiXCJcbiAgICAgICAgICAgIH1cIiBsYWJlbD1cIiR7aS5sYWJlbH1cIj5cbiAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICR7aWNvbn1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgJHtpLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAke3Rvb2x0aXB9XG4gICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB2YWx1ZV9mb3VuZCA9IHZhbHVlID8gdmFsdWUuZmluZCgodmFsKSA9PiB2YWwuaWQgPT0gaS5pZCkgOiBudWxsO1xuICAgICAgICAgIGxldCB2ID0gdmFsdWVfZm91bmQgfHwgXCJcIjtcbiAgICAgICAgICBsZXQgaW5wdXRWYWx1ZSA9XG4gICAgICAgICAgICBwcm9wcy52YXJOYW1lSW5wdXQgJiYgdltwcm9wcy52YXJOYW1lSW5wdXRdXG4gICAgICAgICAgICAgID8gdltwcm9wcy52YXJOYW1lSW5wdXRdXG4gICAgICAgICAgICAgIDogdi52YWx1ZTtcbiAgICAgICAgICBsZXQgdG9vbHRpcCA9IFwiXCI7XG4gICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgIGxldCBsaW5rID0gXCJcIjtcblxuICAgICAgICAgIGlmIChpLnRvb2x0aXApIHtcbiAgICAgICAgICAgIHRvb2x0aXAgPSBgXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICR7aS50b29sdGlwfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaS5jb2xvckljb24pIHtcbiAgICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKGkuY29sb3JJY29uKSkge1xuICAgICAgICAgICAgICBpY29uID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQ6JHtpLmNvbG9ySWNvbn1cIj4gPC9kaXY+YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGljb24gPSBgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbiAke2kuY29sb3JJY29ufVwiPiA8L2Rpdj5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpLmxpbmspIHtcbiAgICAgICAgICAgIGxpbmsgPSBgPGEgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiJHtpLmxpbmt9XCI+XG4gICAgICAgICAgICAgICAgJHtpY29ucy5saW5rSWNvbn1cbiAgICAgICAgICAgICAgICA8L2E+IGA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24gJHtpY29uID8gXCJoYXMtaWNvblwiIDogXCJcIlxuICAgICAgICAgICAgfVwiIGlucHV0LXRhYi1rZXk9XCIke2kudGFiS2V5IHx8IFwiXCJ9XCIgbGFiZWw9XCIke2kubGFiZWx9XCI+XG4gICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW5pLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1pZD1cIiR7aS5pZCB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtpLmtleSB8fCBpLmxhYmVsfVwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke2lucHV0VmFsdWUgfHwgXCJcIn1cIj5cblxuICAgICAgICAgICAgICAgICR7aWNvbiB8fCBcIlwifVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tdGl0bGUgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICR7aS5sYWJlbH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXN1ZmZpeFwiID4ke2kuc3VmZml4ID8gXCIoXCIgKyBpLnN1ZmZpeCArIFwiKVwiIDogXCJcIlxuICAgICAgICAgICAgfTwvZGl2PlxuXG4gICAgICAgICAgICAgICAgJHtsaW5rfVxuXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICR7dG9vbHRpcH1cbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0ciArPSBgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+IGA7XG5cbiAgICBsZXQgJGVsID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgIGxldCAkdGFicyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLmlucHV0LWJveC10YWJbdGFiLWtleV1cIikgfHwgW107XG4gICAgbGV0ICRpbnB1dHMgPSAkZWwucXVlcnlTZWxlY3RvckFsbChcImlucHV0Lm1pbmktaW5wdXRcIikgfHwgW107XG4gICAgbGV0ICRzZWFyY2hJbnB1dCA9ICRlbC5xdWVyeVNlbGVjdG9yKFwiLnNlYXJjaC1pbnB1dFwiKSB8fCBudWxsO1xuICAgIGxldCAkc2VhcmNoSW5wdXRDbGVhciA9ICRlbC5xdWVyeVNlbGVjdG9yKFwiLnNlYXJjaC1pbnB1dC1jbGVhclwiKSB8fCBudWxsO1xuXG4gICAgJHRhYnMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RJbnB1dEJveFRhYih0LCAkZWwpO1xuICAgICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgICAkc2VhcmNoSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoJHNlYXJjaElucHV0Q2xlYXIpIHtcbiAgICAgICRzZWFyY2hJbnB1dENsZWFyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgICAkc2VhcmNoSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCRzZWFyY2hJbnB1dCkge1xuICAgICAgJHNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICAgICRzZWFyY2hJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgJHNlYXJjaElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgICRzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwiaW5wdXRcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0ICR0YWJTZWxlY3RlZCA9XG4gICAgICAgICAgJGVsLnF1ZXJ5U2VsZWN0b3IoXCIuaW5wdXQtYm94LXRhYlt0YWIta2V5XS5hY3RpdmVcIikgfHwgbnVsbDtcbiAgICAgICAgbGV0ICRpbnB1dHMgPSBbXTtcbiAgICAgICAgaWYgKCR0YWJTZWxlY3RlZCkge1xuICAgICAgICAgIGxldCB0YWJLZXkgPSAkdGFiU2VsZWN0ZWQuZ2V0QXR0cmlidXRlKFwidGFiLWtleVwiKTtcbiAgICAgICAgICAkaW5wdXRzID1cbiAgICAgICAgICAgICRlbC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICBcIi5taW5pLWlucHV0LXNlY3Rpb25baW5wdXQtdGFiLWtleT0nXCIgKyB0YWJLZXkgKyBcIiddXCJcbiAgICAgICAgICAgICkgfHwgW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgJGlucHV0cyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1pbmktaW5wdXQtc2VjdGlvblwiKSB8fCBbXTtcbiAgICAgICAgfVxuICAgICAgICAkaW5wdXRzLmZvckVhY2goKCRpKSA9PiB7XG4gICAgICAgICAgbGV0IGxhYmVsID0gJGkuZ2V0QXR0cmlidXRlKFwibGFiZWxcIik7XG4gICAgICAgICAgbGV0IHNlYXJjaCA9ICRzZWFyY2hJbnB1dC52YWx1ZTtcbiAgICAgICAgICBpZiAobGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgICRpLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkaS5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RJbnB1dEJveFRhYihfLmZpcnN0KCR0YWJzKSwgJGVsKTtcblxuICAgICRpbnB1dHMuZm9yRWFjaCgoaSkgPT4gdGhpcy5hZGRLZXlEb3duSW5wdXRFdmVudHMoaSwgJGVsLCBwcm9wcykpO1xuXG4gICAgcmV0dXJuICRlbDtcbiAgfSxcblxuICBzZWxlY3RJbnB1dEJveFRhYigkdGFiLCAkZWwpIHtcbiAgICBsZXQgJHRhYnMgPSAkZWwucXVlcnlTZWxlY3RvckFsbChcIi5pbnB1dC1ib3gtdGFiW3RhYi1rZXldXCIpIHx8IFtdO1xuICAgIGxldCAkaW5wdXRTZWN0aW9ucyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1pbmktaW5wdXQtc2VjdGlvblwiKSB8fCBbXTtcblxuICAgICR0YWJzLmZvckVhY2goKHQpID0+IHtcbiAgICAgIHQuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZVwiKTtcbiAgICB9KTtcblxuICAgIGlmICgkdGFiKSB7XG4gICAgICAkdGFiLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XG5cbiAgICAgICRpbnB1dFNlY3Rpb25zLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgbGV0IGtleSA9IGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQtdGFiLWtleVwiKTtcbiAgICAgICAgaWYgKGtleSA9PSAkdGFiLmdldEF0dHJpYnV0ZShcInRhYi1rZXlcIikpIHtcbiAgICAgICAgICBpLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGkuY2xhc3NMaXN0LmFkZChcImhpZGVcIik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBDaGVja2JveCwgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGFEYXkgLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBpbnB1dCBjcmVhZG9cbiAgICovXG4gIGNyZWF0ZUlucHV0Q2hlY2tib3gocHJvcHMsIGRhdGFEYXkpIHtcbiAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgIGlmIChkYXRhRGF5ICYmIGRhdGFEYXkudmFsdWVzKSB7XG4gICAgICB2YWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKTtcbiAgICB9XG4gICAgbGV0IHIgPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgPGxhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwiXG4gICAgICB9XCIgJHt2YWx1ZSA/IFwiY2hlY2tlZFwiIDogXCJcIn0+XG4gICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PmApO1xuXG4gICAgcmV0dXJuIHI7XG4gIH0sXG5cbiAgY3JlYXRlSW5wdXRCdXR0b25zR3JvdXAocHJvcHMpIHtcbiAgICBsZXQgJGNvbnRhaW5lciA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9ucy1ncm91cFwiPiA8L2Rpdj5cbiAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0ICRjb250YWluZXJCdXR0b25Hcm91cCA9ICRjb250YWluZXIucXVlcnlTZWxlY3RvcihcIi5idXR0b25zLWdyb3VwXCIpO1xuXG4gICAgbGV0ICRidXR0b25zID0gW107XG4gICAgJGJ1dHRvbnMgPSBwcm9wcy5idXR0b25zLm1hcCgoYnV0dG9uUHJvcCkgPT4ge1xuICAgICAgbGV0IGJ1dHRvblN0ciA9IGBcbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICBuYW1lPVwiJHtidXR0b25Qcm9wLmtleSB8fCBcIlwifVwiIFxuICAgICAgICAgIGlucHV0LWtleT1cIiR7YnV0dG9uUHJvcC5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgIGNsYXNzPVwiY2FwLWJ0bi1vdXRsaW5lIGNhcC1idG4tc20gJHtidXR0b25Qcm9wLmlzU2VsZWN0ZWQgPyAnc2VsZWN0ZWQnIDogJyd9IFwiPlxuICAgICAgICAgICR7YnV0dG9uUHJvcC5sYWJlbH1cbiAgICAgICAgPC9idXR0b24+YDtcblxuICAgICAgbGV0ICRidXR0b24gPSBkb21VdGlscy5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYnV0dG9uU3RyKTtcbiAgICAgICRjb250YWluZXJCdXR0b25Hcm91cC5hcHBlbmQoJGJ1dHRvbik7XG5cbiAgICAgICRidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5pc1NlbGVjdGFibGUpIHtcbiAgICAgICAgICAkYnV0dG9ucy5mb3JFYWNoKCgkYikgPT4gJGIuY2xhc3NMaXN0LnJlbW92ZShcInNlbGVjdGVkXCIpKTtcbiAgICAgICAgICAkYnV0dG9uLmNsYXNzTGlzdC5hZGQoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBidXR0b25Qcm9wLm9uQ2xpY2soeyBwcm9wcywgZXZlbnQ6IGUsIGJ1dHRvbnNFbGVtZW50czogJGJ1dHRvbnMgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAkYnV0dG9uO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICRjb250YWluZXI7XG4gIH0sXG5cbiAgY3JlYXRlSW5wdXRCdXR0b24ocHJvcHMpIHtcbiAgICBsZXQgciA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICBuYW1lPVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjYXAtYnRuLW91dGxpbmVcIj5cbiAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5gKTtcblxuICAgIGxldCBidXR0b24gPSByLnF1ZXJ5U2VsZWN0b3IoXCJidXR0b25cIik7XG4gICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4gcHJvcHMub25DbGljayh7IHByb3BzLCBldmVudDogZSB9KSk7XG5cbiAgICByZXR1cm4gcjtcbiAgfSxcblxuICBhZGRLZXlEb3duSW5wdXRFdmVudHMoJGlucHV0LCAkaW5wdXRDb250YWluZXIsIHByb3BzKSB7XG4gICAgJGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzKSB7XG4gICAgICAgIC8vRU5URVJcbiAgICAgICAgJGlucHV0LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic2F2ZU11bHRpSW5wdXRcIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAvL0VTQ1xuICAgICAgICAkaW5wdXQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjYW5jZWxNdWx0aUlucHV0XCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgJGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCAoZSkgPT4ge1xuICAgICAgaWYgKHByb3BzLm9uSW5wdXQpIHtcbiAgICAgICAgcHJvcHMub25JbnB1dCh7XG4gICAgICAgICAgZXZlbnQ6IGUsXG4gICAgICAgICAgdmFsdWU6IGUuc3JjRWxlbWVudC52YWx1ZSxcbiAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAkZWxlbWVudDogJGlucHV0Q29udGFpbmVyXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIGNyZWF0ZUNvbnRleHRNZW51KHtcbiAgICBjb25maWcsXG4gICAgJGNhcGliYXJhRWxlbSA9IG51bGwsXG4gICAgZXZ0ID0gbnVsbCxcbiAgICBkYXRlID0gbnVsbCxcbiAgICBpdGVtID0gbnVsbCxcbiAgICBzZWxlY3RlZCA9IFtdLFxuICAgIHRhYlNlbGVjdGVkID0gbnVsbCxcbiAgICBsZWZ0ID0gbnVsbCxcbiAgICB0b3AgPSBudWxsLFxuICAgIG5hbWUgPSBcIlwiXG4gIH0pIHtcbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmNvbnRleHRNZW51ID09PSB1bmRlZmluZWQpXG4gICAgICByZXR1cm4geyBlbGVtOiBudWxsLCBpc1Zpc2libGU6IGZhbHNlIH07XG5cbiAgICBsZXQgY2xhc3NOYW1lID0gXCJcIjtcbiAgICBsZXQgc3R5bGUgPSBcIlwiO1xuICAgIGxldCBzdHJIdG1sID0gXCJcIjtcbiAgICBsZXQgbGVmdFBvc2l0aW9uID0gbnVsbDtcbiAgICBsZXQgdG9wUG9zaXRpb24gPSBudWxsO1xuICAgIGxldCBpc1Zpc2libGUgPSB0cnVlO1xuICAgIGxldCBib3VuZFJlY3RDYXBpYmFyYSA9IG51bGw7XG4gICAgbGV0IGdhcCA9IDE1OyAvL3B4XG5cbiAgICBpZiAoJGNhcGliYXJhRWxlbSkge1xuICAgICAgYm91bmRSZWN0Q2FwaWJhcmEgPSAkY2FwaWJhcmFFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIGlmIChldnQgJiYgYm91bmRSZWN0Q2FwaWJhcmEpIHtcbiAgICAgIGxlZnQgPSBldnQuY2xpZW50WDtcbiAgICAgIHRvcCA9IGV2dC5jbGllbnRZIC0gYm91bmRSZWN0Q2FwaWJhcmEudG9wO1xuICAgIH1cblxuICAgIGlmIChsZWZ0KSB7XG4gICAgICBsZWZ0UG9zaXRpb24gPSBsZWZ0O1xuICAgIH1cblxuICAgIGlmICh0b3ApIHtcbiAgICAgIHRvcFBvc2l0aW9uID0gdG9wO1xuICAgIH1cblxuICAgIGlmICgobGVmdFBvc2l0aW9uICE9PSBudWxsKSAmICh0b3BQb3NpdGlvbiAhPT0gbnVsbCkpIHtcbiAgICAgIGlmIChib3VuZFJlY3RDYXBpYmFyYSkge1xuICAgICAgICBsZXQgdHJhbnNmb3JtU3R5bGUgPSBcIlwiO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdG9wUG9zaXRpb24gPiAoYm91bmRSZWN0Q2FwaWJhcmEuaGVpZ2h0ICogMikgLyA2ICYmXG4gICAgICAgICAgdG9wUG9zaXRpb24gPD0gKGJvdW5kUmVjdENhcGliYXJhLmhlaWdodCAqIDQpIC8gNlxuICAgICAgICApIHtcbiAgICAgICAgICB0cmFuc2Zvcm1TdHlsZSArPSBgdHJhbnNsYXRlWSgtNTAlKWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvcFBvc2l0aW9uID4gKGJvdW5kUmVjdENhcGliYXJhLmhlaWdodCAqIDQpIC8gNikge1xuICAgICAgICAgIHRyYW5zZm9ybVN0eWxlICs9IGB0cmFuc2xhdGVZKC0xMDAlKWA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGVmdFBvc2l0aW9uID4gKGJvdW5kUmVjdENhcGliYXJhLndpZHRoICogNCkgLyA2KSB7XG4gICAgICAgICAgdHJhbnNmb3JtU3R5bGUgKz0gYHRyYW5zbGF0ZVgoLTEwMCUpYDtcbiAgICAgICAgICBsZWZ0UG9zaXRpb24gLT0gZ2FwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxlZnRQb3NpdGlvbiArPSBnYXA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyYW5zZm9ybVN0eWxlICE9IFwiXCIpIHtcbiAgICAgICAgICBzdHlsZSArPSBgIHRyYW5zZm9ybTogJHt0cmFuc2Zvcm1TdHlsZX07YDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzdHlsZSArPSBgdG9wOiAke3RvcFBvc2l0aW9ufXB4OyBsZWZ0OiAke2xlZnRQb3NpdGlvbn1weDtgO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGFzc05hbWUgKz0gXCJjbS1oaWRlXCI7XG4gICAgICBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBzdHJIdG1sICs9IGAgPGRpdiBjbGFzcz1cImNhcC1jb250ZXh0LW1lbnUtY29udGFpbmVyICR7Y2xhc3NOYW1lfVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FwLWNvbnRleHQtbWVudVwiIHN0eWxlPVwiJHtzdHlsZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgJGNvbnRleHRNZW51Q29udGFpbmVyID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHJIdG1sKTtcbiAgICBsZXQgJGNvbnRleHRNZW51ID0gJGNvbnRleHRNZW51Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIuY2FwLWNvbnRleHQtbWVudVwiKTtcblxuICAgIGNvbmZpZy50aW1lbGluZS5jb250ZXh0TWVudS5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgaWYgKG9wdGlvbi5zaG93SWYpIHtcbiAgICAgICAgbGV0IHNob3cgPSBvcHRpb24uc2hvd0lmKHsgaXRlbSwgZGF0ZSwgc2VsZWN0ZWQsIG5hbWUsIHRhYlNlbGVjdGVkIH0pO1xuICAgICAgICBpZiAoIXNob3cpIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IGlzRW5hYmxlZCA9IHRydWU7XG4gICAgICBsZXQgaXNDbGlja2VhYmxlID0gdHJ1ZTtcbiAgICAgIGlmIChvcHRpb24uZW5hYmxlSWYpIHtcbiAgICAgICAgaXNFbmFibGVkID0gb3B0aW9uLmVuYWJsZUlmKHtcbiAgICAgICAgICBpdGVtLFxuICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICB0YWJTZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IG9wdGlvbkNsYXNzTmFtZSA9IFwiXCI7XG4gICAgICBsZXQgc3RySWNvbiA9IFwiXCI7XG4gICAgICBsZXQgbGFiZWwgPSBcIlwiO1xuXG4gICAgICBpZiAoIWlzRW5hYmxlZCkge1xuICAgICAgICBvcHRpb25DbGFzc05hbWUgKz0gXCJpcy1kaXNhYmxlZCBcIjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbi5pc0RpdmlkZXIpIHtcbiAgICAgICAgaXNDbGlja2VhYmxlID0gZmFsc2U7XG4gICAgICAgIG9wdGlvbkNsYXNzTmFtZSArPSBcImlzLWRpdmlkZXIgXCI7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb24ubGFiZWwpIHtcbiAgICAgICAgbGFiZWwgPSBgPHNwYW4+JHtvcHRpb24ubGFiZWx9PC9zcGFuPmA7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb24uaWNvbikge1xuICAgICAgICBzdHJJY29uID0gYDxkaXYgY2xhc3M9XCJjYXAtY29udGV4dC1tZW51X2l0ZW1faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIiR7b3B0aW9uLmljb259XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9XG5cbiAgICAgIGxldCBvcHRpb25TdHJIdG1sID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FwLWNvbnRleHQtbWVudV9pdGVtICR7b3B0aW9uQ2xhc3NOYW1lfVwiPlxuICAgICAgICAgICR7c3RySWNvbn1cbiAgICAgICAgICAke2xhYmVsfVxuICAgICAgICA8L2Rpdj5gO1xuXG4gICAgICBsZXQgJG9wdGlvbiA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwob3B0aW9uU3RySHRtbCk7XG5cbiAgICAgIGlmIChpc0VuYWJsZWQgJiYgaXNDbGlja2VhYmxlKSB7XG4gICAgICAgICRvcHRpb24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChldnRDbGljaykgPT5cbiAgICAgICAgICBvcHRpb24ub25DbGljayh7XG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICBldnQ6IGV2dENsaWNrLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgIHRhYlNlbGVjdGVkXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICRvcHRpb24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChldnRDbGljaykgPT4ge1xuICAgICAgICAgIGV2dENsaWNrLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZ0Q2xpY2suc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAkY29udGV4dE1lbnUuYXBwZW5kKCRvcHRpb24pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVsZW06ICRjb250ZXh0TWVudUNvbnRhaW5lcixcbiAgICAgIGlzVmlzaWJsZVxuICAgIH07XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUZBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBRkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQVFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQVBBO0FBQ0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBSEE7QUFRQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBSEE7QUFRQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBSEE7QUFRQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUhBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBSEE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFIQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQUhBO0FBV0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBSEE7QUFVQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTdDQTtBQStDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN0NBO0FBK0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN0NBO0FBK0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3Q0E7QUErQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBSEE7QUFXQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFIQTtBQVVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUhBO0FBYUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBSEE7QUFVQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFIQTtBQVdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUhBO0FBVUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFIQTtBQVVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBS0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBMURBO0FBQ0E7QUE0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUhBO0FBU0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSEE7QUFTQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QUFZQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVZBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QUFZQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUF6Z0lBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/util/tableElements.js\n");
|
|
258
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util_domUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/domUtils */ \"./src/util/domUtils.js\");\n/* harmony import */ var _util_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/utils */ \"./src/util/utils.js\");\n/* harmony import */ var _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/dateUtils */ \"./src/util/dateUtils.js\");\n/* harmony import */ var _util_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/icons */ \"./src/util/icons.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n /**\n * Crea elemento Table\n * Contendrá los elementos que apareceran dentro de la tabla de planilla\n * Se Usa para :\n * - Agregar background con patron estilo tabla\n * - Agregar dayMouseOver, div que indica posicion de mouse\n * - Agregar DetailDay, para detalles de datos en tabla\n * - Agregar SelectedContainer, para dias seleccionados\n * - Agregar FloatBoxContainer, para visualizacion de datos en tabla\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom creado\n */\n createAgTable(config) {\n let e = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"capibara\"\n });\n\n if (config.timeline.dark) {\n e.classList.add(\"dark-theme\");\n }\n\n if (config.timeline.header.extend.isShow) {\n e.classList.add(\"header-extended\");\n }\n\n return e;\n },\n\n /**\n * Recrea Background, que es el fondo grid, como tabla\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento relacionado, donde se cre el background\n * @return {Object} Elemento Dom Corner Footer\n */\n redrawBackground(config, $elem) {\n return this.createBackground(config, $elem);\n },\n\n /**\n * Crea y posiciona fondo de tabla\n * Este fondo contiene un patron de CSS que le da la apariencia de tabla\n * por lo cual se debe reposicionar segun la fecha de inicio, para hacer\n * calzar los fines de semana\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} [$elem = null] - Elemento background, si es null, lo crea\n * @return {Object} elemento Dom Background\n */\n createBackground(config, $elem = null) {\n let {\n height,\n width,\n dayWidth\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n let start = new Date(config.timeline.start);\n let end = new Date(config.timeline.end);\n end.setTime(end.getTime() + _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].dayInMilliseconds); // add 24 hours\n\n let dCorrected = new Date(start.valueOf() + start.getTimezoneOffset() * 60000);\n let weekDay = dCorrected.getDay();\n let diffWeekDays = (weekDay - 1) * dayWidth * -1;\n $elem = $elem || _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"background-grid\"\n });\n $elem.style[\"background-position\"] = diffWeekDays + \"px 0, 0 0, \" + diffWeekDays + \"px 0\";\n $elem.style.width = width + \"px\";\n $elem.style.height = height + 1 + \"px\";\n return $elem;\n },\n\n /**\n * Crea Plot Container Vertical\n * Los plots son elementos que agregan secciones de fondo en la planilla\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom plotVerticalContainer\n */\n createPlotVerticalContainer(config) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"plot-vertical-container\"\n });\n return this.redrawPlotVerticalContainer(config, $elem);\n },\n\n createPlotHorizontalContainer(config) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"plot-horizontal-container\"\n });\n return this.redrawPlotHorizontalContainer(config, $elem);\n },\n\n /**\n * Recrea plotVerticalContainer, usando elemento existente\n * usa un elemento existente para usar la funcion para redibujar el elemento\n *\n * Los Plots se insertan como divs, con posicion especificada,\n * con ancho de dia\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento Dom donde crea plotVerticalContainer\n * @return {Object} Elemento Dom plotVerticalContainer\n */\n redrawPlotVerticalContainer(config, $elem) {\n $elem.innerHTML = \"\";\n\n if (config.timeline.plots && config.timeline.plots.vertical) {\n let {\n height,\n dayWidth\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n config.timeline.plots.vertical.forEach(p => {\n let diffDays = Math.floor(_util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].diffDays(config.timeline.start, p.date));\n let left = diffDays * dayWidth;\n let plot = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n classNames: [\"plot-vertical\", p.className || \"\"],\n style: {\n \"margin-left\": left + \"px\",\n height: height + \"px\"\n }\n });\n $elem.appendChild(plot);\n });\n }\n\n return $elem;\n },\n\n redrawPlotHorizontalContainer(config, $elem) {\n $elem.innerHTML = \"\";\n\n if (config.timeline.plots && config.timeline.plots.horizontal) {\n let {\n width,\n itemHeight\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n config.timeline.plots.horizontal.forEach(p => {\n let item = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, p.idNode, p.typeNode);\n let topPosition = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPositionByItem(config, item, \"parent\");\n let plot = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n classNames: [\"plot-horizontal\", p.className || \"\"],\n style: {\n \"margin-top\": topPosition * itemHeight + \"px\",\n width: width + \"px\"\n }\n });\n $elem.appendChild(plot);\n });\n }\n\n return $elem;\n },\n\n /**\n * Crea Corner Izquierdo\n * Se usa para :\n * - titulos relacionados con los datos del sidebar izquierdo\n * - titulos para inputs de header, absolute a la derecha\n * - boton para mostrar/ocultar sidebar izquierdo\n * - promedios\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner\n */\n createCorner(config, tab = null) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"corner\"\n });\n return this.redrawCorner($elem, config, tab);\n },\n\n redrawCorner($elem, config, tab = null) {\n let labelsInitialCorner = config.timeline.nav.left.initial.vars.filter(v => v.onlyTab == undefined || v.onlyTab && tab && v.onlyTab == tab.key).map(d => `<span class=\"item-col\">${d.label}</span>`).join(\"\");\n let labelsExtendCorner = config.timeline.nav.left.extend.vars.filter(v => v.onlyTab == undefined || v.onlyTab && tab && v.onlyTab == tab.key).map(d => `<span class=\"item-col\">${d.label}</span>`).join(\"\");\n let labelsHeaderExtend = config.timeline.header.extend.data.map(d => {\n if (d.isHidden) return \"\";\n let avg = \"\";\n let tooltip = \"\";\n let className = \"\";\n let isAccent = d.isAccent;\n\n if (d.average) {\n avg = ` <span class=\"average \"> ( <span> <span class=\"symbol\">x̄</span> ${d.average} </span>) </span> `;\n tooltip = `cap-tooltip=\"Promedio ${d.label} : ${d.average} ${d.suffix || \"\"}\"`;\n }\n\n if (d.color) {\n if (isAccent) {\n className = d.color ? \"c-\" + d.color + \"--background\" : \"\";\n } else {\n className = d.color ? \"c-\" + d.color + \"--text \" : \"\";\n }\n }\n\n return `<div class=\"input-title-container ${isAccent ? \"input-title--accent\" : \"\"} ${d.isPersistent ? \"persistent\" : \"\"}\">\n <span ${tooltip} class=\"input-title ${className}\">\n ${avg}\n ${d.label}\n </span>\n\n </div>`;\n }).join(\"\");\n let toggleSidebarBtnString = `\n <button toggle-sidebar class=\"cap-btn-icon cap-btn-icon-raised cap-btn-toggle-sidebar \">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chevronRight}\n </button> `;\n\n if (config.timeline.nav.left.hideToggleSidebarButton) {\n toggleSidebarBtnString = \"\";\n }\n\n let template = `<div>\n\n ${toggleSidebarBtnString}\n <div class=\"corner-title\">\n <span class=\"bottom-text\">\n ${config.timeline.corner.left.label}\n </span>\n </div>\n\n <div class=\"initial-corner\">\n <div class=\"initial-corner-title\">\n <span class=\"bottom-container hide\">\n ${config.timeline.corner.initial.label}\n </span>\n\n <div class=\"bottom-container\">\n ${labelsInitialCorner}\n </div>\n\n </div>\n </div>\n\n\n <div class=\"extend-corner\">\n <div class=\"ex-corner-title\">\n <span class=\"bottom-container hide\">\n ${config.timeline.corner.extend.label}\n </span>\n\n <div class=\"bottom-container\">\n ${labelsExtendCorner}\n </div>\n\n </div>\n </div>\n\n\n <div class=\"cap-btn-nav-corner\">\n <div class=\"input-titles\">\n ${labelsHeaderExtend}\n </div>\n </div>\n\n <div class=\"progress-bar progress-bar-left hide-progress\"></div>\n\n </div>`;\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(template);\n $elem.innerHTML = \"\";\n $elem.append(r);\n let toggleSidebar = $elem.querySelector(\"[toggle-sidebar]\");\n\n if (toggleSidebar) {\n toggleSidebar.addEventListener(\"click\", e => {\n r.dispatchEvent(new CustomEvent(\"toggleSidebar\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }\n\n return $elem;\n },\n\n /**\n * Crea Corner Derecho\n * Se usa para :\n * - titulos relacionados con los datos del sidebar Derecho\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom corner\n */\n createCornerRight(config, tab = null) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n classNames: [\"corner\", \"right\"]\n });\n return this.redrawCornerRight($elem, config, tab);\n },\n\n redrawCornerRight($el, config, tab = null) {\n let label = \"\";\n\n if (config.timeline.corner.right.label) {\n ` <span>\n ${config.timeline.corner.right.label}\n </span>`;\n }\n\n let str = `\n <div class=\"corner-title\">\n ${label}\n <div class=\"btn-container\"></div>\n </div>\n <div class=\"progress-bar progress-bar-right hide-progress\"></div>\n `;\n $el.innerHTML = str.trim();\n let $btnContainer = $el.querySelector(\".btn-container\");\n\n if (config.timeline.corner.right.buttons) {\n config.timeline.corner.right.buttons.forEach(btn => {\n let isEnabled = btn.getIsEnabled ? btn.getIsEnabled() : true;\n\n if (isEnabled) {\n let $btn = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <button class=\"corner-btn cap-btn-raised\">\n ${btn.label || \"\"}\n </button> `);\n\n if (btn.onClick) {\n $btn.addEventListener(\"click\", btn.onClick);\n }\n\n $btnContainer.appendChild($btn);\n }\n });\n }\n\n if (config.timeline.corner.right.inputs) {\n config.timeline.corner.right.inputs.forEach(input => {\n let $input = this.createCornerRightInput({\n inputConfig: input\n });\n $btnContainer.appendChild($btn);\n });\n }\n\n return $el;\n },\n\n createCornerRightInput({\n inputConfig,\n dataDay = null,\n daySelected = null\n }) {\n let r = null;\n\n switch (inputConfig.type) {\n case \"autocomplete-crud\":\n r = this.createCornerRightInputAutocompleteCrud({\n inputConfig,\n dataDay,\n daySelected\n });\n break;\n }\n\n return r;\n },\n\n createCornerRightInputAutocompleteCrud({\n inputConfig,\n dataDay,\n daySelected\n }) {\n let elem = \"test\";\n return elem;\n },\n\n /**\n * Crea Header Top\n * Se usa para :\n * - Manejo de tabs\n * - Botones de navegación y selección de fecha\n * - Boton toggle Dark mode\n * - Boton toggle Header extended\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom\n */\n createHeaderTop(config, tabSelected = null) {\n return this.redrawHeaderTop(config, tabSelected, _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\"));\n },\n\n redrawHeaderTop(config, tabSelected = null, $elem) {\n let str = `\n <div class=\"header-top\">`;\n\n if (config.timeline.tabs) {\n let showTabs = true;\n\n if (config.timeline.tabs.filter(t => !t.isHidden).length == 0) {\n showTabs = false;\n }\n\n if (showTabs) {\n str += ` <div class=\"tab-select-container c-d-desktop-none c-d-mobile-flex\">\n <select class=\"tabs-select\" >`;\n config.timeline.tabs.forEach(tab => {\n if (!tab.isHidden) {\n str += ` <option ${tab == tabSelected ? 'selected=\"selected\"' : \"\"} value=\"${tab.id}\"> ${tab.label} </option>`;\n }\n });\n str += `</select> </div>`;\n str += ` <div class=\"tabs-container c-d-desktop-flex c-d-mobile-none\">`;\n config.timeline.tabs.forEach(tab => {\n if (!tab.isHidden) {\n str += ` <button\n class=\"tab ${tab.disabled ? \"disabled\" : \"\"} ${tab == tabSelected ? \"active\" : \"\"} ${tab.color}\"\n color=\"${tab.color}\"\n input-key=\"${tab.id}\"\n ${tab.tooltip ? 'cap-tooltip=\"' + tab.tooltip + '\"' : \"\"} >\n <span>${tab.label}</span>\n ${tab.icon || \"\"}\n </button>\n `;\n }\n });\n str += `</div>`;\n }\n }\n\n if (tabSelected) {\n if (tabSelected.legends) {\n str += ` \n <button toggle-legends class=\"cap-btn-icon cap-btn-icon-raised \">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].toggleLegends}\n </button> \n\n <div class=\"legends-container force-mobile-style hide\"> `;\n tabSelected.legends.forEach(legend => {\n let colorClass = \"\";\n let colorBg = \"\";\n\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(legend.color)) {\n colorBg = \"background:\" + legend.color;\n } else {\n colorClass = legend.color ? legend.color + \"--background\" : \"\";\n }\n\n str += ` <div\n class=\"legend ${legend.active ? \"active\" : \"\"}\"\n input-key=\"${legend.key}\"\n ${legend.tooltip ? `cap-tooltip=\"${legend.tooltip}\"` : \"\"} >\n <div class=\"icon-legend ${colorClass} ${legend.shape}\" style=\"${colorBg}\"></div>\n <span>${legend.label}</span>\n </div>`;\n });\n str += `</div>`;\n }\n }\n\n str += `\n\n <div class=\"spacer\"></div>\n\n\n\n <button cap-btn-prev class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].arrowLeft}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadingIcon} \n </button>\n\n\n <button cap-btn-calendar class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].calendar}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadingIcon}\n </button>\n\n <button cap-btn-next class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].arrowRight}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadingIcon}\n </button>\n\n <div class=\"spacer\"></div>\n\n <button toggle-dark class=\"cap-btn-icon cap-btn-header c-d-mobile-none ${config.timeline.withDarkToggle == false ? \"hide\" : \"\"}\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dark}\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].light}\n </button>`;\n\n if (config.timeline.header.extend.enabled !== false) {\n str += `<button toggle-header class=\"cap-btn-icon cap-btn-icon-raised\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chevronDown}\n </button>`;\n }\n\n str += ` <div class=\"button-right-container\"></div>\n </div>`;\n /*\n `\n <button toggle-sidebar-right class=\"cap-btn-icon cap-btn-icon-raised\">\n <span>\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n </svg>\n </span>\n </button>\n </div>\n `;\n */\n\n let $r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n $elem.replaceWith($r);\n\n if (config.timeline.header.rightButtons) {\n let $buttonContainer = $r.querySelector(\".button-right-container\");\n config.timeline.header.rightButtons.forEach(button => {\n let hasBadge = false;\n\n if (button.hasBadge) {\n hasBadge = button.hasBadge();\n }\n\n let str = `<button class=\"cap-btn-icon cap-btn-icon-raised ${hasBadge ? \"cap-btn-has-badge\" : \"\"}\">\n <span>\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"${button.icon}\" />\n </svg>\n </span>\n </button>`;\n let $button = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n $button.addEventListener(\"click\", evt => button.onClick({\n evt\n }));\n $buttonContainer.append($button);\n });\n }\n\n let $toggleDark = $r.querySelector(\"[toggle-dark]\");\n\n if ($toggleDark) {\n $toggleDark.addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"toggleDark\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }\n\n let $btnCalendar = $r.querySelector(\"[cap-btn-calendar]\");\n\n if ($btnCalendar) {\n $btnCalendar.addEventListener(\"click\", e => {\n let x = e.x;\n let y = e.y;\n $r.dispatchEvent(new CustomEvent(\"clickCalendarIcon\", {\n bubbles: true,\n cancelable: false,\n detail: {\n x,\n y\n }\n }));\n });\n }\n\n let $btnToggleHeader = $r.querySelector(\"[toggle-header]\");\n\n if ($btnToggleHeader) {\n $btnToggleHeader.addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"toggleHeader\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }\n /*\n $r.querySelector(\"[toggle-sidebar-right]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"toggleSidebarRight\", {\n bubbles: true,\n cancelable: false,\n }));\n });\n */\n\n\n $r.querySelector(\"[cap-btn-prev]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"headerPrev\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e\n }\n }));\n });\n $r.querySelector(\"[cap-btn-calendar]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"headerCalendar\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e\n }\n }));\n });\n $r.querySelector(\"[cap-btn-next]\").addEventListener(\"click\", e => {\n $r.dispatchEvent(new CustomEvent(\"headerNext\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e\n }\n }));\n });\n let $toggleLegendsBtn = $r.querySelector(\"[toggle-legends]\");\n\n if ($toggleLegendsBtn) {\n $toggleLegendsBtn.addEventListener(\"click\", e => {\n let $legendContainer = $r.querySelector(\".legends-container\");\n\n if ($legendContainer) {\n $legendContainer.classList.toggle(\"hide\");\n }\n });\n }\n\n $r.querySelectorAll(\".legend\").forEach($legend => {\n $legend.addEventListener(\"click\", e => {\n let key = e.currentTarget.getAttribute(\"input-key\");\n\n if (key) {\n let legendSelected = tabSelected.legends.find(tab => tab.key === key);\n\n if (legendSelected) {\n $r.dispatchEvent(new CustomEvent(\"selectLegendHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n legend: legendSelected,\n $legend\n }\n }));\n }\n }\n });\n });\n $r.querySelectorAll(\".tab:not(.disabled)\").forEach($tab => {\n $tab.addEventListener(\"click\", e => {\n let key = e.currentTarget.getAttribute(\"input-key\");\n\n if (key) {\n let tabSelected = config.timeline.tabs.find(tab => tab.id == key);\n\n if (tabSelected) {\n $r.dispatchEvent(new CustomEvent(\"selectTabHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n tab: tabSelected\n }\n }));\n }\n }\n });\n });\n $r.querySelectorAll(\".tabs-select:not(.disabled)\").forEach($tab => {\n $tab.addEventListener(\"change\", e => {\n let key = parseFloat(e.currentTarget.value);\n\n if (key) {\n let tabSelected = config.timeline.tabs.find(tab => tab.id == key);\n\n if (tabSelected) {\n $r.dispatchEvent(new CustomEvent(\"selectTabHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n tab: tabSelected\n }\n }));\n }\n }\n });\n });\n return $r;\n },\n\n /**\n * Crea Header\n * Se usa para :\n * - Mostrar fechas en header\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom\n */\n createHeader(config) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"header\");\n return this.redrawHeader(config, $elem);\n },\n\n /**\n * Recrea Header, usado para redibujar\n * utiliza $elem como elemento dom donde recrearlo\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento Dom donde crea Header\n * @return {Object} Elemento Dom\n */\n redrawHeader(config, $elem) {\n let datesTree = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getDateTreeRange(new Date(config.timeline.start), new Date(config.timeline.end));\n let str = `<div class=\"header-container\"> `;\n Object.keys(datesTree).forEach(keyY => {\n let year = datesTree[keyY];\n str += `<div class=\"agno-calendario\">\n <span class=\"agno hide\">${keyY}</span>\n <div class=\"meses\">`;\n Object.keys(year).forEach(keyM => {\n let month = datesTree[keyY][keyM];\n str += ` <div class=\"mes-calendario\">\n <div class=\"mes ${Object.keys(month).length < 4 ? \"mes-reduced mes-reduced-\" + Object.keys(month).length : \"\"}\">\n <div class=\"mes-label\">\n ${_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getMonthByPosition(keyM)} ${keyY}\n </div>\n </div>\n <div class=\"dias\">`;\n Object.keys(month).forEach(keyD => {\n let day = datesTree[keyY][keyM][keyD];\n let isWeekend = day.isWeekend;\n let isToday = day.isToday;\n let date = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDate(day.Date);\n str += `<div class=\"dia-calendario ${isToday ? \"today\" : \"\"} ${isWeekend ? \"weekend\" : \"\"} ${config.timeline.dateSelectable ? \"is-clickeable\" : \"\"}\" date=\"${date}\">${keyD}</div>`;\n });\n str += `</div></div>`;\n });\n str += `</div> </div>`;\n });\n str += `</div>`;\n $elem.innerHTML = \"\";\n $elem.append(_util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str));\n\n if (config.timeline.dateSelectable) {\n $elem.querySelectorAll(\".dia-calendario[date]\").forEach($dia => {\n $dia.addEventListener(\"contextmenu\", evt => {\n $elem.dispatchEvent(new CustomEvent(\"contextMenuDate\", {\n bubbles: true,\n cancelable: false,\n detail: {\n $elem: $dia,\n date: $dia.getAttribute(\"date\"),\n clientX: evt.clientX,\n clientY: evt.clientY\n }\n }));\n });\n $dia.addEventListener(\"click\", evt => {\n $elem.dispatchEvent(new CustomEvent(\"clickDate\", {\n bubbles: true,\n cancelable: false,\n detail: {\n $elem: $dia,\n date: $dia.getAttribute(\"date\")\n }\n }));\n });\n });\n }\n\n return $elem;\n },\n\n /**\n * Crea Header extended\n * Se usa para :\n * -Mostrar inputs y datos para fechas en header\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom headerExtended\n */\n createHeaderExtended(config) {\n if (config.timeline.header.extend.enabled == false) return null;\n let dates = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getDateRange(new Date(config.timeline.start), new Date(config.timeline.end));\n let str = `<div class=\"header-container-extended\">`;\n config.timeline.header.extend.data.forEach((d, d_index) => {\n if (d.isHidden) return \"\";\n let isPersistent = d.isPersistent;\n str += `<div class=\"input-list ${isPersistent ? \"persistent\" : \"\"}\">`;\n str += dates.map(date => {\n let value = \"\";\n let isFuture = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isFuture(date);\n let isToday = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isToday(date);\n\n if (d.data) {\n let dataFounded = d.data.find(dataInput => {\n return _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isSameDate(new Date(dataInput.date), date);\n });\n\n if (dataFounded) {\n value = dataFounded.value || \"\";\n }\n }\n\n if (d.editable === false || isFuture && d.editableFuture == false || isToday && d.editableToday == false) {\n return `<div>\n <span date=\"${date}\" \n index=\"${d_index}\" \n class=\"${date.varName} ${d.color ? \"c-\" + d.color + \"--text\" : \"\"}\" > \n ${value} \n </span>\n </div>`;\n }\n\n let isDisabled = false;\n\n if (config.timeline.editable === false) {\n isDisabled = true;\n }\n\n return `<div class=\"dia-input\">\n <input \n date=\"${date}\" \n index=\"${d_index}\" \n class=\"header-input \n ${date.varName} ${d.color ? \"c-\" + d.color + \"--text\" : \"\"}\" \n type=\"number\"\n ${isDisabled ? \"disabled\" : \"\"} \n value=\"${value}\">\n </div>`;\n }).join(\"\");\n str += `</div>`;\n });\n str += `</div>`;\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n r.querySelectorAll(\"input.header-input\").forEach(input => {\n input.addEventListener(\"input\", e => {\n let date = e.currentTarget.getAttribute(\"date\");\n let index = e.currentTarget.getAttribute(\"index\");\n let value = e.currentTarget.value;\n let typeData = config.timeline.header.extend.data[index]; //refresh config value\n\n let data = typeData.data.find(d => _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isSameDate(new Date(d.date), new Date(date)));\n\n if (data) {\n data.value = value;\n } else {\n typeData.data.push({\n date: date,\n value: value\n });\n }\n\n r.dispatchEvent(new CustomEvent(\"changeInputHeader\", {\n bubbles: true,\n cancelable: false,\n detail: {\n date: date,\n typeData: typeData,\n value: value\n }\n }));\n });\n });\n return r;\n },\n\n /**\n * Crear Sidebar Izquierdo\n * - Maneja items como arbol de 2 niveles (parent, children)\n * - El sidebar se divide en navList - InitialNav - extendedNav - BtnNav\n * - Se agrega itemDetail, para detalles de items\n *\n *\n * TODO: para evitar incrustar las ids en los inputs, se deben crear\n * los nodos uno por uno como elemento DOM, y agregarles los eventos directamente\n * ahora se hace seleccionando todos los inputs con querySelectorAll\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Sidebar Izquierdo\n */\n createNavLeft(config, tab = null) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"nav\", {\n className: \"left\"\n });\n return this.redrawNavLeft($elem, config, tab);\n },\n\n /**\n * Recrea Sidebar izquierdo, usado para redibujar\n * Utiliza $elem como elemento dom donde recrearlo\n *\n *\n * @param {Object} $elem - Elemento Dom donde crea el sidebar izquierdo\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom navLeft\n */\n redrawNavLeft($elem, config, tab = null) {\n let navList = \"\";\n let initialNavList = \"\";\n let exNavList = \"\";\n let btnNavList = \"\";\n let isDisabled = false;\n\n if (config.timeline.editable === false) {\n isDisabled = true;\n }\n\n config.data.forEach(d => {\n if (d.isHidden) return;\n navList += `\n <div class=\"nav-item\">\n\n\n <div class=\"nav-item-container parent\">`;\n\n if (d.children) {\n navList += `<button class=\"tree-icon ${d.isClosed ? \"\" : \"cap-rotate\"}\" item-id=\"${d.id || -1}\" type-node=\"${d.type || \"\"}\" >\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chevronDown}\n </button>`;\n }\n\n navList += `\n <div class=\"item-title truncate full-width ${d.clickeable ? \"clickeable\" : \"\"}\n ${d.navOver ? \"hoverable\" : \"\"} \" item-id=\"${d.id || -1}\" type-node=\"${d.type || \"\"}\" >\n ${d.label}\n </div>\n </div>`;\n\n if (d.children) {\n navList += `\n <div class=\"children-items ${d.isClosed ? \"hide\" : \"\"} \" child-list=\"${d.id || -1}\">`;\n d.children.forEach(c => {\n if (c.isHidden) return;\n let lightColor = null;\n let lightClass = null;\n let lightSpan = \"\";\n\n if (c.light) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(c.light)) {\n lightColor = c.light;\n } else {\n lightClass = c.light;\n }\n }\n\n if (c.light) {\n lightSpan = `<span \n class=\"light ${lightClass ? lightClass + \"-light\" : \"\"}\" \n style=\"${lightColor ? \"--light-color:\" + lightColor : \"\"}\">\n </span>`;\n }\n\n navList += `\n <div class=\"child-nav-item\">\n <div class=\"nav-item-container\">\n `;\n /*\n <span class=\"nav-item-icon\">\n <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M19,15L13,21L11.58,19.58L15.17,16H4V4H6V14H15.17L11.58,10.42L13,9L19,15Z\" />\n </svg>\n </span>\n */\n\n navList += `\n ${lightSpan}\n <div class=\"item-title ${c.clickeable ? \"clickeable\" : \"\"}\n ${c.navOver ? \"hoverable\" : \"\"}\" item-id=\"${c.id || -1}\" type-node=\"${c.type || \"\"}\">\n <div class=\"truncate\">\n ${c.label}\n </div>\n </div>\n </div>\n </div>`;\n });\n navList += `\n </div>`;\n }\n\n navList += `</div>`; //initial\n\n initialNavList += `<div class=\"initial-nav-item parent\">`;\n\n if (d.withNav) {\n config.timeline.nav.left.initial.vars.forEach(v => {\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(d.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value.split(\":\");\n let hhValue = value[0];\n let mmValue = value[1];\n initialNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n initialNavList += `\n <div class=\"item-col has-input\">\n <input \n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n initialNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n initialNavList += `\n </div>`;\n\n if (d.children) {\n d.children.forEach(c => {\n if (c.isHidden) return;\n initialNavList += `<div class=\"child-initial-nav-item ${d.isClosed ? \"hide\" : \"\"}\" child=\"${d.id || -1}\">`;\n\n if (c.withNav !== false) {\n config.timeline.nav.left.initial.vars.forEach(v => {\n if (v.onlyTab && tab && v.onlyTab !== tab.key) return;\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(c.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value.split(\":\");\n let hhValue = value[0];\n let mmValue = value[1];\n initialNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"00\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n initialNavList += `\n <div class=\"item-col has-input\">\n <input\n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n initialNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n initialNavList += `\n </div>`;\n });\n } //Ext\n\n\n exNavList += `<div class=\"ex-nav-item parent\">`;\n\n if (d.withExNav) {\n config.timeline.nav.left.extend.vars.forEach(v => {\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(d.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value.split(\":\");\n let hhValue = value[0];\n let mmValue = value[1];\n exNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n exNavList += `\n <div class=\"item-col has-input\">\n <input\n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n type-node=\"${d.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n exNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n exNavList += `\n </div>`;\n\n if (d.children) {\n d.children.forEach(c => {\n if (c.isHidden) return;\n exNavList += `<div class=\"child-ex-nav-item ${d.isClosed ? \"hide\" : \"\"}\" child=\"${d.id || -1}\">`;\n\n if (c.withNav !== false) {\n config.timeline.nav.left.extend.vars.forEach(v => {\n if (v.onlyTab && tab && v.onlyTab !== tab.key) return;\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(c.values, v.varName);\n\n if (v.round && !isNaN(value)) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round);\n }\n\n if (v.input) {\n switch (v.input) {\n case \"hour\":\n value = value ? value.split(\":\") : [0, 0];\n let hhValue = value[0];\n let mmValue = value[1];\n exNavList += `\n <div class=\"item-col has-input\">\n <div class=\"hour-input\">\n <input type=\"number\"\n input-type=\"time\"\n max=\"23\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${hhValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"hh\">\n <span>:</span>\n <input type=\"number\"\n input-type=\"time\"\n max=\"59\"\n min=\"0\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n value=\"${mmValue}\"\n ${isDisabled ? \"disabled\" : \"\"}\n class=\"mm\">\n </div>\n </div>`;\n break;\n\n case \"text\":\n case \"number\":\n default:\n exNavList += `\n <div class=\"item-col has-input\">\n <input \n type=\"${v.input || \"text\"}\"\n input-type=\"${v.input || \"text\"}\"\n input-key=\"${v.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n type-node=\"${c.type || \"\"}\"\n ${isDisabled ? \"disabled\" : \"\"}\n value=\"${value}\"/>\n </div>`;\n }\n } else {\n exNavList += `\n <div class=\"item-col\">\n ${value}\n </div>`;\n }\n });\n }\n\n exNavList += `\n </div>`;\n });\n } //buttons\n\n\n btnNavList += `<div class=\"cap-btn-nav-item parent\">\n <div class=\"cap-btn-nav-item-content\">`;\n\n if (config.timeline.nav.left.buttons && config.timeline.nav.left.buttons.vars) {\n config.timeline.nav.left.buttons.vars.forEach(btn => {\n if (d.withBtnNav) {\n let btnContent = \"\";\n let className = btn.className || \"\";\n\n if (btn.icon) {\n btnContent = btn.icon ? btn.icon : \"\";\n }\n\n if (btn.iconFormatter) {\n btnContent = btn.iconFormatter ? btn.iconFormatter(d, btn) : \"\";\n }\n\n if (btn.shape) {\n className += \" cap-btn-\" + btn.shape;\n btnContent += `<span> ${btn.formatter ? btn.formatter(d, btn) : \"\"} </span> `;\n }\n\n if (btn.btnClassNameFormatter) {\n let newClassName = btn.btnClassNameFormatter(d, btn);\n\n if (newClassName) {\n className += \" \" + newClassName;\n }\n }\n\n btnNavList += `\n <button class=\"cap-btn-shape ${className}\"\n input-key=\"${btn.key || \"\"}\"\n item-id=\"${d.id || -1}\"\n ${isDisabled ? \"disabled\" : \"\"}\n type-node=\"${d.type || \"\"}\">\n ${btnContent}\n </button>`;\n }\n });\n }\n\n btnNavList += `\n </div>\n </div>`;\n\n if (d.children) {\n d.children.forEach(c => {\n if (c.isHidden) return; //buttons\n\n btnNavList += `<div class=\"cap-btn-child-nav-item parent ${d.isClosed ? \"hide\" : \"\"}\" child=\"${d.id || -1}\">\n <div class=\"cap-btn-nav-item-content\">`;\n\n if (config.timeline.nav.left.buttons && config.timeline.nav.left.buttons.vars) {\n config.timeline.nav.left.buttons.vars.forEach(btn => {\n if (c.withNav !== false) {\n let btnContent = \"\";\n let className = btn.className || \"\";\n\n if (btn.icon) {\n btnContent = btn.icon ? btn.icon : \"\";\n }\n\n if (btn.iconFormatter) {\n btnContent = btn.iconFormatter ? btn.iconFormatter(c, btn) : \"\";\n }\n\n if (btn.shape) {\n className += \" cap-btn-\" + btn.shape;\n btnContent += `<span> ${btn.formatter ? btn.formatter(c, btn) : \"\"} </span> `;\n }\n\n if (btn.btnClassNameFormatter) {\n let newClassName = btn.btnClassNameFormatter(c, btn);\n\n if (newClassName) {\n className += \" \" + newClassName;\n }\n }\n\n btnNavList += `\n <button class=\"cap-btn-shape ${className}\"\n input-key=\"${btn.key || \"\"}\"\n item-id=\"${c.id || -1}\"\n ${isDisabled ? \"disabled\" : \"\"}\n type-node=\"${c.type || \"\"}\">\n ${btnContent}\n </button>`;\n }\n });\n }\n\n btnNavList += `\n </div>\n </div>`;\n });\n }\n });\n let itemDetail = ` <div class=\"detail-nav-item hide\">\n ${this.getDetailNavItemContent()}\n </div>`;\n let str = `<div class=\"nav-container\">\n ${itemDetail}\n <div class=\"nav-item-list\">\n ${navList}\n </div>\n <div class=\"initial-nav-list\">\n ${initialNavList}\n </div>\n <div class=\"extend-nav-list\">\n ${exNavList}\n </div>\n <div class=\"cap-btn-nav-list\">\n ${btnNavList}\n </div>\n </div>`;\n let navContainer = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n $elem.innerHTML = \"\";\n $elem.append(navContainer); //detalle de nav-item\n\n $elem.querySelectorAll(\".item-title.hoverable\").forEach(i => {\n i.addEventListener(\"mouseover\", e => {\n let pos = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].eventToPositionNavLeft(config, e, $elem);\n let itemId = i.getAttribute(\"item-id\");\n let item = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, itemId);\n let typeNode = i.getAttribute(\"type-node\");\n i.dispatchEvent(new CustomEvent(\"overNavItem\", {\n bubbles: true,\n cancelable: false,\n detail: {\n originalEvt: e,\n item: item,\n type: typeNode,\n pos: pos\n }\n }));\n });\n }); //oculta detalle de nav-item, al salir del nav-item-list\n\n $elem.querySelectorAll(\".nav-item-list\").forEach(i => {\n i.addEventListener(\"mouseleave\", e => {\n i.dispatchEvent(new CustomEvent(\"leaveNavItem\", {\n bubbles: true,\n cancelable: false\n }));\n });\n }); //oculta detalle de nav-item-list, al salir de nav-item\n\n $elem.querySelectorAll(\".item-title:not(.hoverable)\").forEach(i => {\n i.addEventListener(\"mousemove\", e => {\n i.dispatchEvent(new CustomEvent(\"leaveNavItem\", {\n bubbles: true,\n cancelable: false\n }));\n });\n });\n $elem.querySelectorAll(\".item-title.clickeable\").forEach(i => {\n i.addEventListener(\"click\", e => {\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n let value = i.value;\n i.dispatchEvent(new CustomEvent(\"clickNavLeftItem\", {\n bubbles: true,\n cancelable: false,\n detail: {\n itemId: itemId,\n type: typeNode,\n value: value\n }\n }));\n });\n });\n $elem.querySelectorAll(\"input\").forEach(i => {\n i.addEventListener(\"change\", e => {\n let inputType = i.getAttribute(\"input-type\");\n let key = i.getAttribute(\"input-key\");\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n let item = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, itemId);\n let value = i.value;\n\n if (inputType == \"time\") {\n let hh_input = i.parentElement.querySelector(\"input.hh\").value;\n let mm_input = i.parentElement.querySelector(\"input.mm\").value;\n mm_input = mm_input < 10 ? \"0\" + parseFloat(mm_input) : mm_input;\n i.parentElement.querySelector(\"input.mm\").value = mm_input;\n value = hh_input + \":\" + mm_input;\n }\n\n i.dispatchEvent(new CustomEvent(\"saveNavLeftInput\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: key,\n itemId: itemId,\n item: item,\n type: typeNode,\n value: value,\n tabSelected: tab\n }\n }));\n });\n });\n $elem.querySelectorAll(\"button.cap-btn-shape\").forEach(i => {\n i.addEventListener(\"click\", e => {\n let key = i.getAttribute(\"input-key\");\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n i.dispatchEvent(new CustomEvent(\"clickNavLeftButton\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: key,\n itemId: itemId,\n type: typeNode\n }\n }));\n });\n });\n $elem.querySelectorAll(\"button.tree-icon\").forEach(i => {\n i.addEventListener(\"click\", e => {\n let itemId = i.getAttribute(\"item-id\");\n let typeNode = i.getAttribute(\"type-node\");\n let dataConfig = config.data.find(d => d.id == itemId);\n let $navItem = e.currentTarget.closest(\".nav-item\");\n let $children = $navItem.querySelector(\".children-items\");\n let itemsToHide = e.currentTarget.closest(\"nav.left\").querySelectorAll(\"[child='\" + itemId + \"'], [child-list='\" + itemId + \"']\");\n\n if ($children) {\n if ($children.classList.contains(\"hide\")) {\n e.currentTarget.classList.add(\"cap-rotate\");\n itemsToHide.forEach(i => i.classList.remove(\"hide\"));\n dataConfig.isClosed = false;\n } else {\n e.currentTarget.classList.remove(\"cap-rotate\");\n itemsToHide.forEach(i => i.classList.add(\"hide\"));\n dataConfig.isClosed = true;\n }\n }\n\n i.dispatchEvent(new CustomEvent(\"clickNavLeftTreeIcon\", {\n bubbles: true,\n cancelable: false,\n detail: {\n itemId: itemId,\n type: typeNode\n }\n })); //e.currentTarget.parent\n });\n });\n return $elem;\n },\n\n /**\n * Crea Html como String, para el detalle de items en el Sidebar Izquierdo\n *\n * @param {Object} [item={}] - Configuracion de item\n * @return {String} Html de ventana de detalle\n */\n getDetailNavItemContent(item = {}) {\n if (item.navOver == undefined) item.navOver = {};\n return `\n <div class=\"header-detail\">\n <div class=\"detail-title truncate\">\n ${item.label || \"\"}\n </div>\n <div class=\"detail-subtitle\">\n ${item.navOver.subtitle || \"\"}\n </div>\n <div class=\"header-chip ${item.light ? item.light + \"-light\" : \"\"} ${item.navOver.chip ? \"\" : \"hide\"}\">\n ${item.navOver.chip || \"\"}\n </div>\n </div>\n\n <div class=\"detail-container\">\n ${item.navOver.content || \"\"}\n </div>`;\n },\n\n /**\n * Crea Sidebar Derecho\n * Usado principalmente para formulario de ingreso de datos para los dias\n * seleccionados\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} tab - Tab de referencia, para la creacion del formulario\n * @return {Object} {element, inputs}, element es el elemento Dom del sidebar,\n * inputs es un array de elementos Dom de cada input creado\n * (no son elementos html de tipo input)\n */\n createNavRight(config, tab = null) {\n var $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"nav\", {\n className: \"right\"\n });\n return this.redrawNavRight(config, $elem, tab, []);\n },\n\n /**\n * Recrea Sidebar Derecho\n * Utiliza $elem como elemento dom donde recrearlo\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} $elem - Elemento Dom donde crea el sidebar derecho\n * @param {Object} tab - Tab de referencia, para la creacion del formulario\n * @param {Object} dataDay - datos del dia seleccionando, para autorrelleno de formulario\n * @param {Object} daySelected - datos del dia seleccionado\n * @param {String} daySelected.date - fecha del dia seleccionado\n * @param {Object} daySelected.item - Item de Sidebar relacionado al dia seleccionado\n * @param {Object} daySelected.pos - posicion de dia seleccionado\n * @return {Object} Elemento Dom Sidebar Derecho\n */\n redrawNavRight(config, $elem, selected = null, tab = null, dataDay = null, daySelected = null) {\n let $navRight = $elem; //dom.createElement(\"nav\",{className:\"right\"});\n\n let $divContainer = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"nav-input-container\"\n });\n let $inputs = [];\n let checkboxInputs = [];\n let inputsWithReload = [];\n let tabSelected = tab;\n selected = selected || [daySelected];\n\n if (tabSelected && tabSelected.inputs) {\n tabSelected.inputs.forEach(i => {\n if (i.disabled) return;\n let $input = this.createInput(i, dataDay, daySelected, selected);\n\n if ($input) {\n $divContainer.appendChild($input);\n $inputs.push($input);\n\n if (i.type == \"checkbox\") {\n checkboxInputs.push($input);\n }\n\n if (i.reloadOnSelect != null) {\n inputsWithReload.push({\n $input,\n config: i\n });\n }\n }\n });\n } //manejo de eventos para inputs con showIf\n\n\n if (checkboxInputs) {\n checkboxInputs.forEach($c => {\n //obtiene key de checkbox\n let key = $c.getAttribute(\"input-key\");\n let props = tabSelected.inputs.find(i => {\n return i.key == key;\n });\n let isChecked = false;\n\n if (dataDay) {\n isChecked = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n } //obtiene inputs relacionados desde config para mostrar/ocultar\n\n\n let inputsToHide = tabSelected.inputs.filter(i => {\n return i.showIf && i.showIf == key;\n });\n let inputsToHideKeys = inputsToHide.map(i => i.key); //obtiene inputs del dom, filtrando con inputsToHide\n\n let $inputsHidden = $inputs.filter($i => {\n let inputKey = $i.getAttribute(\"input-key\");\n return inputsToHideKeys.indexOf(inputKey) > -1;\n }); //si hay inputs,\n\n if ($inputsHidden) {\n if (!isChecked) {\n $inputsHidden.forEach($i => {\n $i.classList.add(\"hide\");\n });\n }\n\n $c.addEventListener(\"input\", e => {\n $inputsHidden.forEach($i => {\n let fn = $c.querySelector(\"input[type='checkbox']\").checked ? \"remove\" : \"add\";\n $i.classList[fn](\"hide\");\n });\n });\n }\n });\n }\n\n let saveCancelBtns = this.createNavRightbuttons();\n $divContainer.appendChild(saveCancelBtns);\n $navRight.innerHTML = \"\";\n $navRight.appendChild($divContainer);\n return {\n element: $navRight,\n inputs: $inputs,\n inputsWithReload,\n saveCancelBtns\n };\n },\n\n /**\n * Crea Corner inferior izquierdo, como titulo para footer\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner Footer\n */\n createCornerFooter(config) {\n if (config.timeline.footer === undefined || config.timeline.footer.enabled == false) return null;\n let str = \"\";\n\n if (config.timeline.footer) {\n str += `<div class=\"corner-footer\">\n <div class=\"corner-title\">\n <span>\n ${config.timeline.footer.label}\n </span>\n </div>\n </div>`;\n }\n\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n },\n\n /**\n * Crea Footer para planilla\n * Inicialmente creado para totales\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner Footer\n */\n createFooter(config) {\n if (config.timeline.footer === undefined || config.timeline.footer.enabled == false) return null;\n let str = `\n <footer>\n <div class=\"footer-container\">\n `;\n config.timeline.footer.data.forEach(d => {\n str += `\n <div class=\"footer-item\">${d.value}</div>\n `;\n });\n str += `\n </div>\n </footer>\n `;\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n },\n\n /**\n * Crea Footer para planilla\n * Inicialmente creado para totales\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object[]} selected - array de objetos, de dias seleccionados\n * @return {Object} Elemento Dom Corner Footer\n */\n createSelectBoard(config, selected) {\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"select-container\"\n });\n return this.redrawSelectBoard($elem, selected);\n },\n\n /**\n * Crea linea vertical para fecha Actual\n *\n * @param {Object} config - Configuracion capibara\n * @return {Object} Elemento Dom Corner Footer\n */\n createTodayLine(config) {\n return this.redrawTodayLine(config, _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"today-line\"\n }));\n },\n\n /**\n * Recrea linea vertical para fecha Actual\n * si el elemento $elem no es enviado, se crea un nuevo elemento\n *\n * Si el dia actual no esta dentro del rango de fechas del config,\n * deshabilita la linea con la clase css .disable-line\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} [$elem=null] - Elemento Dom donde recrea la linea, si es null, la crea\n * @return {Object} Elemento Dom Corner Footer\n */\n redrawTodayLine(config, $elem = null) {\n let endTime = new Date(config.timeline.end).getTime();\n let todayTime = new Date().getTime();\n let {\n height,\n dayWidth\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableDimensions(config);\n if ($elem == null) $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"today-line\"\n });\n\n if (endTime < todayTime) {\n $elem.classList.add(\"disable-line\");\n } else {\n $elem.classList.remove(\"disable-line\");\n }\n\n let diffDays = Math.floor(_util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].diffDays(config.timeline.start, _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDate(new Date())));\n let diff = diffDays * dayWidth;\n diff += dayWidth / 2 - 2; // para centrar linea\n\n Object.assign($elem.style, {\n \"margin-left\": diff + \"px\",\n height: height + \"px\"\n });\n return $elem;\n },\n\n /**\n * Crea elemento FloatBox, que contiene los datos que se muestra en la tabla\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} tab - Tab de referencia, para mostrar datos configurados por tab\n * @return {Object} Elemento Dom Corner Footer\n */\n createFloatBox(config, tab) {\n let $container = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"float-box-container\"\n });\n return this.redrawFloatBox(config, tab, $container);\n },\n\n /**\n * Recrea elemento FloatBox, que contiene los datos que se muestra en la tabla\n * Se usa principalmente para mostrar datos en la tabla de la planilla\n * los muestra de manera flotante, calculando el Top y el Left segun la poscion\n *\n * Se consideran los elementos padres ocultos, para ocultar los datos\n *\n * Se insertan los elementos FloatBox, como elemento con datos de un item y dia especifico\n *\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} tab - Tab de referencia, para mostrar datos configurados por tab\n * @return {Object} Elemento Dom Corner Footer\n */\n redrawFloatBox(config, tab, $container) {\n $container.innerHTML = \"\"; //let tabSelected = tab || null;\n\n config.data.forEach(de => {\n if (de.isHidden) return;\n de.children.forEach(ds => {\n if (ds.isHidden) return;\n ds.data.forEach(data => {\n if ((!data.message || data.message.value == null) && (data.values == null || data.values == undefined || Object.entries(data.values).length === 0)) {\n return null;\n } //children Data\n\n\n let position = this.getPositionFloatBox(config, data, ds);\n let className = \"\";\n\n if (data.errors && data.errors.length > 0) {\n className += \"has-errors \";\n }\n\n if (de.isClosed) {\n className += \"hide \";\n }\n\n let msg = null;\n\n if (tab.floatBox && tab.floatBox.messagePath) {\n msg = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data, tab.floatBox.messagePath);\n }\n\n if (msg || data.message && data.message.value) {\n className += \"has-message \";\n }\n\n let str = `\n <div class=\"float-box ${className} ${de.isClosed ? \"hide\" : \"\"}\"\n style=\"${position ? position : \"\"}\"\n item-id=\"${ds.id || -1}\"\n type-node=\"${ds.type || \"\"}\"> `;\n let strExt = `\n <div class=\"float-box-ext ${de.isClosed ? \"hide\" : \"\"}\"\n style=\"${position ? position : \"\"}\"\n item-id=\"${ds.id || -1}-ext\"\n type-node=\"${ds.type || \"\"}\">\n <div class=\"long-bar-container\">`;\n\n if (tab && tab.floatBox) {\n if (tab.floatBox.plots) {\n str += `<div class=\"plot-floatbox-container\">`;\n tab.floatBox.plots.forEach(n => {\n let cssVars = \"\";\n let className = \"\";\n\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varName) !== null) {\n if (n.color) {\n cssVars = `--local-color:${n.color};`;\n }\n\n className = n.className || \"\";\n str += `<div class=\"plot-floatbox ${className} ${n.style || \"\"}\" style=\"${cssVars} \"></div>`;\n }\n });\n str += `\n </div>`;\n } //numeros en el floatBox\n\n\n if (tab.floatBox.nums) {\n tab.floatBox.nums.forEach(n => {\n if (tab.legends && n.tabKey) {\n let legend = tab.legends.find(l => l.key == n.tabKey);\n if (legend && !legend.active) return;\n }\n\n let dataFloatBox = null;\n let className = \"\";\n let showIf = true;\n let hideIf = false;\n let colorClass = \"\";\n let colorStyle = \"\";\n let classNamesExt = \"\";\n let colorStyleExt = \"\";\n let cssVars = \"\";\n\n if (n.varName) {\n dataFloatBox = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varName);\n }\n\n if (n.varShow) {\n showIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varShow));\n dataFloatBox = dataFloatBox || \"\";\n }\n\n if (n.varHide) {\n hideIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.varHide));\n }\n\n if (n.shape) {\n className += \"shape-\" + n.shape;\n }\n\n if (n.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(n.color)) {\n colorStyle = `--local-color: ${n.color};`;\n } else {\n colorClass = n.color;\n }\n }\n\n if (n.longBar) {\n let longBarColor = \"\";\n let longBarOpacity = \"\";\n\n if (n.longBarColor) {\n longBarColor = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBarColor);\n }\n\n if (longBarColor) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(longBarColor)) {\n colorStyleExt = `--local-color: ${longBarColor};`;\n } else {\n classNamesExt += longBarColor + \"-light \";\n }\n } else if (colorClass && colorClass != \"\") {\n classNamesExt += colorClass;\n } else if (colorStyle && colorStyle != \"\") {\n colorStyleExt = colorStyle;\n }\n\n if (n.longBarOpacity) {\n longBarOpacity = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBarOpacity) || null;\n\n if (longBarOpacity) {\n colorStyleExt += \"--local-opacity: \" + longBarOpacity + \";\";\n }\n }\n\n if (n.longBarClassName) {\n classNamesExt += _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBarClassName) || \"\";\n }\n\n let longBar = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, n.longBar);\n\n if (longBar) {\n cssVars = `--long:${longBar};`;\n }\n }\n\n if (dataFloatBox !== null && showIf && !hideIf) {\n str += `<span class=\"data ${colorClass} ${className}\" style=\"${colorStyle}\">\n ${typeof dataFloatBox == \"string\" ? dataFloatBox : \"\"}\n ${typeof dataFloatBox == \"number\" ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(dataFloatBox, n.round) : \"\"}\n </span>`;\n\n if (n.longBar && cssVars) {\n strExt += `<div class=\"long-bar ${classNamesExt}\" style=\"${colorStyleExt} ${cssVars} \"></div> `;\n }\n }\n });\n } //puntos en el floatBox\n\n\n if (tab.floatBox.dots) {\n str += `<div class=\"dot-container-middle\">`;\n tab.floatBox.dots.forEach(dot => {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varName) !== null) {\n let className = \"\";\n let colorClass = \"\";\n let colorStyle = \"\";\n\n if (dot.shape) {\n className += dot.shape;\n }\n\n if (dot.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(dot.color)) {\n colorStyle = `--local-color: ${dot.color}`;\n } else {\n colorClass = dot.color;\n }\n }\n\n str += `\n <div class=\"dot ${colorClass} ${className}\" style=\"${colorStyle}\" ></div>`;\n }\n });\n str += `\n </div>`;\n } //fila de puntos en floatBox\n\n\n if (tab.floatBox.rowDots) {\n tab.floatBox.rowDots.forEach(row => {\n let freeColumns = 4;\n str += `<span class=\"rowdot--row \">`;\n row.forEach(dot => {\n if (tab.legends && dot.tabKey) {\n let legend = tab.legends.find(l => l.key == dot.tabKey);\n if (legend && !legend.active) return;\n }\n\n let dataFloatBox = null;\n let className = \"\";\n let showIf = true;\n let hideIf = false;\n let colorClass = \"\";\n let colorStyle = \"\";\n\n if (dot.varName) {\n dataFloatBox = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varName);\n dataFloatBox = parseInt(dataFloatBox);\n }\n\n if (dot.varShow) {\n showIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varShow));\n dataFloatBox = dataFloatBox || \"\";\n }\n\n if (dot.varHide) {\n hideIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(data.values, dot.varHide));\n }\n\n if (dot.shape) {\n className += \" shape-\" + dot.shape;\n }\n\n if (dot.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(dot.color)) {\n colorStyle = `--local-color: ${dot.color}`;\n } else {\n colorClass = dot.color;\n }\n }\n\n if (dataFloatBox !== null && dataFloatBox > 0 && showIf && !hideIf && freeColumns > 0) {\n let n = dataFloatBox > freeColumns ? freeColumns : dataFloatBox;\n freeColumns -= n;\n\n for (let index = 0; index < n; index++) {\n str += `<div class=\"rowdot--dot ${colorClass} ${className}\" style=\"${colorStyle}\"></div>`;\n }\n }\n });\n str += `</span>`;\n });\n }\n }\n\n str += `\n </div>`;\n strExt += `\n </div>\n </div>`;\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $elemExt = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(strExt);\n $elem.addEventListener(\"mouseover\", e => {\n $elem.dispatchEvent(new CustomEvent(\"mouseOverFloatBox\", {\n bubbles: true,\n cancelable: false,\n detail: {\n item: ds,\n data: data,\n originalEvt: e\n }\n }));\n });\n $elem.addEventListener(\"click\", e => {\n $elem.dispatchEvent(new CustomEvent(\"clickFloatBox\", {\n bubbles: true,\n cancelable: false,\n detail: {\n item: ds,\n data: data,\n originalEvt: e\n }\n }));\n });\n $container.appendChild($elem);\n $container.appendChild($elemExt);\n });\n });\n });\n return $container;\n },\n\n /**\n * Crea DetailDay, detalle de valores de item y Dia\n * se usa para:\n * - Muestra nombre de item y detalles\n * - Muestra capsulas de datos\n * - Muestra Pills, pildoras de datos resumidos\n * - Muestra alertas\n * - Muestra Mensaje\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} item - Item relacionado\n * @param {Object} dataDay - valores de item y Dia\n * @param {Boolean} [onlyStringContent = false] - para escoger si devuelve String o DomElement\n * @return {String|Object} Elemento como String o DomElement\n */\n createDetailDay(config, item = {}, dataDay, tabSelected, onlyStringContent = false) {\n let str = `\n <div class=\"header-detail\">\n <div class=\"title truncate\">\n ${item.label || \"\"}\n </div>\n <div class=\"subtitle\">\n ${dataDay ? _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDateReadeable(dataDay.date) : \"\"}\n </div>\n </div>\n\n <div class=\"list-detail list\">`; //CAPSULES\n\n if (dataDay) {\n config.timeline.detailDay.capsules.forEach(cap => {\n //para comprobar si tiene datos, se obtiene el primer valor\n //de la lista de values de una capsula\n let hasValues = cap.values.filter(v => _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay.values, v.varName) !== null).length > 0;\n let hideIf = false;\n\n if (cap.hideIf) {\n hideIf = Boolean(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay.values, cap.hideIf));\n }\n\n let colorClass = \"\";\n let colorStyle = \"\";\n\n if (cap.color) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(cap.color)) {\n colorStyle = `--local-color: ${cap.color};`;\n colorStyle += `--local-color-font: ${cap.color};`;\n } else {\n colorClass = cap.color;\n }\n }\n\n if (hasValues && !hideIf) {\n str += `\n <div class=\"item-detail ${colorClass}\" style=\"${colorStyle}\">\n\n <div class=\"left-icon ${cap.shape || \"\"} \"></div>\n\n <div class=\"name\">\n <span>\n ${cap.title || \"\"}\n </span>\n </div>`;\n str += `\n <div class=\"item-description\"> `;\n cap.values.forEach(v => {\n let value = v.varName ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay.values, v.varName) : null;\n\n if (cap.isLabeledArray) {\n value.forEach(valueLabeled => {\n let outputValue = null;\n let valueName = v.valueName ? v.valueName : \"value\";\n let tempValue = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(valueLabeled, valueName);\n\n if (tempValue) {\n outputValue = v.round ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(tempValue, v.round) : tempValue;\n }\n\n if (v.formatter) {\n outputValue = v.formatter(valueLabeled);\n }\n\n if (typeof outputValue == \"number\") {\n outputValue = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatNumber(outputValue);\n }\n\n str += outputValue == null ? \"\" : `\n <div class=\"desc ${v.showColumn ? \"desc-column\" : \"\"}\">\n \n <div class=\"label\">\n ${v.hideLabel ? \"\" : valueLabeled.label}\n </div >\n <div class=\"val\">` + (v.hidePreffix !== true ? `\n <span class=\"prefix\">\n ${v.prefix || \"\"}\n </span>` : '') + `<span class=\"value\">\n ${outputValue}\n </span>` + (v.hideSuffix !== true ? `\n <span class=\"suffix\">\n ${valueLabeled.suffix || v.suffix || \"\"}\n </span>` : '') + `\n </div>\n </>`;\n });\n } else {\n let outputValue = v.round ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].round(value, v.round) : value;\n\n if (v.formatter) {\n outputValue = v.formatter({\n options: v,\n dataDay,\n outputValue\n });\n }\n\n if (typeof outputValue == \"number\") {\n outputValue = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatNumber(outputValue);\n }\n\n str += outputValue == null ? \"\" : `\n <div class=\"desc\">\n <span class=\"prefix\">\n ${v.prefix || \"\"}\n </span>\n <span class=\"value\">\n ${outputValue}\n </span>\n <span class=\"suffix\">\n ${v.suffix || \"\"}\n </span>\n </div>`;\n }\n });\n str += `\n </div>`;\n str += `\n </div>`; // end .item-detail\n }\n });\n }\n\n str += `\n </div>`; // list-detail\n //PILLS\n\n if (config.timeline.detailDay.pillsVarName && dataDay && dataDay.values[config.timeline.detailDay.pillsVarName]) {\n str += `\n <div class=\"elements-detail\">\n <div class=\"name\"> ${config.timeline.detailDay.pillsTitle} </div>\n <div class=\"elements-list\">`;\n dataDay.values[config.timeline.detailDay.pillsVarName].forEach(e => {\n let value = e.value;\n\n if (typeof outputValue == \"number\") {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatNumber(value);\n }\n\n str += `\n <div class=\"element-detail\">\n <b>${e.label}</b>\n ${value}\n </div>`;\n });\n str += `\n </div>\n </div>`; //end .element-detail > .element-list\n } //str += `</div>`;\n\n\n if (dataDay && dataDay.errors && dataDay.errors.length > 0) {\n dataDay.errors.forEach(err => {\n str += `\n <div class=\"alert\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].alert}\n ${err.label}\n </div>`;\n });\n }\n\n let msg = null;\n let author = null;\n let dateMsg = null;\n\n if (dataDay && tabSelected.floatBox && tabSelected.floatBox.messagePath) {\n msg = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, tabSelected.floatBox.messagePath);\n }\n\n if (!msg && dataDay && dataDay.message && dataDay.message.value) {\n msg = dataDay.message.value;\n author = dataDay.message.author;\n dateMsg = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].formatDateReadeable(new Date(dataDay.message.date));\n }\n\n if (msg) {\n //msg = msg.replace(/(\\r\\n|\\r|\\n)/g, '<br>');\n str += `\n <div class=\"msj-container\">\n <div class=\"msj\">\n <pre>${msg || \"\"}</pre>\n </div>\n <div class=\"msj-detail\">\n <span class=\"email\"> ${author || \"\"} </span>\n <span class=\"date\"> ${dateMsg || \"\"} </span>\n </div>\n </div>`;\n }\n\n let strContainer = `<div class=\"detail-day dd-hide\"> ${str} </div>`;\n if (onlyStringContent) return str;\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(strContainer);\n },\n\n /**\n * Recrea HTML de detailDay\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} item - Item relacionado\n * @param {Object} dataDay - valores de item y Dia\n * @return {String} Elemento como String, de detailDay\n */\n redrawDetailDay(config, item, dataDay, tabSelected) {\n return this.createDetailDay(config, item, dataDay, tabSelected, true);\n },\n\n /**\n * Reposiciona FloatBox\n * verifica si el parent esta desplegado, para ocultar los datos\n *\n * Solo actualiza las alturas de los floatbox\n * no recrea los floatbox, es mas optimo\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} item - Item relacionado\n */\n repositionFloatBox(config, $floatBoxContainer) {\n $floatBoxContainer.querySelectorAll(\".float-box\").forEach($f => {\n let itemId = $f.getAttribute(\"item-id\");\n let itemHeight = parseFloat(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCSSVariable(config, \"--item-height\"));\n let item, parent;\n ({\n item,\n parent\n } = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getItemById(config, itemId, \"child\", true));\n\n if (item) {\n let top = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPositionByItem(config, item);\n $f.style.top = top * itemHeight + \"px\";\n\n if (parent && parent.isClosed) {\n $f.classList.add(\"hide\");\n } else if ($f.classList.contains(\"hide\")) {\n $f.classList.remove(\"hide\");\n }\n }\n });\n },\n\n /**\n * Recrea indicadores de dias seleccionados\n *\n * @param {Object} $elem - Elemento Dom donde crea los elementos seleccionados\n * @param {Object[]} selected - Array con los dias seleccionados\n * @return {Object} Elemento Dom que contiene los indicadores de dias seleccionados\n */\n redrawSelectBoard($elem, selected) {\n $elem.innerHTML = \"\";\n let hasNumber = true;\n\n if (selected) {\n if (selected.length == 1) hasNumber = false;\n selected.forEach(s => {\n let attributes = [];\n\n if (hasNumber) {\n attributes.push({\n name: \"cap-badge\",\n value: s.index\n });\n }\n\n let $s = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", {\n className: \"selected-day\",\n attributes\n });\n $s.style.left = s.pos.left + \"px\";\n $s.style.top = s.pos.top + \"px\";\n $elem.append($s);\n });\n }\n\n return $elem;\n },\n\n /**\n * Obtiene String con estilos CSS de la posicion de un floatBox\n * calculado segun item y fecha de los valores\n *\n * @param {Object} config - Configuracion capibara, para ver fecha de inicio\n * @param {Object} data - Datos del dia indicado\n * @param {Object} item - Item relacionado\n * @return {String} String CSS top y left , para posicionar floatBox en table\n */\n getPositionFloatBox(config, data, item) {\n let left = _util_dateUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].diffDays(config.timeline.start, data.date);\n let top = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPositionByItem(config, item);\n let dayWidth = parseFloat(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCSSVariable(config, \"--day-width\"));\n let itemHeight = parseFloat(_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCSSVariable(config, \"--item-height\"));\n left *= dayWidth;\n top *= itemHeight;\n return \"top: \" + top + \".5px; left:\" + left + \".5px;\";\n },\n\n /**\n * Crea Boton como elemento Dom\n *\n * @param {Object} props - propiedades para boton\n * @param {String} props.className - classes css para boton\n * @param {*} props.key - key para identificar a boton\n * @param {String} props.label - Texto boton\n * @return {Object} Elemento Dom del boton creado\n */\n createButton(props) {\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <button class=\"${props.className || \"\"}\" input-key=\"${props.key || \"\"}\">\n ${props.label || \"\"}\n </button>`);\n },\n\n /**\n * Crea Botones de guardar y cancelar los datos de formulario del sidebar derecho\n *\n * @return {Object} Elemento Dom del botones creados\n */\n createNavRightbuttons() {\n let saveBtn = this.createButton({\n label: \"Guardar\",\n className: \"cap-btn-raised\"\n });\n let cancelBtn = this.createButton({\n label: \"Cancelar\",\n className: \"cap-btn-outline\"\n });\n let btnSection = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`<div class=\"button-section\"></div>`);\n btnSection.appendChild(saveBtn);\n btnSection.appendChild(cancelBtn);\n saveBtn.addEventListener(\"click\", e => {\n saveBtn.dispatchEvent(new CustomEvent(\"saveMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n });\n cancelBtn.addEventListener(\"click\", e => {\n cancelBtn.dispatchEvent(new CustomEvent(\"cancelMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n });\n return btnSection;\n },\n\n /**\n * Crea Input como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} [dataDay = null] - valores de item y Dia, opcional\n * @param {Object} [daySelected = null] - datos del dia seleccionado\n * @param {Object[]} [selected = []] - array de objetos, de dias seleccionados\n * @return {Object} Elemento Dom del input creado\n */\n createInput(props, dataDay = null, daySelected = null, selected = []) {\n let r = null;\n if (props.ignoreRender == true) return r;\n\n switch (props.type) {\n case \"custom\":\n r = props.render ? props.render({\n props,\n dataDay,\n daySelected,\n selected\n }) : null;\n r.setAttribute(\"input-key\", props.key);\n break;\n\n case \"select\":\n r = this.createInputSelect(props, dataDay, daySelected);\n break;\n\n case \"file\":\n r = this.createInputFile(props, dataDay);\n break;\n\n case \"fileLink\":\n r = this.createFileLink(props, dataDay);\n break;\n\n case \"text\":\n r = this.createText(props, selected);\n break;\n\n case \"title\":\n r = this.createTitle(props);\n break;\n\n case \"number\":\n r = this.createInputNumber(props, dataDay);\n break;\n\n case \"float\":\n r = this.createInputFloat(props, dataDay);\n break;\n\n case \"message\":\n r = this.createInputMessage(props, dataDay);\n break;\n\n case \"textarea\":\n r = this.createInputTextArea(props, dataDay);\n break;\n\n case \"checkbox\":\n r = this.createInputCheckbox(props, dataDay);\n break;\n\n case \"inputList\":\n r = this.createInputList(props, dataDay, daySelected);\n break;\n\n case \"input-box\":\n r = this.createInputBox(props, dataDay);\n break;\n\n case \"list\":\n r = this.createList(props, dataDay);\n break;\n\n case \"data-list\":\n r = this.createDataList(props, dataDay, daySelected, selected);\n break;\n\n case \"button\":\n r = this.createInputButton(props, dataDay);\n break;\n\n case \"buttons-group\":\n r = this.createInputButtonsGroup(props, dataDay);\n break;\n\n case \"time\":\n r = this.createInputTime(props, dataDay);\n break;\n\n case \"text\":\n default:\n r = this.createInputText(props, dataDay);\n }\n\n return r;\n },\n\n /**\n * Crea Input con formato Hora, como elemento Dom\n *\n * Usa 2 inputs, hora y minutos\n *\n * el value que interpreta es String HH:MM\n *\n * @param {Object} props - config para Input\n * @param {Object} [dataDay = null] - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputTime(props, dataDay) {\n let hhValue = \"\";\n let mmValue = \"\";\n\n if (dataDay && dataDay.values) {\n let value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n\n if (value) {\n value = value.split(\":\");\n hhValue = value[0];\n mmValue = value[1];\n }\n }\n\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label || \"\"}\n </span>\n <div class=\"d-flex\">\n <div class=\"time\">\n <input type=\"number\"\n class=\"hour\"\n id=\"test\"\n placeholder=\"00\"\n min=\"0\"\n max=\"24\"\n value=\"${hhValue}\">\n <span class=\"symbol\">:</span>\n <input type=\"number\"\n class=\"minutes\"\n placeholder=\"00\"\n min=\"0\"\n max=\"59\"\n value=\"${mmValue}\">\n </div>\n <span class=\"text-hint\">\n ${props.textHint || \"\"}\n </span>\n </div>\n </div>`);\n let $hhInput = $elem.querySelector(\".hour\");\n let $mmInput = $elem.querySelector(\".minutes\");\n $hhInput.addEventListener(\"input\", e => {\n $hhInput.dispatchEvent(new CustomEvent(\"changeTimeInputHH\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: props.key,\n value: e.srcElement.value\n }\n }));\n });\n $mmInput.addEventListener(\"input\", e => {\n $mmInput.dispatchEvent(new CustomEvent(\"changeTimeInputMM\", {\n bubbles: true,\n cancelable: false,\n detail: {\n key: props.key,\n value: e.srcElement.value\n }\n }));\n });\n this.addKeyDownInputEvents($hhInput, $elem, props);\n this.addKeyDownInputEvents($mmInput, $elem, props);\n return $elem;\n },\n\n /**\n * Crea Text como elemento Dom\n * Se configura como input, pero no devuelve datos, es un texto\n *\n * @param {Object} props - config para Input\n * @return {Object} Elemento Dom del input creado\n */\n createText(props, selected) {\n let label = props.label;\n\n if (props.formatter) {\n label = props.formatter({\n selected\n });\n }\n\n let $elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"${props.classNames || \"\"}\">\n ${label}\n </span>\n </div>`);\n return $elem;\n },\n\n /**\n * Crea Title como elemento Dom\n * Se configura como input, pero no devuelve datos, es un texto\n *\n * @param {Object} props - config para Input\n * @return {Object} Elemento Dom del input creado\n */\n createTitle(props) {\n let classNames = \"text-title\";\n\n if (props.isSubtitle) {\n classNames = \"text-subtitle\";\n }\n\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"${classNames}\">\n ${props.label}\n </span>\n </div>`);\n },\n\n /**\n * Crea Input tipo Numerico como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputNumber(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n value = value || \"\";\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.classNames || \"\"} ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <div class=\"input-section-title\">\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n <span class=\"text-subtitle-2 \">\n ${props.suffix ? \"(\" + props.suffix + \")\" : \"\"}\n </span>\n </div>\n <div class=\"d-flex\">\n <input type=\"number\"\n class=\"nav-input\"\n value=\"${value}\">\n\n <span class=\"text-hint\">\n ${props.textHint || \"\"}\n </span>\n </div>\n </div>`);\n let inputElem = elem.querySelector(\"input\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n /**\n * Crea Input tipo FIlepicker como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputFile(props, dataDay) {\n let value = \"\";\n let fileName = \"\";\n let filePath = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n fileName = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.fileNameValue);\n filePath = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.filePathValue);\n }\n\n value = value || \"\";\n fileName = fileName || \"\";\n filePath = filePath || \"\";\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.classNames || \"\"} ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n\n <div class=\"input-section-title\">\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n </div>\n\n <div class=\"nav-input-file\" >\n <button class=\"small-close clear-file-input\">x</button>\n <label >\n <span class=\"nav-input-file-label\">\n ${props.pickerLabel || \"Seleccionar Archivo\"}\n </span>\n <input type=\"file\" value=\"${value}\">\n </label>\n </div>\n\n <div class=\"input-section-link\">\n <a href=\"${filePath}\" target=\"_blank\" >\n ${fileName}\n </a>\n </div>\n\n </div>`);\n let $inputElem = elem.querySelector(\"input\");\n let $clearBtn = elem.querySelector(\".clear-file-input\");\n let $fileInputLabel = elem.querySelector(\".nav-input-file-label\");\n $inputElem.addEventListener(\"change\", evt => {\n let fileName = $inputElem.files[0].name;\n $fileInputLabel.textContent = fileName;\n });\n $clearBtn.addEventListener(\"click\", evt => {\n $inputElem.value = \"\";\n $fileInputLabel.textContent = props.pickerLabel || \"Seleccionar Archivo\";\n evt.stopPropagation();\n });\n return elem;\n },\n\n createFileLink(props, dataDay) {\n let fileName = \"\";\n let filePath = \"\";\n\n if (dataDay && dataDay.values) {\n //value = utils.getVarByPath(dataDay, props.varName);\n fileName = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.fileNameValue);\n filePath = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.filePathValue);\n }\n\n if (fileName == \"\") return null;\n fileName = fileName || \"\";\n filePath = filePath || \"\";\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.classNames || \"\"} ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n\n <div class=\"input-section-title\">\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n </div>\n\n <div class=\"input-section-link\">\n <a href=\"${filePath}\" target=\"_blank\" >\n ${fileName}\n </a>\n </div>\n\n </div>`);\n return elem;\n },\n\n /**\n * Crea lista de Inputs, con array de valores, como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @param {Object} [daySelected = null] - datos del dia seleccionado\n * @return {Object} Elemento Dom del input creado\n */\n createInputList(props, dataDay, daySelected = null) {\n let inputList = []; //obtiene inputs default, para crearlos, sin valores\n\n if (daySelected && Array.isArray(daySelected.item.values[props.inputList])) {\n inputList = daySelected.item.values[props.inputList].map(inputRow => {\n //limpia inputList inputs\n inputRow.inputs.map(input => {\n input.value = null;\n return input;\n }); //obtiene valores del dia\n\n if (dataDay && dataDay.values) {\n let inputValues = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.valuesPath); //autorrellena\n\n if (inputValues) {\n inputRow.inputs.forEach(input => {\n let values = inputValues.find(v => v.id == inputRow.id);\n input.value = values ? values[input.varName] : null;\n });\n }\n }\n\n return inputRow;\n });\n }\n\n let str = `<div input-key=\"${props.key || \"\"}\" class=\"input-section-list ${props.isHidden ? 'hide' : ''} \">\n <div class=\"input-section-title\">\n <span class=\"text-title\">\n ${props.label}\n </span> \n </div>`;\n inputList.forEach(inputRow => {\n str += `\n <div class=\"input-section ${props.toRight ? \"to-right\" : \"\"}\" >\n <span class=\"text-subtitle\">\n ${inputRow.label}\n </span>`;\n inputRow.inputs.forEach(input => {\n str += ` \n <div class=\"input-section-col\" >\n <span class=\"text-subtitle \">\n ${input.label}\n </span>\n <input type=\"number\"\n input-id=\"${inputRow.id}\"\n input-label=\"${input.label}\"\n class=\"nav-input small\"\n value=\"${input.value}\">\n </div>`;\n });\n str += `\n </div>`;\n });\n str += `</div>`;\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let inputsElem = elem.querySelectorAll(\"input\");\n inputsElem.forEach(inputElem => this.addKeyDownInputEvents(inputElem, elem, props));\n return elem;\n },\n\n createInputSelect(props, dataDay, daySelected = null) {\n let value = null;\n let options = props.options;\n\n if (dataDay && dataDay.values) {\n let val = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n value = val ? val.value : null;\n }\n\n let str = `<div input-key=\"${props.key || \"\"}\" class=\"${props.isHidden ? 'hide' : ''}\" >\n <div class=\"input-section \" >\n <span class=\"text-subtitle\">\n ${props.label}\n </span>\n\n <select class=\"input-select\">\n\n <option value=\"\" ${value == null ? \"selected\" : \"\"}>\n ${props.noDataLabel || \"-- sin asignar --\"}\n </option>\n\n `;\n options.forEach(option => {\n str += `\n <option value=\"${option.id}\" ${option.id == value ? \"selected\" : \"\"}>\n ${option.label}\n </option>\n `;\n });\n str += `\n\n </select>\n </div>\n\n </div>`;\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n return elem;\n },\n\n /**\n * Crea Input de texto TextArea como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputTextArea(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n <textarea class=\"\" value=\"${value}\"></textarea>\n </div>`);\n let inputElem = elem.querySelector(\"textarea\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n /**\n * Crea Input de Mensaje como elemento Dom\n * utiliza TextArea\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputMessage(props, dataDay) {\n let value = dataDay ? _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName) : null;\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section msj-input-container ${props.isHidden ? 'hide' : ''} \"\n input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n Mensaje\n </span>\n <textarea class=\"msj\">${value || \"\"}</textarea>\n </div>`);\n let inputElem = elem.querySelector(\"textarea\"); //this.addKeyDownInputEvents(inputElem);\n\n return elem;\n },\n\n /**\n * Crea Input de texto como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputText(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n <input type=\"text\" class=\"nav-input\" value=\"${value}\">\n </div>`);\n let inputElem = elem.querySelector(\"input\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n /**\n * Crea Input Numero Flotante, como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputFloat(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let elem = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n <input type=\"number\" class=\"nav-input\" value=\"${value}\">\n </div>`);\n let inputElem = elem.querySelector(\"input\");\n this.addKeyDownInputEvents(inputElem, elem, props);\n return elem;\n },\n\n createDataList(props, dataDay, daySelected, selected) {\n let list = [];\n\n if (dataDay && dataDay.values) {\n list = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName) || [];\n }\n\n let searchInput = ` <div class=\"search-input-container\">\n <input id=\"\" type=\"text\" name=\"\" class=\"search-input\" placeholder=\"buscar\">\n <button class=\"search-input-clear\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].closeIcon}\n </button>\n </div>`;\n let editBtn = \"\";\n\n if (props.editButton) {\n editBtn = `<button class=\"cap-btn-raised cap-btn-sm edit-btn\" input-key=\"${props.editButton.key}\">\n ${props.editButton.label} \n </button> `;\n }\n\n let str = `\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <div class=\"input-section-title\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n ${editBtn}\t\n </div>\n <div class=\"input-box \" input-key=\"${props.key || \"\"}\">\n ${searchInput}\n </div>\n </div> `;\n let $el = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $searchInput = $el.querySelector(\".search-input\");\n let $searchInputClear = $el.querySelector(\".search-input-clear\");\n let $inputBox = $el.querySelector(\".input-box\");\n let $items = list.map((item, j) => {\n let label = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameLabel) || dataDay.label || \"__\";\n let $elItem = this.createDataListItem({\n label,\n valueText: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameValueText) || \"\",\n subText: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameSubText) || \"\",\n id: \"list-item-\" + (dataDay.id || j),\n key: \"list-item-\" + (dataDay.id || j),\n tooltip: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameTooltip) || label,\n //colorIcon: \"c-red\",\n link: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameLink) || null,\n suffix: _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(item, props.varNameSuffix) || \"\" //value: JSON.stringify(utils.getVarByPath(item, props.varNameInput)) || {}\n\n });\n $inputBox.appendChild($elItem);\n });\n $searchInputClear.addEventListener(\"click\", e => {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n $searchInput.addEventListener(\"keydown\", e => {\n if (e.key === \"Escape\") {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n });\n $searchInput.addEventListener(\"input\", e => {\n let $inputs = [];\n $inputs = $el.querySelectorAll(\".mini-input-section\") || [];\n $inputs.forEach($i => {\n let label = $i.getAttribute(\"label\");\n let search = $searchInput.value;\n\n if (label.toLowerCase().includes(search.toLowerCase())) {\n $i.classList.remove(\"hide\");\n } else {\n $i.classList.add(\"hide\");\n }\n });\n });\n\n if (props.editButton.onClick) {\n let button = $el.querySelector(\"button.edit-btn\");\n\n if (button && props.editButton) {\n button.addEventListener(\"click\", e => props.editButton.onClick({\n event: e,\n props,\n dataDay,\n daySelected,\n selected,\n $element: $el\n }));\n }\n\n $items.forEach($i => {\n $el.addEventListener(\"click\", e => {\n props.editButton.onClick({\n event: e,\n props,\n dataDay,\n daySelected,\n selected,\n $element: $el\n });\n });\n });\n }\n\n return $el;\n },\n\n createDataListItem({\n label = \"\",\n valueText = \"\",\n subText = \"\",\n id = \"\",\n key = \"\",\n tooltip = \"\",\n colorIcon = \"\",\n link = null,\n suffix = null,\n value = \"\"\n }) {\n let tooltipStr = \"\";\n let iconStr = null;\n let linkStr = \"\";\n let str = \"\";\n\n if (tooltip) {\n tooltipStr = `\n <div class=\"mini-input-section--tooltip\">\n ${tooltip}\n </div>`;\n }\n\n if (colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(itemFormated.colorIcon)) {\n iconStr = `<div class=\"mini-input-section--icon\" style=\"background:${colorIcon}\"> </div>`;\n } else {\n iconStr = `<div class=\"mini-input-section--icon ${colorIcon}\"> </div>`;\n }\n }\n\n if (link) {\n linkStr = `<a class=\"mini-input-section--link\" target=\"_blank\" href=\"${link}\">${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].linkIcon}</a> `;\n }\n\n str += `\n <div class=\"mini-input-section clickeable ${iconStr ? \"has-icon\" : \"\"} \" \n label=\"${label}\" \n data-id=\"${id}\"\n data-key=\"${key}\"\n data-value=\"${value || ''}\"\n >\n <label>\n ${iconStr || \"\"}\n\n <div class=\"mini-input-section--titles\">\n <div class=\"mini-input-section--title truncate\">\n ${label}\n </div>\n <div class=\"mini-input-section--subtitle truncate\">\n ${subText}\n </div>\n </div>\n\n <div class=\"mini-input-section--content\" >\n ${valueText}\n </div>\n <div class=\"mini-input-section--suffix\" >\n ${suffix}\n </div>\n\n ${linkStr}\n\n </label>\n ${tooltipStr}\n </div>`;\n return _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n },\n\n createList(props, dataDay) {\n let tabsContainer = \"\";\n\n if (props.tabs) {\n let tabs = \"\";\n props.tabs.forEach(tab => {\n tabs += `\n <div class=\"input-box-tab\" tab-key=\"${tab.key}\">\n ${tab.name}\n </div>`;\n });\n tabsContainer = `\n <div class=\"input-box-tab-container\">\n ${tabs}\n </div>\n `;\n }\n\n let searchInput = `\n <div class=\"search-input-container\">\n <input id=\"\" type=\"text\" name=\"\" class=\"search-input\" placeholder=\"buscar\">\n <button class=\"search-input-clear\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].closeIcon}\n </button>\n </div>\n `;\n let str = `\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n\n ${tabsContainer}\n <div class=\"input-box \" input-key=\"${props.key || \"\"}\">\n\n ${searchInput}\n `; //TODO obtener input segun fila\n\n if (props.inputs) {\n props.inputs.forEach(i => {\n if (i.isTitle) {\n let tooltip = \"\";\n let icon = null;\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n ${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n str += `\n <div class=\"mini-input-section is-title ${icon ? \"has-icon\" : \"\"}\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n ${icon || \"\"}\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n </label>\n ${tooltip}\n </div>`;\n } else {\n let tooltip = \"\";\n let icon = null;\n let link = \"\";\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n if (i.link) {\n link = `<a class=\"mini-input-section--link\" target=\"_blank\" href=\"${i.link}\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].linkIcon}\n </a> `;\n }\n\n str += `\n <div class=\"mini-input-section ${icon ? \"has-icon\" : \"\"}\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n\n ${icon}\n\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n\n <div class=\"mini-input-section--suffix\" >${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}</div>\n\n ${link}\n\n </label>\n <div class=\"mini-input-section--footer\">\n <span class=\"start\"> start</span>\n <span class=\"end\"> end </span>\n </div>\n ${tooltip}\n </div>`;\n }\n });\n }\n\n str += `\n </div>\n </div> `;\n let $el = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $tabs = $el.querySelectorAll(\".input-box-tab[tab-key]\") || [];\n let $searchInput = $el.querySelector(\".search-input\") || null;\n let $searchInputClear = $el.querySelector(\".search-input-clear\") || null;\n $tabs.forEach(t => {\n t.addEventListener(\"click\", e => {\n this.selectInputBoxTab(t, $el);\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n });\n\n if ($searchInputClear) {\n $searchInputClear.addEventListener(\"click\", e => {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n }\n\n if ($searchInput) {\n $searchInput.addEventListener(\"keydown\", e => {\n if (e.key === \"Escape\") {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n });\n $searchInput.addEventListener(\"input\", e => {\n let $tabSelected = $el.querySelector(\".input-box-tab[tab-key].active\") || null;\n let $inputs = [];\n\n if ($tabSelected) {\n let tabKey = $tabSelected.getAttribute(\"tab-key\");\n $inputs = $el.querySelectorAll(\".mini-input-section[input-tab-key='\" + tabKey + \"']\") || [];\n } else {\n $inputs = $el.querySelectorAll(\".mini-input-section\") || [];\n }\n\n $inputs.forEach($i => {\n let label = $i.getAttribute(\"label\");\n let search = $searchInput.value;\n\n if (label.toLowerCase().includes(search.toLowerCase())) {\n $i.classList.remove(\"hide\");\n } else {\n $i.classList.add(\"hide\");\n }\n });\n });\n }\n\n this.selectInputBoxTab(_.first($tabs), $el);\n return $el;\n },\n\n /**\n * Crea InputBox, como elemento Dom\n * un InputBox es un contenedor con una lista de inputs\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputBox(props, dataDay) {\n let value = [];\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let tabsContainer = \"\";\n\n if (props.tabs) {\n let tabs = \"\";\n props.tabs.forEach(tab => {\n tabs += `\n <div class=\"input-box-tab\" tab-key=\"${tab.key}\">\n ${tab.name}\n </div>`;\n });\n tabsContainer = `\n <div class=\"input-box-tab-container\">\n ${tabs}\n </div>\n `;\n }\n\n let searchInput = `\n <div class=\"search-input-container\">\n <input id=\"\" type=\"text\" name=\"\" class=\"search-input\" placeholder=\"buscar\">\n <button class=\"search-input-clear\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].closeIcon}\n </button>\n </div>\n `;\n let str = `\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <span class=\"text-subtitle d-block\">\n ${props.label}\n </span>\n\n ${tabsContainer}\n\n <div class=\"input-box \" input-key=\"${props.key || \"\"}\">\n\n ${searchInput}\n `;\n\n if (props.inputs) {\n props.inputs.forEach(i => {\n if (i.isTitle) {\n let tooltip = \"\";\n let icon = \"\";\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n ${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n str += `\n <div class=\"mini-input-section is-title\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n ${icon}\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n </label>\n ${tooltip}\n </div>`;\n } else {\n let value_found = value ? value.find(val => val.id == i.id) : null;\n let v = value_found || \"\";\n let inputValue = props.varNameInput && v[props.varNameInput] ? v[props.varNameInput] : v.value;\n let tooltip = \"\";\n let icon = \"\";\n let link = \"\";\n\n if (i.tooltip) {\n tooltip = `\n <div class=\"mini-input-section--tooltip\">\n ${i.tooltip}\n </div>`;\n }\n\n if (i.colorIcon) {\n if (_util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isHexColor(i.colorIcon)) {\n icon = `<div class=\"mini-input-section--icon\" style=\"background:${i.colorIcon}\"> </div>`;\n } else {\n icon = `<div class=\"mini-input-section--icon ${i.colorIcon}\"> </div>`;\n }\n }\n\n if (i.link) {\n link = `<a class=\"mini-input-section--link\" target=\"_blank\" href=\"${i.link}\">\n ${_util_icons__WEBPACK_IMPORTED_MODULE_3__[\"default\"].linkIcon}\n </a> `;\n }\n\n str += `\n <div class=\"mini-input-section ${icon ? \"has-icon\" : \"\"}\" input-tab-key=\"${i.tabKey || \"\"}\" label=\"${i.label}\">\n <label>\n <input type=\"number\"\n class=\"mini-input\"\n input-id=\"${i.id || \"\"}\"\n input-key=\"${i.key || i.label}\"\n value=\"${inputValue || \"\"}\">\n\n ${icon || \"\"}\n\n <div class=\"mini-input-section--title truncate\">\n ${i.label}\n </div>\n\n <div class=\"mini-input-section--suffix\" >${i.suffix ? \"(\" + i.suffix + \")\" : \"\"}</div>\n\n ${link}\n\n </label>\n ${tooltip}\n </div>`;\n }\n });\n }\n\n str += `\n </div>\n </div> `;\n let $el = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(str);\n let $tabs = $el.querySelectorAll(\".input-box-tab[tab-key]\") || [];\n let $inputs = $el.querySelectorAll(\"input.mini-input\") || [];\n let $searchInput = $el.querySelector(\".search-input\") || null;\n let $searchInputClear = $el.querySelector(\".search-input-clear\") || null;\n $tabs.forEach(t => {\n t.addEventListener(\"click\", e => {\n this.selectInputBoxTab(t, $el);\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n });\n\n if ($searchInputClear) {\n $searchInputClear.addEventListener(\"click\", e => {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n });\n }\n\n if ($searchInput) {\n $searchInput.addEventListener(\"keydown\", e => {\n if (e.key === \"Escape\") {\n $searchInput.value = \"\";\n $searchInput.dispatchEvent(new Event(\"input\", {\n bubbles: true\n }));\n }\n });\n $searchInput.addEventListener(\"input\", e => {\n let $tabSelected = $el.querySelector(\".input-box-tab[tab-key].active\") || null;\n let $inputs = [];\n\n if ($tabSelected) {\n let tabKey = $tabSelected.getAttribute(\"tab-key\");\n $inputs = $el.querySelectorAll(\".mini-input-section[input-tab-key='\" + tabKey + \"']\") || [];\n } else {\n $inputs = $el.querySelectorAll(\".mini-input-section\") || [];\n }\n\n $inputs.forEach($i => {\n let label = $i.getAttribute(\"label\");\n let search = $searchInput.value;\n\n if (label.toLowerCase().includes(search.toLowerCase())) {\n $i.classList.remove(\"hide\");\n } else {\n $i.classList.add(\"hide\");\n }\n });\n });\n }\n\n this.selectInputBoxTab(_.first($tabs), $el);\n $inputs.forEach(i => this.addKeyDownInputEvents(i, $el, props));\n return $el;\n },\n\n selectInputBoxTab($tab, $el) {\n let $tabs = $el.querySelectorAll(\".input-box-tab[tab-key]\") || [];\n let $inputSections = $el.querySelectorAll(\".mini-input-section\") || [];\n $tabs.forEach(t => {\n t.classList.remove(\"active\");\n });\n\n if ($tab) {\n $tab.classList.add(\"active\");\n $inputSections.forEach(i => {\n let key = i.getAttribute(\"input-tab-key\");\n\n if (key == $tab.getAttribute(\"tab-key\")) {\n i.classList.remove(\"hide\");\n } else {\n i.classList.add(\"hide\");\n }\n });\n }\n },\n\n /**\n * Crea Checkbox, como elemento Dom\n *\n * @param {Object} props - config para Input\n * @param {Object} dataDay - valores de item y Dia, opcional\n * @return {Object} Elemento Dom del input creado\n */\n createInputCheckbox(props, dataDay) {\n let value = \"\";\n\n if (dataDay && dataDay.values) {\n value = _util_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getVarByPath(dataDay, props.varName);\n }\n\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <label>\n <input type=\"checkbox\" name=\"${props.key || \"\"}\" input-key=\"${props.key || \"\"}\" ${value ? \"checked\" : \"\"}>\n ${props.label}\n </label>\n </div>`);\n return r;\n },\n\n createInputButtonsGroup(props) {\n let $container = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <div class=\"buttons-group\"> </div>\n </div>`);\n let $containerButtonGroup = $container.querySelector(\".buttons-group\");\n let $buttons = [];\n $buttons = props.buttons.map(buttonProp => {\n let buttonStr = `\n <button \n name=\"${buttonProp.key || \"\"}\" \n input-key=\"${buttonProp.key || \"\"}\"\n class=\"cap-btn-outline cap-btn-sm ${buttonProp.isSelected ? 'selected' : ''} \">\n ${buttonProp.label}\n </button>`;\n let $button = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(buttonStr);\n $containerButtonGroup.append($button);\n $button.addEventListener(\"click\", e => {\n if (props.isSelectable) {\n $buttons.forEach($b => $b.classList.remove(\"selected\"));\n $button.classList.add(\"selected\");\n }\n\n buttonProp.onClick({\n props,\n event: e,\n buttonsElements: $buttons\n });\n });\n return $button;\n });\n return $container;\n },\n\n createInputButton(props) {\n let r = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(`\n <div class=\"input-section ${props.isHidden ? 'hide' : ''} \" input-key=\"${props.key || \"\"}\">\n <button \n name=\"${props.key || \"\"}\"\n input-key=\"${props.key || \"\"}\"\n class=\"cap-btn-outline\">\n ${props.label}\n </button>\n </div>`);\n let button = r.querySelector(\"button\");\n button.addEventListener(\"click\", e => props.onClick({\n props,\n event: e\n }));\n return r;\n },\n\n addKeyDownInputEvents($input, $inputContainer, props) {\n $input.addEventListener(\"keydown\", function (event) {\n if (event.keyCode === 13) {\n //ENTER\n $input.dispatchEvent(new CustomEvent(\"saveMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n }\n\n if (event.keyCode === 27) {\n //ESC\n $input.dispatchEvent(new CustomEvent(\"cancelMultiInput\", {\n bubbles: true,\n cancelable: false\n }));\n }\n });\n $input.addEventListener(\"input\", e => {\n if (props.onInput) {\n props.onInput({\n event: e,\n value: e.srcElement.value,\n props,\n $element: $inputContainer\n });\n }\n });\n },\n\n createContextMenu({\n config,\n $capibaraElem = null,\n evt = null,\n date = null,\n item = null,\n selected = [],\n tabSelected = null,\n left = null,\n top = null,\n name = \"\"\n }) {\n if (config.timeline.contextMenu === undefined) return {\n elem: null,\n isVisible: false\n };\n let className = \"\";\n let style = \"\";\n let strHtml = \"\";\n let leftPosition = null;\n let topPosition = null;\n let isVisible = true;\n let boundRectCapibara = null;\n let gap = 15; //px\n\n if ($capibaraElem) {\n boundRectCapibara = $capibaraElem.getBoundingClientRect();\n }\n\n if (evt && boundRectCapibara) {\n left = evt.clientX;\n top = evt.clientY - boundRectCapibara.top;\n }\n\n if (left) {\n leftPosition = left;\n }\n\n if (top) {\n topPosition = top;\n }\n\n if (leftPosition !== null & topPosition !== null) {\n if (boundRectCapibara) {\n let transformStyle = \"\";\n\n if (topPosition > boundRectCapibara.height * 2 / 6 && topPosition <= boundRectCapibara.height * 4 / 6) {\n transformStyle += `translateY(-50%)`;\n }\n\n if (topPosition > boundRectCapibara.height * 4 / 6) {\n transformStyle += `translateY(-100%)`;\n }\n\n if (leftPosition > boundRectCapibara.width * 4 / 6) {\n transformStyle += `translateX(-100%)`;\n leftPosition -= gap;\n } else {\n leftPosition += gap;\n }\n\n if (transformStyle != \"\") {\n style += ` transform: ${transformStyle};`;\n }\n }\n\n style += `top: ${topPosition}px; left: ${leftPosition}px;`;\n } else {\n className += \"cm-hide\";\n isVisible = false;\n }\n\n strHtml += ` <div class=\"cap-context-menu-container ${className}\">\n <div class=\"cap-context-menu\" style=\"${style}\">\n </div>\n </div>`;\n let $contextMenuContainer = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(strHtml);\n let $contextMenu = $contextMenuContainer.querySelector(\".cap-context-menu\");\n config.timeline.contextMenu.options.forEach(option => {\n if (option.showIf) {\n let show = option.showIf({\n item,\n date,\n selected,\n name,\n tabSelected\n });\n if (!show) return;\n }\n\n let isEnabled = true;\n let isClickeable = true;\n\n if (option.enableIf) {\n isEnabled = option.enableIf({\n item,\n date,\n selected,\n name,\n tabSelected\n });\n }\n\n let optionClassName = \"\";\n let strIcon = \"\";\n let label = \"\";\n\n if (!isEnabled) {\n optionClassName += \"is-disabled \";\n }\n\n if (option.isDivider) {\n isClickeable = false;\n optionClassName += \"is-divider \";\n }\n\n if (option.label) {\n label = `<span>${option.label}</span>`;\n }\n\n if (option.icon) {\n strIcon = `<div class=\"cap-context-menu_item_icon\">\n <svg viewBox=\"0 0 24 24\">\n <path d=\"${option.icon}\" />\n </svg>\n </div>`;\n }\n\n let optionStrHtml = `\n <div class=\"cap-context-menu_item ${optionClassName}\">\n ${strIcon}\n ${label}\n </div>`;\n let $option = _util_domUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElementFromHTML(optionStrHtml);\n\n if (isEnabled && isClickeable) {\n $option.addEventListener(\"click\", evtClick => option.onClick({\n config,\n evt: evtClick,\n date,\n item,\n selected,\n tabSelected\n }));\n } else {\n $option.addEventListener(\"click\", evtClick => {\n evtClick.preventDefault();\n evtClick.stopPropagation();\n });\n }\n\n $contextMenu.append($option);\n });\n return {\n elem: $contextMenuContainer,\n isVisible\n };\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC90YWJsZUVsZW1lbnRzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2FwaWJhcmEvLi9zcmMvdXRpbC90YWJsZUVsZW1lbnRzLmpzPzFkODYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvbSBmcm9tIFwiLi4vdXRpbC9kb21VdGlsc1wiO1xuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi91dGlsL3V0aWxzXCI7XG5pbXBvcnQgZGF0ZVV0aWxzIGZyb20gXCIuLi91dGlsL2RhdGVVdGlsc1wiO1xuaW1wb3J0IGljb25zIGZyb20gXCIuLi91dGlsL2ljb25zXCI7XG5pbXBvcnQgZG9tVXRpbHMgZnJvbSBcIi4uL3V0aWwvZG9tVXRpbHNcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAvKipcbiAgICogQ3JlYSBlbGVtZW50byBUYWJsZVxuICAgKiBDb250ZW5kcsOhIGxvcyBlbGVtZW50b3MgcXVlIGFwYXJlY2VyYW4gZGVudHJvIGRlIGxhIHRhYmxhIGRlIHBsYW5pbGxhXG4gICAqIFNlIFVzYSBwYXJhIDpcbiAgICogICAgLSBBZ3JlZ2FyIGJhY2tncm91bmQgY29uIHBhdHJvbiBlc3RpbG8gdGFibGFcbiAgICogICAgLSBBZ3JlZ2FyIGRheU1vdXNlT3ZlciwgZGl2IHF1ZSBpbmRpY2EgcG9zaWNpb24gZGUgbW91c2VcbiAgICogICAgLSBBZ3JlZ2FyIERldGFpbERheSwgcGFyYSBkZXRhbGxlcyBkZSBkYXRvcyBlbiB0YWJsYVxuICAgKiAgICAtIEFncmVnYXIgU2VsZWN0ZWRDb250YWluZXIsIHBhcmEgZGlhcyBzZWxlY2Npb25hZG9zXG4gICAqICAgIC0gQWdyZWdhciBGbG9hdEJveENvbnRhaW5lciwgcGFyYSB2aXN1YWxpemFjaW9uIGRlIGRhdG9zIGVuIHRhYmxhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlQWdUYWJsZShjb25maWcpIHtcbiAgICBsZXQgZSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNhcGliYXJhXCIgfSk7XG4gICAgaWYgKGNvbmZpZy50aW1lbGluZS5kYXJrKSB7XG4gICAgICBlLmNsYXNzTGlzdC5hZGQoXCJkYXJrLXRoZW1lXCIpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuaXNTaG93KSB7XG4gICAgICBlLmNsYXNzTGlzdC5hZGQoXCJoZWFkZXItZXh0ZW5kZWRcIik7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNyZWEgQmFja2dyb3VuZCwgcXVlIGVzIGVsIGZvbmRvIGdyaWQsIGNvbW8gdGFibGFcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9ICRlbGVtIC0gRWxlbWVudG8gcmVsYWNpb25hZG8sIGRvbmRlIHNlIGNyZSBlbCBiYWNrZ3JvdW5kXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIENvcm5lciBGb290ZXJcbiAgICovXG4gIHJlZHJhd0JhY2tncm91bmQoY29uZmlnLCAkZWxlbSkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJhY2tncm91bmQoY29uZmlnLCAkZWxlbSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgeSBwb3NpY2lvbmEgZm9uZG8gZGUgdGFibGFcbiAgICogRXN0ZSBmb25kbyBjb250aWVuZSB1biBwYXRyb24gZGUgQ1NTIHF1ZSBsZSBkYSBsYSBhcGFyaWVuY2lhIGRlIHRhYmxhXG4gICAqIHBvciBsbyBjdWFsIHNlIGRlYmUgcmVwb3NpY2lvbmFyIHNlZ3VuIGxhIGZlY2hhIGRlIGluaWNpbywgcGFyYSBoYWNlclxuICAgKiBjYWx6YXIgbG9zIGZpbmVzIGRlIHNlbWFuYVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcGFyYW0ge09iamVjdH0gWyRlbGVtID0gbnVsbF0gLSBFbGVtZW50byBiYWNrZ3JvdW5kLCBzaSBlcyBudWxsLCBsbyBjcmVhXG4gICAqIEByZXR1cm4ge09iamVjdH0gZWxlbWVudG8gRG9tIEJhY2tncm91bmRcbiAgICovXG4gIGNyZWF0ZUJhY2tncm91bmQoY29uZmlnLCAkZWxlbSA9IG51bGwpIHtcbiAgICBsZXQgeyBoZWlnaHQsIHdpZHRoLCBkYXlXaWR0aCB9ID0gdXRpbHMuZ2V0VGFibGVEaW1lbnNpb25zKGNvbmZpZyk7XG5cbiAgICBsZXQgc3RhcnQgPSBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuc3RhcnQpO1xuICAgIGxldCBlbmQgPSBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuZW5kKTtcblxuICAgIGVuZC5zZXRUaW1lKGVuZC5nZXRUaW1lKCkgKyBkYXRlVXRpbHMuZGF5SW5NaWxsaXNlY29uZHMpOyAvLyBhZGQgMjQgaG91cnNcblxuICAgIGxldCBkQ29ycmVjdGVkID0gbmV3IERhdGUoXG4gICAgICBzdGFydC52YWx1ZU9mKCkgKyBzdGFydC5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDBcbiAgICApO1xuICAgIGxldCB3ZWVrRGF5ID0gZENvcnJlY3RlZC5nZXREYXkoKTtcbiAgICBsZXQgZGlmZldlZWtEYXlzID0gKHdlZWtEYXkgLSAxKSAqIGRheVdpZHRoICogLTE7XG5cbiAgICAkZWxlbSA9ICRlbGVtIHx8IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImJhY2tncm91bmQtZ3JpZFwiIH0pO1xuICAgICRlbGVtLnN0eWxlW1wiYmFja2dyb3VuZC1wb3NpdGlvblwiXSA9XG4gICAgICBkaWZmV2Vla0RheXMgKyBcInB4IDAsIDAgMCwgXCIgKyBkaWZmV2Vla0RheXMgKyBcInB4IDBcIjtcbiAgICAkZWxlbS5zdHlsZS53aWR0aCA9IHdpZHRoICsgXCJweFwiO1xuICAgICRlbGVtLnN0eWxlLmhlaWdodCA9IGhlaWdodCArIDEgKyBcInB4XCI7XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIFBsb3QgQ29udGFpbmVyIFZlcnRpY2FsXG4gICAqIExvcyBwbG90cyBzb24gZWxlbWVudG9zIHF1ZSBhZ3JlZ2FuIHNlY2Npb25lcyBkZSBmb25kbyBlbiBsYSBwbGFuaWxsYVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBwbG90VmVydGljYWxDb250YWluZXJcbiAgICovXG4gIGNyZWF0ZVBsb3RWZXJ0aWNhbENvbnRhaW5lcihjb25maWcpIHtcbiAgICBsZXQgJGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwicGxvdC12ZXJ0aWNhbC1jb250YWluZXJcIlxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnJlZHJhd1Bsb3RWZXJ0aWNhbENvbnRhaW5lcihjb25maWcsICRlbGVtKTtcbiAgfSxcblxuICBjcmVhdGVQbG90SG9yaXpvbnRhbENvbnRhaW5lcihjb25maWcpIHtcbiAgICBsZXQgJGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwicGxvdC1ob3Jpem9udGFsLWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3UGxvdEhvcml6b250YWxDb250YWluZXIoY29uZmlnLCAkZWxlbSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBwbG90VmVydGljYWxDb250YWluZXIsIHVzYW5kbyBlbGVtZW50byBleGlzdGVudGVcbiAgICogdXNhIHVuIGVsZW1lbnRvIGV4aXN0ZW50ZSBwYXJhIHVzYXIgbGEgZnVuY2lvbiBwYXJhIHJlZGlidWphciBlbCBlbGVtZW50b1xuICAgKlxuICAgKiBMb3MgUGxvdHMgc2UgaW5zZXJ0YW4gY29tbyBkaXZzLCBjb24gcG9zaWNpb24gZXNwZWNpZmljYWRhLFxuICAgKiBjb24gYW5jaG8gZGUgZGlhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSAkZWxlbSAtIEVsZW1lbnRvIERvbSBkb25kZSBjcmVhIHBsb3RWZXJ0aWNhbENvbnRhaW5lclxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBwbG90VmVydGljYWxDb250YWluZXJcbiAgICovXG4gIHJlZHJhd1Bsb3RWZXJ0aWNhbENvbnRhaW5lcihjb25maWcsICRlbGVtKSB7XG4gICAgJGVsZW0uaW5uZXJIVE1MID0gXCJcIjtcbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLnBsb3RzICYmIGNvbmZpZy50aW1lbGluZS5wbG90cy52ZXJ0aWNhbCkge1xuICAgICAgbGV0IHsgaGVpZ2h0LCBkYXlXaWR0aCB9ID0gdXRpbHMuZ2V0VGFibGVEaW1lbnNpb25zKGNvbmZpZyk7XG5cbiAgICAgIGNvbmZpZy50aW1lbGluZS5wbG90cy52ZXJ0aWNhbC5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgIGxldCBkaWZmRGF5cyA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgZGF0ZVV0aWxzLmRpZmZEYXlzKGNvbmZpZy50aW1lbGluZS5zdGFydCwgcC5kYXRlKVxuICAgICAgICApO1xuICAgICAgICBsZXQgbGVmdCA9IGRpZmZEYXlzICogZGF5V2lkdGg7XG4gICAgICAgIGxldCBwbG90ID0gZG9tLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZXM6IFtcInBsb3QtdmVydGljYWxcIiwgcC5jbGFzc05hbWUgfHwgXCJcIl0sXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIFwibWFyZ2luLWxlZnRcIjogbGVmdCArIFwicHhcIixcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0ICsgXCJweFwiXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgJGVsZW0uYXBwZW5kQ2hpbGQocGxvdCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIHJlZHJhd1Bsb3RIb3Jpem9udGFsQ29udGFpbmVyKGNvbmZpZywgJGVsZW0pIHtcbiAgICAkZWxlbS5pbm5lckhUTUwgPSBcIlwiO1xuICAgIGlmIChjb25maWcudGltZWxpbmUucGxvdHMgJiYgY29uZmlnLnRpbWVsaW5lLnBsb3RzLmhvcml6b250YWwpIHtcbiAgICAgIGxldCB7IHdpZHRoLCBpdGVtSGVpZ2h0IH0gPSB1dGlscy5nZXRUYWJsZURpbWVuc2lvbnMoY29uZmlnKTtcbiAgICAgIGNvbmZpZy50aW1lbGluZS5wbG90cy5ob3Jpem9udGFsLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgbGV0IGl0ZW0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIHAuaWROb2RlLCBwLnR5cGVOb2RlKTtcbiAgICAgICAgbGV0IHRvcFBvc2l0aW9uID0gdXRpbHMuZ2V0UG9zaXRpb25CeUl0ZW0oY29uZmlnLCBpdGVtLCBcInBhcmVudFwiKTtcbiAgICAgICAgbGV0IHBsb3QgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lczogW1wicGxvdC1ob3Jpem9udGFsXCIsIHAuY2xhc3NOYW1lIHx8IFwiXCJdLFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBcIm1hcmdpbi10b3BcIjogdG9wUG9zaXRpb24gKiBpdGVtSGVpZ2h0ICsgXCJweFwiLFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoICsgXCJweFwiXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgJGVsZW0uYXBwZW5kQ2hpbGQocGxvdCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIENvcm5lciBJenF1aWVyZG9cbiAgICogU2UgdXNhIHBhcmEgOlxuICAgKiAgICAtIHRpdHVsb3MgcmVsYWNpb25hZG9zIGNvbiBsb3MgZGF0b3MgZGVsIHNpZGViYXIgaXpxdWllcmRvXG4gICAqICAgIC0gdGl0dWxvcyBwYXJhIGlucHV0cyBkZSBoZWFkZXIsIGFic29sdXRlIGEgbGEgZGVyZWNoYVxuICAgKiAgICAtIGJvdG9uIHBhcmEgbW9zdHJhci9vY3VsdGFyIHNpZGViYXIgaXpxdWllcmRvXG4gICAqICAgIC0gcHJvbWVkaW9zXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIENvcm5lclxuICAgKi9cbiAgY3JlYXRlQ29ybmVyKGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNvcm5lclwiIH0pO1xuICAgIHJldHVybiB0aGlzLnJlZHJhd0Nvcm5lcigkZWxlbSwgY29uZmlnLCB0YWIpO1xuICB9LFxuXG4gIHJlZHJhd0Nvcm5lcigkZWxlbSwgY29uZmlnLCB0YWIgPSBudWxsKSB7XG4gICAgbGV0IGxhYmVsc0luaXRpYWxDb3JuZXIgPSBjb25maWcudGltZWxpbmUubmF2LmxlZnQuaW5pdGlhbC52YXJzXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAodikgPT5cbiAgICAgICAgICB2Lm9ubHlUYWIgPT0gdW5kZWZpbmVkIHx8ICh2Lm9ubHlUYWIgJiYgdGFiICYmIHYub25seVRhYiA9PSB0YWIua2V5KVxuICAgICAgKVxuICAgICAgLm1hcCgoZCkgPT4gYDxzcGFuIGNsYXNzPVwiaXRlbS1jb2xcIj4ke2QubGFiZWx9PC9zcGFuPmApXG4gICAgICAuam9pbihcIlwiKTtcblxuICAgIGxldCBsYWJlbHNFeHRlbmRDb3JuZXIgPSBjb25maWcudGltZWxpbmUubmF2LmxlZnQuZXh0ZW5kLnZhcnNcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgICh2KSA9PlxuICAgICAgICAgIHYub25seVRhYiA9PSB1bmRlZmluZWQgfHwgKHYub25seVRhYiAmJiB0YWIgJiYgdi5vbmx5VGFiID09IHRhYi5rZXkpXG4gICAgICApXG4gICAgICAubWFwKChkKSA9PiBgPHNwYW4gY2xhc3M9XCJpdGVtLWNvbFwiPiR7ZC5sYWJlbH08L3NwYW4+YClcbiAgICAgIC5qb2luKFwiXCIpO1xuXG4gICAgbGV0IGxhYmVsc0hlYWRlckV4dGVuZCA9IGNvbmZpZy50aW1lbGluZS5oZWFkZXIuZXh0ZW5kLmRhdGFcbiAgICAgIC5tYXAoKGQpID0+IHtcbiAgICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybiBcIlwiO1xuXG4gICAgICAgIGxldCBhdmcgPSBcIlwiO1xuICAgICAgICBsZXQgdG9vbHRpcCA9IFwiXCI7XG4gICAgICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgICAgICBsZXQgaXNBY2NlbnQgPSBkLmlzQWNjZW50O1xuXG4gICAgICAgIGlmIChkLmF2ZXJhZ2UpIHtcbiAgICAgICAgICBhdmcgPSBgIDxzcGFuIGNsYXNzPVwiYXZlcmFnZSBcIj4gKCA8c3Bhbj4gPHNwYW4gY2xhc3M9XCJzeW1ib2xcIj54zIQ8L3NwYW4+ICR7ZC5hdmVyYWdlfSA8L3NwYW4+KSAgPC9zcGFuPiAgIGA7XG5cbiAgICAgICAgICB0b29sdGlwID0gYGNhcC10b29sdGlwPVwiUHJvbWVkaW8gJHtkLmxhYmVsfSA6ICR7ZC5hdmVyYWdlfSAke2Quc3VmZml4IHx8IFwiXCJcbiAgICAgICAgICAgIH1cImA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZC5jb2xvcikge1xuICAgICAgICAgIGlmIChpc0FjY2VudCkge1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gZC5jb2xvciA/IFwiYy1cIiArIGQuY29sb3IgKyBcIi0tYmFja2dyb3VuZFwiIDogXCJcIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xhc3NOYW1lID0gZC5jb2xvciA/IFwiYy1cIiArIGQuY29sb3IgKyBcIi0tdGV4dCBcIiA6IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiaW5wdXQtdGl0bGUtY29udGFpbmVyICR7aXNBY2NlbnQgPyBcImlucHV0LXRpdGxlLS1hY2NlbnRcIiA6IFwiXCJcbiAgICAgICAgICB9ICR7ZC5pc1BlcnNpc3RlbnQgPyBcInBlcnNpc3RlbnRcIiA6IFwiXCJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gJHt0b29sdGlwfSBjbGFzcz1cImlucHV0LXRpdGxlICR7Y2xhc3NOYW1lfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHthdmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2QubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCJcIik7XG5cbiAgICBsZXQgdG9nZ2xlU2lkZWJhckJ0blN0cmluZyA9IGBcbiAgICAgICAgICA8YnV0dG9uIHRvZ2dsZS1zaWRlYmFyIGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taWNvbi1yYWlzZWQgY2FwLWJ0bi10b2dnbGUtc2lkZWJhciBcIj5cbiAgICAgICAgICAke2ljb25zLmNoZXZyb25SaWdodH1cbiAgICAgICAgICA8L2J1dHRvbj4gYDtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUubmF2LmxlZnQuaGlkZVRvZ2dsZVNpZGViYXJCdXR0b24pIHtcbiAgICAgIHRvZ2dsZVNpZGViYXJCdG5TdHJpbmcgPSBcIlwiO1xuICAgIH1cblxuICAgIGxldCB0ZW1wbGF0ZSA9IGA8ZGl2PlxuXG4gICAgICAgICAgJHt0b2dnbGVTaWRlYmFyQnRuU3RyaW5nfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29ybmVyLXRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tdGV4dFwiPlxuICAgICAgICAgICAgJHtjb25maWcudGltZWxpbmUuY29ybmVyLmxlZnQubGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5pdGlhbC1jb3JuZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5pdGlhbC1jb3JuZXItdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm90dG9tLWNvbnRhaW5lciBoaWRlXCI+XG4gICAgICAgICAgICAgICR7Y29uZmlnLnRpbWVsaW5lLmNvcm5lci5pbml0aWFsLmxhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAke2xhYmVsc0luaXRpYWxDb3JuZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHRlbmQtY29ybmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4LWNvcm5lci10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tY29udGFpbmVyIGhpZGVcIj5cbiAgICAgICAgICAgICAgJHtjb25maWcudGltZWxpbmUuY29ybmVyLmV4dGVuZC5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgJHtsYWJlbHNFeHRlbmRDb3JuZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXAtYnRuLW5hdi1jb3JuZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtdGl0bGVzXCI+XG4gICAgICAgICAgICAgICR7bGFiZWxzSGVhZGVyRXh0ZW5kfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1sZWZ0IGhpZGUtcHJvZ3Jlc3NcIj48L2Rpdj5cblxuICAgICAgPC9kaXY+YDtcblxuICAgIGxldCByID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTCh0ZW1wbGF0ZSk7XG5cbiAgICAkZWxlbS5pbm5lckhUTUwgPSBcIlwiO1xuICAgICRlbGVtLmFwcGVuZChyKTtcblxuICAgIGxldCB0b2dnbGVTaWRlYmFyID0gJGVsZW0ucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtc2lkZWJhcl1cIik7XG4gICAgaWYgKHRvZ2dsZVNpZGViYXIpIHtcbiAgICAgIHRvZ2dsZVNpZGViYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVTaWRlYmFyXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gJGVsZW07XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgQ29ybmVyIERlcmVjaG9cbiAgICogU2UgdXNhIHBhcmEgOlxuICAgKiAgICAtIHRpdHVsb3MgcmVsYWNpb25hZG9zIGNvbiBsb3MgZGF0b3MgZGVsIHNpZGViYXIgRGVyZWNob1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBjb3JuZXJcbiAgICovXG4gIGNyZWF0ZUNvcm5lclJpZ2h0KGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lczogW1wiY29ybmVyXCIsIFwicmlnaHRcIl0gfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3Q29ybmVyUmlnaHQoJGVsZW0sIGNvbmZpZywgdGFiKTtcbiAgfSxcblxuICByZWRyYXdDb3JuZXJSaWdodCgkZWwsIGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCBsYWJlbCA9IFwiXCI7XG5cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5sYWJlbCkge1xuICAgICAgYCA8c3Bhbj5cbiAgICAgICAgICAgICR7Y29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5sYWJlbH1cbiAgICAgICAgICA8L3NwYW4+YDtcbiAgICB9XG5cbiAgICBsZXQgc3RyID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29ybmVyLXRpdGxlXCI+XG4gICAgICAgICR7bGFiZWx9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1yaWdodCBoaWRlLXByb2dyZXNzXCI+PC9kaXY+XG4gICAgYDtcbiAgICAkZWwuaW5uZXJIVE1MID0gc3RyLnRyaW0oKTtcbiAgICBsZXQgJGJ0bkNvbnRhaW5lciA9ICRlbC5xdWVyeVNlbGVjdG9yKFwiLmJ0bi1jb250YWluZXJcIik7XG5cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5idXR0b25zKSB7XG4gICAgICBjb25maWcudGltZWxpbmUuY29ybmVyLnJpZ2h0LmJ1dHRvbnMuZm9yRWFjaCgoYnRuKSA9PiB7XG4gICAgICAgIGxldCBpc0VuYWJsZWQgPSBidG4uZ2V0SXNFbmFibGVkID8gYnRuLmdldElzRW5hYmxlZCgpIDogdHJ1ZTtcbiAgICAgICAgaWYgKGlzRW5hYmxlZCkge1xuICAgICAgICAgIGxldCAkYnRuID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29ybmVyLWJ0biBjYXAtYnRuLXJhaXNlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke2J0bi5sYWJlbCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IGApO1xuXG4gICAgICAgICAgaWYgKGJ0bi5vbkNsaWNrKSB7XG4gICAgICAgICAgICAkYnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBidG4ub25DbGljayk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJGJ0bkNvbnRhaW5lci5hcHBlbmRDaGlsZCgkYnRuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZWxpbmUuY29ybmVyLnJpZ2h0LmlucHV0cykge1xuICAgICAgY29uZmlnLnRpbWVsaW5lLmNvcm5lci5yaWdodC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgbGV0ICRpbnB1dCA9IHRoaXMuY3JlYXRlQ29ybmVyUmlnaHRJbnB1dCh7IGlucHV0Q29uZmlnOiBpbnB1dCB9KTtcbiAgICAgICAgJGJ0bkNvbnRhaW5lci5hcHBlbmRDaGlsZCgkYnRuKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gJGVsO1xuICB9LFxuXG4gIGNyZWF0ZUNvcm5lclJpZ2h0SW5wdXQoeyBpbnB1dENvbmZpZywgZGF0YURheSA9IG51bGwsIGRheVNlbGVjdGVkID0gbnVsbCB9KSB7XG4gICAgbGV0IHIgPSBudWxsO1xuICAgIHN3aXRjaCAoaW5wdXRDb25maWcudHlwZSkge1xuICAgICAgY2FzZSBcImF1dG9jb21wbGV0ZS1jcnVkXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUNvcm5lclJpZ2h0SW5wdXRBdXRvY29tcGxldGVDcnVkKHtcbiAgICAgICAgICBpbnB1dENvbmZpZyxcbiAgICAgICAgICBkYXRhRGF5LFxuICAgICAgICAgIGRheVNlbGVjdGVkXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0sXG5cbiAgY3JlYXRlQ29ybmVyUmlnaHRJbnB1dEF1dG9jb21wbGV0ZUNydWQoe1xuICAgIGlucHV0Q29uZmlnLFxuICAgIGRhdGFEYXksXG4gICAgZGF5U2VsZWN0ZWRcbiAgfSkge1xuICAgIGxldCBlbGVtID0gXCJ0ZXN0XCI7XG4gICAgcmV0dXJuIGVsZW07XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSGVhZGVyIFRvcFxuICAgKiBTZSB1c2EgcGFyYSA6XG4gICAqICAgIC0gTWFuZWpvIGRlIHRhYnNcbiAgICogICAgLSBCb3RvbmVzIGRlIG5hdmVnYWNpw7NuIHkgc2VsZWNjacOzbiBkZSBmZWNoYVxuICAgKiAgICAtIEJvdG9uIHRvZ2dsZSBEYXJrIG1vZGVcbiAgICogICAgLSBCb3RvbiB0b2dnbGUgSGVhZGVyIGV4dGVuZGVkXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tXG4gICAqL1xuXG4gIGNyZWF0ZUhlYWRlclRvcChjb25maWcsIHRhYlNlbGVjdGVkID0gbnVsbCkge1xuICAgIHJldHVybiB0aGlzLnJlZHJhd0hlYWRlclRvcChjb25maWcsIHRhYlNlbGVjdGVkLCBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiKSk7XG4gIH0sXG5cbiAgcmVkcmF3SGVhZGVyVG9wKGNvbmZpZywgdGFiU2VsZWN0ZWQgPSBudWxsLCAkZWxlbSkge1xuICAgIGxldCBzdHIgPSBgXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRvcFwiPmA7XG5cbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLnRhYnMpIHtcbiAgICAgIGxldCBzaG93VGFicyA9IHRydWU7XG5cbiAgICAgIGlmIChjb25maWcudGltZWxpbmUudGFicy5maWx0ZXIoKHQpID0+ICF0LmlzSGlkZGVuKS5sZW5ndGggPT0gMCkge1xuICAgICAgICBzaG93VGFicyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2hvd1RhYnMpIHtcbiAgICAgICAgc3RyICs9IGAgPGRpdiBjbGFzcz1cInRhYi1zZWxlY3QtY29udGFpbmVyIGMtZC1kZXNrdG9wLW5vbmUgYy1kLW1vYmlsZS1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwidGFicy1zZWxlY3RcIiA+YDtcblxuICAgICAgICBjb25maWcudGltZWxpbmUudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICBpZiAoIXRhYi5pc0hpZGRlbikge1xuICAgICAgICAgICAgc3RyICs9IGAgPG9wdGlvbiAke3RhYiA9PSB0YWJTZWxlY3RlZCA/ICdzZWxlY3RlZD1cInNlbGVjdGVkXCInIDogXCJcIlxuICAgICAgICAgICAgICB9IHZhbHVlPVwiJHt0YWIuaWR9XCI+ICR7dGFiLmxhYmVsfSA8L29wdGlvbj5gO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3RyICs9IGA8L3NlbGVjdD4gPC9kaXY+YDtcblxuICAgICAgICBzdHIgKz0gYCA8ZGl2IGNsYXNzPVwidGFicy1jb250YWluZXIgYy1kLWRlc2t0b3AtZmxleCBjLWQtbW9iaWxlLW5vbmVcIj5gO1xuXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgIGlmICghdGFiLmlzSGlkZGVuKSB7XG4gICAgICAgICAgICBzdHIgKz0gYCA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYiAke3RhYi5kaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9ICAke3RhYiA9PSB0YWJTZWxlY3RlZCA/IFwiYWN0aXZlXCIgOiBcIlwiXG4gICAgICAgICAgICAgIH0gICR7dGFiLmNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIiR7dGFiLmNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke3RhYi5pZH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0YWIudG9vbHRpcCA/ICdjYXAtdG9vbHRpcD1cIicgKyB0YWIudG9vbHRpcCArICdcIicgOiBcIlwiXG4gICAgICAgICAgICAgIH0gPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3RhYi5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICR7dGFiLmljb24gfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0ciArPSBgPC9kaXY+YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGFiU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0YWJTZWxlY3RlZC5sZWdlbmRzKSB7XG4gICAgICAgIHN0ciArPSBgIFxuICAgICAgICA8YnV0dG9uIHRvZ2dsZS1sZWdlbmRzIGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taWNvbi1yYWlzZWQgXCI+XG4gICAgICAgICAgJHtpY29ucy50b2dnbGVMZWdlbmRzfVxuICAgICAgICA8L2J1dHRvbj4gXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZHMtY29udGFpbmVyIGZvcmNlLW1vYmlsZS1zdHlsZSBoaWRlXCI+IGA7XG5cbiAgICAgICAgdGFiU2VsZWN0ZWQubGVnZW5kcy5mb3JFYWNoKChsZWdlbmQpID0+IHtcbiAgICAgICAgICBsZXQgY29sb3JDbGFzcyA9IFwiXCI7XG4gICAgICAgICAgbGV0IGNvbG9yQmcgPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IobGVnZW5kLmNvbG9yKSkge1xuICAgICAgICAgICAgY29sb3JCZyA9IFwiYmFja2dyb3VuZDpcIiArIGxlZ2VuZC5jb2xvcjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sb3JDbGFzcyA9IGxlZ2VuZC5jb2xvciA/IGxlZ2VuZC5jb2xvciArIFwiLS1iYWNrZ3JvdW5kXCIgOiBcIlwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0ciArPSBgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxlZ2VuZCAke2xlZ2VuZC5hY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7bGVnZW5kLmtleX1cIlxuICAgICAgICAgICAgICAgICAgICAgICR7bGVnZW5kLnRvb2x0aXAgPyBgY2FwLXRvb2x0aXA9XCIke2xlZ2VuZC50b29sdGlwfVwiYCA6IFwiXCJcbiAgICAgICAgICAgIH0gPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tbGVnZW5kICR7Y29sb3JDbGFzc30gJHtsZWdlbmQuc2hhcGVcbiAgICAgICAgICAgIH1cIiBzdHlsZT1cIiR7Y29sb3JCZ31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7bGVnZW5kLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdHIgKz0gYDwvZGl2PmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3RyICs9IGBcblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj5cblxuXG5cbiAgICAgICAgICA8YnV0dG9uIGNhcC1idG4tcHJldiBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgICAgJHtpY29ucy5hcnJvd0xlZnR9XG4gICAgICAgICAgICAgJHtpY29ucy5sb2FkaW5nSWNvbn0gXG4gICAgICAgICAgPC9idXR0b24+XG5cblxuICAgICAgICAgIDxidXR0b24gY2FwLWJ0bi1jYWxlbmRhciBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgICAke2ljb25zLmNhbGVuZGFyfVxuICAgICAgICAgICAgJHtpY29ucy5sb2FkaW5nSWNvbn1cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b24gY2FwLWJ0bi1uZXh0IGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taWNvbi1yYWlzZWRcIj5cbiAgICAgICAgICAgICR7aWNvbnMuYXJyb3dSaWdodH1cbiAgICAgICAgICAgICR7aWNvbnMubG9hZGluZ0ljb259XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uIHRvZ2dsZS1kYXJrIGNsYXNzPVwiY2FwLWJ0bi1pY29uIGNhcC1idG4taGVhZGVyIGMtZC1tb2JpbGUtbm9uZSAke2NvbmZpZy50aW1lbGluZS53aXRoRGFya1RvZ2dsZSA9PSBmYWxzZSA/IFwiaGlkZVwiIDogXCJcIlxuICAgICAgfVwiPlxuICAgICAgICAgICAgJHtpY29ucy5kYXJrfVxuICAgICAgICAgICAgJHtpY29ucy5saWdodH1cbiAgICAgICAgICA8L2J1dHRvbj5gO1xuXG4gICAgaWYgKGNvbmZpZy50aW1lbGluZS5oZWFkZXIuZXh0ZW5kLmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICBzdHIgKz0gYDxidXR0b24gdG9nZ2xlLWhlYWRlciBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgJHtpY29ucy5jaGV2cm9uRG93bn1cbiAgICAgICAgICA8L2J1dHRvbj5gO1xuICAgIH1cblxuICAgIHN0ciArPSBgIDxkaXYgY2xhc3M9XCJidXR0b24tcmlnaHQtY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgLypcbiAgICAgICAgICBgXG4gICAgICAgICAgPGJ1dHRvbiB0b2dnbGUtc2lkZWJhci1yaWdodCBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkXCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNS40MSwxNi41OEwxMC44MywxMkwxNS40MSw3LjQxTDE0LDZMOCwxMkwxNCwxOEwxNS40MSwxNi41OFpcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAqL1xuXG4gICAgbGV0ICRyID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgICRlbGVtLnJlcGxhY2VXaXRoKCRyKTtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLnJpZ2h0QnV0dG9ucykge1xuICAgICAgbGV0ICRidXR0b25Db250YWluZXIgPSAkci5xdWVyeVNlbGVjdG9yKFwiLmJ1dHRvbi1yaWdodC1jb250YWluZXJcIik7XG4gICAgICBjb25maWcudGltZWxpbmUuaGVhZGVyLnJpZ2h0QnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgbGV0IGhhc0JhZGdlID0gZmFsc2U7XG4gICAgICAgIGlmIChidXR0b24uaGFzQmFkZ2UpIHtcbiAgICAgICAgICBoYXNCYWRnZSA9IGJ1dHRvbi5oYXNCYWRnZSgpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdHIgPSBgPGJ1dHRvbiBjbGFzcz1cImNhcC1idG4taWNvbiBjYXAtYnRuLWljb24tcmFpc2VkICR7aGFzQmFkZ2UgPyBcImNhcC1idG4taGFzLWJhZGdlXCIgOiBcIlwiXG4gICAgICAgICAgfVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCIke2J1dHRvbi5pY29ufVwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPmA7XG4gICAgICAgIGxldCAkYnV0dG9uID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgICAgICAkYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZXZ0KSA9PiBidXR0b24ub25DbGljayh7IGV2dCB9KSk7XG4gICAgICAgICRidXR0b25Db250YWluZXIuYXBwZW5kKCRidXR0b24pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0ICR0b2dnbGVEYXJrID0gJHIucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtZGFya11cIik7XG4gICAgaWYgKCR0b2dnbGVEYXJrKSB7XG4gICAgICAkdG9nZ2xlRGFyay5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVEYXJrXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgJGJ0bkNhbGVuZGFyID0gJHIucXVlcnlTZWxlY3RvcihcIltjYXAtYnRuLWNhbGVuZGFyXVwiKTtcbiAgICBpZiAoJGJ0bkNhbGVuZGFyKSB7XG4gICAgICAkYnRuQ2FsZW5kYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCB4ID0gZS54O1xuICAgICAgICBsZXQgeSA9IGUueTtcbiAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja0NhbGVuZGFySWNvblwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWw6IHsgeCwgeSB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCAkYnRuVG9nZ2xlSGVhZGVyID0gJHIucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtaGVhZGVyXVwiKTtcbiAgICBpZiAoJGJ0blRvZ2dsZUhlYWRlcikge1xuICAgICAgJGJ0blRvZ2dsZUhlYWRlci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVIZWFkZXJcIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qXG4gICAgJHIucXVlcnlTZWxlY3RvcihcIlt0b2dnbGUtc2lkZWJhci1yaWdodF1cIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgJHIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoXCJ0b2dnbGVTaWRlYmFyUmlnaHRcIiwge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICAqL1xuXG4gICAgJHIucXVlcnlTZWxlY3RvcihcIltjYXAtYnRuLXByZXZdXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwiaGVhZGVyUHJldlwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3IoXCJbY2FwLWJ0bi1jYWxlbmRhcl1cIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAkci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJoZWFkZXJDYWxlbmRhclwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3IoXCJbY2FwLWJ0bi1uZXh0XVwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICRyLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudChcImhlYWRlck5leHRcIiwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBvcmlnaW5hbEV2dDogZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsZXQgJHRvZ2dsZUxlZ2VuZHNCdG4gPSAkci5xdWVyeVNlbGVjdG9yKFwiW3RvZ2dsZS1sZWdlbmRzXVwiKTtcbiAgICBpZiAoJHRvZ2dsZUxlZ2VuZHNCdG4pIHtcbiAgICAgICR0b2dnbGVMZWdlbmRzQnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgJGxlZ2VuZENvbnRhaW5lciA9ICRyLnF1ZXJ5U2VsZWN0b3IoXCIubGVnZW5kcy1jb250YWluZXJcIik7XG4gICAgICAgIGlmICgkbGVnZW5kQ29udGFpbmVyKSB7XG4gICAgICAgICAgJGxlZ2VuZENvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKFwiaGlkZVwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgJHIucXVlcnlTZWxlY3RvckFsbChcIi5sZWdlbmRcIikuZm9yRWFjaCgoJGxlZ2VuZCkgPT4ge1xuICAgICAgJGxlZ2VuZC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0IGtleSA9IGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoXCJpbnB1dC1rZXlcIik7XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGxldCBsZWdlbmRTZWxlY3RlZCA9IHRhYlNlbGVjdGVkLmxlZ2VuZHMuZmluZChcbiAgICAgICAgICAgICh0YWIpID0+IHRhYi5rZXkgPT09IGtleVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxlZ2VuZFNlbGVjdGVkKSB7XG4gICAgICAgICAgICAkci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzZWxlY3RMZWdlbmRIZWFkZXJcIiwge1xuICAgICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBsZWdlbmQ6IGxlZ2VuZFNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgJGxlZ2VuZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFiOm5vdCguZGlzYWJsZWQpXCIpLmZvckVhY2goKCR0YWIpID0+IHtcbiAgICAgICR0YWIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBrZXkgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKFwiaW5wdXQta2V5XCIpO1xuXG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICBsZXQgdGFiU2VsZWN0ZWQgPSBjb25maWcudGltZWxpbmUudGFicy5maW5kKCh0YWIpID0+IHRhYi5pZCA9PSBrZXkpO1xuICAgICAgICAgIGlmICh0YWJTZWxlY3RlZCkge1xuICAgICAgICAgICAgJHIuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic2VsZWN0VGFiSGVhZGVyXCIsIHtcbiAgICAgICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgdGFiOiB0YWJTZWxlY3RlZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgICRyLnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFicy1zZWxlY3Q6bm90KC5kaXNhYmxlZClcIikuZm9yRWFjaCgoJHRhYikgPT4ge1xuICAgICAgJHRhYi5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBrZXkgPSBwYXJzZUZsb2F0KGUuY3VycmVudFRhcmdldC52YWx1ZSk7XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGxldCB0YWJTZWxlY3RlZCA9IGNvbmZpZy50aW1lbGluZS50YWJzLmZpbmQoKHRhYikgPT4gdGFiLmlkID09IGtleSk7XG4gICAgICAgICAgaWYgKHRhYlNlbGVjdGVkKSB7XG4gICAgICAgICAgICAkci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzZWxlY3RUYWJIZWFkZXJcIiwge1xuICAgICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICB0YWI6IHRhYlNlbGVjdGVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICRyO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIEhlYWRlclxuICAgKiBTZSB1c2EgcGFyYSA6XG4gICAqICAgIC0gTW9zdHJhciBmZWNoYXMgZW4gaGVhZGVyXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tXG4gICAqL1xuICBjcmVhdGVIZWFkZXIoY29uZmlnKSB7XG4gICAgbGV0ICRlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnQoXCJoZWFkZXJcIik7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3SGVhZGVyKGNvbmZpZywgJGVsZW0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNyZWEgSGVhZGVyLCB1c2FkbyBwYXJhIHJlZGlidWphclxuICAgKiB1dGlsaXphICRlbGVtIGNvbW8gZWxlbWVudG8gZG9tIGRvbmRlIHJlY3JlYXJsb1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcGFyYW0ge09iamVjdH0gJGVsZW0gLSBFbGVtZW50byBEb20gZG9uZGUgY3JlYSBIZWFkZXJcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb21cbiAgICovXG4gIHJlZHJhd0hlYWRlcihjb25maWcsICRlbGVtKSB7XG4gICAgbGV0IGRhdGVzVHJlZSA9IGRhdGVVdGlscy5nZXREYXRlVHJlZVJhbmdlKFxuICAgICAgbmV3IERhdGUoY29uZmlnLnRpbWVsaW5lLnN0YXJ0KSxcbiAgICAgIG5ldyBEYXRlKGNvbmZpZy50aW1lbGluZS5lbmQpXG4gICAgKTtcblxuICAgIGxldCBzdHIgPSBgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIj4gYDtcblxuICAgIE9iamVjdC5rZXlzKGRhdGVzVHJlZSkuZm9yRWFjaCgoa2V5WSkgPT4ge1xuICAgICAgbGV0IHllYXIgPSBkYXRlc1RyZWVba2V5WV07XG4gICAgICBzdHIgKz0gYDxkaXYgY2xhc3M9XCJhZ25vLWNhbGVuZGFyaW9cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZ25vIGhpZGVcIj4ke2tleVl9PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzZXNcIj5gO1xuXG4gICAgICBPYmplY3Qua2V5cyh5ZWFyKS5mb3JFYWNoKChrZXlNKSA9PiB7XG4gICAgICAgIGxldCBtb250aCA9IGRhdGVzVHJlZVtrZXlZXVtrZXlNXTtcbiAgICAgICAgc3RyICs9IGAgPGRpdiBjbGFzcz1cIm1lcy1jYWxlbmRhcmlvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXMgJHtPYmplY3Qua2V5cyhtb250aCkubGVuZ3RoIDwgNFxuICAgICAgICAgICAgPyBcIm1lcy1yZWR1Y2VkIG1lcy1yZWR1Y2VkLVwiICsgT2JqZWN0LmtleXMobW9udGgpLmxlbmd0aFxuICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXMtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dXRpbHMuZ2V0TW9udGhCeVBvc2l0aW9uKGtleU0pfSAke2tleVl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhc1wiPmA7XG4gICAgICAgIE9iamVjdC5rZXlzKG1vbnRoKS5mb3JFYWNoKChrZXlEKSA9PiB7XG4gICAgICAgICAgbGV0IGRheSA9IGRhdGVzVHJlZVtrZXlZXVtrZXlNXVtrZXlEXTtcbiAgICAgICAgICBsZXQgaXNXZWVrZW5kID0gZGF5LmlzV2Vla2VuZDtcbiAgICAgICAgICBsZXQgaXNUb2RheSA9IGRheS5pc1RvZGF5O1xuICAgICAgICAgIGxldCBkYXRlID0gZGF0ZVV0aWxzLmZvcm1hdERhdGUoZGF5LkRhdGUpO1xuICAgICAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cImRpYS1jYWxlbmRhcmlvICR7aXNUb2RheSA/IFwidG9kYXlcIiA6IFwiXCJ9ICAke2lzV2Vla2VuZCA/IFwid2Vla2VuZFwiIDogXCJcIlxuICAgICAgICAgICAgfSAke2NvbmZpZy50aW1lbGluZS5kYXRlU2VsZWN0YWJsZSA/IFwiaXMtY2xpY2tlYWJsZVwiIDogXCJcIlxuICAgICAgICAgICAgfVwiIGRhdGU9XCIke2RhdGV9XCI+JHtrZXlEfTwvZGl2PmA7XG4gICAgICAgIH0pO1xuICAgICAgICBzdHIgKz0gYDwvZGl2PjwvZGl2PmA7XG4gICAgICB9KTtcbiAgICAgIHN0ciArPSBgPC9kaXY+IDwvZGl2PmA7XG4gICAgfSk7XG5cbiAgICBzdHIgKz0gYDwvZGl2PmA7XG4gICAgJGVsZW0uaW5uZXJIVE1MID0gXCJcIjtcbiAgICAkZWxlbS5hcHBlbmQoZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpKTtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUuZGF0ZVNlbGVjdGFibGUpIHtcbiAgICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZGlhLWNhbGVuZGFyaW9bZGF0ZV1cIikuZm9yRWFjaCgoJGRpYSkgPT4ge1xuICAgICAgICAkZGlhLmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgJGVsZW0uZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNvbnRleHRNZW51RGF0ZVwiLCB7XG4gICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAkZWxlbTogJGRpYSxcbiAgICAgICAgICAgICAgICBkYXRlOiAkZGlhLmdldEF0dHJpYnV0ZShcImRhdGVcIiksXG4gICAgICAgICAgICAgICAgY2xpZW50WDogZXZ0LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogZXZ0LmNsaWVudFlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICAkZGlhLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgJGVsZW0uZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNsaWNrRGF0ZVwiLCB7XG4gICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAkZWxlbTogJGRpYSxcbiAgICAgICAgICAgICAgICBkYXRlOiAkZGlhLmdldEF0dHJpYnV0ZShcImRhdGVcIilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiAkZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBIZWFkZXIgZXh0ZW5kZWRcbiAgICogU2UgdXNhIHBhcmEgOlxuICAgKiAgICAtTW9zdHJhciBpbnB1dHMgeSBkYXRvcyBwYXJhIGZlY2hhcyBlbiBoZWFkZXJcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gaGVhZGVyRXh0ZW5kZWRcbiAgICovXG4gIGNyZWF0ZUhlYWRlckV4dGVuZGVkKGNvbmZpZykge1xuICAgIGlmIChjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5lbmFibGVkID09IGZhbHNlKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBkYXRlcyA9IGRhdGVVdGlscy5nZXREYXRlUmFuZ2UoXG4gICAgICBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuc3RhcnQpLFxuICAgICAgbmV3IERhdGUoY29uZmlnLnRpbWVsaW5lLmVuZClcbiAgICApO1xuICAgIGxldCBzdHIgPSBgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXItZXh0ZW5kZWRcIj5gO1xuXG4gICAgY29uZmlnLnRpbWVsaW5lLmhlYWRlci5leHRlbmQuZGF0YS5mb3JFYWNoKChkLCBkX2luZGV4KSA9PiB7XG4gICAgICBpZiAoZC5pc0hpZGRlbikgcmV0dXJuIFwiXCI7XG5cbiAgICAgIGxldCBpc1BlcnNpc3RlbnQgPSBkLmlzUGVyc2lzdGVudDtcbiAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cImlucHV0LWxpc3QgJHtpc1BlcnNpc3RlbnQgPyBcInBlcnNpc3RlbnRcIiA6IFwiXCJ9XCI+YDtcbiAgICAgIHN0ciArPSBkYXRlc1xuICAgICAgICAubWFwKChkYXRlKSA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICAgICAgICBsZXQgaXNGdXR1cmUgPSBkYXRlVXRpbHMuaXNGdXR1cmUoZGF0ZSk7XG4gICAgICAgICAgbGV0IGlzVG9kYXkgPSBkYXRlVXRpbHMuaXNUb2RheShkYXRlKTtcblxuICAgICAgICAgIGlmIChkLmRhdGEpIHtcbiAgICAgICAgICAgIGxldCBkYXRhRm91bmRlZCA9IGQuZGF0YS5maW5kKChkYXRhSW5wdXQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRhdGVVdGlscy5pc1NhbWVEYXRlKG5ldyBEYXRlKGRhdGFJbnB1dC5kYXRlKSwgZGF0ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmRlZCkge1xuICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFGb3VuZGVkLnZhbHVlIHx8IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZC5lZGl0YWJsZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgICAgIChpc0Z1dHVyZSAmJiBkLmVkaXRhYmxlRnV0dXJlID09IGZhbHNlKSB8fFxuICAgICAgICAgICAgKGlzVG9kYXkgJiYgZC5lZGl0YWJsZVRvZGF5ID09IGZhbHNlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGU9XCIke2RhdGV9XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9XCIke2RfaW5kZXh9XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2RhdGUudmFyTmFtZX0gJHtkLmNvbG9yID8gXCJjLVwiICsgZC5jb2xvciArIFwiLS10ZXh0XCIgOiBcIlwiXG4gICAgICAgICAgICAgIH1cIiA+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsdWV9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIGlmIChjb25maWcudGltZWxpbmUuZWRpdGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkaWEtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgIGRhdGU9XCIke2RhdGV9XCIgXG4gICAgICAgICAgICAgICAgICBpbmRleD1cIiR7ZF9pbmRleH1cIiBcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWlucHV0IFxuICAgICAgICAgICAgICAgICAgJHtkYXRlLnZhck5hbWV9ICR7ZC5jb2xvciA/IFwiYy1cIiArIGQuY29sb3IgKyBcIi0tdGV4dFwiIDogXCJcIn1cIiBcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn0gXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgICBzdHIgKz0gYDwvZGl2PmA7XG4gICAgfSk7XG5cbiAgICBzdHIgKz0gYDwvZGl2PmA7XG5cbiAgICBsZXQgciA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcblxuICAgIHIucXVlcnlTZWxlY3RvckFsbChcImlucHV0LmhlYWRlci1pbnB1dFwiKS5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBkYXRlID0gZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGVcIik7XG4gICAgICAgIGxldCBpbmRleCA9IGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoXCJpbmRleFwiKTtcbiAgICAgICAgbGV0IHZhbHVlID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICBsZXQgdHlwZURhdGEgPSBjb25maWcudGltZWxpbmUuaGVhZGVyLmV4dGVuZC5kYXRhW2luZGV4XTtcblxuICAgICAgICAvL3JlZnJlc2ggY29uZmlnIHZhbHVlXG4gICAgICAgIGxldCBkYXRhID0gdHlwZURhdGEuZGF0YS5maW5kKChkKSA9PlxuICAgICAgICAgIGRhdGVVdGlscy5pc1NhbWVEYXRlKG5ldyBEYXRlKGQuZGF0ZSksIG5ldyBEYXRlKGRhdGUpKVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIGRhdGEudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0eXBlRGF0YS5kYXRhLnB1c2goe1xuICAgICAgICAgICAgZGF0ZTogZGF0ZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgci5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNoYW5nZUlucHV0SGVhZGVyXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBkYXRlOiBkYXRlLFxuICAgICAgICAgICAgICB0eXBlRGF0YTogdHlwZURhdGEsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiByO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhciBTaWRlYmFyIEl6cXVpZXJkb1xuICAgKiAgICAtIE1hbmVqYSBpdGVtcyBjb21vIGFyYm9sIGRlIDIgbml2ZWxlcyAocGFyZW50LCBjaGlsZHJlbilcbiAgICogICAgLSBFbCBzaWRlYmFyIHNlIGRpdmlkZSBlbiBuYXZMaXN0IC0gSW5pdGlhbE5hdiAtIGV4dGVuZGVkTmF2IC0gQnRuTmF2XG4gICAqICAgIC0gU2UgYWdyZWdhIGl0ZW1EZXRhaWwsIHBhcmEgZGV0YWxsZXMgZGUgaXRlbXNcbiAgICpcbiAgICpcbiAgICogVE9ETzogcGFyYSBldml0YXIgaW5jcnVzdGFyIGxhcyBpZHMgZW4gbG9zIGlucHV0cywgc2UgZGViZW4gY3JlYXJcbiAgICogbG9zIG5vZG9zIHVubyBwb3IgdW5vIGNvbW8gZWxlbWVudG8gRE9NLCB5IGFncmVnYXJsZXMgbG9zIGV2ZW50b3MgZGlyZWN0YW1lbnRlXG4gICAqIGFob3JhIHNlIGhhY2Ugc2VsZWNjaW9uYW5kbyB0b2RvcyBsb3MgaW5wdXRzIGNvbiBxdWVyeVNlbGVjdG9yQWxsXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIFNpZGViYXIgSXpxdWllcmRvXG4gICAqL1xuICBjcmVhdGVOYXZMZWZ0KGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwibmF2XCIsIHsgY2xhc3NOYW1lOiBcImxlZnRcIiB9KTtcbiAgICByZXR1cm4gdGhpcy5yZWRyYXdOYXZMZWZ0KCRlbGVtLCBjb25maWcsIHRhYik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBTaWRlYmFyIGl6cXVpZXJkbywgdXNhZG8gcGFyYSByZWRpYnVqYXJcbiAgICogVXRpbGl6YSAkZWxlbSBjb21vIGVsZW1lbnRvIGRvbSBkb25kZSByZWNyZWFybG9cbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9ICRlbGVtIC0gRWxlbWVudG8gRG9tIGRvbmRlIGNyZWEgZWwgc2lkZWJhciBpenF1aWVyZG9cbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gbmF2TGVmdFxuICAgKi9cblxuICByZWRyYXdOYXZMZWZ0KCRlbGVtLCBjb25maWcsIHRhYiA9IG51bGwpIHtcbiAgICBsZXQgbmF2TGlzdCA9IFwiXCI7XG4gICAgbGV0IGluaXRpYWxOYXZMaXN0ID0gXCJcIjtcbiAgICBsZXQgZXhOYXZMaXN0ID0gXCJcIjtcbiAgICBsZXQgYnRuTmF2TGlzdCA9IFwiXCI7XG4gICAgbGV0IGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpZiAoY29uZmlnLnRpbWVsaW5lLmVkaXRhYmxlID09PSBmYWxzZSkge1xuICAgICAgaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uZmlnLmRhdGEuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybjtcblxuICAgICAgbmF2TGlzdCArPSBgXG4gICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtXCI+XG5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0tY29udGFpbmVyIHBhcmVudFwiPmA7XG5cbiAgICAgIGlmIChkLmNoaWxkcmVuKSB7XG4gICAgICAgIG5hdkxpc3QgKz0gYDxidXR0b24gY2xhc3M9XCJ0cmVlLWljb24gJHtkLmlzQ2xvc2VkID8gXCJcIiA6IFwiY2FwLXJvdGF0ZVwiXG4gICAgICAgICAgfVwiIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCIgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIiA+XG4gICAgICAgICR7aWNvbnMuY2hldnJvbkRvd259XG4gICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPmA7XG4gICAgICB9XG5cbiAgICAgIG5hdkxpc3QgKz0gYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlIHRydW5jYXRlIGZ1bGwtd2lkdGggJHtkLmNsaWNrZWFibGUgPyBcImNsaWNrZWFibGVcIiA6IFwiXCJcbiAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICR7ZC5uYXZPdmVyID8gXCJob3ZlcmFibGVcIiA6IFwiXCJ9IFwiIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTFcbiAgICAgICAgfVwiIHR5cGUtbm9kZT1cIiR7ZC50eXBlIHx8IFwiXCJ9XCIgPlxuICAgICAgICAgICAgJHtkLmxhYmVsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5gO1xuXG4gICAgICBpZiAoZC5jaGlsZHJlbikge1xuICAgICAgICBuYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaWxkcmVuLWl0ZW1zICR7ZC5pc0Nsb3NlZCA/IFwiaGlkZVwiIDogXCJcIlxuICAgICAgICAgIH0gXCIgY2hpbGQtbGlzdD1cIiR7ZC5pZCB8fCAtMX1cIj5gO1xuXG4gICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmlzSGlkZGVuKSByZXR1cm47XG5cbiAgICAgICAgICBsZXQgbGlnaHRDb2xvciA9IG51bGw7XG4gICAgICAgICAgbGV0IGxpZ2h0Q2xhc3MgPSBudWxsO1xuICAgICAgICAgIGxldCBsaWdodFNwYW4gPSBcIlwiO1xuXG5cbiAgICAgICAgICBpZiAoYy5saWdodCkge1xuICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IoYy5saWdodCkpIHtcbiAgICAgICAgICAgICAgbGlnaHRDb2xvciA9IGMubGlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsaWdodENsYXNzID0gYy5saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cblxuICAgICAgICAgIGlmIChjLmxpZ2h0KSB7XG4gICAgICAgICAgICBsaWdodFNwYW4gPSBgPHNwYW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlnaHQgJHtsaWdodENsYXNzID8gbGlnaHRDbGFzcyArIFwiLWxpZ2h0XCIgOiBcIlwifVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIiR7bGlnaHRDb2xvciA/IFwiLS1saWdodC1jb2xvcjpcIiArIGxpZ2h0Q29sb3IgOiBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPmA7XG4gICAgICAgICAgfVxuXG5cblxuICAgICAgICAgIG5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZC1uYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICBgO1xuXG4gICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtaXRlbS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cIndpZHRoOjI0cHg7aGVpZ2h0OjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE5LDE1TDEzLDIxTDExLjU4LDE5LjU4TDE1LjE3LDE2SDRWNEg2VjE0SDE1LjE3TDExLjU4LDEwLjQyTDEzLDlMMTksMTVaXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICBuYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgJHtsaWdodFNwYW59XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlICR7Yy5jbGlja2VhYmxlID8gXCJjbGlja2VhYmxlXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICR7Yy5uYXZPdmVyID8gXCJob3ZlcmFibGVcIiA6IFwiXCJ9XCIgaXRlbS1pZD1cIiR7Yy5pZCB8fCAtMVxuICAgICAgICAgICAgfVwiIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke2MubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9XG5cbiAgICAgIG5hdkxpc3QgKz0gYDwvZGl2PmA7XG5cbiAgICAgIC8vaW5pdGlhbFxuICAgICAgaW5pdGlhbE5hdkxpc3QgKz0gYDxkaXYgY2xhc3M9XCJpbml0aWFsLW5hdi1pdGVtIHBhcmVudFwiPmA7XG4gICAgICBpZiAoZC53aXRoTmF2KSB7XG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5pbml0aWFsLnZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkLnZhbHVlcywgdi52YXJOYW1lKTtcblxuICAgICAgICAgIGlmICh2LnJvdW5kICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdXRpbHMucm91bmQodmFsdWUsIHYucm91bmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodi5pbnB1dCkge1xuICAgICAgICAgICAgc3dpdGNoICh2LmlucHV0KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJob3VyXCI6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIjpcIik7XG4gICAgICAgICAgICAgICAgbGV0IGhoVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgICAgICAgICBsZXQgbW1WYWx1ZSA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7ZC50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke2hoVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7ZC50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke21tVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpbml0aWFsTmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuXG4gICAgICBpZiAoZC5jaGlsZHJlbikge1xuICAgICAgICBkLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICBpZiAoYy5pc0hpZGRlbikgcmV0dXJuO1xuICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGA8ZGl2IGNsYXNzPVwiY2hpbGQtaW5pdGlhbC1uYXYtaXRlbSAke2QuaXNDbG9zZWQgPyBcImhpZGVcIiA6IFwiXCJcbiAgICAgICAgICAgIH1cIiBjaGlsZD1cIiR7ZC5pZCB8fCAtMX1cIj5gO1xuXG4gICAgICAgICAgaWYgKGMud2l0aE5hdiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5pbml0aWFsLnZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgICBpZiAodi5vbmx5VGFiICYmIHRhYiAmJiB2Lm9ubHlUYWIgIT09IHRhYi5rZXkpIHJldHVybjtcblxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoYy52YWx1ZXMsIHYudmFyTmFtZSk7XG4gICAgICAgICAgICAgIGlmICh2LnJvdW5kICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHV0aWxzLnJvdW5kKHZhbHVlLCB2LnJvdW5kKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodi5pbnB1dCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodi5pbnB1dCkge1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIjpcIik7XG4gICAgICAgICAgICAgICAgICAgIGxldCBoaFZhbHVlID0gdmFsdWVbMF07XG4gICAgICAgICAgICAgICAgICAgIGxldCBtbVZhbHVlID0gdmFsdWVbMV07XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtjLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke2hoVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtjLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke21tVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbCBoYXMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2MuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtjLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluaXRpYWxOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy9FeHRcbiAgICAgIGV4TmF2TGlzdCArPSBgPGRpdiBjbGFzcz1cImV4LW5hdi1pdGVtIHBhcmVudFwiPmA7XG4gICAgICBpZiAoZC53aXRoRXhOYXYpIHtcbiAgICAgICAgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmV4dGVuZC52YXJzLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZC52YWx1ZXMsIHYudmFyTmFtZSk7XG4gICAgICAgICAgaWYgKHYucm91bmQgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB1dGlscy5yb3VuZCh2YWx1ZSwgdi5yb3VuZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2LmlucHV0KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHYuaW5wdXQpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KFwiOlwiKTtcbiAgICAgICAgICAgICAgICBsZXQgaGhWYWx1ZSA9IHZhbHVlWzBdO1xuICAgICAgICAgICAgICAgIGxldCBtbVZhbHVlID0gdmFsdWVbMV07XG4gICAgICAgICAgICAgICAgZXhOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aGhWYWx1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtdHlwZT1cInRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9XCI1OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke3Yua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1pZD1cIiR7ZC5pZCB8fCAtMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2QudHlwZSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHttbVZhbHVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNEaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0ZXh0XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBleE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbCBoYXMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2QuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4TmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZXhOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgIGlmIChkLmNoaWxkcmVuKSB7XG4gICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmlzSGlkZGVuKSByZXR1cm47XG4gICAgICAgICAgZXhOYXZMaXN0ICs9IGA8ZGl2IGNsYXNzPVwiY2hpbGQtZXgtbmF2LWl0ZW0gJHtkLmlzQ2xvc2VkID8gXCJoaWRlXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgY2hpbGQ9XCIke2QuaWQgfHwgLTF9XCI+YDtcblxuICAgICAgICAgIGlmIChjLndpdGhOYXYgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb25maWcudGltZWxpbmUubmF2LmxlZnQuZXh0ZW5kLnZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgICBpZiAodi5vbmx5VGFiICYmIHRhYiAmJiB2Lm9ubHlUYWIgIT09IHRhYi5rZXkpIHJldHVybjtcblxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoYy52YWx1ZXMsIHYudmFyTmFtZSk7XG4gICAgICAgICAgICAgIGlmICh2LnJvdW5kICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHV0aWxzLnJvdW5kKHZhbHVlLCB2LnJvdW5kKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh2LmlucHV0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh2LmlucHV0KSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiaG91clwiOlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoXCI6XCIpIDogWzAsIDBdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaGhWYWx1ZSA9IHZhbHVlWzBdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW1WYWx1ZSA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgICAgICBleE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbCBoYXMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtdHlwZT1cInRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke3Yua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1pZD1cIiR7Yy5pZCB8fCAtMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2MudHlwZSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHtoaFZhbHVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNEaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC10eXBlPVwidGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWtleT1cIiR7di5rZXkgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtjLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtbm9kZT1cIiR7Yy50eXBlIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke21tVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgZXhOYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb2wgaGFzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiJHt2LmlucHV0IHx8IFwidGV4dFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LXR5cGU9XCIke3YuaW5wdXQgfHwgXCJ0ZXh0XCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHt2LmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2MuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtjLnR5cGUgfHwgXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2lzRGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4TmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBleE5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvL2J1dHRvbnNcbiAgICAgIGJ0bk5hdkxpc3QgKz0gYDxkaXYgY2xhc3M9XCJjYXAtYnRuLW5hdi1pdGVtIHBhcmVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcC1idG4tbmF2LWl0ZW0tY29udGVudFwiPmA7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5idXR0b25zICYmXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5uYXYubGVmdC5idXR0b25zLnZhcnNcbiAgICAgICkge1xuICAgICAgICBjb25maWcudGltZWxpbmUubmF2LmxlZnQuYnV0dG9ucy52YXJzLmZvckVhY2goKGJ0bikgPT4ge1xuICAgICAgICAgIGlmIChkLndpdGhCdG5OYXYpIHtcbiAgICAgICAgICAgIGxldCBidG5Db250ZW50ID0gXCJcIjtcbiAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBidG4uY2xhc3NOYW1lIHx8IFwiXCI7XG5cbiAgICAgICAgICAgIGlmIChidG4uaWNvbikge1xuICAgICAgICAgICAgICBidG5Db250ZW50ID0gYnRuLmljb24gPyBidG4uaWNvbiA6IFwiXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChidG4uaWNvbkZvcm1hdHRlcikge1xuICAgICAgICAgICAgICBidG5Db250ZW50ID0gYnRuLmljb25Gb3JtYXR0ZXIgPyBidG4uaWNvbkZvcm1hdHRlcihkLCBidG4pIDogXCJcIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGJ0bi5zaGFwZSkge1xuICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gXCIgY2FwLWJ0bi1cIiArIGJ0bi5zaGFwZTtcbiAgICAgICAgICAgICAgYnRuQ29udGVudCArPSBgPHNwYW4+ICR7YnRuLmZvcm1hdHRlciA/IGJ0bi5mb3JtYXR0ZXIoZCwgYnRuKSA6IFwiXCJcbiAgICAgICAgICAgICAgICB9IDwvc3Bhbj4gYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChidG4uYnRuQ2xhc3NOYW1lRm9ybWF0dGVyKSB7XG4gICAgICAgICAgICAgIGxldCBuZXdDbGFzc05hbWUgPSBidG4uYnRuQ2xhc3NOYW1lRm9ybWF0dGVyKGQsIGJ0bik7XG4gICAgICAgICAgICAgIGlmIChuZXdDbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gXCIgXCIgKyBuZXdDbGFzc05hbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnRuTmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXAtYnRuLXNoYXBlICR7Y2xhc3NOYW1lfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtidG4ua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkLmlkIHx8IC0xfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpc0Rpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2QudHlwZSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7YnRuQ29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgYnRuTmF2TGlzdCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgIGlmIChkLmNoaWxkcmVuKSB7XG4gICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmlzSGlkZGVuKSByZXR1cm47XG5cbiAgICAgICAgICAvL2J1dHRvbnNcbiAgICAgICAgICBidG5OYXZMaXN0ICs9IGA8ZGl2IGNsYXNzPVwiY2FwLWJ0bi1jaGlsZC1uYXYtaXRlbSBwYXJlbnQgJHtkLmlzQ2xvc2VkID8gXCJoaWRlXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgY2hpbGQ9XCIke2QuaWQgfHwgLTF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcC1idG4tbmF2LWl0ZW0tY29udGVudFwiPmA7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcudGltZWxpbmUubmF2LmxlZnQuYnV0dG9ucyAmJlxuICAgICAgICAgICAgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmJ1dHRvbnMudmFyc1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uZmlnLnRpbWVsaW5lLm5hdi5sZWZ0LmJ1dHRvbnMudmFycy5mb3JFYWNoKChidG4pID0+IHtcbiAgICAgICAgICAgICAgaWYgKGMud2l0aE5hdiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBsZXQgYnRuQ29udGVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IGJ0bi5jbGFzc05hbWUgfHwgXCJcIjtcblxuICAgICAgICAgICAgICAgIGlmIChidG4uaWNvbikge1xuICAgICAgICAgICAgICAgICAgYnRuQ29udGVudCA9IGJ0bi5pY29uID8gYnRuLmljb24gOiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChidG4uaWNvbkZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgYnRuQ29udGVudCA9IGJ0bi5pY29uRm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgICAgID8gYnRuLmljb25Gb3JtYXR0ZXIoYywgYnRuKVxuICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJ0bi5zaGFwZSkge1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiIGNhcC1idG4tXCIgKyBidG4uc2hhcGU7XG4gICAgICAgICAgICAgICAgICBidG5Db250ZW50ICs9IGA8c3Bhbj4gJHtidG4uZm9ybWF0dGVyID8gYnRuLmZvcm1hdHRlcihjLCBidG4pIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICB9IDwvc3Bhbj4gYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJ0bi5idG5DbGFzc05hbWVGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBuZXdDbGFzc05hbWUgPSBidG4uYnRuQ2xhc3NOYW1lRm9ybWF0dGVyKGMsIGJ0bik7XG4gICAgICAgICAgICAgICAgICBpZiAobmV3Q2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArPSBcIiBcIiArIG5ld0NsYXNzTmFtZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidG5OYXZMaXN0ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FwLWJ0bi1zaGFwZSAke2NsYXNzTmFtZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtidG4ua2V5IHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0taWQ9XCIke2MuaWQgfHwgLTF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXNEaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2MudHlwZSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtidG5Db250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPmA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJ0bk5hdkxpc3QgKz0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGl0ZW1EZXRhaWwgPSBgIDxkaXYgY2xhc3M9XCJkZXRhaWwtbmF2LWl0ZW0gaGlkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0RGV0YWlsTmF2SXRlbUNvbnRlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgc3RyID0gYDxkaXYgY2xhc3M9XCJuYXYtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtpdGVtRGV0YWlsfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7bmF2TGlzdH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbml0aWFsLW5hdi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtpbml0aWFsTmF2TGlzdH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHRlbmQtbmF2LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2V4TmF2TGlzdH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXAtYnRuLW5hdi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtidG5OYXZMaXN0fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgbmF2Q29udGFpbmVyID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgICRlbGVtLmlubmVySFRNTCA9IFwiXCI7XG4gICAgJGVsZW0uYXBwZW5kKG5hdkNvbnRhaW5lcik7XG5cbiAgICAvL2RldGFsbGUgZGUgbmF2LWl0ZW1cbiAgICAkZWxlbS5xdWVyeVNlbGVjdG9yQWxsKFwiLml0ZW0tdGl0bGUuaG92ZXJhYmxlXCIpLmZvckVhY2goKGkpID0+IHtcbiAgICAgIGkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgcG9zID0gdXRpbHMuZXZlbnRUb1Bvc2l0aW9uTmF2TGVmdChjb25maWcsIGUsICRlbGVtKTtcbiAgICAgICAgbGV0IGl0ZW1JZCA9IGkuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgICAgbGV0IGl0ZW0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIGl0ZW1JZCk7XG4gICAgICAgIGxldCB0eXBlTm9kZSA9IGkuZ2V0QXR0cmlidXRlKFwidHlwZS1ub2RlXCIpO1xuICAgICAgICBpLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwib3Zlck5hdkl0ZW1cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlLFxuICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICB0eXBlOiB0eXBlTm9kZSxcbiAgICAgICAgICAgICAgcG9zOiBwb3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvL29jdWx0YSBkZXRhbGxlIGRlIG5hdi1pdGVtLCBhbCBzYWxpciBkZWwgbmF2LWl0ZW0tbGlzdFxuICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCIubmF2LWl0ZW0tbGlzdFwiKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIChlKSA9PiB7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJsZWF2ZU5hdkl0ZW1cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy9vY3VsdGEgZGV0YWxsZSBkZSBuYXYtaXRlbS1saXN0LCBhbCBzYWxpciBkZSBuYXYtaXRlbVxuICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuaXRlbS10aXRsZTpub3QoLmhvdmVyYWJsZSlcIikuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgaS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIChlKSA9PiB7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJsZWF2ZU5hdkl0ZW1cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJGVsZW0ucXVlcnlTZWxlY3RvckFsbChcIi5pdGVtLXRpdGxlLmNsaWNrZWFibGVcIikuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgaS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1JZCA9IGkuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgICAgbGV0IHR5cGVOb2RlID0gaS5nZXRBdHRyaWJ1dGUoXCJ0eXBlLW5vZGVcIik7XG4gICAgICAgIGxldCB2YWx1ZSA9IGkudmFsdWU7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja05hdkxlZnRJdGVtXCIsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW1JZCxcbiAgICAgICAgICAgICAgdHlwZTogdHlwZU5vZGUsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgICRlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFwiKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0IGlucHV0VHlwZSA9IGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQtdHlwZVwiKTtcbiAgICAgICAgbGV0IGtleSA9IGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQta2V5XCIpO1xuICAgICAgICBsZXQgaXRlbUlkID0gaS5nZXRBdHRyaWJ1dGUoXCJpdGVtLWlkXCIpO1xuICAgICAgICBsZXQgdHlwZU5vZGUgPSBpLmdldEF0dHJpYnV0ZShcInR5cGUtbm9kZVwiKTtcbiAgICAgICAgbGV0IGl0ZW0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIGl0ZW1JZCk7XG4gICAgICAgIGxldCB2YWx1ZSA9IGkudmFsdWU7XG4gICAgICAgIGlmIChpbnB1dFR5cGUgPT0gXCJ0aW1lXCIpIHtcbiAgICAgICAgICBsZXQgaGhfaW5wdXQgPSBpLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcihcImlucHV0LmhoXCIpLnZhbHVlO1xuICAgICAgICAgIGxldCBtbV9pbnB1dCA9IGkucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXQubW1cIikudmFsdWU7XG4gICAgICAgICAgbW1faW5wdXQgPSBtbV9pbnB1dCA8IDEwID8gXCIwXCIgKyBwYXJzZUZsb2F0KG1tX2lucHV0KSA6IG1tX2lucHV0O1xuICAgICAgICAgIGkucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXQubW1cIikudmFsdWUgPSBtbV9pbnB1dDtcbiAgICAgICAgICB2YWx1ZSA9IGhoX2lucHV0ICsgXCI6XCIgKyBtbV9pbnB1dDtcbiAgICAgICAgfVxuICAgICAgICBpLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic2F2ZU5hdkxlZnRJbnB1dFwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXRlbUlkLFxuICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICB0eXBlOiB0eXBlTm9kZSxcbiAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICB0YWJTZWxlY3RlZDogdGFiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJGVsZW0ucXVlcnlTZWxlY3RvckFsbChcImJ1dHRvbi5jYXAtYnRuLXNoYXBlXCIpLmZvckVhY2goKGkpID0+IHtcbiAgICAgIGkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgIGxldCBrZXkgPSBpLmdldEF0dHJpYnV0ZShcImlucHV0LWtleVwiKTtcbiAgICAgICAgbGV0IGl0ZW1JZCA9IGkuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgICAgbGV0IHR5cGVOb2RlID0gaS5nZXRBdHRyaWJ1dGUoXCJ0eXBlLW5vZGVcIik7XG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja05hdkxlZnRCdXR0b25cIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW1JZCxcbiAgICAgICAgICAgICAgdHlwZTogdHlwZU5vZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAkZWxlbS5xdWVyeVNlbGVjdG9yQWxsKFwiYnV0dG9uLnRyZWUtaWNvblwiKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgaXRlbUlkID0gaS5nZXRBdHRyaWJ1dGUoXCJpdGVtLWlkXCIpO1xuICAgICAgICBsZXQgdHlwZU5vZGUgPSBpLmdldEF0dHJpYnV0ZShcInR5cGUtbm9kZVwiKTtcbiAgICAgICAgbGV0IGRhdGFDb25maWcgPSBjb25maWcuZGF0YS5maW5kKChkKSA9PiBkLmlkID09IGl0ZW1JZCk7XG5cbiAgICAgICAgbGV0ICRuYXZJdGVtID0gZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoXCIubmF2LWl0ZW1cIik7XG4gICAgICAgIGxldCAkY2hpbGRyZW4gPSAkbmF2SXRlbS5xdWVyeVNlbGVjdG9yKFwiLmNoaWxkcmVuLWl0ZW1zXCIpO1xuICAgICAgICBsZXQgaXRlbXNUb0hpZGUgPSBlLmN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAuY2xvc2VzdChcIm5hdi5sZWZ0XCIpXG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBcIltjaGlsZD0nXCIgKyBpdGVtSWQgKyBcIiddLCBbY2hpbGQtbGlzdD0nXCIgKyBpdGVtSWQgKyBcIiddXCJcbiAgICAgICAgICApO1xuXG4gICAgICAgIGlmICgkY2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoJGNoaWxkcmVuLmNsYXNzTGlzdC5jb250YWlucyhcImhpZGVcIikpIHtcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5jbGFzc0xpc3QuYWRkKFwiY2FwLXJvdGF0ZVwiKTtcbiAgICAgICAgICAgIGl0ZW1zVG9IaWRlLmZvckVhY2goKGkpID0+IGkuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIikpO1xuICAgICAgICAgICAgZGF0YUNvbmZpZy5pc0Nsb3NlZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuY2xhc3NMaXN0LnJlbW92ZShcImNhcC1yb3RhdGVcIik7XG4gICAgICAgICAgICBpdGVtc1RvSGlkZS5mb3JFYWNoKChpKSA9PiBpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpKTtcbiAgICAgICAgICAgIGRhdGFDb25maWcuaXNDbG9zZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGkuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjbGlja05hdkxlZnRUcmVlSWNvblwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtSWQsXG4gICAgICAgICAgICAgIHR5cGU6IHR5cGVOb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICAvL2UuY3VycmVudFRhcmdldC5wYXJlbnRcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIEh0bWwgY29tbyBTdHJpbmcsIHBhcmEgZWwgZGV0YWxsZSBkZSBpdGVtcyBlbiBlbCBTaWRlYmFyIEl6cXVpZXJkb1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2l0ZW09e31dIC0gQ29uZmlndXJhY2lvbiBkZSBpdGVtXG4gICAqIEByZXR1cm4ge1N0cmluZ30gSHRtbCBkZSB2ZW50YW5hIGRlIGRldGFsbGVcbiAgICovXG4gIGdldERldGFpbE5hdkl0ZW1Db250ZW50KGl0ZW0gPSB7fSkge1xuICAgIGlmIChpdGVtLm5hdk92ZXIgPT0gdW5kZWZpbmVkKSBpdGVtLm5hdk92ZXIgPSB7fTtcblxuICAgIHJldHVybiBgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC10aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpdGVtLmxhYmVsIHx8IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpdGVtLm5hdk92ZXIuc3VidGl0bGUgfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNoaXAgJHtpdGVtLmxpZ2h0ID8gaXRlbS5saWdodCArIFwiLWxpZ2h0XCIgOiBcIlwiXG4gICAgICB9ICAke2l0ZW0ubmF2T3Zlci5jaGlwID8gXCJcIiA6IFwiaGlkZVwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpdGVtLm5hdk92ZXIuY2hpcCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7aXRlbS5uYXZPdmVyLmNvbnRlbnQgfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBTaWRlYmFyIERlcmVjaG9cbiAgICogVXNhZG8gcHJpbmNpcGFsbWVudGUgcGFyYSBmb3JtdWxhcmlvIGRlIGluZ3Jlc28gZGUgZGF0b3MgcGFyYSBsb3MgZGlhc1xuICAgKiBzZWxlY2Npb25hZG9zXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0YWIgLSBUYWIgZGUgcmVmZXJlbmNpYSwgcGFyYSBsYSBjcmVhY2lvbiBkZWwgZm9ybXVsYXJpb1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IHtlbGVtZW50LCBpbnB1dHN9LCBlbGVtZW50IGVzIGVsIGVsZW1lbnRvIERvbSBkZWwgc2lkZWJhcixcbiAgICogICAgICAgICAgICAgICAgICBpbnB1dHMgZXMgdW4gYXJyYXkgZGUgZWxlbWVudG9zIERvbSBkZSBjYWRhIGlucHV0IGNyZWFkb1xuICAgKiAgICAgICAgICAgICAgICAgIChubyBzb24gZWxlbWVudG9zIGh0bWwgZGUgdGlwbyBpbnB1dClcbiAgICovXG4gIGNyZWF0ZU5hdlJpZ2h0KGNvbmZpZywgdGFiID0gbnVsbCkge1xuICAgIHZhciAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwibmF2XCIsIHsgY2xhc3NOYW1lOiBcInJpZ2h0XCIgfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3TmF2UmlnaHQoY29uZmlnLCAkZWxlbSwgdGFiLCBbXSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBTaWRlYmFyIERlcmVjaG9cbiAgICogVXRpbGl6YSAkZWxlbSBjb21vIGVsZW1lbnRvIGRvbSBkb25kZSByZWNyZWFybG9cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9ICRlbGVtIC0gRWxlbWVudG8gRG9tIGRvbmRlIGNyZWEgZWwgc2lkZWJhciBkZXJlY2hvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0YWIgLSBUYWIgZGUgcmVmZXJlbmNpYSwgcGFyYSBsYSBjcmVhY2lvbiBkZWwgZm9ybXVsYXJpb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIGRhdG9zIGRlbCBkaWEgc2VsZWNjaW9uYW5kbywgcGFyYSBhdXRvcnJlbGxlbm8gZGUgZm9ybXVsYXJpb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF5U2VsZWN0ZWQgLSBkYXRvcyBkZWwgZGlhIHNlbGVjY2lvbmFkb1xuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF5U2VsZWN0ZWQuZGF0ZSAtIGZlY2hhIGRlbCBkaWEgc2VsZWNjaW9uYWRvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXlTZWxlY3RlZC5pdGVtIC0gSXRlbSBkZSBTaWRlYmFyIHJlbGFjaW9uYWRvIGFsIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHBhcmFtIHtPYmplY3R9IGRheVNlbGVjdGVkLnBvcyAtIHBvc2ljaW9uIGRlIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gU2lkZWJhciBEZXJlY2hvXG4gICAqL1xuICByZWRyYXdOYXZSaWdodChcbiAgICBjb25maWcsXG4gICAgJGVsZW0sXG4gICAgc2VsZWN0ZWQgPSBudWxsLFxuICAgIHRhYiA9IG51bGwsXG4gICAgZGF0YURheSA9IG51bGwsXG4gICAgZGF5U2VsZWN0ZWQgPSBudWxsXG4gICkge1xuICAgIGxldCAkbmF2UmlnaHQgPSAkZWxlbTsgLy9kb20uY3JlYXRlRWxlbWVudChcIm5hdlwiLHtjbGFzc05hbWU6XCJyaWdodFwifSk7XG4gICAgbGV0ICRkaXZDb250YWluZXIgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwibmF2LWlucHV0LWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgbGV0ICRpbnB1dHMgPSBbXTtcbiAgICBsZXQgY2hlY2tib3hJbnB1dHMgPSBbXTtcbiAgICBsZXQgaW5wdXRzV2l0aFJlbG9hZCA9IFtdO1xuICAgIGxldCB0YWJTZWxlY3RlZCA9IHRhYjtcbiAgICBzZWxlY3RlZCA9IHNlbGVjdGVkIHx8IFtkYXlTZWxlY3RlZF07XG5cbiAgICBpZiAodGFiU2VsZWN0ZWQgJiYgdGFiU2VsZWN0ZWQuaW5wdXRzKSB7XG4gICAgICB0YWJTZWxlY3RlZC5pbnB1dHMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICBpZiAoaS5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIGxldCAkaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KGksIGRhdGFEYXksIGRheVNlbGVjdGVkLCBzZWxlY3RlZCk7XG4gICAgICAgIGlmICgkaW5wdXQpIHtcbiAgICAgICAgICAkZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKCRpbnB1dCk7XG4gICAgICAgICAgJGlucHV0cy5wdXNoKCRpbnB1dCk7XG5cbiAgICAgICAgICBpZiAoaS50eXBlID09IFwiY2hlY2tib3hcIikge1xuICAgICAgICAgICAgY2hlY2tib3hJbnB1dHMucHVzaCgkaW5wdXQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpLnJlbG9hZE9uU2VsZWN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlucHV0c1dpdGhSZWxvYWQucHVzaCh7ICRpbnB1dCwgY29uZmlnOiBpIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy9tYW5lam8gZGUgZXZlbnRvcyBwYXJhIGlucHV0cyBjb24gc2hvd0lmXG4gICAgaWYgKGNoZWNrYm94SW5wdXRzKSB7XG4gICAgICBjaGVja2JveElucHV0cy5mb3JFYWNoKCgkYykgPT4ge1xuICAgICAgICAvL29idGllbmUga2V5IGRlIGNoZWNrYm94XG4gICAgICAgIGxldCBrZXkgPSAkYy5nZXRBdHRyaWJ1dGUoXCJpbnB1dC1rZXlcIik7XG4gICAgICAgIGxldCBwcm9wcyA9IHRhYlNlbGVjdGVkLmlucHV0cy5maW5kKChpKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGkua2V5ID09IGtleTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICBpZiAoZGF0YURheSkge1xuICAgICAgICAgIGlzQ2hlY2tlZCA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vb2J0aWVuZSBpbnB1dHMgcmVsYWNpb25hZG9zIGRlc2RlIGNvbmZpZyBwYXJhIG1vc3RyYXIvb2N1bHRhclxuICAgICAgICBsZXQgaW5wdXRzVG9IaWRlID0gdGFiU2VsZWN0ZWQuaW5wdXRzLmZpbHRlcigoaSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpLnNob3dJZiAmJiBpLnNob3dJZiA9PSBrZXk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgaW5wdXRzVG9IaWRlS2V5cyA9IGlucHV0c1RvSGlkZS5tYXAoKGkpID0+IGkua2V5KTtcblxuICAgICAgICAvL29idGllbmUgaW5wdXRzIGRlbCBkb20sIGZpbHRyYW5kbyBjb24gaW5wdXRzVG9IaWRlXG4gICAgICAgIGxldCAkaW5wdXRzSGlkZGVuID0gJGlucHV0cy5maWx0ZXIoKCRpKSA9PiB7XG4gICAgICAgICAgbGV0IGlucHV0S2V5ID0gJGkuZ2V0QXR0cmlidXRlKFwiaW5wdXQta2V5XCIpO1xuICAgICAgICAgIHJldHVybiBpbnB1dHNUb0hpZGVLZXlzLmluZGV4T2YoaW5wdXRLZXkpID4gLTE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vc2kgaGF5IGlucHV0cyxcbiAgICAgICAgaWYgKCRpbnB1dHNIaWRkZW4pIHtcbiAgICAgICAgICBpZiAoIWlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgJGlucHV0c0hpZGRlbi5mb3JFYWNoKCgkaSkgPT4ge1xuICAgICAgICAgICAgICAkaS5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkYy5hZGRFdmVudExpc3RlbmVyKFwiaW5wdXRcIiwgKGUpID0+IHtcbiAgICAgICAgICAgICRpbnB1dHNIaWRkZW4uZm9yRWFjaCgoJGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGZuID0gJGMucXVlcnlTZWxlY3RvcihcImlucHV0W3R5cGU9J2NoZWNrYm94J11cIikuY2hlY2tlZFxuICAgICAgICAgICAgICAgID8gXCJyZW1vdmVcIlxuICAgICAgICAgICAgICAgIDogXCJhZGRcIjtcbiAgICAgICAgICAgICAgJGkuY2xhc3NMaXN0W2ZuXShcImhpZGVcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IHNhdmVDYW5jZWxCdG5zID0gdGhpcy5jcmVhdGVOYXZSaWdodGJ1dHRvbnMoKTtcbiAgICAkZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKHNhdmVDYW5jZWxCdG5zKTtcbiAgICAkbmF2UmlnaHQuaW5uZXJIVE1MID0gXCJcIjtcbiAgICAkbmF2UmlnaHQuYXBwZW5kQ2hpbGQoJGRpdkNvbnRhaW5lcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxlbWVudDogJG5hdlJpZ2h0LFxuICAgICAgaW5wdXRzOiAkaW5wdXRzLFxuICAgICAgaW5wdXRzV2l0aFJlbG9hZCxcbiAgICAgIHNhdmVDYW5jZWxCdG5zXG4gICAgfTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBDb3JuZXIgaW5mZXJpb3IgaXpxdWllcmRvLCBjb21vIHRpdHVsbyBwYXJhIGZvb3RlclxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBDb3JuZXIgRm9vdGVyXG4gICAqL1xuICBjcmVhdGVDb3JuZXJGb290ZXIoY29uZmlnKSB7XG4gICAgaWYgKFxuICAgICAgY29uZmlnLnRpbWVsaW5lLmZvb3RlciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBjb25maWcudGltZWxpbmUuZm9vdGVyLmVuYWJsZWQgPT0gZmFsc2VcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgc3RyID0gXCJcIjtcblxuICAgIGlmIChjb25maWcudGltZWxpbmUuZm9vdGVyKSB7XG4gICAgICBzdHIgKz0gYDxkaXYgY2xhc3M9XCJjb3JuZXItZm9vdGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvcm5lci10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICR7Y29uZmlnLnRpbWVsaW5lLmZvb3Rlci5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBGb290ZXIgcGFyYSBwbGFuaWxsYVxuICAgKiBJbmljaWFsbWVudGUgY3JlYWRvIHBhcmEgdG90YWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBDb3JuZXIgRm9vdGVyXG4gICAqL1xuICBjcmVhdGVGb290ZXIoY29uZmlnKSB7XG4gICAgaWYgKFxuICAgICAgY29uZmlnLnRpbWVsaW5lLmZvb3RlciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBjb25maWcudGltZWxpbmUuZm9vdGVyLmVuYWJsZWQgPT0gZmFsc2VcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzdHIgPSBgXG4gICAgICAgIDxmb290ZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgICAgICBgO1xuICAgIGNvbmZpZy50aW1lbGluZS5mb290ZXIuZGF0YS5mb3JFYWNoKChkKSA9PiB7XG4gICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWl0ZW1cIj4ke2QudmFsdWV9PC9kaXY+XG4gICAgICAgICAgICBgO1xuICAgIH0pO1xuICAgIHN0ciArPSBgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgICAgICBgO1xuXG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBGb290ZXIgcGFyYSBwbGFuaWxsYVxuICAgKiBJbmljaWFsbWVudGUgY3JlYWRvIHBhcmEgdG90YWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgKiBAcGFyYW0ge09iamVjdFtdfSBzZWxlY3RlZCAtIGFycmF5IGRlIG9iamV0b3MsIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBDb3JuZXIgRm9vdGVyXG4gICAqL1xuICBjcmVhdGVTZWxlY3RCb2FyZChjb25maWcsIHNlbGVjdGVkKSB7XG4gICAgbGV0ICRlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwic2VsZWN0LWNvbnRhaW5lclwiIH0pO1xuICAgIHJldHVybiB0aGlzLnJlZHJhd1NlbGVjdEJvYXJkKCRlbGVtLCBzZWxlY3RlZCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgbGluZWEgdmVydGljYWwgcGFyYSBmZWNoYSBBY3R1YWxcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gQ29ybmVyIEZvb3RlclxuICAgKi9cbiAgY3JlYXRlVG9kYXlMaW5lKGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLnJlZHJhd1RvZGF5TGluZShcbiAgICAgIGNvbmZpZyxcbiAgICAgIGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInRvZGF5LWxpbmVcIiB9KVxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY3JlYSBsaW5lYSB2ZXJ0aWNhbCBwYXJhIGZlY2hhIEFjdHVhbFxuICAgKiBzaSBlbCBlbGVtZW50byAkZWxlbSBubyBlcyBlbnZpYWRvLCBzZSBjcmVhIHVuIG51ZXZvIGVsZW1lbnRvXG4gICAqXG4gICAqIFNpIGVsIGRpYSBhY3R1YWwgbm8gZXN0YSBkZW50cm8gZGVsIHJhbmdvIGRlIGZlY2hhcyBkZWwgY29uZmlnLFxuICAgKiBkZXNoYWJpbGl0YSBsYSBsaW5lYSBjb24gbGEgY2xhc2UgY3NzIC5kaXNhYmxlLWxpbmVcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9IFskZWxlbT1udWxsXSAtIEVsZW1lbnRvIERvbSBkb25kZSByZWNyZWEgbGEgbGluZWEsIHNpIGVzIG51bGwsIGxhIGNyZWFcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gQ29ybmVyIEZvb3RlclxuICAgKi9cbiAgcmVkcmF3VG9kYXlMaW5lKGNvbmZpZywgJGVsZW0gPSBudWxsKSB7XG4gICAgbGV0IGVuZFRpbWUgPSBuZXcgRGF0ZShjb25maWcudGltZWxpbmUuZW5kKS5nZXRUaW1lKCk7XG4gICAgbGV0IHRvZGF5VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGxldCB7IGhlaWdodCwgZGF5V2lkdGggfSA9IHV0aWxzLmdldFRhYmxlRGltZW5zaW9ucyhjb25maWcpO1xuXG4gICAgaWYgKCRlbGVtID09IG51bGwpXG4gICAgICAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInRvZGF5LWxpbmVcIiB9KTtcblxuICAgIGlmIChlbmRUaW1lIDwgdG9kYXlUaW1lKSB7XG4gICAgICAkZWxlbS5jbGFzc0xpc3QuYWRkKFwiZGlzYWJsZS1saW5lXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAkZWxlbS5jbGFzc0xpc3QucmVtb3ZlKFwiZGlzYWJsZS1saW5lXCIpO1xuICAgIH1cblxuICAgIGxldCBkaWZmRGF5cyA9IE1hdGguZmxvb3IoXG4gICAgICBkYXRlVXRpbHMuZGlmZkRheXMoXG4gICAgICAgIGNvbmZpZy50aW1lbGluZS5zdGFydCxcbiAgICAgICAgZGF0ZVV0aWxzLmZvcm1hdERhdGUobmV3IERhdGUoKSlcbiAgICAgIClcbiAgICApO1xuICAgIGxldCBkaWZmID0gZGlmZkRheXMgKiBkYXlXaWR0aDtcbiAgICBkaWZmICs9IGRheVdpZHRoIC8gMiAtIDI7IC8vIHBhcmEgY2VudHJhciBsaW5lYVxuICAgIE9iamVjdC5hc3NpZ24oJGVsZW0uc3R5bGUsIHtcbiAgICAgIFwibWFyZ2luLWxlZnRcIjogZGlmZiArIFwicHhcIixcbiAgICAgIGhlaWdodDogaGVpZ2h0ICsgXCJweFwiXG4gICAgfSk7XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIGVsZW1lbnRvIEZsb2F0Qm94LCBxdWUgY29udGllbmUgbG9zIGRhdG9zIHF1ZSBzZSBtdWVzdHJhIGVuIGxhIHRhYmxhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0YWIgLSBUYWIgZGUgcmVmZXJlbmNpYSwgcGFyYSBtb3N0cmFyIGRhdG9zIGNvbmZpZ3VyYWRvcyBwb3IgdGFiXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIENvcm5lciBGb290ZXJcbiAgICovXG4gIGNyZWF0ZUZsb2F0Qm94KGNvbmZpZywgdGFiKSB7XG4gICAgbGV0ICRjb250YWluZXIgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiZmxvYXQtYm94LWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucmVkcmF3RmxvYXRCb3goY29uZmlnLCB0YWIsICRjb250YWluZXIpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWNyZWEgZWxlbWVudG8gRmxvYXRCb3gsIHF1ZSBjb250aWVuZSBsb3MgZGF0b3MgcXVlIHNlIG11ZXN0cmEgZW4gbGEgdGFibGFcbiAgICogU2UgdXNhIHByaW5jaXBhbG1lbnRlIHBhcmEgbW9zdHJhciBkYXRvcyBlbiBsYSB0YWJsYSBkZSBsYSBwbGFuaWxsYVxuICAgKiBsb3MgbXVlc3RyYSBkZSBtYW5lcmEgZmxvdGFudGUsIGNhbGN1bGFuZG8gZWwgVG9wIHkgZWwgTGVmdCBzZWd1biBsYSBwb3NjaW9uXG4gICAqXG4gICAqIFNlIGNvbnNpZGVyYW4gbG9zIGVsZW1lbnRvcyBwYWRyZXMgb2N1bHRvcywgcGFyYSBvY3VsdGFyIGxvcyBkYXRvc1xuICAgKlxuICAgKiBTZSBpbnNlcnRhbiBsb3MgZWxlbWVudG9zIEZsb2F0Qm94LCBjb21vIGVsZW1lbnRvIGNvbiBkYXRvcyBkZSB1biBpdGVtIHkgZGlhIGVzcGVjaWZpY29cbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9IHRhYiAtIFRhYiBkZSByZWZlcmVuY2lhLCBwYXJhIG1vc3RyYXIgZGF0b3MgY29uZmlndXJhZG9zIHBvciB0YWJcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gQ29ybmVyIEZvb3RlclxuICAgKi9cbiAgcmVkcmF3RmxvYXRCb3goY29uZmlnLCB0YWIsICRjb250YWluZXIpIHtcbiAgICAkY29udGFpbmVyLmlubmVySFRNTCA9IFwiXCI7XG4gICAgLy9sZXQgdGFiU2VsZWN0ZWQgPSB0YWIgfHwgbnVsbDtcblxuICAgIGNvbmZpZy5kYXRhLmZvckVhY2goKGRlKSA9PiB7XG4gICAgICBpZiAoZGUuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgIGRlLmNoaWxkcmVuLmZvckVhY2goKGRzKSA9PiB7XG4gICAgICAgIGlmIChkcy5pc0hpZGRlbikgcmV0dXJuO1xuXG4gICAgICAgIGRzLmRhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICghZGF0YS5tZXNzYWdlIHx8IGRhdGEubWVzc2FnZS52YWx1ZSA9PSBudWxsKSAmJlxuICAgICAgICAgICAgKGRhdGEudmFsdWVzID09IG51bGwgfHxcbiAgICAgICAgICAgICAgZGF0YS52YWx1ZXMgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEudmFsdWVzKS5sZW5ndGggPT09IDApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvL2NoaWxkcmVuIERhdGFcbiAgICAgICAgICBsZXQgcG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uRmxvYXRCb3goY29uZmlnLCBkYXRhLCBkcyk7XG5cbiAgICAgICAgICBsZXQgY2xhc3NOYW1lID0gXCJcIjtcblxuICAgICAgICAgIGlmIChkYXRhLmVycm9ycyAmJiBkYXRhLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gXCJoYXMtZXJyb3JzIFwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChkZS5pc0Nsb3NlZCkge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiaGlkZSBcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgbXNnID0gbnVsbDtcbiAgICAgICAgICBpZiAodGFiLmZsb2F0Qm94ICYmIHRhYi5mbG9hdEJveC5tZXNzYWdlUGF0aCkge1xuICAgICAgICAgICAgbXNnID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEsIHRhYi5mbG9hdEJveC5tZXNzYWdlUGF0aCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1zZyB8fCAoZGF0YS5tZXNzYWdlICYmIGRhdGEubWVzc2FnZS52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSArPSBcImhhcy1tZXNzYWdlIFwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBzdHIgPSBgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsb2F0LWJveCAke2NsYXNzTmFtZX0gJHtkZS5pc0Nsb3NlZCA/IFwiaGlkZVwiIDogXCJcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCIke3Bvc2l0aW9uID8gcG9zaXRpb24gOiBcIlwifVwiXG4gICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkcy5pZCB8fCAtMX1cIlxuICAgICAgICAgICAgICAgICAgICAgdHlwZS1ub2RlPVwiJHtkcy50eXBlIHx8IFwiXCJ9XCI+IGA7XG5cbiAgICAgICAgICBsZXQgc3RyRXh0ID0gYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1ib3gtZXh0ICR7ZGUuaXNDbG9zZWQgPyBcImhpZGVcIiA6IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIiR7cG9zaXRpb24gPyBwb3NpdGlvbiA6IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLWlkPVwiJHtkcy5pZCB8fCAtMX0tZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlLW5vZGU9XCIke2RzLnR5cGUgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb25nLWJhci1jb250YWluZXJcIj5gO1xuXG4gICAgICAgICAgaWYgKHRhYiAmJiB0YWIuZmxvYXRCb3gpIHtcbiAgICAgICAgICAgIGlmICh0YWIuZmxvYXRCb3gucGxvdHMpIHtcbiAgICAgICAgICAgICAgc3RyICs9IGA8ZGl2IGNsYXNzPVwicGxvdC1mbG9hdGJveC1jb250YWluZXJcIj5gO1xuICAgICAgICAgICAgICB0YWIuZmxvYXRCb3gucGxvdHMuZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjc3NWYXJzID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgY2xhc3NOYW1lID0gXCJcIjtcbiAgICAgICAgICAgICAgICBpZiAodXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBuLnZhck5hbWUpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBpZiAobi5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICBjc3NWYXJzID0gYC0tbG9jYWwtY29sb3I6JHtuLmNvbG9yfTtgO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBuLmNsYXNzTmFtZSB8fCBcIlwiO1xuXG4gICAgICAgICAgICAgICAgICBzdHIgKz0gYDxkaXYgY2xhc3M9XCJwbG90LWZsb2F0Ym94ICR7Y2xhc3NOYW1lfSAke24uc3R5bGUgfHwgXCJcIlxuICAgICAgICAgICAgICAgICAgICB9XCIgc3R5bGU9XCIke2Nzc1ZhcnN9IFwiPjwvZGl2PmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vbnVtZXJvcyBlbiBlbCBmbG9hdEJveFxuICAgICAgICAgICAgaWYgKHRhYi5mbG9hdEJveC5udW1zKSB7XG4gICAgICAgICAgICAgIHRhYi5mbG9hdEJveC5udW1zLmZvckVhY2goKG4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGFiLmxlZ2VuZHMgJiYgbi50YWJLZXkpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBsZWdlbmQgPSB0YWIubGVnZW5kcy5maW5kKChsKSA9PiBsLmtleSA9PSBuLnRhYktleSk7XG4gICAgICAgICAgICAgICAgICBpZiAobGVnZW5kICYmICFsZWdlbmQuYWN0aXZlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGRhdGFGbG9hdEJveCA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgbGV0IHNob3dJZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgbGV0IGhpZGVJZiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCBjb2xvckNsYXNzID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgY29sb3JTdHlsZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZXNFeHQgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGxldCBjb2xvclN0eWxlRXh0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgY3NzVmFycyA9IFwiXCI7XG5cbiAgICAgICAgICAgICAgICBpZiAobi52YXJOYW1lKSB7XG4gICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIG4udmFyTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG4udmFyU2hvdykge1xuICAgICAgICAgICAgICAgICAgc2hvd0lmID0gQm9vbGVhbih1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIG4udmFyU2hvdykpO1xuICAgICAgICAgICAgICAgICAgZGF0YUZsb2F0Qm94ID0gZGF0YUZsb2F0Qm94IHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG4udmFySGlkZSkge1xuICAgICAgICAgICAgICAgICAgaGlkZUlmID0gQm9vbGVhbih1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIG4udmFySGlkZSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChuLnNoYXBlKSB7XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gXCJzaGFwZS1cIiArIG4uc2hhcGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG4uY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKG4uY29sb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yU3R5bGUgPSBgLS1sb2NhbC1jb2xvcjogJHtuLmNvbG9yfTtgO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JDbGFzcyA9IG4uY29sb3I7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG5cblxuXG5cblxuICAgICAgICAgICAgICAgIGlmIChuLmxvbmdCYXIpIHtcblxuICAgICAgICAgICAgICAgICAgbGV0IGxvbmdCYXJDb2xvciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICBsZXQgbG9uZ0Jhck9wYWNpdHkgPSBcIlwiO1xuXG5cbiAgICAgICAgICAgICAgICAgIGlmIChuLmxvbmdCYXJDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICBsb25nQmFyQ29sb3IgPSB1dGlscy5nZXRWYXJCeVBhdGgoXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgbi5sb25nQmFyQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGxvbmdCYXJDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihsb25nQmFyQ29sb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3JTdHlsZUV4dCA9IGAtLWxvY2FsLWNvbG9yOiAke2xvbmdCYXJDb2xvcn07YDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzRXh0ICs9IGxvbmdCYXJDb2xvciArIFwiLWxpZ2h0IFwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbG9yQ2xhc3MgJiYgY29sb3JDbGFzcyAhPSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXNFeHQgKz0gY29sb3JDbGFzcztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sb3JTdHlsZSAmJiBjb2xvclN0eWxlICE9IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JTdHlsZUV4dCA9IGNvbG9yU3R5bGU7XG4gICAgICAgICAgICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgICAgICAgICAgIGlmIChuLmxvbmdCYXJPcGFjaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxvbmdCYXJPcGFjaXR5ID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBuLmxvbmdCYXJPcGFjaXR5KSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9uZ0Jhck9wYWNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvclN0eWxlRXh0ICs9IFwiLS1sb2NhbC1vcGFjaXR5OiBcIiArIGxvbmdCYXJPcGFjaXR5ICsgXCI7XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKG4ubG9uZ0JhckNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzRXh0ICs9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgbi5sb25nQmFyQ2xhc3NOYW1lKSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgIGxldCBsb25nQmFyID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBuLmxvbmdCYXIpO1xuICAgICAgICAgICAgICAgICAgaWYgKGxvbmdCYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY3NzVmFycyA9IGAtLWxvbmc6JHtsb25nQmFyfTtgO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuXG5cblxuXG5cblxuICAgICAgICAgICAgICAgIGlmIChkYXRhRmxvYXRCb3ggIT09IG51bGwgJiYgc2hvd0lmICYmICFoaWRlSWYpIHtcbiAgICAgICAgICAgICAgICAgIHN0ciArPSBgPHNwYW4gY2xhc3M9XCJkYXRhICR7Y29sb3JDbGFzc30gJHtjbGFzc05hbWV9XCIgc3R5bGU9XCIke2NvbG9yU3R5bGV9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dHlwZW9mIGRhdGFGbG9hdEJveCA9PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgPyBkYXRhRmxvYXRCb3hcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3R5cGVvZiBkYXRhRmxvYXRCb3ggPT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgID8gdXRpbHMucm91bmQoZGF0YUZsb2F0Qm94LCBuLnJvdW5kKVxuICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuICAgICAgICAgICAgICAgICAgaWYgKG4ubG9uZ0JhciAmJiBjc3NWYXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ckV4dCArPSBgPGRpdiBjbGFzcz1cImxvbmctYmFyICR7Y2xhc3NOYW1lc0V4dH1cIiBzdHlsZT1cIiR7Y29sb3JTdHlsZUV4dH0gJHtjc3NWYXJzfSBcIj48L2Rpdj4gYDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL3B1bnRvcyBlbiBlbCBmbG9hdEJveFxuICAgICAgICAgICAgaWYgKHRhYi5mbG9hdEJveC5kb3RzKSB7XG4gICAgICAgICAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cImRvdC1jb250YWluZXItbWlkZGxlXCI+YDtcbiAgICAgICAgICAgICAgdGFiLmZsb2F0Qm94LmRvdHMuZm9yRWFjaCgoZG90KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgZG90LnZhck5hbWUpICE9PSBudWxsKSB7XG5cbiAgICAgICAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yQ2xhc3MgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yU3R5bGUgPSBcIlwiO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoZG90LnNoYXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArPSBkb3Quc2hhcGU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkb3QuY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IoZG90LmNvbG9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yU3R5bGUgPSBgLS1sb2NhbC1jb2xvcjogJHtkb3QuY29sb3J9YDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvckNsYXNzID0gZG90LmNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3QgJHtjb2xvckNsYXNzfSAke2NsYXNzTmFtZX1cIiBzdHlsZT1cIiR7Y29sb3JTdHlsZX1cIiA+PC9kaXY+YDtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL2ZpbGEgZGUgcHVudG9zIGVuIGZsb2F0Qm94XG4gICAgICAgICAgICBpZiAodGFiLmZsb2F0Qm94LnJvd0RvdHMpIHtcbiAgICAgICAgICAgICAgdGFiLmZsb2F0Qm94LnJvd0RvdHMuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZyZWVDb2x1bW5zID0gNDtcbiAgICAgICAgICAgICAgICBzdHIgKz0gYDxzcGFuIGNsYXNzPVwicm93ZG90LS1yb3cgXCI+YDtcblxuICAgICAgICAgICAgICAgIHJvdy5mb3JFYWNoKChkb3QpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0YWIubGVnZW5kcyAmJiBkb3QudGFiS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsZWdlbmQgPSB0YWIubGVnZW5kcy5maW5kKChsKSA9PiBsLmtleSA9PSBkb3QudGFiS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlZ2VuZCAmJiAhbGVnZW5kLmFjdGl2ZSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBsZXQgZGF0YUZsb2F0Qm94ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgbGV0IHNob3dJZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBsZXQgaGlkZUlmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICBsZXQgY29sb3JDbGFzcyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICBsZXQgY29sb3JTdHlsZSA9IFwiXCI7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkb3QudmFyTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YS52YWx1ZXMsIGRvdC52YXJOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUZsb2F0Qm94ID0gcGFyc2VJbnQoZGF0YUZsb2F0Qm94KTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGRvdC52YXJTaG93KSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dJZiA9IEJvb2xlYW4oXG4gICAgICAgICAgICAgICAgICAgICAgdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGEudmFsdWVzLCBkb3QudmFyU2hvdylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUZsb2F0Qm94ID0gZGF0YUZsb2F0Qm94IHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkb3QudmFySGlkZSkge1xuICAgICAgICAgICAgICAgICAgICBoaWRlSWYgPSBCb29sZWFuKFxuICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLmdldFZhckJ5UGF0aChkYXRhLnZhbHVlcywgZG90LnZhckhpZGUpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkb3Quc2hhcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICs9IFwiIHNoYXBlLVwiICsgZG90LnNoYXBlO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoZG90LmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKGRvdC5jb2xvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvclN0eWxlID0gYC0tbG9jYWwtY29sb3I6ICR7ZG90LmNvbG9yfWA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3JDbGFzcyA9IGRvdC5jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGRhdGFGbG9hdEJveCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHNob3dJZiAmJlxuICAgICAgICAgICAgICAgICAgICAhaGlkZUlmICYmXG4gICAgICAgICAgICAgICAgICAgIGZyZWVDb2x1bW5zID4gMFxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuID1cbiAgICAgICAgICAgICAgICAgICAgICBkYXRhRmxvYXRCb3ggPiBmcmVlQ29sdW1ucyA/IGZyZWVDb2x1bW5zIDogZGF0YUZsb2F0Qm94O1xuICAgICAgICAgICAgICAgICAgICBmcmVlQ29sdW1ucyAtPSBuO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbjsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBgPGRpdiBjbGFzcz1cInJvd2RvdC0tZG90ICR7Y29sb3JDbGFzc30gJHtjbGFzc05hbWV9XCIgc3R5bGU9XCIke2NvbG9yU3R5bGV9XCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgc3RyICs9IGA8L3NwYW4+YDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgIHN0ckV4dCArPSBgXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgICAgICBsZXQgJGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKHN0cik7XG5cbiAgICAgICAgICBsZXQgJGVsZW1FeHQgPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKHN0ckV4dCk7XG5cbiAgICAgICAgICAkZWxlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsIChlKSA9PiB7XG4gICAgICAgICAgICAkZWxlbS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJtb3VzZU92ZXJGbG9hdEJveFwiLCB7XG4gICAgICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgIGl0ZW06IGRzLFxuICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgICRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICAgICAgJGVsZW0uZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwiY2xpY2tGbG9hdEJveFwiLCB7XG4gICAgICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgIGl0ZW06IGRzLFxuICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAgIG9yaWdpbmFsRXZ0OiBlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgICRjb250YWluZXIuYXBwZW5kQ2hpbGQoJGVsZW0pO1xuICAgICAgICAgICRjb250YWluZXIuYXBwZW5kQ2hpbGQoJGVsZW1FeHQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICRjb250YWluZXI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgRGV0YWlsRGF5LCBkZXRhbGxlIGRlIHZhbG9yZXMgZGUgaXRlbSB5IERpYVxuICAgKiBzZSB1c2EgcGFyYTpcbiAgICogICAgLSBNdWVzdHJhIG5vbWJyZSBkZSBpdGVtIHkgZGV0YWxsZXNcbiAgICogICAgLSBNdWVzdHJhIGNhcHN1bGFzIGRlIGRhdG9zXG4gICAqICAgIC0gTXVlc3RyYSBQaWxscywgcGlsZG9yYXMgZGUgZGF0b3MgcmVzdW1pZG9zXG4gICAqICAgIC0gTXVlc3RyYSBhbGVydGFzXG4gICAqICAgIC0gTXVlc3RyYSBNZW5zYWplXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtIC0gSXRlbSByZWxhY2lvbmFkb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYVxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtvbmx5U3RyaW5nQ29udGVudCA9IGZhbHNlXSAtIHBhcmEgZXNjb2dlciBzaSBkZXZ1ZWx2ZSBTdHJpbmcgbyBEb21FbGVtZW50XG4gICAqIEByZXR1cm4ge1N0cmluZ3xPYmplY3R9IEVsZW1lbnRvIGNvbW8gU3RyaW5nIG8gRG9tRWxlbWVudFxuICAgKi9cbiAgY3JlYXRlRGV0YWlsRGF5KFxuICAgIGNvbmZpZyxcbiAgICBpdGVtID0ge30sXG4gICAgZGF0YURheSxcbiAgICB0YWJTZWxlY3RlZCxcbiAgICBvbmx5U3RyaW5nQ29udGVudCA9IGZhbHNlXG4gICkge1xuICAgIGxldCBzdHIgPSBgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kZXRhaWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAke2l0ZW0ubGFiZWwgfHwgXCJcIn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICR7ZGF0YURheSA/IGRhdGVVdGlscy5mb3JtYXREYXRlUmVhZGVhYmxlKGRhdGFEYXkuZGF0ZSkgOiBcIlwifVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1kZXRhaWwgbGlzdFwiPmA7XG5cbiAgICAvL0NBUFNVTEVTXG4gICAgaWYgKGRhdGFEYXkpIHtcbiAgICAgIGNvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkuY2Fwc3VsZXMuZm9yRWFjaCgoY2FwKSA9PiB7XG4gICAgICAgIC8vcGFyYSBjb21wcm9iYXIgc2kgdGllbmUgZGF0b3MsIHNlIG9idGllbmUgZWwgcHJpbWVyIHZhbG9yXG4gICAgICAgIC8vZGUgbGEgbGlzdGEgZGUgdmFsdWVzIGRlIHVuYSBjYXBzdWxhXG4gICAgICAgIGxldCBoYXNWYWx1ZXMgPVxuICAgICAgICAgIGNhcC52YWx1ZXMuZmlsdGVyKFxuICAgICAgICAgICAgKHYpID0+IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LnZhbHVlcywgdi52YXJOYW1lKSAhPT0gbnVsbFxuICAgICAgICAgICkubGVuZ3RoID4gMDtcbiAgICAgICAgbGV0IGhpZGVJZiA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChjYXAuaGlkZUlmKSB7XG4gICAgICAgICAgaGlkZUlmID0gQm9vbGVhbih1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheS52YWx1ZXMsIGNhcC5oaWRlSWYpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjb2xvckNsYXNzID0gXCJcIjtcbiAgICAgICAgbGV0IGNvbG9yU3R5bGUgPSBcIlwiO1xuXG4gICAgICAgIGlmIChjYXAuY29sb3IpIHtcbiAgICAgICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihjYXAuY29sb3IpKSB7XG4gICAgICAgICAgICBjb2xvclN0eWxlID0gYC0tbG9jYWwtY29sb3I6ICR7Y2FwLmNvbG9yfTtgO1xuICAgICAgICAgICAgY29sb3JTdHlsZSArPSBgLS1sb2NhbC1jb2xvci1mb250OiAke2NhcC5jb2xvcn07YDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sb3JDbGFzcyA9IGNhcC5jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1ZhbHVlcyAmJiAhaGlkZUlmKSB7XG4gICAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZGV0YWlsICR7Y29sb3JDbGFzc31cIiBzdHlsZT1cIiR7Y29sb3JTdHlsZX1cIj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LWljb24gJHtjYXAuc2hhcGUgfHwgXCJcIn0gXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICR7Y2FwLnRpdGxlIHx8IFwiXCJ9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcblxuICAgICAgICAgIHN0ciArPSBgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZGVzY3JpcHRpb25cIj4gYDtcblxuICAgICAgICAgIGNhcC52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdi52YXJOYW1lXG4gICAgICAgICAgICAgID8gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXkudmFsdWVzLCB2LnZhck5hbWUpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKGNhcC5pc0xhYmVsZWRBcnJheSkge1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2YWx1ZUxhYmVsZWQpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgb3V0cHV0VmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZU5hbWUgPSB2LnZhbHVlTmFtZSA/IHYudmFsdWVOYW1lIDogXCJ2YWx1ZVwiO1xuXG4gICAgICAgICAgICAgICAgbGV0IHRlbXBWYWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aCh2YWx1ZUxhYmVsZWQsIHZhbHVlTmFtZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGVtcFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICBvdXRwdXRWYWx1ZSA9IHYucm91bmRcbiAgICAgICAgICAgICAgICAgICAgPyB1dGlscy5yb3VuZCh0ZW1wVmFsdWUsIHYucm91bmQpXG4gICAgICAgICAgICAgICAgICAgIDogdGVtcFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh2LmZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgb3V0cHV0VmFsdWUgPSB2LmZvcm1hdHRlcih2YWx1ZUxhYmVsZWQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3V0cHV0VmFsdWUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgICAgb3V0cHV0VmFsdWUgPSB1dGlscy5mb3JtYXROdW1iZXIob3V0cHV0VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0ciArPVxuICAgICAgICAgICAgICAgICAgb3V0cHV0VmFsdWUgPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgOiBgXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2MgJHt2LnNob3dDb2x1bW4gPyBcImRlc2MtY29sdW1uXCIgOiBcIlwifVwiPlxuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICR7di5oaWRlTGFiZWwgPyBcIlwiIDogdmFsdWVMYWJlbGVkLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXYgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbFwiPmArXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICh2LmhpZGVQcmVmZml4ICE9PSB0cnVlID8gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByZWZpeFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7di5wcmVmaXggfHwgXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPmAgOiAnJykgKyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7b3V0cHV0VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2LmhpZGVTdWZmaXggIT09IHRydWUgPyBgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx1ZUxhYmVsZWQuc3VmZml4IHx8IHYuc3VmZml4IHx8IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gOiAnJyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgK2BcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvPmA7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGV0IG91dHB1dFZhbHVlID0gdi5yb3VuZCA/IHV0aWxzLnJvdW5kKHZhbHVlLCB2LnJvdW5kKSA6IHZhbHVlO1xuXG4gICAgICAgICAgICAgIGlmICh2LmZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID0gdi5mb3JtYXR0ZXIoeyBvcHRpb25zOiB2LCBkYXRhRGF5LCBvdXRwdXRWYWx1ZSB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3V0cHV0VmFsdWUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID0gdXRpbHMuZm9ybWF0TnVtYmVyKG91dHB1dFZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHN0ciArPVxuICAgICAgICAgICAgICAgIG91dHB1dFZhbHVlID09IG51bGxcbiAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgOiBgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2LnByZWZpeCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke291dHB1dFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2LnN1ZmZpeCB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICA8L2Rpdj5gOyAvLyBlbmQgLml0ZW0tZGV0YWlsXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0ciArPSBgXG4gICAgICAgIDwvZGl2PmA7IC8vIGxpc3QtZGV0YWlsXG5cbiAgICAvL1BJTExTXG4gICAgaWYgKFxuICAgICAgY29uZmlnLnRpbWVsaW5lLmRldGFpbERheS5waWxsc1Zhck5hbWUgJiZcbiAgICAgIGRhdGFEYXkgJiZcbiAgICAgIGRhdGFEYXkudmFsdWVzW2NvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkucGlsbHNWYXJOYW1lXVxuICAgICkge1xuICAgICAgc3RyICs9IGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWxlbWVudHMtZGV0YWlsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPiAke2NvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkucGlsbHNUaXRsZX0gPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWxlbWVudHMtbGlzdFwiPmA7XG5cbiAgICAgIGRhdGFEYXkudmFsdWVzW2NvbmZpZy50aW1lbGluZS5kZXRhaWxEYXkucGlsbHNWYXJOYW1lXS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGUudmFsdWU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvdXRwdXRWYWx1ZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgdmFsdWUgPSB1dGlscy5mb3JtYXROdW1iZXIodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbGVtZW50LWRldGFpbFwiPlxuICAgICAgICAgICAgICA8Yj4ke2UubGFiZWx9PC9iPlxuICAgICAgICAgICAgICAke3ZhbHVlfVxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgIH0pO1xuXG4gICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5gOyAvL2VuZCAuZWxlbWVudC1kZXRhaWwgPiAuZWxlbWVudC1saXN0XG4gICAgfVxuXG4gICAgLy9zdHIgKz0gYDwvZGl2PmA7XG5cbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LmVycm9ycyAmJiBkYXRhRGF5LmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBkYXRhRGF5LmVycm9ycy5mb3JFYWNoKChlcnIpID0+IHtcbiAgICAgICAgc3RyICs9IGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnRcIj5cbiAgICAgICAgICAgICR7aWNvbnMuYWxlcnR9XG4gICAgICAgICAgICAke2Vyci5sYWJlbH1cbiAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IG1zZyA9IG51bGw7XG4gICAgbGV0IGF1dGhvciA9IG51bGw7XG4gICAgbGV0IGRhdGVNc2cgPSBudWxsO1xuICAgIGlmIChkYXRhRGF5ICYmIHRhYlNlbGVjdGVkLmZsb2F0Qm94ICYmIHRhYlNlbGVjdGVkLmZsb2F0Qm94Lm1lc3NhZ2VQYXRoKSB7XG4gICAgICBtc2cgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgdGFiU2VsZWN0ZWQuZmxvYXRCb3gubWVzc2FnZVBhdGgpO1xuICAgIH1cblxuICAgIGlmICghbXNnICYmIGRhdGFEYXkgJiYgZGF0YURheS5tZXNzYWdlICYmIGRhdGFEYXkubWVzc2FnZS52YWx1ZSkge1xuICAgICAgbXNnID0gZGF0YURheS5tZXNzYWdlLnZhbHVlO1xuICAgICAgYXV0aG9yID0gZGF0YURheS5tZXNzYWdlLmF1dGhvcjtcbiAgICAgIGRhdGVNc2cgPSBkYXRlVXRpbHMuZm9ybWF0RGF0ZVJlYWRlYWJsZShuZXcgRGF0ZShkYXRhRGF5Lm1lc3NhZ2UuZGF0ZSkpO1xuICAgIH1cblxuICAgIGlmIChtc2cpIHtcbiAgICAgIC8vbXNnID0gbXNnLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikvZywgJzxicj4nKTtcbiAgICAgIHN0ciArPSBgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1zai1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtc2pcIj5cbiAgICAgICAgICAgIDxwcmU+JHttc2cgfHwgXCJcIn08L3ByZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zai1kZXRhaWxcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbWFpbFwiPiAke2F1dGhvciB8fCBcIlwifSA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPiAke2RhdGVNc2cgfHwgXCJcIn0gPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgfVxuXG4gICAgbGV0IHN0ckNvbnRhaW5lciA9IGA8ZGl2IGNsYXNzPVwiZGV0YWlsLWRheSBkZC1oaWRlXCI+ICR7c3RyfSA8L2Rpdj5gO1xuXG4gICAgaWYgKG9ubHlTdHJpbmdDb250ZW50KSByZXR1cm4gc3RyO1xuXG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyQ29udGFpbmVyKTtcbiAgfSxcblxuICAvKipcbiAgICogUmVjcmVhIEhUTUwgZGUgZGV0YWlsRGF5XG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtIC0gSXRlbSByZWxhY2lvbmFkb1xuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IEVsZW1lbnRvIGNvbW8gU3RyaW5nLCBkZSBkZXRhaWxEYXlcbiAgICovXG4gIHJlZHJhd0RldGFpbERheShjb25maWcsIGl0ZW0sIGRhdGFEYXksIHRhYlNlbGVjdGVkKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlRGV0YWlsRGF5KGNvbmZpZywgaXRlbSwgZGF0YURheSwgdGFiU2VsZWN0ZWQsIHRydWUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZXBvc2ljaW9uYSBGbG9hdEJveFxuICAgKiB2ZXJpZmljYSBzaSBlbCBwYXJlbnQgZXN0YSBkZXNwbGVnYWRvLCBwYXJhIG9jdWx0YXIgbG9zIGRhdG9zXG4gICAqXG4gICAqIFNvbG8gYWN0dWFsaXphIGxhcyBhbHR1cmFzIGRlIGxvcyBmbG9hdGJveFxuICAgKiBubyByZWNyZWEgbG9zIGZsb2F0Ym94LCBlcyBtYXMgb3B0aW1vXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtIC0gSXRlbSByZWxhY2lvbmFkb1xuICAgKi9cbiAgcmVwb3NpdGlvbkZsb2F0Qm94KGNvbmZpZywgJGZsb2F0Qm94Q29udGFpbmVyKSB7XG4gICAgJGZsb2F0Qm94Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxvYXQtYm94XCIpLmZvckVhY2goKCRmKSA9PiB7XG4gICAgICBsZXQgaXRlbUlkID0gJGYuZ2V0QXR0cmlidXRlKFwiaXRlbS1pZFwiKTtcbiAgICAgIGxldCBpdGVtSGVpZ2h0ID0gcGFyc2VGbG9hdChcbiAgICAgICAgdXRpbHMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIilcbiAgICAgICk7XG4gICAgICBsZXQgaXRlbSwgcGFyZW50O1xuICAgICAgKHsgaXRlbSwgcGFyZW50IH0gPSB1dGlscy5nZXRJdGVtQnlJZChjb25maWcsIGl0ZW1JZCwgXCJjaGlsZFwiLCB0cnVlKSk7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBsZXQgdG9wID0gdXRpbHMuZ2V0UG9zaXRpb25CeUl0ZW0oY29uZmlnLCBpdGVtKTtcbiAgICAgICAgJGYuc3R5bGUudG9wID0gdG9wICogaXRlbUhlaWdodCArIFwicHhcIjtcbiAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQuaXNDbG9zZWQpIHtcbiAgICAgICAgICAkZi5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgfSBlbHNlIGlmICgkZi5jbGFzc0xpc3QuY29udGFpbnMoXCJoaWRlXCIpKSB7XG4gICAgICAgICAgJGYuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVjcmVhIGluZGljYWRvcmVzIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gJGVsZW0gLSBFbGVtZW50byBEb20gZG9uZGUgY3JlYSBsb3MgZWxlbWVudG9zIHNlbGVjY2lvbmFkb3NcbiAgICogQHBhcmFtIHtPYmplY3RbXX0gc2VsZWN0ZWQgLSBBcnJheSBjb24gbG9zIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBxdWUgY29udGllbmUgbG9zIGluZGljYWRvcmVzIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKi9cbiAgcmVkcmF3U2VsZWN0Qm9hcmQoJGVsZW0sIHNlbGVjdGVkKSB7XG4gICAgJGVsZW0uaW5uZXJIVE1MID0gXCJcIjtcbiAgICBsZXQgaGFzTnVtYmVyID0gdHJ1ZTtcblxuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCA9PSAxKSBoYXNOdW1iZXIgPSBmYWxzZTtcblxuICAgICAgc2VsZWN0ZWQuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBsZXQgYXR0cmlidXRlcyA9IFtdO1xuXG4gICAgICAgIGlmIChoYXNOdW1iZXIpIHtcbiAgICAgICAgICBhdHRyaWJ1dGVzLnB1c2goeyBuYW1lOiBcImNhcC1iYWRnZVwiLCB2YWx1ZTogcy5pbmRleCB9KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgJHMgPSBkb20uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInNlbGVjdGVkLWRheVwiLFxuICAgICAgICAgIGF0dHJpYnV0ZXNcbiAgICAgICAgfSk7XG4gICAgICAgICRzLnN0eWxlLmxlZnQgPSBzLnBvcy5sZWZ0ICsgXCJweFwiO1xuICAgICAgICAkcy5zdHlsZS50b3AgPSBzLnBvcy50b3AgKyBcInB4XCI7XG4gICAgICAgICRlbGVtLmFwcGVuZCgkcyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICRlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIFN0cmluZyBjb24gZXN0aWxvcyBDU1MgZGUgbGEgcG9zaWNpb24gZGUgdW4gZmxvYXRCb3hcbiAgICogY2FsY3VsYWRvIHNlZ3VuIGl0ZW0geSBmZWNoYSBkZSBsb3MgdmFsb3Jlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYSwgcGFyYSB2ZXIgZmVjaGEgZGUgaW5pY2lvXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRGF0b3MgZGVsIGRpYSBpbmRpY2Fkb1xuICAgKiBAcGFyYW0ge09iamVjdH0gaXRlbSAtIEl0ZW0gcmVsYWNpb25hZG9cbiAgICogQHJldHVybiB7U3RyaW5nfSBTdHJpbmcgQ1NTIHRvcCB5IGxlZnQgLCBwYXJhIHBvc2ljaW9uYXIgZmxvYXRCb3ggZW4gdGFibGVcbiAgICovXG4gIGdldFBvc2l0aW9uRmxvYXRCb3goY29uZmlnLCBkYXRhLCBpdGVtKSB7XG4gICAgbGV0IGxlZnQgPSBkYXRlVXRpbHMuZGlmZkRheXMoY29uZmlnLnRpbWVsaW5lLnN0YXJ0LCBkYXRhLmRhdGUpO1xuICAgIGxldCB0b3AgPSB1dGlscy5nZXRQb3NpdGlvbkJ5SXRlbShjb25maWcsIGl0ZW0pO1xuICAgIGxldCBkYXlXaWR0aCA9IHBhcnNlRmxvYXQodXRpbHMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIpKTtcbiAgICBsZXQgaXRlbUhlaWdodCA9IHBhcnNlRmxvYXQodXRpbHMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIikpO1xuICAgIGxlZnQgKj0gZGF5V2lkdGg7XG4gICAgdG9wICo9IGl0ZW1IZWlnaHQ7XG4gICAgcmV0dXJuIFwidG9wOiBcIiArIHRvcCArIFwiLjVweDsgbGVmdDpcIiArIGxlZnQgKyBcIi41cHg7XCI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgQm90b24gY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gcHJvcGllZGFkZXMgcGFyYSBib3RvblxuICAgKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuY2xhc3NOYW1lIC0gY2xhc3NlcyBjc3MgcGFyYSBib3RvblxuICAgKiBAcGFyYW0geyp9IHByb3BzLmtleSAtIGtleSBwYXJhIGlkZW50aWZpY2FyIGEgYm90b25cbiAgICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsIC0gVGV4dG8gYm90b25cbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGJvdG9uIGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlQnV0dG9uKHByb3BzKSB7XG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIiR7cHJvcHMuY2xhc3NOYW1lIHx8IFwiXCJ9XCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIlxuICAgICAgfVwiPlxuICAgICAgICAgICAgICAke3Byb3BzLmxhYmVsIHx8IFwiXCJ9XG4gICAgICAgICAgICA8L2J1dHRvbj5gKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBCb3RvbmVzIGRlIGd1YXJkYXIgeSBjYW5jZWxhciBsb3MgZGF0b3MgZGUgZm9ybXVsYXJpbyBkZWwgc2lkZWJhciBkZXJlY2hvXG4gICAqXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBib3RvbmVzIGNyZWFkb3NcbiAgICovXG4gIGNyZWF0ZU5hdlJpZ2h0YnV0dG9ucygpIHtcbiAgICBsZXQgc2F2ZUJ0biA9IHRoaXMuY3JlYXRlQnV0dG9uKHtcbiAgICAgIGxhYmVsOiBcIkd1YXJkYXJcIixcbiAgICAgIGNsYXNzTmFtZTogXCJjYXAtYnRuLXJhaXNlZFwiXG4gICAgfSk7XG4gICAgbGV0IGNhbmNlbEJ0biA9IHRoaXMuY3JlYXRlQnV0dG9uKHtcbiAgICAgIGxhYmVsOiBcIkNhbmNlbGFyXCIsXG4gICAgICBjbGFzc05hbWU6IFwiY2FwLWJ0bi1vdXRsaW5lXCJcbiAgICB9KTtcbiAgICBsZXQgYnRuU2VjdGlvbiA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoXG4gICAgICBgPGRpdiBjbGFzcz1cImJ1dHRvbi1zZWN0aW9uXCI+PC9kaXY+YFxuICAgICk7XG4gICAgYnRuU2VjdGlvbi5hcHBlbmRDaGlsZChzYXZlQnRuKTtcbiAgICBidG5TZWN0aW9uLmFwcGVuZENoaWxkKGNhbmNlbEJ0bik7XG5cbiAgICBzYXZlQnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgc2F2ZUJ0bi5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzYXZlTXVsdGlJbnB1dFwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNhbmNlbEJ0bi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgIGNhbmNlbEJ0bi5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjYW5jZWxNdWx0aUlucHV0XCIsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJ0blNlY3Rpb247XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSW5wdXQgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IFtkYXRhRGF5ID0gbnVsbF0gLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbZGF5U2VsZWN0ZWQgPSBudWxsXSAtIGRhdG9zIGRlbCBkaWEgc2VsZWNjaW9uYWRvXG4gICAqIEBwYXJhbSB7T2JqZWN0W119IFtzZWxlY3RlZCA9IFtdXSAtIGFycmF5IGRlIG9iamV0b3MsIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dChwcm9wcywgZGF0YURheSA9IG51bGwsIGRheVNlbGVjdGVkID0gbnVsbCwgc2VsZWN0ZWQgPSBbXSkge1xuICAgIGxldCByID0gbnVsbDtcblxuICAgIGlmIChwcm9wcy5pZ25vcmVSZW5kZXIgPT0gdHJ1ZSkgcmV0dXJuIHI7XG5cbiAgICBzd2l0Y2ggKHByb3BzLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJjdXN0b21cIjpcbiAgICAgICAgciA9IHByb3BzLnJlbmRlciA/IHByb3BzLnJlbmRlcih7IHByb3BzLCBkYXRhRGF5LCBkYXlTZWxlY3RlZCwgc2VsZWN0ZWQgfSkgOiBudWxsO1xuICAgICAgICByLnNldEF0dHJpYnV0ZShcImlucHV0LWtleVwiLCBwcm9wcy5rZXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlSW5wdXRTZWxlY3QocHJvcHMsIGRhdGFEYXksIGRheVNlbGVjdGVkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dEZpbGUocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJmaWxlTGlua1wiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVGaWxlTGluayhwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlVGV4dChwcm9wcywgc2VsZWN0ZWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0aXRsZVwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVUaXRsZShwcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dE51bWJlcihwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImZsb2F0XCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0RmxvYXQocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJtZXNzYWdlXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0TWVzc2FnZShwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0VGV4dEFyZWEocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dENoZWNrYm94KHByb3BzLCBkYXRhRGF5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaW5wdXRMaXN0XCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0TGlzdChwcm9wcywgZGF0YURheSwgZGF5U2VsZWN0ZWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJpbnB1dC1ib3hcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlSW5wdXRCb3gocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJsaXN0XCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUxpc3QocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkYXRhLWxpc3RcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlRGF0YUxpc3QocHJvcHMsIGRhdGFEYXksIGRheVNlbGVjdGVkLCBzZWxlY3RlZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImJ1dHRvblwiOlxuICAgICAgICByID0gdGhpcy5jcmVhdGVJbnB1dEJ1dHRvbihwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImJ1dHRvbnMtZ3JvdXBcIjpcbiAgICAgICAgciA9IHRoaXMuY3JlYXRlSW5wdXRCdXR0b25zR3JvdXAocHJvcHMsIGRhdGFEYXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0VGltZShwcm9wcywgZGF0YURheSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHIgPSB0aGlzLmNyZWF0ZUlucHV0VGV4dChwcm9wcywgZGF0YURheSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSW5wdXQgY29uIGZvcm1hdG8gSG9yYSwgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogVXNhIDIgaW5wdXRzLCBob3JhIHkgbWludXRvc1xuICAgKlxuICAgKiBlbCB2YWx1ZSBxdWUgaW50ZXJwcmV0YSBlcyBTdHJpbmcgSEg6TU1cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IFtkYXRhRGF5ID0gbnVsbF0gLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBpbnB1dCBjcmVhZG9cbiAgICovXG4gIGNyZWF0ZUlucHV0VGltZShwcm9wcywgZGF0YURheSkge1xuICAgIGxldCBoaFZhbHVlID0gXCJcIjtcbiAgICBsZXQgbW1WYWx1ZSA9IFwiXCI7XG5cbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgbGV0IHZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuXG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIjpcIik7XG4gICAgICAgIGhoVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgbW1WYWx1ZSA9IHZhbHVlWzFdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICR7cHJvcHMubGFiZWwgfHwgXCJcIn1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJob3VyXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cInRlc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aGhWYWx1ZX1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbFwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWludXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHttbVZhbHVlfVwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWhpbnRcIj5cbiAgICAgICAgICAgICAgICAke3Byb3BzLnRleHRIaW50IHx8IFwiXCJ9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0ICRoaElucHV0ID0gJGVsZW0ucXVlcnlTZWxlY3RvcihcIi5ob3VyXCIpO1xuICAgIGxldCAkbW1JbnB1dCA9ICRlbGVtLnF1ZXJ5U2VsZWN0b3IoXCIubWludXRlc1wiKTtcblxuICAgICRoaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCAoZSkgPT4ge1xuICAgICAgJGhoSW5wdXQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwiY2hhbmdlVGltZUlucHV0SEhcIiwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBrZXk6IHByb3BzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBlLnNyY0VsZW1lbnQudmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgJG1tSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICAkbW1JbnB1dC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJjaGFuZ2VUaW1lSW5wdXRNTVwiLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIGtleTogcHJvcHMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IGUuc3JjRWxlbWVudC52YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cygkaGhJbnB1dCwgJGVsZW0sIHByb3BzKTtcbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cygkbW1JbnB1dCwgJGVsZW0sIHByb3BzKTtcblxuICAgIHJldHVybiAkZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBUZXh0IGNvbW8gZWxlbWVudG8gRG9tXG4gICAqIFNlIGNvbmZpZ3VyYSBjb21vIGlucHV0LCBwZXJvIG5vIGRldnVlbHZlIGRhdG9zLCBlcyB1biB0ZXh0b1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVUZXh0KHByb3BzLCBzZWxlY3RlZCkge1xuICAgIGxldCBsYWJlbCA9IHByb3BzLmxhYmVsO1xuICAgIGlmIChwcm9wcy5mb3JtYXR0ZXIpIHtcbiAgICAgIGxhYmVsID0gcHJvcHMuZm9ybWF0dGVyKHsgc2VsZWN0ZWQgfSk7XG4gICAgfVxuICAgIGxldCAkZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtwcm9wcy5jbGFzc05hbWVzIHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICAke2xhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PmApO1xuICAgIHJldHVybiAkZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBUaXRsZSBjb21vIGVsZW1lbnRvIERvbVxuICAgKiBTZSBjb25maWd1cmEgY29tbyBpbnB1dCwgcGVybyBubyBkZXZ1ZWx2ZSBkYXRvcywgZXMgdW4gdGV4dG9cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlVGl0bGUocHJvcHMpIHtcbiAgICBsZXQgY2xhc3NOYW1lcyA9IFwidGV4dC10aXRsZVwiO1xuICAgIGlmIChwcm9wcy5pc1N1YnRpdGxlKSB7XG4gICAgICBjbGFzc05hbWVzID0gXCJ0ZXh0LXN1YnRpdGxlXCI7XG4gICAgfVxuICAgIHJldHVybiBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7Y2xhc3NOYW1lc31cIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5gKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBJbnB1dCB0aXBvIE51bWVyaWNvIGNvbW8gZWxlbWVudG8gRG9tXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIGNvbmZpZyBwYXJhIElucHV0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhRGF5IC0gdmFsb3JlcyBkZSBpdGVtIHkgRGlhLCBvcGNpb25hbFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dE51bWJlcihwcm9wcywgZGF0YURheSkge1xuICAgIGxldCB2YWx1ZSA9IFwiXCI7XG4gICAgaWYgKGRhdGFEYXkgJiYgZGF0YURheS52YWx1ZXMpIHtcbiAgICAgIHZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuICAgIH1cbiAgICB2YWx1ZSA9IHZhbHVlIHx8IFwiXCI7XG5cbiAgICBsZXQgZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuY2xhc3NOYW1lcyB8fCBcIlwifSAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJcbiAgICAgIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlLTIgXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5zdWZmaXggPyBcIihcIiArIHByb3BzLnN1ZmZpeCArIFwiKVwiIDogXCJcIn1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7dmFsdWV9XCI+XG5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWhpbnRcIj5cbiAgICAgICAgICAgICAgICAgICR7cHJvcHMudGV4dEhpbnQgfHwgXCJcIn1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+YCk7XG5cbiAgICBsZXQgaW5wdXRFbGVtID0gZWxlbS5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7XG5cbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cyhpbnB1dEVsZW0sIGVsZW0sIHByb3BzKTtcblxuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IHRpcG8gRklsZXBpY2tlciBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRGaWxlKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICBsZXQgZmlsZU5hbWUgPSBcIlwiO1xuICAgIGxldCBmaWxlUGF0aCA9IFwiXCI7XG5cbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgICBmaWxlTmFtZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy5maWxlTmFtZVZhbHVlKTtcbiAgICAgIGZpbGVQYXRoID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLmZpbGVQYXRoVmFsdWUpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgfHwgXCJcIjtcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lIHx8IFwiXCI7XG4gICAgZmlsZVBhdGggPSBmaWxlUGF0aCB8fCBcIlwiO1xuXG4gICAgbGV0IGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmNsYXNzTmFtZXMgfHwgXCJcIn0gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwiXG4gICAgICB9XCI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWlucHV0LWZpbGVcIiA+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzbWFsbC1jbG9zZSBjbGVhci1maWxlLWlucHV0XCI+eDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8bGFiZWwgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LWlucHV0LWZpbGUtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICR7cHJvcHMucGlja2VyTGFiZWwgfHwgXCJTZWxlY2Npb25hciBBcmNoaXZvXCJ9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIHZhbHVlPVwiJHt2YWx1ZX1cIj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbi1saW5rXCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCIke2ZpbGVQYXRofVwiIHRhcmdldD1cIl9ibGFua1wiID5cbiAgICAgICAgICAgICAgICAke2ZpbGVOYW1lfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0ICRpbnB1dEVsZW0gPSBlbGVtLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcbiAgICBsZXQgJGNsZWFyQnRuID0gZWxlbS5xdWVyeVNlbGVjdG9yKFwiLmNsZWFyLWZpbGUtaW5wdXRcIik7XG4gICAgbGV0ICRmaWxlSW5wdXRMYWJlbCA9IGVsZW0ucXVlcnlTZWxlY3RvcihcIi5uYXYtaW5wdXQtZmlsZS1sYWJlbFwiKTtcblxuICAgICRpbnB1dEVsZW0uYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCAoZXZ0KSA9PiB7XG4gICAgICBsZXQgZmlsZU5hbWUgPSAkaW5wdXRFbGVtLmZpbGVzWzBdLm5hbWU7XG4gICAgICAkZmlsZUlucHV0TGFiZWwudGV4dENvbnRlbnQgPSBmaWxlTmFtZTtcbiAgICB9KTtcblxuICAgICRjbGVhckJ0bi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2dCkgPT4ge1xuICAgICAgJGlucHV0RWxlbS52YWx1ZSA9IFwiXCI7XG4gICAgICAkZmlsZUlucHV0TGFiZWwudGV4dENvbnRlbnQgPSBwcm9wcy5waWNrZXJMYWJlbCB8fCBcIlNlbGVjY2lvbmFyIEFyY2hpdm9cIjtcbiAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIGNyZWF0ZUZpbGVMaW5rKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IGZpbGVOYW1lID0gXCJcIjtcbiAgICBsZXQgZmlsZVBhdGggPSBcIlwiO1xuXG4gICAgaWYgKGRhdGFEYXkgJiYgZGF0YURheS52YWx1ZXMpIHtcbiAgICAgIC8vdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgICBmaWxlTmFtZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy5maWxlTmFtZVZhbHVlKTtcbiAgICAgIGZpbGVQYXRoID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLmZpbGVQYXRoVmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChmaWxlTmFtZSA9PSBcIlwiKSByZXR1cm4gbnVsbDtcblxuICAgIGZpbGVOYW1lID0gZmlsZU5hbWUgfHwgXCJcIjtcbiAgICBmaWxlUGF0aCA9IGZpbGVQYXRoIHx8IFwiXCI7XG5cbiAgICBsZXQgZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuY2xhc3NOYW1lcyB8fCBcIlwifSAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJcbiAgICAgIH1cIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uLWxpbmtcIj5cbiAgICAgICAgICAgICAgPGEgaHJlZj1cIiR7ZmlsZVBhdGh9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgPlxuICAgICAgICAgICAgICAgICR7ZmlsZU5hbWV9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPC9kaXY+YCk7XG5cbiAgICByZXR1cm4gZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBsaXN0YSBkZSBJbnB1dHMsIGNvbiBhcnJheSBkZSB2YWxvcmVzLCBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHBhcmFtIHtPYmplY3R9IFtkYXlTZWxlY3RlZCA9IG51bGxdIC0gZGF0b3MgZGVsIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRMaXN0KHByb3BzLCBkYXRhRGF5LCBkYXlTZWxlY3RlZCA9IG51bGwpIHtcbiAgICBsZXQgaW5wdXRMaXN0ID0gW107XG5cbiAgICAvL29idGllbmUgaW5wdXRzIGRlZmF1bHQsIHBhcmEgY3JlYXJsb3MsIHNpbiB2YWxvcmVzXG4gICAgaWYgKFxuICAgICAgZGF5U2VsZWN0ZWQgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoZGF5U2VsZWN0ZWQuaXRlbS52YWx1ZXNbcHJvcHMuaW5wdXRMaXN0XSlcbiAgICApIHtcbiAgICAgIGlucHV0TGlzdCA9IGRheVNlbGVjdGVkLml0ZW0udmFsdWVzW3Byb3BzLmlucHV0TGlzdF0ubWFwKChpbnB1dFJvdykgPT4ge1xuICAgICAgICAvL2xpbXBpYSBpbnB1dExpc3QgaW5wdXRzXG4gICAgICAgIGlucHV0Um93LmlucHV0cy5tYXAoKGlucHV0KSA9PiB7XG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBudWxsO1xuICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy9vYnRpZW5lIHZhbG9yZXMgZGVsIGRpYVxuICAgICAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgICAgIGxldCBpbnB1dFZhbHVlcyA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YWx1ZXNQYXRoKTtcblxuICAgICAgICAgIC8vYXV0b3JyZWxsZW5hXG4gICAgICAgICAgaWYgKGlucHV0VmFsdWVzKSB7XG4gICAgICAgICAgICBpbnB1dFJvdy5pbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IGlucHV0VmFsdWVzLmZpbmQoKHYpID0+IHYuaWQgPT0gaW5wdXRSb3cuaWQpO1xuICAgICAgICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlcyA/IHZhbHVlc1tpbnB1dC52YXJOYW1lXSA6IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5wdXRSb3c7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgc3RyID0gYDxkaXYgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIiBjbGFzcz1cImlucHV0LXNlY3Rpb24tbGlzdCAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPiBcbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgaW5wdXRMaXN0LmZvckVhY2goKGlucHV0Um93KSA9PiB7XG4gICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy50b1JpZ2h0ID8gXCJ0by1yaWdodFwiIDogXCJcIlxuICAgICAgICB9XCIgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpbnB1dFJvdy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YDtcblxuICAgICAgaW5wdXRSb3cuaW5wdXRzLmZvckVhY2goKGlucHV0KSA9PiB7XG4gICAgICAgIHN0ciArPSBgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbi1jb2xcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtpbnB1dC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWlkPVwiJHtpbnB1dFJvdy5pZH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWxhYmVsPVwiJHtpbnB1dC5sYWJlbH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWlucHV0IHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aW5wdXQudmFsdWV9XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICB9KTtcbiAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH0pO1xuICAgIHN0ciArPSBgPC9kaXY+YDtcblxuICAgIGxldCBlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuXG4gICAgbGV0IGlucHV0c0VsZW0gPSBlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFwiKTtcbiAgICBpbnB1dHNFbGVtLmZvckVhY2goKGlucHV0RWxlbSkgPT4gdGhpcy5hZGRLZXlEb3duSW5wdXRFdmVudHMoaW5wdXRFbGVtLCBlbGVtLCBwcm9wcykpO1xuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIGNyZWF0ZUlucHV0U2VsZWN0KHByb3BzLCBkYXRhRGF5LCBkYXlTZWxlY3RlZCA9IG51bGwpIHtcbiAgICBsZXQgdmFsdWUgPSBudWxsO1xuICAgIGxldCBvcHRpb25zID0gcHJvcHMub3B0aW9ucztcblxuICAgIGlmIChkYXRhRGF5ICYmIGRhdGFEYXkudmFsdWVzKSB7XG4gICAgICBsZXQgdmFsID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuICAgICAgdmFsdWUgPSB2YWwgPyB2YWwudmFsdWUgOiBudWxsO1xuICAgIH1cblxuICAgIGxldCBzdHIgPSBgPGRpdiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiIGNsYXNzPVwiJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfVwiID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uIFwiID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImlucHV0LXNlbGVjdFwiPlxuXG4gICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiAke3ZhbHVlID09IG51bGwgPyBcInNlbGVjdGVkXCIgOiBcIlwifT5cbiAgICAgICAgICAgICAgICAgICR7cHJvcHMubm9EYXRhTGFiZWwgfHwgXCItLSBzaW4gYXNpZ25hciAtLVwifVxuICAgICAgICAgICAgICAgICA8L29wdGlvbj5cblxuICAgICAgICBgO1xuXG4gICAgb3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcbiAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIke29wdGlvbi5pZH1cIiAke29wdGlvbi5pZCA9PSB2YWx1ZSA/IFwic2VsZWN0ZWRcIiA6IFwiXCJcbiAgICAgICAgfT5cbiAgICAgICAgICAgICAgICAgJHtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIGA7XG4gICAgfSk7XG4gICAgc3RyICs9IGBcblxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PmA7XG5cbiAgICBsZXQgZWxlbSA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcblxuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IGRlIHRleHRvIFRleHRBcmVhIGNvbW8gZWxlbWVudG8gRG9tXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIGNvbmZpZyBwYXJhIElucHV0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhRGF5IC0gdmFsb3JlcyBkZSBpdGVtIHkgRGlhLCBvcGNpb25hbFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEVsZW1lbnRvIERvbSBkZWwgaW5wdXQgY3JlYWRvXG4gICAqL1xuICBjcmVhdGVJbnB1dFRleHRBcmVhKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgfVxuICAgIGxldCBlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cIlwiIHZhbHVlPVwiJHt2YWx1ZX1cIj48L3RleHRhcmVhPlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGlucHV0RWxlbSA9IGVsZW0ucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO1xuICAgIHRoaXMuYWRkS2V5RG93bklucHV0RXZlbnRzKGlucHV0RWxlbSwgZWxlbSwgcHJvcHMpO1xuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IGRlIE1lbnNhamUgY29tbyBlbGVtZW50byBEb21cbiAgICogdXRpbGl6YSBUZXh0QXJlYVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRNZXNzYWdlKHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gZGF0YURheSA/IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKSA6IG51bGw7XG4gICAgbGV0IGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiBtc2otaW5wdXQtY29udGFpbmVyICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCJcbiAgICAgICAgICAgICAgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgIE1lbnNhamVcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cIm1zalwiPiR7dmFsdWUgfHwgXCJcIn08L3RleHRhcmVhPlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGlucHV0RWxlbSA9IGVsZW0ucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO1xuICAgIC8vdGhpcy5hZGRLZXlEb3duSW5wdXRFdmVudHMoaW5wdXRFbGVtKTtcbiAgICByZXR1cm4gZWxlbTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYSBJbnB1dCBkZSB0ZXh0byBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRUZXh0KHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgdmFsdWUgPSB1dGlscy5nZXRWYXJCeVBhdGgoZGF0YURheSwgcHJvcHMudmFyTmFtZSk7XG4gICAgfVxuICAgIGxldCBlbGVtID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwibmF2LWlucHV0XCIgdmFsdWU9XCIke3ZhbHVlfVwiPlxuICAgICAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGlucHV0RWxlbSA9IGVsZW0ucXVlcnlTZWxlY3RvcihcImlucHV0XCIpO1xuICAgIHRoaXMuYWRkS2V5RG93bklucHV0RXZlbnRzKGlucHV0RWxlbSwgZWxlbSwgcHJvcHMpO1xuICAgIHJldHVybiBlbGVtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIElucHV0IE51bWVybyBGbG90YW50ZSwgY29tbyBlbGVtZW50byBEb21cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGFEYXkgLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBpbnB1dCBjcmVhZG9cbiAgICovXG4gIGNyZWF0ZUlucHV0RmxvYXQocHJvcHMsIGRhdGFEYXkpIHtcbiAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgIGlmIChkYXRhRGF5ICYmIGRhdGFEYXkudmFsdWVzKSB7XG4gICAgICB2YWx1ZSA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKTtcbiAgICB9XG4gICAgbGV0IGVsZW0gPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc3VidGl0bGUgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAke3Byb3BzLmxhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cIm5hdi1pbnB1dFwiIHZhbHVlPVwiJHt2YWx1ZX1cIj5cbiAgICAgICAgICA8L2Rpdj5gKTtcblxuICAgIGxldCBpbnB1dEVsZW0gPSBlbGVtLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcbiAgICB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cyhpbnB1dEVsZW0sIGVsZW0sIHByb3BzKTtcbiAgICByZXR1cm4gZWxlbTtcbiAgfSxcblxuICBjcmVhdGVEYXRhTGlzdChwcm9wcywgZGF0YURheSwgZGF5U2VsZWN0ZWQsIHNlbGVjdGVkKSB7XG4gICAgbGV0IGxpc3QgPSBbXTtcbiAgICBpZiAoZGF0YURheSAmJiBkYXRhRGF5LnZhbHVlcykge1xuICAgICAgbGlzdCA9IHV0aWxzLmdldFZhckJ5UGF0aChkYXRhRGF5LCBwcm9wcy52YXJOYW1lKSB8fCBbXTtcbiAgICB9XG5cbiAgICBsZXQgc2VhcmNoSW5wdXQgPSBgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIlwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIlwiIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJidXNjYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jbGVhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke2ljb25zLmNsb3NlSWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuXG4gICAgbGV0IGVkaXRCdG4gPSBcIlwiO1xuXG4gICAgaWYgKHByb3BzLmVkaXRCdXR0b24pIHtcbiAgICAgIGVkaXRCdG4gPSBgPGJ1dHRvbiBjbGFzcz1cImNhcC1idG4tcmFpc2VkIGNhcC1idG4tc20gZWRpdC1idG5cIiBpbnB1dC1rZXk9XCIke3Byb3BzLmVkaXRCdXR0b24ua2V5fVwiPlxuICAgICAgICAgICAgICAgICAgICAke3Byb3BzLmVkaXRCdXR0b24ubGFiZWx9IFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+IGA7XG4gICAgfVxuXG4gICAgbGV0IHN0ciA9IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAke2VkaXRCdG59XHRcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3ggXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgICR7c2VhcmNoSW5wdXR9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+IGA7XG5cbiAgICBsZXQgJGVsID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgIGxldCAkc2VhcmNoSW5wdXQgPSAkZWwucXVlcnlTZWxlY3RvcihcIi5zZWFyY2gtaW5wdXRcIik7XG4gICAgbGV0ICRzZWFyY2hJbnB1dENsZWFyID0gJGVsLnF1ZXJ5U2VsZWN0b3IoXCIuc2VhcmNoLWlucHV0LWNsZWFyXCIpO1xuICAgIGxldCAkaW5wdXRCb3ggPSAkZWwucXVlcnlTZWxlY3RvcihcIi5pbnB1dC1ib3hcIik7XG5cbiAgICBsZXQgJGl0ZW1zID0gbGlzdC5tYXAoKGl0ZW0sIGopID0+IHtcbiAgICAgIGxldCBsYWJlbCA9XG4gICAgICAgIHV0aWxzLmdldFZhckJ5UGF0aChpdGVtLCBwcm9wcy52YXJOYW1lTGFiZWwpIHx8IGRhdGFEYXkubGFiZWwgfHwgXCJfX1wiO1xuXG4gICAgICBsZXQgJGVsSXRlbSA9IHRoaXMuY3JlYXRlRGF0YUxpc3RJdGVtKHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlVGV4dDogdXRpbHMuZ2V0VmFyQnlQYXRoKGl0ZW0sIHByb3BzLnZhck5hbWVWYWx1ZVRleHQpIHx8IFwiXCIsXG4gICAgICAgIHN1YlRleHQ6IHV0aWxzLmdldFZhckJ5UGF0aChpdGVtLCBwcm9wcy52YXJOYW1lU3ViVGV4dCkgfHwgXCJcIixcbiAgICAgICAgaWQ6IFwibGlzdC1pdGVtLVwiICsgKGRhdGFEYXkuaWQgfHwgaiksXG4gICAgICAgIGtleTogXCJsaXN0LWl0ZW0tXCIgKyAoZGF0YURheS5pZCB8fCBqKSxcbiAgICAgICAgdG9vbHRpcDogdXRpbHMuZ2V0VmFyQnlQYXRoKGl0ZW0sIHByb3BzLnZhck5hbWVUb29sdGlwKSB8fCBsYWJlbCxcbiAgICAgICAgLy9jb2xvckljb246IFwiYy1yZWRcIixcbiAgICAgICAgbGluazogdXRpbHMuZ2V0VmFyQnlQYXRoKGl0ZW0sIHByb3BzLnZhck5hbWVMaW5rKSB8fCBudWxsLFxuICAgICAgICBzdWZmaXg6IHV0aWxzLmdldFZhckJ5UGF0aChpdGVtLCBwcm9wcy52YXJOYW1lU3VmZml4KSB8fCBcIlwiLFxuICAgICAgICAvL3ZhbHVlOiBKU09OLnN0cmluZ2lmeSh1dGlscy5nZXRWYXJCeVBhdGgoaXRlbSwgcHJvcHMudmFyTmFtZUlucHV0KSkgfHwge31cbiAgICAgIH0pO1xuICAgICAgJGlucHV0Qm94LmFwcGVuZENoaWxkKCRlbEl0ZW0pO1xuICAgIH0pO1xuXG4gICAgJHNlYXJjaElucHV0Q2xlYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgJHNlYXJjaElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9KTtcblxuICAgICRzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZSkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICRzZWFyY2hJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICRzZWFyY2hJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImlucHV0XCIsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAkc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICBsZXQgJGlucHV0cyA9IFtdO1xuICAgICAgJGlucHV0cyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1pbmktaW5wdXQtc2VjdGlvblwiKSB8fCBbXTtcbiAgICAgICRpbnB1dHMuZm9yRWFjaCgoJGkpID0+IHtcbiAgICAgICAgbGV0IGxhYmVsID0gJGkuZ2V0QXR0cmlidXRlKFwibGFiZWxcIik7XG4gICAgICAgIGxldCBzZWFyY2ggPSAkc2VhcmNoSW5wdXQudmFsdWU7XG4gICAgICAgIGlmIChsYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICRpLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICRpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5lZGl0QnV0dG9uLm9uQ2xpY2spIHtcbiAgICAgIGxldCBidXR0b24gPSAkZWwucXVlcnlTZWxlY3RvcihcImJ1dHRvbi5lZGl0LWJ0blwiKTtcbiAgICAgIGlmIChidXR0b24gJiYgcHJvcHMuZWRpdEJ1dHRvbikge1xuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PlxuICAgICAgICAgIHByb3BzLmVkaXRCdXR0b24ub25DbGljayh7XG4gICAgICAgICAgICBldmVudDogZSxcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgZGF0YURheSxcbiAgICAgICAgICAgIGRheVNlbGVjdGVkLFxuICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAkZWxlbWVudDogJGVsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgICRpdGVtcy5mb3JFYWNoKCgkaSkgPT4ge1xuICAgICAgICAkZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgICAgcHJvcHMuZWRpdEJ1dHRvbi5vbkNsaWNrKHtcbiAgICAgICAgICAgIGV2ZW50OiBlLFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBkYXRhRGF5LFxuICAgICAgICAgICAgZGF5U2VsZWN0ZWQsXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICRlbGVtZW50OiAkZWxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gJGVsO1xuICB9LFxuXG4gIGNyZWF0ZURhdGFMaXN0SXRlbSh7XG4gICAgbGFiZWwgPSBcIlwiLFxuICAgIHZhbHVlVGV4dCA9IFwiXCIsXG4gICAgc3ViVGV4dCA9IFwiXCIsXG4gICAgaWQgPSBcIlwiLFxuICAgIGtleSA9IFwiXCIsXG4gICAgdG9vbHRpcCA9IFwiXCIsXG4gICAgY29sb3JJY29uID0gXCJcIixcbiAgICBsaW5rID0gbnVsbCxcbiAgICBzdWZmaXggPSBudWxsLFxuICAgIHZhbHVlID0gXCJcIlxuICB9KSB7XG4gICAgbGV0IHRvb2x0aXBTdHIgPSBcIlwiO1xuICAgIGxldCBpY29uU3RyID0gbnVsbDtcbiAgICBsZXQgbGlua1N0ciA9IFwiXCI7XG4gICAgbGV0IHN0ciA9IFwiXCI7XG5cbiAgICBpZiAodG9vbHRpcCkge1xuICAgICAgdG9vbHRpcFN0ciA9IGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgJHt0b29sdGlwfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICB9XG5cbiAgICBpZiAoY29sb3JJY29uKSB7XG4gICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihpdGVtRm9ybWF0ZWQuY29sb3JJY29uKSkge1xuICAgICAgICBpY29uU3RyID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQ6JHtjb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpY29uU3RyID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb24gJHtjb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxpbmspIHtcbiAgICAgIGxpbmtTdHIgPSBgPGEgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiJHtsaW5rfVwiPiR7aWNvbnMubGlua0ljb259PC9hPiBgO1xuICAgIH1cblxuICAgIHN0ciArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uIGNsaWNrZWFibGUgJHtpY29uU3RyID8gXCJoYXMtaWNvblwiIDogXCJcIn0gXCIgXG4gICAgICAgICAgICAgICAgbGFiZWw9XCIke2xhYmVsfVwiIFxuICAgICAgICAgICAgICAgIGRhdGEtaWQ9XCIke2lkfVwiXG4gICAgICAgICAgICAgICAgZGF0YS1rZXk9XCIke2tleX1cIlxuICAgICAgICAgICAgICAgIGRhdGEtdmFsdWU9XCIke3ZhbHVlIHx8ICcnfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgJHtpY29uU3RyIHx8IFwiXCJ9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRpdGxlIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICR7bGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXN1YnRpdGxlIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICR7c3ViVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tY29udGVudFwiID5cbiAgICAgICAgICAgICAgICAgICR7dmFsdWVUZXh0fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXN1ZmZpeFwiID5cbiAgICAgICAgICAgICAgICAgICR7c3VmZml4fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgJHtsaW5rU3RyfVxuXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICR7dG9vbHRpcFN0cn1cbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgcmV0dXJuIGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoc3RyKTtcbiAgfSxcblxuICBjcmVhdGVMaXN0KHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHRhYnNDb250YWluZXIgPSBcIlwiO1xuXG4gICAgaWYgKHByb3BzLnRhYnMpIHtcbiAgICAgIGxldCB0YWJzID0gXCJcIjtcbiAgICAgIHByb3BzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgIHRhYnMgKz0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94LXRhYlwiIHRhYi1rZXk9XCIke3RhYi5rZXl9XCI+XG4gICAgICAgICAgJHt0YWIubmFtZX1cbiAgICAgICAgPC9kaXY+YDtcbiAgICAgIH0pO1xuXG4gICAgICB0YWJzQ29udGFpbmVyID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94LXRhYi1jb250YWluZXJcIj5cbiAgICAgICAgJHt0YWJzfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgbGV0IHNlYXJjaElucHV0ID0gYFxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgPGlucHV0IGlkPVwiXCIgdHlwZT1cInRleHRcIiBuYW1lPVwiXCIgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIiBwbGFjZWhvbGRlcj1cImJ1c2NhclwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2VhcmNoLWlucHV0LWNsZWFyXCI+XG4gICAgICAgICAke2ljb25zLmNsb3NlSWNvbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuXG4gICAgbGV0IHN0ciA9IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zZWN0aW9uICR7cHJvcHMuaXNIaWRkZW4gPyAnaGlkZScgOiAnJ30gXCIgaW5wdXQta2V5PVwiJHtwcm9wcy5rZXkgfHwgXCJcIn1cIj5cbiAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YnRpdGxlIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgJHt0YWJzQ29udGFpbmVyfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG5cbiAgICAgICAgICAgICR7c2VhcmNoSW5wdXR9XG4gICAgICBgO1xuXG4gICAgLy9UT0RPIG9idGVuZXIgaW5wdXQgc2VndW4gZmlsYVxuICAgIGlmIChwcm9wcy5pbnB1dHMpIHtcbiAgICAgIHByb3BzLmlucHV0cy5mb3JFYWNoKChpKSA9PiB7XG4gICAgICAgIGlmIChpLmlzVGl0bGUpIHtcbiAgICAgICAgICBsZXQgdG9vbHRpcCA9IFwiXCI7XG4gICAgICAgICAgbGV0IGljb24gPSBudWxsO1xuXG4gICAgICAgICAgaWYgKGkudG9vbHRpcCkge1xuICAgICAgICAgICAgdG9vbHRpcCA9IGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtpLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgICAgICR7aS5zdWZmaXggPyBcIihcIiArIGkuc3VmZml4ICsgXCIpXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaS5jb2xvckljb24pIHtcbiAgICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKGkuY29sb3JJY29uKSkge1xuICAgICAgICAgICAgICBpY29uID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQ6JHtpLmNvbG9ySWNvbn1cIj4gPC9kaXY+YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGljb24gPSBgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbiAke2kuY29sb3JJY29ufVwiPiA8L2Rpdj5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uIGlzLXRpdGxlICAke2ljb24gPyBcImhhcy1pY29uXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgaW5wdXQtdGFiLWtleT1cIiR7aS50YWJLZXkgfHwgXCJcIn1cIiBsYWJlbD1cIiR7aS5sYWJlbH1cIj5cbiAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICR7aWNvbiB8fCBcIlwifVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRpdGxlIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAke2kubGFiZWx9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICR7dG9vbHRpcH1cbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IHRvb2x0aXAgPSBcIlwiO1xuICAgICAgICAgIGxldCBpY29uID0gbnVsbDtcbiAgICAgICAgICBsZXQgbGluayA9IFwiXCI7XG5cbiAgICAgICAgICBpZiAoaS50b29sdGlwKSB7XG4gICAgICAgICAgICB0b29sdGlwID0gYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAgICAke2kudG9vbHRpcH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGkuY29sb3JJY29uKSB7XG4gICAgICAgICAgICBpZiAodXRpbHMuaXNIZXhDb2xvcihpLmNvbG9ySWNvbikpIHtcbiAgICAgICAgICAgICAgaWNvbiA9IGA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1pY29uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiR7aS5jb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpY29uID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb24gJHtpLmNvbG9ySWNvbn1cIj4gPC9kaXY+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaS5saW5rKSB7XG4gICAgICAgICAgICBsaW5rID0gYDxhIGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1saW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIiR7aS5saW5rfVwiPlxuICAgICAgICAgICAgICAgICR7aWNvbnMubGlua0ljb259XG4gICAgICAgICAgICAgICAgPC9hPiBgO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uICAke2ljb24gPyBcImhhcy1pY29uXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgaW5wdXQtdGFiLWtleT1cIiR7aS50YWJLZXkgfHwgXCJcIn1cIiBsYWJlbD1cIiR7aS5sYWJlbH1cIj5cbiAgICAgICAgICAgICAgPGxhYmVsPlxuXG4gICAgICAgICAgICAgICAgJHtpY29ufVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tdGl0bGUgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICR7aS5sYWJlbH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXN1ZmZpeFwiID4ke2kuc3VmZml4ID8gXCIoXCIgKyBpLnN1ZmZpeCArIFwiKVwiIDogXCJcIlxuICAgICAgICAgICAgfTwvZGl2PlxuXG4gICAgICAgICAgICAgICAgJHtsaW5rfVxuXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhcnRcIj4gc3RhcnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbmRcIj4gZW5kIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICR7dG9vbHRpcH1cbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0ciArPSBgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+IGA7XG5cbiAgICBsZXQgJGVsID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChzdHIpO1xuICAgIGxldCAkdGFicyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLmlucHV0LWJveC10YWJbdGFiLWtleV1cIikgfHwgW107XG4gICAgbGV0ICRzZWFyY2hJbnB1dCA9ICRlbC5xdWVyeVNlbGVjdG9yKFwiLnNlYXJjaC1pbnB1dFwiKSB8fCBudWxsO1xuICAgIGxldCAkc2VhcmNoSW5wdXRDbGVhciA9ICRlbC5xdWVyeVNlbGVjdG9yKFwiLnNlYXJjaC1pbnB1dC1jbGVhclwiKSB8fCBudWxsO1xuXG4gICAgJHRhYnMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RJbnB1dEJveFRhYih0LCAkZWwpO1xuICAgICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgICAkc2VhcmNoSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoJHNlYXJjaElucHV0Q2xlYXIpIHtcbiAgICAgICRzZWFyY2hJbnB1dENsZWFyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICAkc2VhcmNoSW5wdXQudmFsdWUgPSBcIlwiO1xuICAgICAgICAkc2VhcmNoSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCRzZWFyY2hJbnB1dCkge1xuICAgICAgJHNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICAgICRzZWFyY2hJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgJHNlYXJjaElucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgICRzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwiaW5wdXRcIiwgKGUpID0+IHtcbiAgICAgICAgbGV0ICR0YWJTZWxlY3RlZCA9XG4gICAgICAgICAgJGVsLnF1ZXJ5U2VsZWN0b3IoXCIuaW5wdXQtYm94LXRhYlt0YWIta2V5XS5hY3RpdmVcIikgfHwgbnVsbDtcbiAgICAgICAgbGV0ICRpbnB1dHMgPSBbXTtcbiAgICAgICAgaWYgKCR0YWJTZWxlY3RlZCkge1xuICAgICAgICAgIGxldCB0YWJLZXkgPSAkdGFiU2VsZWN0ZWQuZ2V0QXR0cmlidXRlKFwidGFiLWtleVwiKTtcbiAgICAgICAgICAkaW5wdXRzID1cbiAgICAgICAgICAgICRlbC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICBcIi5taW5pLWlucHV0LXNlY3Rpb25baW5wdXQtdGFiLWtleT0nXCIgKyB0YWJLZXkgKyBcIiddXCJcbiAgICAgICAgICAgICkgfHwgW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgJGlucHV0cyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1pbmktaW5wdXQtc2VjdGlvblwiKSB8fCBbXTtcbiAgICAgICAgfVxuICAgICAgICAkaW5wdXRzLmZvckVhY2goKCRpKSA9PiB7XG4gICAgICAgICAgbGV0IGxhYmVsID0gJGkuZ2V0QXR0cmlidXRlKFwibGFiZWxcIik7XG4gICAgICAgICAgbGV0IHNlYXJjaCA9ICRzZWFyY2hJbnB1dC52YWx1ZTtcbiAgICAgICAgICBpZiAobGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgICRpLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkaS5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RJbnB1dEJveFRhYihfLmZpcnN0KCR0YWJzKSwgJGVsKTtcblxuICAgIHJldHVybiAkZWw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWEgSW5wdXRCb3gsIGNvbW8gZWxlbWVudG8gRG9tXG4gICAqIHVuIElucHV0Qm94IGVzIHVuIGNvbnRlbmVkb3IgY29uIHVuYSBsaXN0YSBkZSBpbnB1dHNcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gY29uZmlnIHBhcmEgSW5wdXRcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGFEYXkgLSB2YWxvcmVzIGRlIGl0ZW0geSBEaWEsIG9wY2lvbmFsXG4gICAqIEByZXR1cm4ge09iamVjdH0gRWxlbWVudG8gRG9tIGRlbCBpbnB1dCBjcmVhZG9cbiAgICovXG4gIGNyZWF0ZUlucHV0Qm94KHByb3BzLCBkYXRhRGF5KSB7XG4gICAgbGV0IHZhbHVlID0gW107XG4gICAgaWYgKGRhdGFEYXkgJiYgZGF0YURheS52YWx1ZXMpIHtcbiAgICAgIHZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuICAgIH1cblxuICAgIGxldCB0YWJzQ29udGFpbmVyID0gXCJcIjtcblxuICAgIGlmIChwcm9wcy50YWJzKSB7XG4gICAgICBsZXQgdGFicyA9IFwiXCI7XG4gICAgICBwcm9wcy50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICB0YWJzICs9IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveC10YWJcIiB0YWIta2V5PVwiJHt0YWIua2V5fVwiPlxuICAgICAgICAgICR7dGFiLm5hbWV9XG4gICAgICAgIDwvZGl2PmA7XG4gICAgICB9KTtcblxuICAgICAgdGFic0NvbnRhaW5lciA9IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveC10YWItY29udGFpbmVyXCI+XG4gICAgICAgICR7dGFic31cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIGxldCBzZWFyY2hJbnB1dCA9IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cIlwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIlwiIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJidXNjYXJcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jbGVhclwiPlxuICAgICAgICAgJHtpY29ucy5jbG9zZUljb259XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgYDtcblxuICAgIGxldCBzdHIgPSBgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zdWJ0aXRsZSBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICR7cHJvcHMubGFiZWx9XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICR7dGFic0NvbnRhaW5lcn1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWJveCBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuXG4gICAgICAgICAgICAke3NlYXJjaElucHV0fVxuICAgICAgYDtcblxuICAgIGlmIChwcm9wcy5pbnB1dHMpIHtcbiAgICAgIHByb3BzLmlucHV0cy5mb3JFYWNoKChpKSA9PiB7XG4gICAgICAgIGlmIChpLmlzVGl0bGUpIHtcbiAgICAgICAgICBsZXQgdG9vbHRpcCA9IFwiXCI7XG4gICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKGkudG9vbHRpcCkge1xuICAgICAgICAgICAgdG9vbHRpcCA9IGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtpLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgICAgICR7aS5zdWZmaXggPyBcIihcIiArIGkuc3VmZml4ICsgXCIpXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaS5jb2xvckljb24pIHtcbiAgICAgICAgICAgIGlmICh1dGlscy5pc0hleENvbG9yKGkuY29sb3JJY29uKSkge1xuICAgICAgICAgICAgICBpY29uID0gYDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQ6JHtpLmNvbG9ySWNvbn1cIj4gPC9kaXY+YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGljb24gPSBgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0taWNvbiAke2kuY29sb3JJY29ufVwiPiA8L2Rpdj5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0ciArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uIGlzLXRpdGxlXCIgaW5wdXQtdGFiLWtleT1cIiR7aS50YWJLZXkgfHwgXCJcIlxuICAgICAgICAgICAgfVwiIGxhYmVsPVwiJHtpLmxhYmVsfVwiPlxuICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgJHtpY29ufVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRpdGxlIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAke2kubGFiZWx9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICR7dG9vbHRpcH1cbiAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IHZhbHVlX2ZvdW5kID0gdmFsdWUgPyB2YWx1ZS5maW5kKCh2YWwpID0+IHZhbC5pZCA9PSBpLmlkKSA6IG51bGw7XG4gICAgICAgICAgbGV0IHYgPSB2YWx1ZV9mb3VuZCB8fCBcIlwiO1xuICAgICAgICAgIGxldCBpbnB1dFZhbHVlID1cbiAgICAgICAgICAgIHByb3BzLnZhck5hbWVJbnB1dCAmJiB2W3Byb3BzLnZhck5hbWVJbnB1dF1cbiAgICAgICAgICAgICAgPyB2W3Byb3BzLnZhck5hbWVJbnB1dF1cbiAgICAgICAgICAgICAgOiB2LnZhbHVlO1xuICAgICAgICAgIGxldCB0b29sdGlwID0gXCJcIjtcbiAgICAgICAgICBsZXQgaWNvbiA9IFwiXCI7XG4gICAgICAgICAgbGV0IGxpbmsgPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKGkudG9vbHRpcCkge1xuICAgICAgICAgICAgdG9vbHRpcCA9IGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWlucHV0LXNlY3Rpb24tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtpLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpLmNvbG9ySWNvbikge1xuICAgICAgICAgICAgaWYgKHV0aWxzLmlzSGV4Q29sb3IoaS5jb2xvckljb24pKSB7XG4gICAgICAgICAgICAgIGljb24gPSBgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0taWNvblwiIHN0eWxlPVwiYmFja2dyb3VuZDoke2kuY29sb3JJY29ufVwiPiA8L2Rpdj5gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWNvbiA9IGA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS1pY29uICR7aS5jb2xvckljb259XCI+IDwvZGl2PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGkubGluaykge1xuICAgICAgICAgICAgbGluayA9IGA8YSBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tbGlua1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIke2kubGlua31cIj5cbiAgICAgICAgICAgICAgICAke2ljb25zLmxpbmtJY29ufVxuICAgICAgICAgICAgICAgIDwvYT4gYDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHIgKz0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbiAke2ljb24gPyBcImhhcy1pY29uXCIgOiBcIlwiXG4gICAgICAgICAgICB9XCIgaW5wdXQtdGFiLWtleT1cIiR7aS50YWJLZXkgfHwgXCJcIn1cIiBsYWJlbD1cIiR7aS5sYWJlbH1cIj5cbiAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pbmktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LWlkPVwiJHtpLmlkIHx8IFwiXCJ9XCJcbiAgICAgICAgICAgICAgICAgICAgICBpbnB1dC1rZXk9XCIke2kua2V5IHx8IGkubGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIiR7aW5wdXRWYWx1ZSB8fCBcIlwifVwiPlxuXG4gICAgICAgICAgICAgICAgJHtpY29uIHx8IFwiXCJ9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1pbnB1dC1zZWN0aW9uLS10aXRsZSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgJHtpLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktaW5wdXQtc2VjdGlvbi0tc3VmZml4XCIgPiR7aS5zdWZmaXggPyBcIihcIiArIGkuc3VmZml4ICsgXCIpXCIgOiBcIlwiXG4gICAgICAgICAgICB9PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAke2xpbmt9XG5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgJHt0b29sdGlwfVxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RyICs9IGBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj4gYDtcblxuICAgIGxldCAkZWwgPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKHN0cik7XG4gICAgbGV0ICR0YWJzID0gJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuaW5wdXQtYm94LXRhYlt0YWIta2V5XVwiKSB8fCBbXTtcbiAgICBsZXQgJGlucHV0cyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXQubWluaS1pbnB1dFwiKSB8fCBbXTtcbiAgICBsZXQgJHNlYXJjaElucHV0ID0gJGVsLnF1ZXJ5U2VsZWN0b3IoXCIuc2VhcmNoLWlucHV0XCIpIHx8IG51bGw7XG4gICAgbGV0ICRzZWFyY2hJbnB1dENsZWFyID0gJGVsLnF1ZXJ5U2VsZWN0b3IoXCIuc2VhcmNoLWlucHV0LWNsZWFyXCIpIHx8IG51bGw7XG5cbiAgICAkdGFicy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICB0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdElucHV0Qm94VGFiKHQsICRlbCk7XG4gICAgICAgICRzZWFyY2hJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICRzZWFyY2hJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImlucHV0XCIsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmICgkc2VhcmNoSW5wdXRDbGVhcikge1xuICAgICAgJHNlYXJjaElucHV0Q2xlYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XG4gICAgICAgICRzZWFyY2hJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICRzZWFyY2hJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImlucHV0XCIsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoJHNlYXJjaElucHV0KSB7XG4gICAgICAkc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgKGUpID0+IHtcbiAgICAgICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICAgJHNlYXJjaElucHV0LnZhbHVlID0gXCJcIjtcbiAgICAgICAgICAkc2VhcmNoSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgJHNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCAoZSkgPT4ge1xuICAgICAgICBsZXQgJHRhYlNlbGVjdGVkID1cbiAgICAgICAgICAkZWwucXVlcnlTZWxlY3RvcihcIi5pbnB1dC1ib3gtdGFiW3RhYi1rZXldLmFjdGl2ZVwiKSB8fCBudWxsO1xuICAgICAgICBsZXQgJGlucHV0cyA9IFtdO1xuICAgICAgICBpZiAoJHRhYlNlbGVjdGVkKSB7XG4gICAgICAgICAgbGV0IHRhYktleSA9ICR0YWJTZWxlY3RlZC5nZXRBdHRyaWJ1dGUoXCJ0YWIta2V5XCIpO1xuICAgICAgICAgICRpbnB1dHMgPVxuICAgICAgICAgICAgJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgIFwiLm1pbmktaW5wdXQtc2VjdGlvbltpbnB1dC10YWIta2V5PSdcIiArIHRhYktleSArIFwiJ11cIlxuICAgICAgICAgICAgKSB8fCBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAkaW5wdXRzID0gJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWluaS1pbnB1dC1zZWN0aW9uXCIpIHx8IFtdO1xuICAgICAgICB9XG4gICAgICAgICRpbnB1dHMuZm9yRWFjaCgoJGkpID0+IHtcbiAgICAgICAgICBsZXQgbGFiZWwgPSAkaS5nZXRBdHRyaWJ1dGUoXCJsYWJlbFwiKTtcbiAgICAgICAgICBsZXQgc2VhcmNoID0gJHNlYXJjaElucHV0LnZhbHVlO1xuICAgICAgICAgIGlmIChsYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgJGkuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdElucHV0Qm94VGFiKF8uZmlyc3QoJHRhYnMpLCAkZWwpO1xuXG4gICAgJGlucHV0cy5mb3JFYWNoKChpKSA9PiB0aGlzLmFkZEtleURvd25JbnB1dEV2ZW50cyhpLCAkZWwsIHByb3BzKSk7XG5cbiAgICByZXR1cm4gJGVsO1xuICB9LFxuXG4gIHNlbGVjdElucHV0Qm94VGFiKCR0YWIsICRlbCkge1xuICAgIGxldCAkdGFicyA9ICRlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLmlucHV0LWJveC10YWJbdGFiLWtleV1cIikgfHwgW107XG4gICAgbGV0ICRpbnB1dFNlY3Rpb25zID0gJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWluaS1pbnB1dC1zZWN0aW9uXCIpIHx8IFtdO1xuXG4gICAgJHRhYnMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgdC5jbGFzc0xpc3QucmVtb3ZlKFwiYWN0aXZlXCIpO1xuICAgIH0pO1xuXG4gICAgaWYgKCR0YWIpIHtcbiAgICAgICR0YWIuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcblxuICAgICAgJGlucHV0U2VjdGlvbnMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICBsZXQga2V5ID0gaS5nZXRBdHRyaWJ1dGUoXCJpbnB1dC10YWIta2V5XCIpO1xuICAgICAgICBpZiAoa2V5ID09ICR0YWIuZ2V0QXR0cmlidXRlKFwidGFiLWtleVwiKSkge1xuICAgICAgICAgIGkuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaS5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhIENoZWNrYm94LCBjb21vIGVsZW1lbnRvIERvbVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBjb25maWcgcGFyYSBJbnB1dFxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YURheSAtIHZhbG9yZXMgZGUgaXRlbSB5IERpYSwgb3BjaW9uYWxcbiAgICogQHJldHVybiB7T2JqZWN0fSBFbGVtZW50byBEb20gZGVsIGlucHV0IGNyZWFkb1xuICAgKi9cbiAgY3JlYXRlSW5wdXRDaGVja2JveChwcm9wcywgZGF0YURheSkge1xuICAgIGxldCB2YWx1ZSA9IFwiXCI7XG4gICAgaWYgKGRhdGFEYXkgJiYgZGF0YURheS52YWx1ZXMpIHtcbiAgICAgIHZhbHVlID0gdXRpbHMuZ2V0VmFyQnlQYXRoKGRhdGFEYXksIHByb3BzLnZhck5hbWUpO1xuICAgIH1cbiAgICBsZXQgciA9IGRvbS5jcmVhdGVFbGVtZW50RnJvbUhUTUwoYFxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXNlY3Rpb24gJHtwcm9wcy5pc0hpZGRlbiA/ICdoaWRlJyA6ICcnfSBcIiBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiPlxuICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJcbiAgICAgIH1cIiAke3ZhbHVlID8gXCJjaGVja2VkXCIgOiBcIlwifT5cbiAgICAgICAgICAke3Byb3BzLmxhYmVsfVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+YCk7XG5cbiAgICByZXR1cm4gcjtcbiAgfSxcblxuICBjcmVhdGVJbnB1dEJ1dHRvbnNHcm91cChwcm9wcykge1xuICAgIGxldCAkY29udGFpbmVyID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25zLWdyb3VwXCI+IDwvZGl2PlxuICAgICAgPC9kaXY+YCk7XG5cbiAgICBsZXQgJGNvbnRhaW5lckJ1dHRvbkdyb3VwID0gJGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLmJ1dHRvbnMtZ3JvdXBcIik7XG5cbiAgICBsZXQgJGJ1dHRvbnMgPSBbXTtcbiAgICAkYnV0dG9ucyA9IHByb3BzLmJ1dHRvbnMubWFwKChidXR0b25Qcm9wKSA9PiB7XG4gICAgICBsZXQgYnV0dG9uU3RyID0gYFxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIG5hbWU9XCIke2J1dHRvblByb3Aua2V5IHx8IFwiXCJ9XCIgXG4gICAgICAgICAgaW5wdXQta2V5PVwiJHtidXR0b25Qcm9wLmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgY2xhc3M9XCJjYXAtYnRuLW91dGxpbmUgY2FwLWJ0bi1zbSAke2J1dHRvblByb3AuaXNTZWxlY3RlZCA/ICdzZWxlY3RlZCcgOiAnJ30gXCI+XG4gICAgICAgICAgJHtidXR0b25Qcm9wLmxhYmVsfVxuICAgICAgICA8L2J1dHRvbj5gO1xuXG4gICAgICBsZXQgJGJ1dHRvbiA9IGRvbVV0aWxzLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChidXR0b25TdHIpO1xuICAgICAgJGNvbnRhaW5lckJ1dHRvbkdyb3VwLmFwcGVuZCgkYnV0dG9uKTtcblxuICAgICAgJGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmlzU2VsZWN0YWJsZSkge1xuICAgICAgICAgICRidXR0b25zLmZvckVhY2goKCRiKSA9PiAkYi5jbGFzc0xpc3QucmVtb3ZlKFwic2VsZWN0ZWRcIikpO1xuICAgICAgICAgICRidXR0b24uY2xhc3NMaXN0LmFkZChcInNlbGVjdGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGJ1dHRvblByb3Aub25DbGljayh7IHByb3BzLCBldmVudDogZSwgYnV0dG9uc0VsZW1lbnRzOiAkYnV0dG9ucyB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICRidXR0b247XG4gICAgfSk7XG5cbiAgICByZXR1cm4gJGNvbnRhaW5lcjtcbiAgfSxcblxuICBjcmVhdGVJbnB1dEJ1dHRvbihwcm9wcykge1xuICAgIGxldCByID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VjdGlvbiAke3Byb3BzLmlzSGlkZGVuID8gJ2hpZGUnIDogJyd9IFwiIGlucHV0LWtleT1cIiR7cHJvcHMua2V5IHx8IFwiXCJ9XCI+XG4gICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgIG5hbWU9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICBpbnB1dC1rZXk9XCIke3Byb3BzLmtleSB8fCBcIlwifVwiXG4gICAgICAgICAgICBjbGFzcz1cImNhcC1idG4tb3V0bGluZVwiPlxuICAgICAgICAgICAgJHtwcm9wcy5sYWJlbH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PmApO1xuXG4gICAgbGV0IGJ1dHRvbiA9IHIucXVlcnlTZWxlY3RvcihcImJ1dHRvblwiKTtcbiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiBwcm9wcy5vbkNsaWNrKHsgcHJvcHMsIGV2ZW50OiBlIH0pKTtcblxuICAgIHJldHVybiByO1xuICB9LFxuXG4gIGFkZEtleURvd25JbnB1dEV2ZW50cygkaW5wdXQsICRpbnB1dENvbnRhaW5lciwgcHJvcHMpIHtcbiAgICAkaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgICAgLy9FTlRFUlxuICAgICAgICAkaW5wdXQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJzYXZlTXVsdGlJbnB1dFwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogZmFsc2VcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgIC8vRVNDXG4gICAgICAgICRpbnB1dC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudChcImNhbmNlbE11bHRpSW5wdXRcIiwge1xuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAkaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIChlKSA9PiB7XG4gICAgICBpZiAocHJvcHMub25JbnB1dCkge1xuICAgICAgICBwcm9wcy5vbklucHV0KHtcbiAgICAgICAgICBldmVudDogZSxcbiAgICAgICAgICB2YWx1ZTogZS5zcmNFbGVtZW50LnZhbHVlLFxuICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICRlbGVtZW50OiAkaW5wdXRDb250YWluZXJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgY3JlYXRlQ29udGV4dE1lbnUoe1xuICAgIGNvbmZpZyxcbiAgICAkY2FwaWJhcmFFbGVtID0gbnVsbCxcbiAgICBldnQgPSBudWxsLFxuICAgIGRhdGUgPSBudWxsLFxuICAgIGl0ZW0gPSBudWxsLFxuICAgIHNlbGVjdGVkID0gW10sXG4gICAgdGFiU2VsZWN0ZWQgPSBudWxsLFxuICAgIGxlZnQgPSBudWxsLFxuICAgIHRvcCA9IG51bGwsXG4gICAgbmFtZSA9IFwiXCJcbiAgfSkge1xuICAgIGlmIChjb25maWcudGltZWxpbmUuY29udGV4dE1lbnUgPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiB7IGVsZW06IG51bGwsIGlzVmlzaWJsZTogZmFsc2UgfTtcblxuICAgIGxldCBjbGFzc05hbWUgPSBcIlwiO1xuICAgIGxldCBzdHlsZSA9IFwiXCI7XG4gICAgbGV0IHN0ckh0bWwgPSBcIlwiO1xuICAgIGxldCBsZWZ0UG9zaXRpb24gPSBudWxsO1xuICAgIGxldCB0b3BQb3NpdGlvbiA9IG51bGw7XG4gICAgbGV0IGlzVmlzaWJsZSA9IHRydWU7XG4gICAgbGV0IGJvdW5kUmVjdENhcGliYXJhID0gbnVsbDtcbiAgICBsZXQgZ2FwID0gMTU7IC8vcHhcblxuICAgIGlmICgkY2FwaWJhcmFFbGVtKSB7XG4gICAgICBib3VuZFJlY3RDYXBpYmFyYSA9ICRjYXBpYmFyYUVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgaWYgKGV2dCAmJiBib3VuZFJlY3RDYXBpYmFyYSkge1xuICAgICAgbGVmdCA9IGV2dC5jbGllbnRYO1xuICAgICAgdG9wID0gZXZ0LmNsaWVudFkgLSBib3VuZFJlY3RDYXBpYmFyYS50b3A7XG4gICAgfVxuXG4gICAgaWYgKGxlZnQpIHtcbiAgICAgIGxlZnRQb3NpdGlvbiA9IGxlZnQ7XG4gICAgfVxuXG4gICAgaWYgKHRvcCkge1xuICAgICAgdG9wUG9zaXRpb24gPSB0b3A7XG4gICAgfVxuXG4gICAgaWYgKChsZWZ0UG9zaXRpb24gIT09IG51bGwpICYgKHRvcFBvc2l0aW9uICE9PSBudWxsKSkge1xuICAgICAgaWYgKGJvdW5kUmVjdENhcGliYXJhKSB7XG4gICAgICAgIGxldCB0cmFuc2Zvcm1TdHlsZSA9IFwiXCI7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0b3BQb3NpdGlvbiA+IChib3VuZFJlY3RDYXBpYmFyYS5oZWlnaHQgKiAyKSAvIDYgJiZcbiAgICAgICAgICB0b3BQb3NpdGlvbiA8PSAoYm91bmRSZWN0Q2FwaWJhcmEuaGVpZ2h0ICogNCkgLyA2XG4gICAgICAgICkge1xuICAgICAgICAgIHRyYW5zZm9ybVN0eWxlICs9IGB0cmFuc2xhdGVZKC01MCUpYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9wUG9zaXRpb24gPiAoYm91bmRSZWN0Q2FwaWJhcmEuaGVpZ2h0ICogNCkgLyA2KSB7XG4gICAgICAgICAgdHJhbnNmb3JtU3R5bGUgKz0gYHRyYW5zbGF0ZVkoLTEwMCUpYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsZWZ0UG9zaXRpb24gPiAoYm91bmRSZWN0Q2FwaWJhcmEud2lkdGggKiA0KSAvIDYpIHtcbiAgICAgICAgICB0cmFuc2Zvcm1TdHlsZSArPSBgdHJhbnNsYXRlWCgtMTAwJSlgO1xuICAgICAgICAgIGxlZnRQb3NpdGlvbiAtPSBnYXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGVmdFBvc2l0aW9uICs9IGdhcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhbnNmb3JtU3R5bGUgIT0gXCJcIikge1xuICAgICAgICAgIHN0eWxlICs9IGAgdHJhbnNmb3JtOiAke3RyYW5zZm9ybVN0eWxlfTtgO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN0eWxlICs9IGB0b3A6ICR7dG9wUG9zaXRpb259cHg7IGxlZnQ6ICR7bGVmdFBvc2l0aW9ufXB4O2A7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsYXNzTmFtZSArPSBcImNtLWhpZGVcIjtcbiAgICAgIGlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN0ckh0bWwgKz0gYCA8ZGl2IGNsYXNzPVwiY2FwLWNvbnRleHQtbWVudS1jb250YWluZXIgJHtjbGFzc05hbWV9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXAtY29udGV4dC1tZW51XCIgc3R5bGU9XCIke3N0eWxlfVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgPC9kaXY+YDtcblxuICAgIGxldCAkY29udGV4dE1lbnVDb250YWluZXIgPSBkb20uY3JlYXRlRWxlbWVudEZyb21IVE1MKHN0ckh0bWwpO1xuICAgIGxldCAkY29udGV4dE1lbnUgPSAkY29udGV4dE1lbnVDb250YWluZXIucXVlcnlTZWxlY3RvcihcIi5jYXAtY29udGV4dC1tZW51XCIpO1xuXG4gICAgY29uZmlnLnRpbWVsaW5lLmNvbnRleHRNZW51Lm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAob3B0aW9uLnNob3dJZikge1xuICAgICAgICBsZXQgc2hvdyA9IG9wdGlvbi5zaG93SWYoeyBpdGVtLCBkYXRlLCBzZWxlY3RlZCwgbmFtZSwgdGFiU2VsZWN0ZWQgfSk7XG4gICAgICAgIGlmICghc2hvdykgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQgaXNFbmFibGVkID0gdHJ1ZTtcbiAgICAgIGxldCBpc0NsaWNrZWFibGUgPSB0cnVlO1xuICAgICAgaWYgKG9wdGlvbi5lbmFibGVJZikge1xuICAgICAgICBpc0VuYWJsZWQgPSBvcHRpb24uZW5hYmxlSWYoe1xuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHRhYlNlbGVjdGVkXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBsZXQgb3B0aW9uQ2xhc3NOYW1lID0gXCJcIjtcbiAgICAgIGxldCBzdHJJY29uID0gXCJcIjtcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XG5cbiAgICAgIGlmICghaXNFbmFibGVkKSB7XG4gICAgICAgIG9wdGlvbkNsYXNzTmFtZSArPSBcImlzLWRpc2FibGVkIFwiO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uLmlzRGl2aWRlcikge1xuICAgICAgICBpc0NsaWNrZWFibGUgPSBmYWxzZTtcbiAgICAgICAgb3B0aW9uQ2xhc3NOYW1lICs9IFwiaXMtZGl2aWRlciBcIjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbi5sYWJlbCkge1xuICAgICAgICBsYWJlbCA9IGA8c3Bhbj4ke29wdGlvbi5sYWJlbH08L3NwYW4+YDtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbi5pY29uKSB7XG4gICAgICAgIHN0ckljb24gPSBgPGRpdiBjbGFzcz1cImNhcC1jb250ZXh0LW1lbnVfaXRlbV9pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiJHtvcHRpb24uaWNvbn1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgIH1cblxuICAgICAgbGV0IG9wdGlvblN0ckh0bWwgPSBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXAtY29udGV4dC1tZW51X2l0ZW0gJHtvcHRpb25DbGFzc05hbWV9XCI+XG4gICAgICAgICAgJHtzdHJJY29ufVxuICAgICAgICAgICR7bGFiZWx9XG4gICAgICAgIDwvZGl2PmA7XG5cbiAgICAgIGxldCAkb3B0aW9uID0gZG9tLmNyZWF0ZUVsZW1lbnRGcm9tSFRNTChvcHRpb25TdHJIdG1sKTtcblxuICAgICAgaWYgKGlzRW5hYmxlZCAmJiBpc0NsaWNrZWFibGUpIHtcbiAgICAgICAgJG9wdGlvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2dENsaWNrKSA9PlxuICAgICAgICAgIG9wdGlvbi5vbkNsaWNrKHtcbiAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgIGV2dDogZXZ0Q2xpY2ssXG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgdGFiU2VsZWN0ZWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJG9wdGlvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2dENsaWNrKSA9PiB7XG4gICAgICAgICAgZXZ0Q2xpY2sucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldnRDbGljay5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgICRjb250ZXh0TWVudS5hcHBlbmQoJG9wdGlvbik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxlbTogJGNvbnRleHRNZW51Q29udGFpbmVyLFxuICAgICAgaXNWaXNpYmxlXG4gICAgfTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBRkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFGQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBUUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBUEE7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFIQTtBQVFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFIQTtBQVFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFIQTtBQVFBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFIQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUhBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBSEE7QUFXQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFIQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUlBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFIQTtBQVVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN0NBO0FBK0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3Q0E7QUErQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3Q0E7QUErQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTdDQTtBQStDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFIQTtBQVdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUhBO0FBVUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBSEE7QUFhQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFIQTtBQVVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUhBO0FBV0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQUNBO0FBQUE7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBSEE7QUFVQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUhBO0FBVUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUExREE7QUFDQTtBQTREQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSEE7QUFTQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFIQTtBQVNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQVlBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQVlBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQWpoSUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/util/tableElements.js\n");
|
|
259
259
|
|
|
260
260
|
/***/ }),
|
|
261
261
|
|
|
@@ -267,7 +267,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uti
|
|
|
267
267
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
268
268
|
|
|
269
269
|
"use strict";
|
|
270
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/dateUtils */ \"./src/util/dateUtils.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n tablePositions: {\n scrollLeft: 0,\n scrollTop: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n boundingClientTable: null,\n boundingClientContainer: null,\n containerWidth: 0,\n containerHeight: 0,\n navLeftWidth: 0,\n headerHeight: 0,\n dayWidth: 0,\n itemHeight: 0\n },\n\n /**\n * Obtiene valor de un objeto segun su ruta\n * la ruta usa formato separada por punto\n * compatible con arrays\n *\n * Si no se encuentra, retorna null\n *\n * @param {Object} obj - objeto donde se busca el valor\n * @param {String} [path=''] - ruta del valor\n * @return {*} Valor encontrado\n */\n getVarByPath(obj = null, path = '', defaultReturn = null) {\n let paths = path.split('.');\n let current = obj || {};\n\n for (let i = 0; i < paths.length; ++i) {\n const pathSegment = paths[i]; // Verificar si el segmento de ruta contiene una referencia a un array\n\n if (pathSegment.includes('[') && pathSegment.includes(']')) {\n const arrName = pathSegment.split('[')[0];\n const arrIndex = parseInt(pathSegment.split('[')[1].replace(']', ''));\n\n if (current[arrName] === undefined || !Array.isArray(current[arrName])) {\n return defaultReturn;\n } else {\n current = current[arrName][arrIndex];\n }\n } else {\n // Si no es un array, trata la ruta como una propiedad de objeto normal\n if (current[pathSegment] === undefined) {\n return defaultReturn;\n } else {\n current = current[pathSegment];\n }\n }\n }\n\n if (current === undefined) return defaultReturn;\n return current;\n },\n\n /**\n * Obtiene posicion de elemento de un array segun date e item\n * Usada para obtener posicion del dia seleccionado\n *\n * la lista de dias seleccionados en list contienen:\n * {\n * date: Date,\n * item: {\n * id: Integer, \n * }\n * },\n *\n * Si no lo encuentra devuelve -1;\n *\n * @param {Array} list - Arreglo de dias seleccionados\n * @param {Object} props - propiedades de dia seleccionado\n * @param {Date} props.date - fecha para comparar posicion horizontal\n * @param {Object} props.item - item de sidebar para comparar posicion vertical\n * @return {[TODO:type]} [TODO:description]\n */\n indexSelectedDay(list, props) {\n let index = -1;\n list.forEach((l, i) => {\n if (l.date == props.date && l.item.id == props.item.id) {\n index = i;\n }\n });\n return index;\n },\n\n /**\n * Obtiene posicion vertical del item segun los datos\n * mostrados en la planilla\n *\n * si el arbol de un item padre no esta desplegado, no lo considera\n *\n * si no lo encuentra, devuelve -1\n *\n * TODO dar posibilidad de position para parents\n *\n * @param {Array} data - Arreglo de datos, con formato capibara\n * @param {item} item - Item a buscar en Array\n * @return {Integer} Posicion, default -1\n */\n getPositionByItem(config, item, typeNode = \"child\") {\n let position = -1;\n let finalPosition = -1;\n config.data.forEach(d => {\n if (d.isHidden) return;\n position++;\n\n if (d.id == item.id && typeNode == \"parent\") {\n finalPosition = position;\n }\n\n d.children.forEach(c => {\n if (c.isHidden) return;\n\n if (!d.isClosed) {\n position++;\n\n if (typeNode == \"child\" && c.id == item.id) {\n finalPosition = position;\n }\n }\n });\n });\n return finalPosition;\n },\n\n /**\n * Obtiene item que corresponda a la posicion de mouse\n * usado en eventos click\n *\n * si el arbol de un item padre no esta desplegado, no lo considera\n *\n * si no lo encuentra, devuelve null;\n *\n * @param {Object} config - Capibara config\n * @param {Object} evt - Evento mouse click\n * @param {Object} $table - Elemento de dom $table de planilla\n * @return {Object} Item encontrado\n */\n getItemByEvent(config, evt, $table) {\n let item = null;\n let actualPosition = 0;\n let pos = this.eventToPosition(config, evt, $table);\n let position = pos.y;\n config.data.forEach(d => {\n if (d.isHidden) return;\n\n if (actualPosition == position && d.selectable !== false) {\n item = d;\n }\n\n actualPosition++;\n\n if (!d.isClosed) {\n d.children.forEach(c => {\n if (c.isHidden) return;\n\n if (actualPosition == position && c.selectable !== false) {\n item = c;\n }\n\n actualPosition++;\n });\n }\n });\n return item;\n },\n\n /**\n * Obtiene fecha por posicion de mouse\n * usa evento click en $table\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} evt - Evento mouse click\n * @param {Object} $table - Elemento de dom $table de planilla\n * @return {String} Fecha formateada correspondiente\n */\n getDayByEvent(config, evt, $table) {\n let pos = this.eventToPosition(config, evt, $table);\n let day = _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].addDaysString(config.timeline.start, pos.x);\n return day;\n },\n\n /**\n * Obtiene item de config.data capibara, usando ID\n *\n * @param {Object} data - Configuracion Capibara\n * @param {Integer} id - Id a buscar\n * @param {String} [type] - tipo de item a buscar en config.data\n * @param {Boolean} [withParent] - Si se devuelve solo el item o con el parent\n * @return {Object} item o {item, parent}\n */\n getItemById(config, id, typeNode = \"child\", withParent = false) {\n let item = null;\n let parent = null;\n config.data.forEach(d => {\n if (d.id == id && typeNode == \"parent\") {\n item = d;\n }\n\n d.children.forEach(c => {\n if (c.id == id && typeNode == \"child\") {\n item = c;\n parent = d;\n }\n });\n });\n\n if (withParent) {\n return {\n item,\n parent\n };\n }\n\n return item;\n },\n\n /**\n * Obtiene posicion de mouse segun evento\n * con respecto a la planilla\n * left : posicion desde izquierda en pixeles, en multiplos del ancho del dia,\n * top : posicion desde arriba en pixeles, como multiplo del alto del item,\n * x : posicion desde izquierda, en orden numerico,\n * y : posicion desde arriba, en orden numerico,\n * _real : {\n * topOffset : differencia entre posicion izquierda de pantalla y de table,\n * leftOffset : differencia entre posicion superior de pantalla y de table,\n * left : posicion en pixeles,\n * top : posicion en pixeles\n * }\n *\n * @param {Object} config - configuracion capibara\n * @param {Object} ev - evento mouse\n * @param {Object} elem - Elemento dom Target, para usar en calculos\n * @return {Object} objeto con posiciones\n */\n eventToPosition(config, ev, $table) {\n //console.log(\"eventToPosition\");\n let $container = $table.parentElement;\n let rectTable = this.tablePositions.boundingClientTable; //target.getBoundingClientRect();\n\n let rectContainer = this.tablePositions.boundingClientContainer; //target.getBoundingClientRect();\n\n let itemHeight = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let dayWidth = parseFloat(this.getCSSVariable(config, \"--day-width\"));\n let headerHeight = parseFloat(this.getCSSVariable(config, \"--header-height\"));\n let navWidth = parseFloat(this.getCSSVariable(config, \"--nav-width\")) + parseFloat(this.getCSSVariable(config, \"--ex-nav-width\")) + parseFloat(this.getCSSVariable(config, \"--btn-nav-width\")) + parseFloat(this.getCSSVariable(config, \"--initial-nav-width\"));\n let paddingLeft = parseInt($table.style.paddingLeft || 0); // + parseInt(elem.offsetLeft);\n\n let paddingTop = parseInt($table.style.paddingTop || 0); // + parseInt(elem.offsetTop);\n\n let leftPosition = ev.clientX - paddingLeft - parseInt(rectTable.left);\n leftPosition = leftPosition >= 0 ? leftPosition : 0;\n let topPosition = ev.clientY - paddingTop - parseInt(rectTable.top);\n topPosition = topPosition >= 0 ? topPosition : 0;\n let leftRounded = leftPosition - Math.abs(leftPosition % dayWidth);\n let topRounded = topPosition - Math.abs(topPosition % itemHeight);\n let leftClient = leftPosition - this.tablePositions.scrollLeft;\n let topClient = topPosition - this.tablePositions.scrollTop;\n let visibleWidth = rectContainer.width - navWidth;\n let visibleHeight = rectContainer.height - headerHeight;\n let position = {\n leftClient,\n // left en pixeles, relativo al sector visible\n topClient,\n // top en pixeles, relativo al sector visible\n leftPosition,\n // left en pixeles, relativo al elemento\n topPosition,\n // top en pixeles, relativo al elemento\n left: leftRounded,\n // left en pixeles, relativo al elemento, redondeado\n top: topRounded,\n // top en pixeles, relativo al elemento, redondeado\n x: leftRounded / dayWidth,\n // left en posicion en dias\n y: topRounded / itemHeight,\n // top en posicion de items\n yPercent: _.round(topClient / visibleHeight * 100, 2),\n // left en porcentaje, relativo al sector visible\n xPercent: _.round(leftClient / visibleWidth * 100, 2),\n // top en porcentaje, relativo al sector visible\n yInnerPercent: _.round(topPosition / (this.tablePositions.scrollHeight - headerHeight) * 100, 2),\n // left en porcentaje, relativo al sector visible\n xInnerPercent: _.round(leftPosition / (this.tablePositions.scrollWidth - navWidth) * 100, 2) // top en porcentaje, relativo al sector visible\n\n /*\n visibleWidth,\n visibleHeight,\n navWidth,\n _real : {\n topOffset : paddingTop + parseInt(rectTable.top),\n leftOffset : paddingLeft + parseInt(rectTable.left),\n left : leftPosition,\n top : topPosition\n }\n */\n\n }; //console.table(position);\n //console.log(JSON.stringify(position));\n\n return position;\n },\n\n eventToPositionNavLeft(config, ev, elem) {\n let target = elem || ev.currentTarget;\n let rect = elem.getBoundingClientRect();\n let rectParent = elem.parentElement.getBoundingClientRect();\n let itemHeight = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let headerHeight = parseFloat(this.getCSSVariable(config, \"--header-height\"));\n let paddingTop = parseInt(target.style.paddingTop || 0);\n let topPosition = ev.clientY - paddingTop - parseInt(rect.top);\n topPosition = topPosition >= 0 ? topPosition : 0;\n let topRounded = topPosition - Math.abs(topPosition % itemHeight);\n let topClient = topPosition - elem.parentElement.scrollTop;\n let position = {\n topClient,\n // top en pixeles, relativo al sector visible\n top: topRounded,\n // top en pixeles, relativo al elemento\n y: topRounded / itemHeight,\n // top en posicion de items\n yPercent: _.round(topClient / (rectParent.height - headerHeight) * 100, 2) // top en porcentaje, relativo al sector visible\n\n };\n return position;\n },\n\n getPositionByItemDate(config, item, date) {\n let h = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let w = parseFloat(this.getCSSVariable(config, \"--day-width\"));\n let y = this.getPositionByItem(config, item);\n let x = _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].diffDays(config.timeline.start, date);\n let left = x * w;\n let top = y * h;\n let position = {\n left,\n top,\n x,\n y\n };\n return position;\n },\n\n /**\n * Obtiene promedio de datos, de una lista de datos\n * entre una fecha y los dias indicados, hacia el pasado\n *\n * si cuenta 0, devuelve null\n *\n * @param {Object} data - Datos para buscar\n * @param {Date} date - fecha de busqueda\n * @param {Integer} days - diferencia de dias\n * @return {Float} promedio de valores\n */\n getAverage(data, date, days) {\n let total = 0;\n let count = 0;\n let dataSorted = data.sort((a, b) => b.unix - a.unix);\n let from = new Date(date);\n let to = new Date(date);\n from.setDate(from.getDate() - days);\n dataSorted.forEach(d => {\n let dDate = new Date(d.date);\n\n if (from < dDate && dDate < to) {\n let value = parseFloat(d.value);\n\n if (!isNaN(value) && value > 0) {\n total += value;\n count++;\n } else {\n from.setDate(from.getDate() - 1);\n }\n }\n });\n return this.round(count > 0 ? total / count : 0, 2);\n },\n\n /**\n * Meses por posicion, en español\n *\n * @param {Integer} pos - Posicion de mes\n * @return {String} Nombre de mes\n */\n getMonthByPosition(pos) {\n let months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];\n return months[pos];\n },\n\n /**\n * Redondea numeros\n * @param {Float} num - numero decimal para redondear\n * @param {Integer} decimal - cantidad de decimales para redondear\n * @return {Float} Numero redondeado\n */\n round(num, decimal = 2) {\n //let base10 = 10 * decimal;\n //return base10 ? Math.round(num * base10) / base10 : Math.round(num);\n return _.round(num, decimal);\n },\n\n /**\n * Edita variable CSS desde Root\n * @param {String} varName - nombre de variable CSS\n * @param {Any} value - valor a asignar a variable CSS\n */\n setCSSVariable(config, varName, value) {\n let containerElement = document.querySelector(config.selector);\n\n if (containerElement) {\n containerElement.style.setProperty(varName, value);\n }\n },\n\n /**\n * Obtiene valor de variable CSS desde Root\n * @param {String} varName - nombre de variable CSS\n * @return {Float} Numero redondeado\n */\n getCSSVariable(config, varName) {\n let containerElement = document.querySelector(config.selector);\n return containerElement ? getComputedStyle(containerElement).getPropertyValue(varName) : null;\n },\n\n /**\n * Verifica si la pantalla tiene un tamaño mobile\n * modifica this.isMobile\n * breakpoint 960e\n * \n * @return { Boolean } - si el tamaño de pantalla es menor al breakpoint\n */\n checkIsMobile() {\n let breakPoint = 960;\n return Boolean(window.matchMedia(\"(max-width: \" + (breakPoint - 1) + \"px)\").matches);\n },\n\n getTableDimensions(config) {\n let h = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let w = parseFloat(this.getCSSVariable(config, \"--day-width\"));\n let start = new Date(config.timeline.start);\n let end = new Date(config.timeline.end);\n let rows = 0;\n end.setTime(end.getTime() + _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].dayInMilliseconds); // add 24 hours\n\n let diff_time = end.getTime() - start.getTime();\n let days = diff_time / _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].dayInMilliseconds;\n config.data.forEach(d => {\n if (d.isHidden) return;\n rows++;\n\n if (d.children && !d.isClosed) {\n rows += d.children.filter(c => !c.isHidden).length;\n }\n });\n let height = rows * h;\n let width = days * w;\n return {\n height,\n width,\n dayWidth: w,\n itemHeight: h\n };\n },\n\n //https://stackoverflow.com/questions/8027423/how-to-check-if-a-string-is-a-valid-hex-color-representation\n isHexColor(str) {\n let reg = /^#([0-9a-f]{3}){1,2}$/i;\n return reg.test(str);\n },\n\n toCapitalize(str) {\n return (\" \" + str).toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase());\n },\n\n formatNumber(num) {\n return new Intl.NumberFormat(\"es-CL\").format(num).replace(\".\", \" \");\n },\n\n //https://stackoverflow.com/questions/35228052/debounce-function-implemented-with-promises\n debounce(f, interval) {\n let timer = null;\n return (...args) => {\n clearTimeout(timer);\n return new Promise(resolve => {\n timer = setTimeout(() => resolve(f(...args)), interval);\n });\n };\n },\n\n //https://stackoverflow.com/questions/27078285/simple-throttle-in-javascript/27078401#27078401\n throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n\n var later = function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC91dGlscy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NhcGliYXJhLy4vc3JjL3V0aWwvdXRpbHMuanM/OGUxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgIGRhdGVVdGlscyBmcm9tICcuLi91dGlsL2RhdGVVdGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdGFibGVQb3NpdGlvbnM6e1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwLFxuICAgIHNjcm9sbFdpZHRoOiAwLFxuICAgIHNjcm9sbEhlaWdodDogMCxcbiAgICBib3VuZGluZ0NsaWVudFRhYmxlOm51bGwsXG4gICAgYm91bmRpbmdDbGllbnRDb250YWluZXI6IG51bGwsXG5cbiAgICBjb250YWluZXJXaWR0aDogMCxcbiAgICBjb250YWluZXJIZWlnaHQ6IDAsXG4gICAgbmF2TGVmdFdpZHRoOiAwLFxuICAgIGhlYWRlckhlaWdodDowLFxuICAgIGRheVdpZHRoOiAwLFxuICAgIGl0ZW1IZWlnaHQ6IDBcbiAgfSxcblxuICAvKipcbiAgICogT2J0aWVuZSB2YWxvciBkZSB1biBvYmpldG8gc2VndW4gc3UgcnV0YVxuICAgKiBsYSBydXRhIHVzYSBmb3JtYXRvIHNlcGFyYWRhIHBvciBwdW50b1xuICAgKiBjb21wYXRpYmxlIGNvbiBhcnJheXNcbiAgICpcbiAgICogU2kgbm8gc2UgZW5jdWVudHJhLCByZXRvcm5hIG51bGxcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIG9iamV0byBkb25kZSBzZSBidXNjYSBlbCB2YWxvclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW3BhdGg9JyddIC0gcnV0YSBkZWwgdmFsb3JcbiAgICogQHJldHVybiB7Kn0gVmFsb3IgZW5jb250cmFkb1xuICAgKi9cblxuICBnZXRWYXJCeVBhdGgob2JqID0gbnVsbCwgcGF0aCA9ICcnLCBkZWZhdWx0UmV0dXJuID0gbnVsbCkge1xuICAgIGxldCBwYXRocyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgY3VycmVudCA9IG9iaiB8fCB7fTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50ID0gcGF0aHNbaV07XG5cbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBzZWdtZW50byBkZSBydXRhIGNvbnRpZW5lIHVuYSByZWZlcmVuY2lhIGEgdW4gYXJyYXlcbiAgICAgIGlmIChwYXRoU2VnbWVudC5pbmNsdWRlcygnWycpICYmIHBhdGhTZWdtZW50LmluY2x1ZGVzKCddJykpIHtcbiAgICAgICAgY29uc3QgYXJyTmFtZSA9IHBhdGhTZWdtZW50LnNwbGl0KCdbJylbMF07XG4gICAgICAgIGNvbnN0IGFyckluZGV4ID0gcGFyc2VJbnQocGF0aFNlZ21lbnQuc3BsaXQoJ1snKVsxXS5yZXBsYWNlKCddJywgJycpKTtcblxuICAgICAgICBpZiAoY3VycmVudFthcnJOYW1lXSA9PT0gdW5kZWZpbmVkIHx8ICFBcnJheS5pc0FycmF5KGN1cnJlbnRbYXJyTmFtZV0pKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRSZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbYXJyTmFtZV1bYXJySW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaSBubyBlcyB1biBhcnJheSwgdHJhdGEgbGEgcnV0YSBjb21vIHVuYSBwcm9waWVkYWQgZGUgb2JqZXRvIG5vcm1hbFxuICAgICAgICBpZiAoY3VycmVudFtwYXRoU2VnbWVudF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBkZWZhdWx0UmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhdGhTZWdtZW50XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50ID09PSB1bmRlZmluZWQpIHJldHVybiBkZWZhdWx0UmV0dXJuO1xuICAgIHJldHVybiBjdXJyZW50O1xuICB9LFxuXG5cblxuICAgLyoqXG4gICAgKiBPYnRpZW5lIHBvc2ljaW9uIGRlIGVsZW1lbnRvIGRlIHVuIGFycmF5IHNlZ3VuIGRhdGUgZSBpdGVtXG4gICAgKiBVc2FkYSBwYXJhIG9idGVuZXIgcG9zaWNpb24gZGVsIGRpYSBzZWxlY2Npb25hZG9cbiAgICAqXG4gICAgKiBsYSBsaXN0YSBkZSBkaWFzIHNlbGVjY2lvbmFkb3MgZW4gbGlzdCBjb250aWVuZW46XG4gICAgKiAgIHtcbiAgICAqICAgICBkYXRlOiBEYXRlLFxuICAgICogICAgIGl0ZW06IHtcbiAgICAqICAgICAgIGlkOiBJbnRlZ2VyLCAgICBcbiAgICAqICAgICB9XG4gICAgKiAgIH0sXG4gICAgKlxuICAgICogU2kgbm8gbG8gZW5jdWVudHJhIGRldnVlbHZlIC0xO1xuICAgICpcbiAgICAqIEBwYXJhbSB7QXJyYXl9IGxpc3QgLSBBcnJlZ2xvIGRlIGRpYXMgc2VsZWNjaW9uYWRvc1xuICAgICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gcHJvcGllZGFkZXMgZGUgZGlhIHNlbGVjY2lvbmFkb1xuICAgICogQHBhcmFtIHtEYXRlfSBwcm9wcy5kYXRlIC0gZmVjaGEgcGFyYSBjb21wYXJhciBwb3NpY2lvbiBob3Jpem9udGFsXG4gICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMuaXRlbSAtIGl0ZW0gZGUgc2lkZWJhciBwYXJhIGNvbXBhcmFyIHBvc2ljaW9uIHZlcnRpY2FsXG4gICAgKiBAcmV0dXJuIHtbVE9ETzp0eXBlXX0gW1RPRE86ZGVzY3JpcHRpb25dXG4gICAgKi9cbiAgIGluZGV4U2VsZWN0ZWREYXkobGlzdCwgcHJvcHMpe1xuICAgICBsZXQgaW5kZXggPSAtMTtcbiAgICAgbGlzdC5mb3JFYWNoKChsLCBpKSA9PiB7XG4gICAgICAgaWYobC5kYXRlID09IHByb3BzLmRhdGUgJiYgbC5pdGVtLmlkID09IHByb3BzLml0ZW0uaWQpe1xuICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgfVxuICAgICB9KVxuICAgICByZXR1cm4gaW5kZXg7XG4gICB9LFxuXG5cbiAgIC8qKlxuICAgICogT2J0aWVuZSBwb3NpY2lvbiB2ZXJ0aWNhbCBkZWwgaXRlbSBzZWd1biBsb3MgZGF0b3NcbiAgICAqIG1vc3RyYWRvcyBlbiBsYSBwbGFuaWxsYVxuICAgICpcbiAgICAqIHNpIGVsIGFyYm9sIGRlIHVuIGl0ZW0gcGFkcmUgbm8gZXN0YSBkZXNwbGVnYWRvLCBubyBsbyBjb25zaWRlcmFcbiAgICAqXG4gICAgKiBzaSBubyBsbyBlbmN1ZW50cmEsIGRldnVlbHZlIC0xXG4gICAgKlxuICAgICogVE9ETyBkYXIgcG9zaWJpbGlkYWQgZGUgcG9zaXRpb24gcGFyYSBwYXJlbnRzXG4gICAgKlxuICAgICogQHBhcmFtIHtBcnJheX0gZGF0YSAtIEFycmVnbG8gZGUgZGF0b3MsIGNvbiBmb3JtYXRvIGNhcGliYXJhXG4gICAgKiBAcGFyYW0ge2l0ZW19IGl0ZW0gLSBJdGVtIGEgYnVzY2FyIGVuIEFycmF5XG4gICAgKiBAcmV0dXJuIHtJbnRlZ2VyfSBQb3NpY2lvbiwgZGVmYXVsdCAtMVxuICAgICovXG4gICBnZXRQb3NpdGlvbkJ5SXRlbShjb25maWcsIGl0ZW0sIHR5cGVOb2RlID0gXCJjaGlsZFwiKXtcbiAgICAgbGV0IHBvc2l0aW9uID0gLTE7XG4gICAgIGxldCBmaW5hbFBvc2l0aW9uID0gLTE7XG5cbiAgICAgY29uZmlnLmRhdGEuZm9yRWFjaChkID0+IHtcbiAgICAgICBpZihkLmlzSGlkZGVuKSByZXR1cm47XG4gICAgICAgcG9zaXRpb24rKztcbiAgICAgICBpZihkLmlkID09IGl0ZW0uaWQgJiYgdHlwZU5vZGUgPT0gXCJwYXJlbnRcIil7XG4gICAgICAgICBmaW5hbFBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgfVxuICAgICAgICBkLmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgaWYoYy5pc0hpZGRlbikgcmV0dXJuO1xuICAgICAgICAgIGlmKCFkLmlzQ2xvc2VkKXtcbiAgICAgICAgICAgIHBvc2l0aW9uKys7XG4gICAgICAgICAgICBpZih0eXBlTm9kZSA9PVwiY2hpbGRcIiAmJiBjLmlkID09IGl0ZW0uaWQpe1xuICAgICAgICAgICAgICBmaW5hbFBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICB9KTtcblxuICAgICByZXR1cm4gZmluYWxQb3NpdGlvbjtcbiAgIH0sXG5cblxuICAgLyoqXG4gICAgKiBPYnRpZW5lIGl0ZW0gcXVlIGNvcnJlc3BvbmRhIGEgbGEgcG9zaWNpb24gZGUgbW91c2VcbiAgICAqIHVzYWRvIGVuIGV2ZW50b3MgY2xpY2tcbiAgICAqXG4gICAgKiBzaSBlbCBhcmJvbCBkZSB1biBpdGVtIHBhZHJlIG5vIGVzdGEgZGVzcGxlZ2Fkbywgbm8gbG8gY29uc2lkZXJhXG4gICAgKlxuICAgICogc2kgbm8gbG8gZW5jdWVudHJhLCBkZXZ1ZWx2ZSBudWxsO1xuICAgICpcbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDYXBpYmFyYSBjb25maWdcbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBldnQgLSBFdmVudG8gbW91c2UgY2xpY2tcbiAgICAqIEBwYXJhbSB7T2JqZWN0fSAkdGFibGUgLSBFbGVtZW50byBkZSBkb20gJHRhYmxlIGRlIHBsYW5pbGxhXG4gICAgKiBAcmV0dXJuIHtPYmplY3R9IEl0ZW0gZW5jb250cmFkb1xuICAgICovXG4gICBnZXRJdGVtQnlFdmVudChjb25maWcsIGV2dCwgJHRhYmxlKXtcbiAgICAgbGV0IGl0ZW0gICAgICAgICAgID0gbnVsbDtcbiAgICAgbGV0IGFjdHVhbFBvc2l0aW9uID0gMDtcbiAgICAgbGV0IHBvcyAgICAgICAgICAgID0gdGhpcy5ldmVudFRvUG9zaXRpb24oY29uZmlnLCBldnQsICR0YWJsZSk7XG4gICAgIGxldCBwb3NpdGlvbiAgICAgICA9IHBvcy55O1xuICAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgIGlmKGQuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgICBpZihhY3R1YWxQb3NpdGlvbiA9PSBwb3NpdGlvbiAmJiBkLnNlbGVjdGFibGUgIT09IGZhbHNlKXtcbiAgICAgICAgIGl0ZW0gPSBkO1xuICAgICAgIH1cbiAgICAgICBhY3R1YWxQb3NpdGlvbisrO1xuICAgICAgIGlmKCFkLmlzQ2xvc2VkKXtcbiAgICAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcbiAgICAgICAgICBpZihjLmlzSGlkZGVuKSByZXR1cm47XG4gICAgICAgICAgIGlmKGFjdHVhbFBvc2l0aW9uID09IHBvc2l0aW9uICYmIGMuc2VsZWN0YWJsZSAhPT0gZmFsc2Upe1xuICAgICAgICAgICAgIGl0ZW0gPSBjO1xuICAgICAgICAgICB9XG4gICAgICAgICAgIGFjdHVhbFBvc2l0aW9uKys7XG4gICAgICAgICB9KTtcbiAgICAgICB9XG4gICAgIH0pO1xuICAgICByZXR1cm4gaXRlbTtcbiAgIH0sXG5cblxuICAgLyoqXG4gICAgKiBPYnRpZW5lIGZlY2hhIHBvciBwb3NpY2lvbiBkZSBtb3VzZVxuICAgICogdXNhIGV2ZW50byBjbGljayBlbiAkdGFibGVcbiAgICAqXG4gICAgKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhY2lvbiBjYXBpYmFyYVxuICAgICogQHBhcmFtIHtPYmplY3R9IGV2dCAtIEV2ZW50byBtb3VzZSBjbGlja1xuICAgICogQHBhcmFtIHtPYmplY3R9ICR0YWJsZSAtIEVsZW1lbnRvIGRlIGRvbSAkdGFibGUgZGUgcGxhbmlsbGFcbiAgICAqIEByZXR1cm4ge1N0cmluZ30gRmVjaGEgZm9ybWF0ZWFkYSBjb3JyZXNwb25kaWVudGVcbiAgICAqL1xuICAgZ2V0RGF5QnlFdmVudChjb25maWcsIGV2dCwgJHRhYmxlKXtcbiAgICAgbGV0IHBvcyA9IHRoaXMuZXZlbnRUb1Bvc2l0aW9uKGNvbmZpZywgZXZ0LCAkdGFibGUpO1xuICAgICBsZXQgZGF5ID0gZGF0ZVV0aWxzLmFkZERheXNTdHJpbmcoY29uZmlnLnRpbWVsaW5lLnN0YXJ0LCBwb3MueCk7XG4gICAgIHJldHVybiBkYXk7XG4gICB9LFxuXG5cbiAgIC8qKlxuICAgICogT2J0aWVuZSBpdGVtIGRlIGNvbmZpZy5kYXRhIGNhcGliYXJhLCB1c2FuZG8gSURcbiAgICAqXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIENvbmZpZ3VyYWNpb24gQ2FwaWJhcmFcbiAgICAqIEBwYXJhbSB7SW50ZWdlcn0gaWQgLSBJZCBhIGJ1c2NhclxuICAgICogQHBhcmFtIHtTdHJpbmd9IFt0eXBlXSAtIHRpcG8gZGUgaXRlbSBhIGJ1c2NhciBlbiBjb25maWcuZGF0YVxuICAgICogQHBhcmFtIHtCb29sZWFufSBbd2l0aFBhcmVudF0gLSBTaSBzZSBkZXZ1ZWx2ZSBzb2xvIGVsIGl0ZW0gbyBjb24gZWwgcGFyZW50XG4gICAgKiBAcmV0dXJuIHtPYmplY3R9IGl0ZW0gbyB7aXRlbSwgcGFyZW50fVxuICAgICovXG4gICBnZXRJdGVtQnlJZChjb25maWcsIGlkLCB0eXBlTm9kZSA9IFwiY2hpbGRcIiwgd2l0aFBhcmVudCA9IGZhbHNlKXtcbiAgICAgbGV0IGl0ZW0gPSBudWxsO1xuICAgICBsZXQgcGFyZW50ID0gbnVsbDtcblxuICAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgIGlmKGQuaWQgPT0gaWQgJiYgdHlwZU5vZGUgPT0gXCJwYXJlbnRcIil7XG4gICAgICAgICBpdGVtID0gZDtcbiAgICAgICB9XG4gICAgICAgZC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgaWYoYy5pZCA9PSBpZCAmJiB0eXBlTm9kZSA9PSBcImNoaWxkXCIpe1xuICAgICAgICAgICBpdGVtID0gYztcbiAgICAgICAgICAgcGFyZW50ID0gZDtcbiAgICAgICAgIH1cbiAgICAgICB9KTtcbiAgICAgfSk7XG5cbiAgICBpZih3aXRoUGFyZW50KXtcbiAgICAgIHJldHVybiB7aXRlbSwgcGFyZW50fVxuICAgIH1cbiAgICAgcmV0dXJuIGl0ZW07XG4gICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIHBvc2ljaW9uIGRlIG1vdXNlIHNlZ3VuIGV2ZW50b1xuICAgICAqIGNvbiByZXNwZWN0byBhIGxhIHBsYW5pbGxhXG5cbiAgICAgKiAgIGxlZnQgOiBwb3NpY2lvbiBkZXNkZSBpenF1aWVyZGEgZW4gcGl4ZWxlcywgZW4gbXVsdGlwbG9zIGRlbCBhbmNobyBkZWwgZGlhLFxuICAgICAqICAgdG9wICA6IHBvc2ljaW9uIGRlc2RlIGFycmliYSBlbiBwaXhlbGVzLCBjb21vIG11bHRpcGxvIGRlbCBhbHRvIGRlbCBpdGVtLFxuICAgICAqICAgeCAgICA6IHBvc2ljaW9uIGRlc2RlIGl6cXVpZXJkYSwgZW4gb3JkZW4gbnVtZXJpY28sXG4gICAgICogICB5ICAgIDogcG9zaWNpb24gZGVzZGUgYXJyaWJhLCBlbiBvcmRlbiBudW1lcmljbyxcbiAgICAgKiAgIF9yZWFsIDoge1xuICAgICAqICAgICB0b3BPZmZzZXQgIDogZGlmZmVyZW5jaWEgZW50cmUgcG9zaWNpb24gaXpxdWllcmRhIGRlIHBhbnRhbGxhIHkgZGUgdGFibGUsXG4gICAgICogICAgIGxlZnRPZmZzZXQgOiBkaWZmZXJlbmNpYSBlbnRyZSBwb3NpY2lvbiBzdXBlcmlvciBkZSBwYW50YWxsYSB5IGRlIHRhYmxlLFxuICAgICAqICAgICBsZWZ0ICAgICAgIDogcG9zaWNpb24gZW4gcGl4ZWxlcyxcbiAgICAgKiAgICAgdG9wICAgICAgICA6IHBvc2ljaW9uIGVuIHBpeGVsZXNcbiAgICAgKiAgIH1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBjb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGV2IC0gZXZlbnRvIG1vdXNlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGVsZW0gLSBFbGVtZW50byBkb20gVGFyZ2V0LCBwYXJhIHVzYXIgZW4gY2FsY3Vsb3NcbiAgICAgKiBAcmV0dXJuIHtPYmplY3R9IG9iamV0byBjb24gcG9zaWNpb25lc1xuICAgICAqL1xuICAgIGV2ZW50VG9Qb3NpdGlvbihjb25maWcsIGV2LCAkdGFibGUpIHtcbiAgICAgIC8vY29uc29sZS5sb2coXCJldmVudFRvUG9zaXRpb25cIik7XG4gICAgICAgbGV0ICRjb250YWluZXIgPSAkdGFibGUucGFyZW50RWxlbWVudDtcbiAgICAgICBsZXQgcmVjdFRhYmxlICAgICAgID0gdGhpcy50YWJsZVBvc2l0aW9ucy5ib3VuZGluZ0NsaWVudFRhYmxlOyAvL3RhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICBsZXQgcmVjdENvbnRhaW5lciA9IHRoaXMudGFibGVQb3NpdGlvbnMuYm91bmRpbmdDbGllbnRDb250YWluZXI7IC8vdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgIGxldCBpdGVtSGVpZ2h0ID0gcGFyc2VGbG9hdCh0aGlzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIpKTtcbiAgICAgICBsZXQgZGF5V2lkdGggICA9IHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1kYXktd2lkdGhcIikpO1xuICAgICAgIGxldCBoZWFkZXJIZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taGVhZGVyLWhlaWdodFwiKSk7XG4gICAgICAgbGV0IG5hdldpZHRoID0gXG4gICAgICAgIHBhcnNlRmxvYXQoIHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tbmF2LXdpZHRoXCIpICkrXG4gICAgICAgIHBhcnNlRmxvYXQoIHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZXgtbmF2LXdpZHRoXCIpICkrXG4gICAgICAgIHBhcnNlRmxvYXQoIHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tYnRuLW5hdi13aWR0aFwiKSApK1xuICAgICAgICBwYXJzZUZsb2F0KCB0aGlzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWluaXRpYWwtbmF2LXdpZHRoXCIpKTtcblxuICAgICAgIGxldCBwYWRkaW5nTGVmdCAgPSBwYXJzZUludCgkdGFibGUuc3R5bGUucGFkZGluZ0xlZnQgfHwgMCk7ICAgICAgICAgICAvLyAgKyBwYXJzZUludChlbGVtLm9mZnNldExlZnQpO1xuICAgICAgIGxldCBwYWRkaW5nVG9wICA9IHBhcnNlSW50KCR0YWJsZS5zdHlsZS5wYWRkaW5nVG9wIHx8IDApOyAgICAgICAgICAgIC8vICsgcGFyc2VJbnQoZWxlbS5vZmZzZXRUb3ApO1xuXG4gICAgICAgbGV0IGxlZnRQb3NpdGlvbiA9IGV2LmNsaWVudFggLSBwYWRkaW5nTGVmdCAtIHBhcnNlSW50KHJlY3RUYWJsZS5sZWZ0KTtcbiAgICAgICAgICAgbGVmdFBvc2l0aW9uID0gbGVmdFBvc2l0aW9uID49IDAgPyBsZWZ0UG9zaXRpb24gOiAwO1xuXG4gICAgICAgbGV0IHRvcFBvc2l0aW9uID0gZXYuY2xpZW50WSAtIHBhZGRpbmdUb3AgLSBwYXJzZUludChyZWN0VGFibGUudG9wKTtcbiAgICAgICAgICAgdG9wUG9zaXRpb24gPSB0b3BQb3NpdGlvbiA+PSAwID8gdG9wUG9zaXRpb24gOiAwO1xuXG4gICAgICAgbGV0IGxlZnRSb3VuZGVkICA9IGxlZnRQb3NpdGlvbiAtIE1hdGguYWJzKGxlZnRQb3NpdGlvbiAlIGRheVdpZHRoKTtcbiAgICAgICBsZXQgdG9wUm91bmRlZCAgPSB0b3BQb3NpdGlvbiAtIE1hdGguYWJzKHRvcFBvc2l0aW9uICUgaXRlbUhlaWdodCk7XG5cbiAgICAgICBsZXQgbGVmdENsaWVudCA9IGxlZnRQb3NpdGlvbiAtIHRoaXMudGFibGVQb3NpdGlvbnMuc2Nyb2xsTGVmdDtcbiAgICAgICBsZXQgdG9wQ2xpZW50ICA9IHRvcFBvc2l0aW9uIC0gdGhpcy50YWJsZVBvc2l0aW9ucy5zY3JvbGxUb3A7XG4gICAgICAgbGV0IHZpc2libGVXaWR0aCA9IHJlY3RDb250YWluZXIud2lkdGggLSBuYXZXaWR0aDtcbiAgICAgICBsZXQgdmlzaWJsZUhlaWdodCA9IHJlY3RDb250YWluZXIuaGVpZ2h0IC0gaGVhZGVySGVpZ2h0O1xuXG4gICAgICAgIGxldCBwb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIGxlZnRDbGllbnQsICAgICAgLy8gbGVmdCBlbiBwaXhlbGVzLCByZWxhdGl2byBhbCBzZWN0b3IgdmlzaWJsZVxuICAgICAgICAgICAgdG9wQ2xpZW50LCAgICAgICAvLyB0b3AgZW4gcGl4ZWxlcywgcmVsYXRpdm8gYWwgc2VjdG9yIHZpc2libGVcbiAgICAgICAgICAgIGxlZnRQb3NpdGlvbiwgICAgLy8gbGVmdCBlbiBwaXhlbGVzLCByZWxhdGl2byBhbCBlbGVtZW50b1xuICAgICAgICAgICAgdG9wUG9zaXRpb24sICAgICAvLyB0b3AgZW4gcGl4ZWxlcywgcmVsYXRpdm8gYWwgZWxlbWVudG9cbiAgICAgICAgICAgIGxlZnQgICAgIDogbGVmdFJvdW5kZWQsICAgICAgICAgICAgICAvLyBsZWZ0IGVuIHBpeGVsZXMsIHJlbGF0aXZvIGFsIGVsZW1lbnRvLCByZWRvbmRlYWRvXG4gICAgICAgICAgICB0b3AgICAgICA6IHRvcFJvdW5kZWQsICAgICAgICAgICAgICAgLy8gdG9wIGVuIHBpeGVsZXMsIHJlbGF0aXZvIGFsIGVsZW1lbnRvLCByZWRvbmRlYWRvXG4gICAgICAgICAgICB4ICAgICAgICA6IGxlZnRSb3VuZGVkIC8gZGF5V2lkdGgsICAgLy8gbGVmdCBlbiBwb3NpY2lvbiBlbiBkaWFzXG4gICAgICAgICAgICB5ICAgICAgICA6IHRvcFJvdW5kZWQgLyBpdGVtSGVpZ2h0LCAgLy8gdG9wIGVuIHBvc2ljaW9uIGRlIGl0ZW1zXG4gICAgICAgICAgICB5UGVyY2VudCA6IF8ucm91bmQoKHRvcENsaWVudCAvIHZpc2libGVIZWlnaHQpICogMTAwLCAyKSwgICAvLyBsZWZ0IGVuIHBvcmNlbnRhamUsIHJlbGF0aXZvIGFsIHNlY3RvciB2aXNpYmxlXG4gICAgICAgICAgICB4UGVyY2VudCA6IF8ucm91bmQoKGxlZnRDbGllbnQgLyB2aXNpYmxlV2lkdGgpICogMTAwLCAyKSwgICAvLyB0b3AgZW4gcG9yY2VudGFqZSwgcmVsYXRpdm8gYWwgc2VjdG9yIHZpc2libGVcbiAgICAgICAgICAgIHlJbm5lclBlcmNlbnQgOiBfLnJvdW5kKCh0b3BQb3NpdGlvbiAvICggdGhpcy50YWJsZVBvc2l0aW9ucy5zY3JvbGxIZWlnaHQgLSBoZWFkZXJIZWlnaHQpKSAqIDEwMCwgMiksICAgLy8gbGVmdCBlbiBwb3JjZW50YWplLCByZWxhdGl2byBhbCBzZWN0b3IgdmlzaWJsZVxuICAgICAgICAgICAgeElubmVyUGVyY2VudCA6IF8ucm91bmQoKGxlZnRQb3NpdGlvbiAvICggdGhpcy50YWJsZVBvc2l0aW9ucy5zY3JvbGxXaWR0aCAtIG5hdldpZHRoKSkgKiAxMDAsIDIpLCAgIC8vIHRvcCBlbiBwb3JjZW50YWplLCByZWxhdGl2byBhbCBzZWN0b3IgdmlzaWJsZVxuXG4gICAgICAgICAgLypcbiAgICAgICAgICAgIHZpc2libGVXaWR0aCxcbiAgICAgICAgICAgIHZpc2libGVIZWlnaHQsXG4gICAgICAgICAgICBuYXZXaWR0aCxcbiAgICAgICAgICAgIF9yZWFsICAgIDoge1xuICAgICAgICAgICAgICAgIHRvcE9mZnNldCAgOiBwYWRkaW5nVG9wICsgcGFyc2VJbnQocmVjdFRhYmxlLnRvcCksXG4gICAgICAgICAgICAgICAgbGVmdE9mZnNldCA6IHBhZGRpbmdMZWZ0ICsgcGFyc2VJbnQocmVjdFRhYmxlLmxlZnQpLFxuICAgICAgICAgICAgICAgIGxlZnQgICAgICAgOiBsZWZ0UG9zaXRpb24sXG4gICAgICAgICAgICAgICAgdG9wICAgICAgICA6IHRvcFBvc2l0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAqL1xuICAgICAgICB9XG4gICAgICAgIC8vY29uc29sZS50YWJsZShwb3NpdGlvbik7XG4gICAgICAgIC8vY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocG9zaXRpb24pKTtcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xuICAgIH0sXG5cblxuICAgIGV2ZW50VG9Qb3NpdGlvbk5hdkxlZnQoY29uZmlnLCBldiwgZWxlbSkge1xuICAgICAgIGxldCB0YXJnZXQgICAgICAgPSBlbGVtIHx8IGV2LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgbGV0IHJlY3QgICAgICAgICA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgbGV0IHJlY3RQYXJlbnQgICA9IGVsZW0ucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICBsZXQgaXRlbUhlaWdodCAgID0gcGFyc2VGbG9hdCh0aGlzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIpKTtcbiAgICAgICBsZXQgaGVhZGVySGVpZ2h0ID0gcGFyc2VGbG9hdCh0aGlzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWhlYWRlci1oZWlnaHRcIikpO1xuXG4gICAgICAgbGV0IHBhZGRpbmdUb3AgID0gcGFyc2VJbnQodGFyZ2V0LnN0eWxlLnBhZGRpbmdUb3AgfHwgMCk7XG4gICAgICAgbGV0IHRvcFBvc2l0aW9uID0gZXYuY2xpZW50WSAtIHBhZGRpbmdUb3AgLSBwYXJzZUludChyZWN0LnRvcCk7XG4gICAgICAgICAgIHRvcFBvc2l0aW9uID0gdG9wUG9zaXRpb24gPj0gMCA/IHRvcFBvc2l0aW9uIDogMDtcbiAgICAgICBsZXQgdG9wUm91bmRlZCAgPSB0b3BQb3NpdGlvbiAtIE1hdGguYWJzKHRvcFBvc2l0aW9uICUgaXRlbUhlaWdodCk7XG4gICAgICAgbGV0IHRvcENsaWVudCAgID0gdG9wUG9zaXRpb24gLSBlbGVtLnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgIGxldCBwb3NpdGlvbiAgICA9IHtcbiAgICAgICAgICAgIHRvcENsaWVudCwgLy8gdG9wIGVuIHBpeGVsZXMsIHJlbGF0aXZvIGFsIHNlY3RvciB2aXNpYmxlXG4gICAgICAgICAgICB0b3AgICAgICA6IHRvcFJvdW5kZWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9wIGVuIHBpeGVsZXMsIHJlbGF0aXZvIGFsIGVsZW1lbnRvXG4gICAgICAgICAgICB5ICAgICAgICA6IHRvcFJvdW5kZWQgLyBpdGVtSGVpZ2h0LCAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9wIGVuIHBvc2ljaW9uIGRlIGl0ZW1zXG4gICAgICAgICAgICB5UGVyY2VudCA6IF8ucm91bmQoKHRvcENsaWVudCAvIChyZWN0UGFyZW50LmhlaWdodCAtIGhlYWRlckhlaWdodCApKSAqIDEwMCwgMiksICAgLy8gdG9wIGVuIHBvcmNlbnRhamUsIHJlbGF0aXZvIGFsIHNlY3RvciB2aXNpYmxlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xuICAgIH0sXG5cblxuXG5cbiAgZ2V0UG9zaXRpb25CeUl0ZW1EYXRlKGNvbmZpZywgaXRlbSwgZGF0ZSl7XG5cbiAgICBsZXQgaCAgICA9IHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1pdGVtLWhlaWdodFwiKSk7XG4gICAgbGV0IHcgICAgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0tZGF5LXdpZHRoXCIpKTtcbiAgICBsZXQgeSAgICA9IHRoaXMuZ2V0UG9zaXRpb25CeUl0ZW0oY29uZmlnLCBpdGVtKTtcbiAgICBsZXQgeCAgICA9IGRhdGVVdGlscy5kaWZmRGF5cyhjb25maWcudGltZWxpbmUuc3RhcnQsIGRhdGUpO1xuICAgIGxldCBsZWZ0ID0geCAqIHc7XG4gICAgbGV0IHRvcCAgPSB5ICogaDtcblxuICAgIGxldCBwb3NpdGlvbiA9IHtcbiAgICAgIGxlZnQsXG4gICAgICB0b3AsXG4gICAgICB4LFxuICAgICAgeVxuICAgIH1cblxuICAgIHJldHVybiBwb3NpdGlvbjtcbiAgfSxcblxuXG5cbiAgLyoqXG4gICAqIE9idGllbmUgcHJvbWVkaW8gZGUgZGF0b3MsIGRlIHVuYSBsaXN0YSBkZSBkYXRvc1xuICAgKiBlbnRyZSB1bmEgZmVjaGEgeSBsb3MgZGlhcyBpbmRpY2Fkb3MsIGhhY2lhIGVsIHBhc2Fkb1xuICAgKlxuICAgKiBzaSBjdWVudGEgMCwgZGV2dWVsdmUgbnVsbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIERhdG9zIHBhcmEgYnVzY2FyXG4gICAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIGZlY2hhIGRlIGJ1c3F1ZWRhXG4gICAqIEBwYXJhbSB7SW50ZWdlcn0gZGF5cyAtIGRpZmVyZW5jaWEgZGUgZGlhc1xuICAgKiBAcmV0dXJuIHtGbG9hdH0gcHJvbWVkaW8gZGUgdmFsb3Jlc1xuICAgKi9cbiAgZ2V0QXZlcmFnZShkYXRhLCBkYXRlLCBkYXlzKXtcbiAgICBsZXQgdG90YWwgPSAwO1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgbGV0IGRhdGFTb3J0ZWQgPSBkYXRhLnNvcnQoKGEsIGIpID0+IGIudW5peCAtIGEudW5peCApO1xuICAgIGxldCBmcm9tICA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGxldCB0byAgICA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGZyb20uc2V0RGF0ZShmcm9tLmdldERhdGUoKSAtIGRheXMpO1xuXG4gICAgZGF0YVNvcnRlZC5mb3JFYWNoKGQgPT4ge1xuICAgICAgbGV0IGREYXRlID0gbmV3IERhdGUoZC5kYXRlKTtcbiAgICAgIGlmKCBmcm9tIDwgIGREYXRlICYmIGREYXRlIDwgdG8pe1xuICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KGQudmFsdWUpO1xuICAgICAgICBpZighaXNOYU4odmFsdWUpICYmIHZhbHVlID4gMCl7XG4gICAgICAgICAgdG90YWwgKz0gdmFsdWU7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgZnJvbS5zZXREYXRlKGZyb20uZ2V0RGF0ZSgpIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5yb3VuZCggY291bnQgPiAwID8gdG90YWwgLyBjb3VudCA6IDAsIDIpO1xuICB9LFxuXG5cblxuXG4gIC8qKlxuICAgKiBNZXNlcyBwb3IgcG9zaWNpb24sIGVuIGVzcGHDsW9sXG4gICAqXG4gICAqIEBwYXJhbSB7SW50ZWdlcn0gcG9zIC0gUG9zaWNpb24gZGUgbWVzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gTm9tYnJlIGRlIG1lc1xuICAgKi9cbiAgZ2V0TW9udGhCeVBvc2l0aW9uKHBvcyl7XG4gICAgbGV0IG1vbnRocyA9IFtcbiAgICAgICAgJ0VuZXJvJyxcbiAgICAgICAgJ0ZlYnJlcm8nLFxuICAgICAgICAnTWFyem8nLFxuICAgICAgICAnQWJyaWwnLFxuICAgICAgICAnTWF5bycsXG4gICAgICAgICdKdW5pbycsXG4gICAgICAgICdKdWxpbycsXG4gICAgICAgICdBZ29zdG8nLFxuICAgICAgICAnU2VwdGllbWJyZScsXG4gICAgICAgICdPY3R1YnJlJyxcbiAgICAgICAgJ05vdmllbWJyZScsXG4gICAgICAgICdEaWNpZW1icmUnXTtcbiAgICByZXR1cm4gbW9udGhzW3Bvc107XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlZG9uZGVhIG51bWVyb3NcbiAgICogQHBhcmFtIHtGbG9hdH0gbnVtIC0gbnVtZXJvIGRlY2ltYWwgcGFyYSByZWRvbmRlYXJcbiAgICogQHBhcmFtIHtJbnRlZ2VyfSAgZGVjaW1hbCAtIGNhbnRpZGFkIGRlIGRlY2ltYWxlcyBwYXJhIHJlZG9uZGVhclxuICAgKiBAcmV0dXJuIHtGbG9hdH0gTnVtZXJvIHJlZG9uZGVhZG9cbiAgICovXG4gIHJvdW5kKG51bSwgZGVjaW1hbCA9IDIpe1xuICAgIC8vbGV0IGJhc2UxMCA9IDEwICogZGVjaW1hbDtcbiAgICAvL3JldHVybiBiYXNlMTAgPyBNYXRoLnJvdW5kKG51bSAqIGJhc2UxMCkgLyBiYXNlMTAgOiBNYXRoLnJvdW5kKG51bSk7XG4gICAgcmV0dXJuIF8ucm91bmQobnVtLCBkZWNpbWFsKTtcbiAgfSxcblxuXG4gIC8qKlxuICAgKiBFZGl0YSB2YXJpYWJsZSBDU1MgZGVzZGUgUm9vdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFyTmFtZSAtIG5vbWJyZSBkZSB2YXJpYWJsZSBDU1NcbiAgICogQHBhcmFtIHtBbnl9IHZhbHVlIC0gdmFsb3IgYSBhc2lnbmFyIGEgdmFyaWFibGUgQ1NTXG4gICAqL1xuXG4gIHNldENTU1ZhcmlhYmxlKGNvbmZpZywgdmFyTmFtZSwgdmFsdWUpIHtcbiAgICBsZXQgY29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY29uZmlnLnNlbGVjdG9yKTtcbiAgICBpZihjb250YWluZXJFbGVtZW50KXtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkodmFyTmFtZSx2YWx1ZSk7IFxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogT2J0aWVuZSB2YWxvciBkZSB2YXJpYWJsZSBDU1MgZGVzZGUgUm9vdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFyTmFtZSAtIG5vbWJyZSBkZSB2YXJpYWJsZSBDU1NcbiAgICogQHJldHVybiB7RmxvYXR9IE51bWVybyByZWRvbmRlYWRvXG4gICAqL1xuXG4gIGdldENTU1ZhcmlhYmxlKGNvbmZpZywgdmFyTmFtZSkge1xuICAgIGxldCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihjb25maWcuc2VsZWN0b3IpO1xuICAgIHJldHVybiBjb250YWluZXJFbGVtZW50ID8gZ2V0Q29tcHV0ZWRTdHlsZShjb250YWluZXJFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHZhck5hbWUpIDogbnVsbDtcbiAgfSxcblxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBsYSBwYW50YWxsYSB0aWVuZSB1biB0YW1hw7FvIG1vYmlsZVxuICAgKiBtb2RpZmljYSB0aGlzLmlzTW9iaWxlXG4gICAqIGJyZWFrcG9pbnQgOTYwZVxuICAgKiBcbiAgICogQHJldHVybiB7IEJvb2xlYW4gfSAtIHNpIGVsIHRhbWHDsW8gZGUgcGFudGFsbGEgZXMgbWVub3IgYWwgYnJlYWtwb2ludFxuICAgKi9cbiAgY2hlY2tJc01vYmlsZSgpe1xuICAgIGxldCBicmVha1BvaW50ID0gOTYwO1xuICAgIHJldHVybiBCb29sZWFuKHdpbmRvdy5tYXRjaE1lZGlhKFxuICAgICAgXCIobWF4LXdpZHRoOiBcIiArIChicmVha1BvaW50IC0gMSkgICsgXCJweClcIlxuICAgICkubWF0Y2hlcyk7XG4gIH0sXG5cblxuICBnZXRUYWJsZURpbWVuc2lvbnMoY29uZmlnKXtcbiAgICBsZXQgaCAgICAgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIikpO1xuICAgIGxldCB3ICAgICA9IHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1kYXktd2lkdGhcIikpO1xuICAgIGxldCBzdGFydCA9IG5ldyBEYXRlKGNvbmZpZy50aW1lbGluZS5zdGFydCk7XG4gICAgbGV0IGVuZCAgID0gbmV3IERhdGUoY29uZmlnLnRpbWVsaW5lLmVuZCk7XG4gICAgbGV0IHJvd3MgID0gMDtcblxuICAgIGVuZC5zZXRUaW1lKGVuZC5nZXRUaW1lKCkgKyBkYXRlVXRpbHMuZGF5SW5NaWxsaXNlY29uZHMpOy8vIGFkZCAyNCBob3Vyc1xuXG4gICAgbGV0IGRpZmZfdGltZSAgICA9IGVuZC5nZXRUaW1lKCkgLSBzdGFydC5nZXRUaW1lKCk7XG4gICAgbGV0IGRheXMgICAgICAgICA9IGRpZmZfdGltZSAvIGRhdGVVdGlscy5kYXlJbk1pbGxpc2Vjb25kcyA7XG5cbiAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgaWYoZC5pc0hpZGRlbikgcmV0dXJuO1xuICAgICAgcm93cysrO1xuICAgICAgaWYoZC5jaGlsZHJlbiAmJiAhZC5pc0Nsb3NlZCl7XG4gICAgICAgIHJvd3MgKz0gZC5jaGlsZHJlbi5maWx0ZXIoYyA9PiAhYy5pc0hpZGRlbikubGVuZ3RoO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGhlaWdodCA9IHJvd3MgKiBoO1xuICAgIGxldCB3aWR0aCA9IGRheXMgKiB3O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodCxcbiAgICAgIHdpZHRoLFxuICAgICAgZGF5V2lkdGg6IHcsXG4gICAgICBpdGVtSGVpZ2h0OiBoXG4gICAgfVxuXG4gIH0sXG5cbiAgLy9odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy84MDI3NDIzL2hvdy10by1jaGVjay1pZi1hLXN0cmluZy1pcy1hLXZhbGlkLWhleC1jb2xvci1yZXByZXNlbnRhdGlvblxuICBpc0hleENvbG9yKHN0cil7XG4gICAgbGV0IHJlZz0vXiMoWzAtOWEtZl17M30pezEsMn0kL2k7XG4gICAgcmV0dXJuIHJlZy50ZXN0KHN0cilcbiAgfSxcblxuICB0b0NhcGl0YWxpemUoc3RyKSB7XG4gICAgICByZXR1cm4gKFwiIFwiK3N0cikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtekEtWjAtOV0rKC4pL2csIChtLCBjaHIpID0+IGNoci50b1VwcGVyQ2FzZSgpKTtcbiAgfSxcblxuICBmb3JtYXROdW1iZXIobnVtKXtcbiAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KFwiZXMtQ0xcIikuZm9ybWF0KG51bSkucmVwbGFjZShcIi5cIiwgXCIgXCIpO1xuICB9LFxuXG4gIFxuICAvL2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1MjI4MDUyL2RlYm91bmNlLWZ1bmN0aW9uLWltcGxlbWVudGVkLXdpdGgtcHJvbWlzZXNcbiAgZGVib3VuY2UoZiwgaW50ZXJ2YWwpIHtcbiAgICBsZXQgdGltZXIgPSBudWxsO1xuICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZShmKC4uLmFyZ3MpKSwgaW50ZXJ2YWwpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcblxuICAvL2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3MDc4Mjg1L3NpbXBsZS10aHJvdHRsZS1pbi1qYXZhc2NyaXB0LzI3MDc4NDAxIzI3MDc4NDAxXG4gIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICB2YXIgY29udGV4dCwgYXJncywgcmVzdWx0O1xuICAgIHZhciB0aW1lb3V0ID0gbnVsbDtcbiAgICB2YXIgcHJldmlvdXMgPSAwO1xuICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICAgIHZhciBsYXRlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgcHJldmlvdXMgPSBvcHRpb25zLmxlYWRpbmcgPT09IGZhbHNlID8gMCA6IERhdGUubm93KCk7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICBpZiAoIXRpbWVvdXQpIGNvbnRleHQgPSBhcmdzID0gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgaWYgKCFwcmV2aW91cyAmJiBvcHRpb25zLmxlYWRpbmcgPT09IGZhbHNlKSBwcmV2aW91cyA9IG5vdztcbiAgICAgIHZhciByZW1haW5pbmcgPSB3YWl0IC0gKG5vdyAtIHByZXZpb3VzKTtcbiAgICAgIGNvbnRleHQgPSB0aGlzO1xuICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgIGlmIChyZW1haW5pbmcgPD0gMCB8fCByZW1haW5pbmcgPiB3YWl0KSB7XG4gICAgICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgIHRpbWVvdXQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHByZXZpb3VzID0gbm93O1xuICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICBpZiAoIXRpbWVvdXQpIGNvbnRleHQgPSBhcmdzID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoIXRpbWVvdXQgJiYgb3B0aW9ucy50cmFpbGluZyAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHJlbWFpbmluZyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6QkE7QUEyQkE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFMQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUF0aUJBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/util/utils.js\n");
|
|
270
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/dateUtils */ \"./src/util/dateUtils.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n tablePositions: {\n scrollLeft: 0,\n scrollTop: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n boundingClientTable: null,\n boundingClientContainer: null,\n containerWidth: 0,\n containerHeight: 0,\n navLeftWidth: 0,\n headerHeight: 0,\n dayWidth: 0,\n itemHeight: 0\n },\n\n /**\n * Obtiene valor de un objeto segun su ruta\n * la ruta usa formato separada por punto\n * compatible con arrays\n *\n * Si no se encuentra, retorna null\n *\n * @param {Object} obj - objeto donde se busca el valor\n * @param {String} [path=''] - ruta del valor\n * @return {*} Valor encontrado\n */\n getVarByPath(obj = null, path = '', defaultReturn = null) {\n let paths = path.split('.');\n let current = obj || {};\n\n for (let i = 0; i < paths.length; ++i) {\n const pathSegment = paths[i]; // Verificar si el segmento de ruta contiene una referencia a un array\n\n if (pathSegment.includes('[') && pathSegment.includes(']')) {\n const arrName = pathSegment.split('[')[0];\n const arrIndex = parseInt(pathSegment.split('[')[1].replace(']', ''));\n\n if (current[arrName] === undefined || !Array.isArray(current[arrName])) {\n return defaultReturn;\n } else {\n current = current[arrName][arrIndex];\n }\n } else {\n // Si no es un array, trata la ruta como una propiedad de objeto normal\n if (current[pathSegment] === undefined) {\n return defaultReturn;\n } else {\n current = current[pathSegment];\n }\n }\n }\n\n if (current === undefined) return defaultReturn;\n return current;\n },\n\n /**\n * Obtiene posicion de elemento de un array segun date e item\n * Usada para obtener posicion del dia seleccionado\n *\n * la lista de dias seleccionados en list contienen:\n * {\n * date: Date,\n * item: {\n * id: Integer, \n * }\n * },\n *\n * Si no lo encuentra devuelve -1;\n *\n * @param {Array} list - Arreglo de dias seleccionados\n * @param {Object} props - propiedades de dia seleccionado\n * @param {Date} props.date - fecha para comparar posicion horizontal\n * @param {Object} props.item - item de sidebar para comparar posicion vertical\n * @return {[TODO:type]} [TODO:description]\n */\n indexSelectedDay(list, props) {\n let index = -1;\n list.forEach((l, i) => {\n if (l.date == props.date && l.item.id == props.item.id) {\n index = i;\n }\n });\n return index;\n },\n\n /**\n * Obtiene posicion vertical del item segun los datos\n * mostrados en la planilla\n *\n * si el arbol de un item padre no esta desplegado, no lo considera\n *\n * si no lo encuentra, devuelve -1\n *\n * TODO dar posibilidad de position para parents\n *\n * @param {Array} data - Arreglo de datos, con formato capibara\n * @param {item} item - Item a buscar en Array\n * @return {Integer} Posicion, default -1\n */\n getPositionByItem(config, item, typeNode = \"child\") {\n let position = -1;\n let finalPosition = -1;\n config.data.forEach(d => {\n if (d.isHidden) return;\n position++;\n\n if (d.id == item.id && typeNode == \"parent\") {\n finalPosition = position;\n }\n\n d.children.forEach(c => {\n if (c.isHidden) return;\n\n if (!d.isClosed) {\n position++;\n\n if (typeNode == \"child\" && c.id == item.id) {\n finalPosition = position;\n }\n }\n });\n });\n return finalPosition;\n },\n\n /**\n * Obtiene item que corresponda a la posicion de mouse\n * usado en eventos click\n *\n * si el arbol de un item padre no esta desplegado, no lo considera\n *\n * si no lo encuentra, devuelve null;\n *\n * @param {Object} config - Capibara config\n * @param {Object} evt - Evento mouse click\n * @param {Object} $table - Elemento de dom $table de planilla\n * @return {Object} Item encontrado\n */\n getItemByEvent(config, evt, $table) {\n let item = null;\n let actualPosition = 0;\n let pos = this.eventToPosition(config, evt, $table);\n let position = pos.y;\n config.data.forEach(d => {\n if (d.isHidden) return;\n\n if (actualPosition == position && d.selectable !== false) {\n item = d;\n }\n\n actualPosition++;\n\n if (!d.isClosed) {\n d.children.forEach(c => {\n if (c.isHidden) return;\n\n if (actualPosition == position && c.selectable !== false) {\n item = c;\n }\n\n actualPosition++;\n });\n }\n });\n return item;\n },\n\n /**\n * Obtiene fecha por posicion de mouse\n * usa evento click en $table\n *\n * @param {Object} config - Configuracion capibara\n * @param {Object} evt - Evento mouse click\n * @param {Object} $table - Elemento de dom $table de planilla\n * @return {String} Fecha formateada correspondiente\n */\n getDayByEvent(config, evt, $table) {\n let pos = this.eventToPosition(config, evt, $table);\n let day = _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].addDaysString(config.timeline.start, pos.x);\n return day;\n },\n\n /**\n * Obtiene item de config.data capibara, usando ID\n *\n * @param {Object} data - Configuracion Capibara\n * @param {Integer} id - Id a buscar\n * @param {String} [type] - tipo de item a buscar en config.data\n * @param {Boolean} [withParent] - Si se devuelve solo el item o con el parent\n * @return {Object} item o {item, parent}\n */\n getItemById(config, id, typeNode = \"child\", withParent = false) {\n let item = null;\n let parent = null;\n config.data.forEach(d => {\n if (d.id == id && typeNode == \"parent\") {\n item = d;\n }\n\n d.children.forEach(c => {\n if (c.id == id && typeNode == \"child\") {\n item = c;\n parent = d;\n }\n });\n });\n\n if (withParent) {\n return {\n item,\n parent\n };\n }\n\n return item;\n },\n\n /**\n * Obtiene posicion de mouse segun evento\n * con respecto a la planilla\n * left : posicion desde izquierda en pixeles, en multiplos del ancho del dia,\n * top : posicion desde arriba en pixeles, como multiplo del alto del item,\n * x : posicion desde izquierda, en orden numerico,\n * y : posicion desde arriba, en orden numerico,\n * _real : {\n * topOffset : differencia entre posicion izquierda de pantalla y de table,\n * leftOffset : differencia entre posicion superior de pantalla y de table,\n * left : posicion en pixeles,\n * top : posicion en pixeles\n * }\n *\n * @param {Object} config - configuracion capibara\n * @param {Object} ev - evento mouse\n * @param {Object} elem - Elemento dom Target, para usar en calculos\n * @return {Object} objeto con posiciones\n */\n eventToPosition(config, ev, $table) {\n //console.log(\"eventToPosition\");\n let $container = $table.parentElement;\n let rectTable = this.tablePositions.boundingClientTable; //target.getBoundingClientRect();\n\n let rectContainer = this.tablePositions.boundingClientContainer; //target.getBoundingClientRect();\n\n let itemHeight = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let dayWidth = parseFloat(this.getCSSVariable(config, \"--day-width\"));\n let headerHeight = parseFloat(this.getCSSVariable(config, \"--header-height\"));\n let navWidth = parseFloat(this.getCSSVariable(config, \"--nav-width\")) + parseFloat(this.getCSSVariable(config, \"--ex-nav-width\")) + parseFloat(this.getCSSVariable(config, \"--btn-nav-width\")) + parseFloat(this.getCSSVariable(config, \"--initial-nav-width\"));\n let paddingLeft = parseInt($table.style.paddingLeft || 0); // + parseInt(elem.offsetLeft);\n\n let paddingTop = parseInt($table.style.paddingTop || 0); // + parseInt(elem.offsetTop);\n\n let leftPosition = ev.clientX - paddingLeft - parseInt(rectTable.left);\n leftPosition = leftPosition >= 0 ? leftPosition : 0;\n let topPosition = ev.clientY - paddingTop - parseInt(rectTable.top);\n topPosition = topPosition >= 0 ? topPosition : 0;\n let leftRounded = leftPosition - Math.abs(leftPosition % dayWidth);\n let topRounded = topPosition - Math.abs(topPosition % itemHeight);\n let leftClient = leftPosition - this.tablePositions.scrollLeft;\n let topClient = topPosition - this.tablePositions.scrollTop;\n let visibleWidth = rectContainer.width - navWidth;\n let visibleHeight = rectContainer.height - headerHeight;\n let position = {\n leftClient,\n // left en pixeles, relativo al sector visible\n topClient,\n // top en pixeles, relativo al sector visible\n leftPosition,\n // left en pixeles, relativo al elemento\n topPosition,\n // top en pixeles, relativo al elemento\n left: leftRounded,\n // left en pixeles, relativo al elemento, redondeado\n top: topRounded,\n // top en pixeles, relativo al elemento, redondeado\n x: leftRounded / dayWidth,\n // left en posicion en dias\n y: topRounded / itemHeight,\n // top en posicion de items\n yPercent: _.round(topClient / visibleHeight * 100, 2),\n // left en porcentaje, relativo al sector visible\n xPercent: _.round(leftClient / visibleWidth * 100, 2),\n // top en porcentaje, relativo al sector visible\n yInnerPercent: _.round(topPosition / (this.tablePositions.scrollHeight - headerHeight) * 100, 2),\n // left en porcentaje, relativo al sector visible\n xInnerPercent: _.round(leftPosition / (this.tablePositions.scrollWidth - navWidth) * 100, 2) // top en porcentaje, relativo al sector visible\n\n /*\n visibleWidth,\n visibleHeight,\n navWidth,\n _real : {\n topOffset : paddingTop + parseInt(rectTable.top),\n leftOffset : paddingLeft + parseInt(rectTable.left),\n left : leftPosition,\n top : topPosition\n }\n */\n\n }; //console.table(position);\n //console.log(JSON.stringify(position));\n\n return position;\n },\n\n eventToPositionNavLeft(config, ev, elem) {\n let target = elem || ev.currentTarget;\n let rect = elem.getBoundingClientRect();\n let rectParent = elem.parentElement.getBoundingClientRect();\n let itemHeight = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let headerHeight = parseFloat(this.getCSSVariable(config, \"--header-height\"));\n let paddingTop = parseInt(target.style.paddingTop || 0);\n let topPosition = ev.clientY - paddingTop - parseInt(rect.top);\n topPosition = topPosition >= 0 ? topPosition : 0;\n let topRounded = topPosition - Math.abs(topPosition % itemHeight);\n let topClient = topPosition - elem.parentElement.scrollTop;\n let position = {\n topClient,\n // top en pixeles, relativo al sector visible\n top: topRounded,\n // top en pixeles, relativo al elemento\n y: topRounded / itemHeight,\n // top en posicion de items\n yPercent: _.round(topClient / (rectParent.height - headerHeight) * 100, 2) // top en porcentaje, relativo al sector visible\n\n };\n return position;\n },\n\n getPositionByItemDate(config, item, date) {\n let h = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let w = parseFloat(this.getCSSVariable(config, \"--day-width\"));\n let y = this.getPositionByItem(config, item);\n let x = _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].diffDays(config.timeline.start, date);\n let left = x * w;\n let top = y * h;\n let position = {\n left,\n top,\n x,\n y\n };\n return position;\n },\n\n /**\n * Obtiene promedio de datos, de una lista de datos\n * entre una fecha y los dias indicados, hacia el pasado\n *\n * si cuenta 0, devuelve null\n *\n * @param {Object} data - Datos para buscar\n * @param {Date} date - fecha de busqueda\n * @param {Integer} days - diferencia de dias\n * @return {Float} promedio de valores\n */\n getAverage(data, date, days) {\n let total = 0;\n let count = 0;\n let dataSorted = data.sort((a, b) => b.unix - a.unix);\n let from = new Date(date);\n let to = new Date(date);\n from.setDate(from.getDate() - days);\n dataSorted.forEach(d => {\n let dDate = new Date(d.date);\n\n if (from < dDate && dDate < to) {\n let value = parseFloat(d.value);\n\n if (!isNaN(value) && value > 0) {\n total += value;\n count++;\n } else {\n from.setDate(from.getDate() - 1);\n }\n }\n });\n return this.round(count > 0 ? total / count : 0, 2);\n },\n\n /**\n * Meses por posicion, en español\n *\n * @param {Integer} pos - Posicion de mes\n * @return {String} Nombre de mes\n */\n getMonthByPosition(pos) {\n let months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];\n return months[pos];\n },\n\n /**\n * Redondea numeros\n * @param {Float} num - numero decimal para redondear\n * @param {Integer} decimal - cantidad de decimales para redondear\n * @return {Float} Numero redondeado\n */\n round(num, decimal = 2) {\n //let base10 = 10 * decimal;\n //return base10 ? Math.round(num * base10) / base10 : Math.round(num);\n return _.round(num, decimal);\n },\n\n /**\n * Edita variable CSS desde Root\n * @param {String} varName - nombre de variable CSS\n * @param {Any} value - valor a asignar a variable CSS\n */\n setCSSVariable(config, varName, value) {\n let containerElement = document.querySelector(config.selector);\n\n if (containerElement) {\n containerElement.style.setProperty(varName, value);\n }\n },\n\n /**\n * Obtiene valor de variable CSS desde Root\n * @param {String} varName - nombre de variable CSS\n * @return {Float} Numero redondeado\n */\n getCSSVariable(config, varName) {\n let containerElement = document.querySelector(config.selector);\n return containerElement ? getComputedStyle(containerElement).getPropertyValue(varName) : null;\n },\n\n /**\n * Verifica si la pantalla tiene un tamaño mobile\n * modifica this.isMobile\n * breakpoint 960e\n * \n * @return { Boolean } - si el tamaño de pantalla es menor al breakpoint\n */\n checkIsMobile() {\n let breakPoint = 960;\n return Boolean(window.matchMedia(\"(max-width: \" + (breakPoint - 1) + \"px)\").matches);\n },\n\n getTableDimensions(config) {\n let h = parseFloat(this.getCSSVariable(config, \"--item-height\"));\n let w = parseFloat(this.getCSSVariable(config, \"--day-width\"));\n let start = new Date(config.timeline.start);\n let end = new Date(config.timeline.end);\n let rows = 0;\n end.setTime(end.getTime() + _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].dayInMilliseconds); // add 24 hours\n\n let diff_time = end.getTime() - start.getTime();\n let days = diff_time / _util_dateUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].dayInMilliseconds;\n config.data.forEach(d => {\n if (d.isHidden) return;\n rows++;\n\n if (d.children && !d.isClosed) {\n rows += d.children.filter(c => !c.isHidden).length;\n }\n });\n let height = rows * h;\n let width = days * w;\n return {\n height,\n width,\n dayWidth: w,\n itemHeight: h\n };\n },\n\n //https://stackoverflow.com/questions/8027423/how-to-check-if-a-string-is-a-valid-hex-color-representation\n isHexColor(str) {\n let reg = /^#([0-9a-f]{3}){1,2}$/i;\n return reg.test(str);\n },\n\n toCapitalize(str) {\n return (\" \" + str).toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase());\n },\n\n formatNumber(num) {\n return new Intl.NumberFormat(\"es-CL\").format(num).replace(\".\", \" \");\n },\n\n //https://stackoverflow.com/questions/35228052/debounce-function-implemented-with-promises\n debounce(f, interval) {\n let timer = null;\n return (...args) => {\n clearTimeout(timer);\n return new Promise(resolve => {\n timer = setTimeout(() => resolve(f(...args)), interval);\n });\n };\n },\n\n //https://stackoverflow.com/questions/27078285/simple-throttle-in-javascript/27078401#27078401\n throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n\n var later = function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdXRpbC91dGlscy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NhcGliYXJhLy4vc3JjL3V0aWwvdXRpbHMuanM/OGUxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF0ZVV0aWxzIGZyb20gJy4uL3V0aWwvZGF0ZVV0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICB0YWJsZVBvc2l0aW9uczoge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwLFxuICAgIHNjcm9sbFdpZHRoOiAwLFxuICAgIHNjcm9sbEhlaWdodDogMCxcbiAgICBib3VuZGluZ0NsaWVudFRhYmxlOiBudWxsLFxuICAgIGJvdW5kaW5nQ2xpZW50Q29udGFpbmVyOiBudWxsLFxuXG4gICAgY29udGFpbmVyV2lkdGg6IDAsXG4gICAgY29udGFpbmVySGVpZ2h0OiAwLFxuICAgIG5hdkxlZnRXaWR0aDogMCxcbiAgICBoZWFkZXJIZWlnaHQ6IDAsXG4gICAgZGF5V2lkdGg6IDAsXG4gICAgaXRlbUhlaWdodDogMFxuICB9LFxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHZhbG9yIGRlIHVuIG9iamV0byBzZWd1biBzdSBydXRhXG4gICAqIGxhIHJ1dGEgdXNhIGZvcm1hdG8gc2VwYXJhZGEgcG9yIHB1bnRvXG4gICAqIGNvbXBhdGlibGUgY29uIGFycmF5c1xuICAgKlxuICAgKiBTaSBubyBzZSBlbmN1ZW50cmEsIHJldG9ybmEgbnVsbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gb2JqZXRvIGRvbmRlIHNlIGJ1c2NhIGVsIHZhbG9yXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbcGF0aD0nJ10gLSBydXRhIGRlbCB2YWxvclxuICAgKiBAcmV0dXJuIHsqfSBWYWxvciBlbmNvbnRyYWRvXG4gICAqL1xuXG4gIGdldFZhckJ5UGF0aChvYmogPSBudWxsLCBwYXRoID0gJycsIGRlZmF1bHRSZXR1cm4gPSBudWxsKSB7XG4gICAgbGV0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqIHx8IHt9O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7ICsraSkge1xuICAgICAgY29uc3QgcGF0aFNlZ21lbnQgPSBwYXRoc1tpXTtcblxuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHNlZ21lbnRvIGRlIHJ1dGEgY29udGllbmUgdW5hIHJlZmVyZW5jaWEgYSB1biBhcnJheVxuICAgICAgaWYgKHBhdGhTZWdtZW50LmluY2x1ZGVzKCdbJykgJiYgcGF0aFNlZ21lbnQuaW5jbHVkZXMoJ10nKSkge1xuICAgICAgICBjb25zdCBhcnJOYW1lID0gcGF0aFNlZ21lbnQuc3BsaXQoJ1snKVswXTtcbiAgICAgICAgY29uc3QgYXJySW5kZXggPSBwYXJzZUludChwYXRoU2VnbWVudC5zcGxpdCgnWycpWzFdLnJlcGxhY2UoJ10nLCAnJykpO1xuXG4gICAgICAgIGlmIChjdXJyZW50W2Fyck5hbWVdID09PSB1bmRlZmluZWQgfHwgIUFycmF5LmlzQXJyYXkoY3VycmVudFthcnJOYW1lXSkpIHtcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFthcnJOYW1lXVthcnJJbmRleF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpIG5vIGVzIHVuIGFycmF5LCB0cmF0YSBsYSBydXRhIGNvbW8gdW5hIHByb3BpZWRhZCBkZSBvYmpldG8gbm9ybWFsXG4gICAgICAgIGlmIChjdXJyZW50W3BhdGhTZWdtZW50XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRSZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbcGF0aFNlZ21lbnRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRSZXR1cm47XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH0sXG5cblxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHBvc2ljaW9uIGRlIGVsZW1lbnRvIGRlIHVuIGFycmF5IHNlZ3VuIGRhdGUgZSBpdGVtXG4gICAqIFVzYWRhIHBhcmEgb2J0ZW5lciBwb3NpY2lvbiBkZWwgZGlhIHNlbGVjY2lvbmFkb1xuICAgKlxuICAgKiBsYSBsaXN0YSBkZSBkaWFzIHNlbGVjY2lvbmFkb3MgZW4gbGlzdCBjb250aWVuZW46XG4gICAqICAge1xuICAgKiAgICAgZGF0ZTogRGF0ZSxcbiAgICogICAgIGl0ZW06IHtcbiAgICogICAgICAgaWQ6IEludGVnZXIsICAgIFxuICAgKiAgICAgfVxuICAgKiAgIH0sXG4gICAqXG4gICAqIFNpIG5vIGxvIGVuY3VlbnRyYSBkZXZ1ZWx2ZSAtMTtcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheX0gbGlzdCAtIEFycmVnbG8gZGUgZGlhcyBzZWxlY2Npb25hZG9zXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIHByb3BpZWRhZGVzIGRlIGRpYSBzZWxlY2Npb25hZG9cbiAgICogQHBhcmFtIHtEYXRlfSBwcm9wcy5kYXRlIC0gZmVjaGEgcGFyYSBjb21wYXJhciBwb3NpY2lvbiBob3Jpem9udGFsXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcy5pdGVtIC0gaXRlbSBkZSBzaWRlYmFyIHBhcmEgY29tcGFyYXIgcG9zaWNpb24gdmVydGljYWxcbiAgICogQHJldHVybiB7W1RPRE86dHlwZV19IFtUT0RPOmRlc2NyaXB0aW9uXVxuICAgKi9cbiAgaW5kZXhTZWxlY3RlZERheShsaXN0LCBwcm9wcykge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGxpc3QuZm9yRWFjaCgobCwgaSkgPT4ge1xuICAgICAgaWYgKGwuZGF0ZSA9PSBwcm9wcy5kYXRlICYmIGwuaXRlbS5pZCA9PSBwcm9wcy5pdGVtLmlkKSB7XG4gICAgICAgIGluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBpbmRleDtcbiAgfSxcblxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHBvc2ljaW9uIHZlcnRpY2FsIGRlbCBpdGVtIHNlZ3VuIGxvcyBkYXRvc1xuICAgKiBtb3N0cmFkb3MgZW4gbGEgcGxhbmlsbGFcbiAgICpcbiAgICogc2kgZWwgYXJib2wgZGUgdW4gaXRlbSBwYWRyZSBubyBlc3RhIGRlc3BsZWdhZG8sIG5vIGxvIGNvbnNpZGVyYVxuICAgKlxuICAgKiBzaSBubyBsbyBlbmN1ZW50cmEsIGRldnVlbHZlIC0xXG4gICAqXG4gICAqIFRPRE8gZGFyIHBvc2liaWxpZGFkIGRlIHBvc2l0aW9uIHBhcmEgcGFyZW50c1xuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIC0gQXJyZWdsbyBkZSBkYXRvcywgY29uIGZvcm1hdG8gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtpdGVtfSBpdGVtIC0gSXRlbSBhIGJ1c2NhciBlbiBBcnJheVxuICAgKiBAcmV0dXJuIHtJbnRlZ2VyfSBQb3NpY2lvbiwgZGVmYXVsdCAtMVxuICAgKi9cbiAgZ2V0UG9zaXRpb25CeUl0ZW0oY29uZmlnLCBpdGVtLCB0eXBlTm9kZSA9IFwiY2hpbGRcIikge1xuICAgIGxldCBwb3NpdGlvbiA9IC0xO1xuICAgIGxldCBmaW5hbFBvc2l0aW9uID0gLTE7XG5cbiAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgIHBvc2l0aW9uKys7XG4gICAgICBpZiAoZC5pZCA9PSBpdGVtLmlkICYmIHR5cGVOb2RlID09IFwicGFyZW50XCIpIHtcbiAgICAgICAgZmluYWxQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgfVxuICAgICAgZC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoYy5pc0hpZGRlbikgcmV0dXJuO1xuICAgICAgICBpZiAoIWQuaXNDbG9zZWQpIHtcbiAgICAgICAgICBwb3NpdGlvbisrO1xuICAgICAgICAgIGlmICh0eXBlTm9kZSA9PSBcImNoaWxkXCIgJiYgYy5pZCA9PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICBmaW5hbFBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbmFsUG9zaXRpb247XG4gIH0sXG5cblxuICAvKipcbiAgICogT2J0aWVuZSBpdGVtIHF1ZSBjb3JyZXNwb25kYSBhIGxhIHBvc2ljaW9uIGRlIG1vdXNlXG4gICAqIHVzYWRvIGVuIGV2ZW50b3MgY2xpY2tcbiAgICpcbiAgICogc2kgZWwgYXJib2wgZGUgdW4gaXRlbSBwYWRyZSBubyBlc3RhIGRlc3BsZWdhZG8sIG5vIGxvIGNvbnNpZGVyYVxuICAgKlxuICAgKiBzaSBubyBsbyBlbmN1ZW50cmEsIGRldnVlbHZlIG51bGw7XG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDYXBpYmFyYSBjb25maWdcbiAgICogQHBhcmFtIHtPYmplY3R9IGV2dCAtIEV2ZW50byBtb3VzZSBjbGlja1xuICAgKiBAcGFyYW0ge09iamVjdH0gJHRhYmxlIC0gRWxlbWVudG8gZGUgZG9tICR0YWJsZSBkZSBwbGFuaWxsYVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEl0ZW0gZW5jb250cmFkb1xuICAgKi9cbiAgZ2V0SXRlbUJ5RXZlbnQoY29uZmlnLCBldnQsICR0YWJsZSkge1xuICAgIGxldCBpdGVtID0gbnVsbDtcbiAgICBsZXQgYWN0dWFsUG9zaXRpb24gPSAwO1xuICAgIGxldCBwb3MgPSB0aGlzLmV2ZW50VG9Qb3NpdGlvbihjb25maWcsIGV2dCwgJHRhYmxlKTtcbiAgICBsZXQgcG9zaXRpb24gPSBwb3MueTtcbiAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgIGlmIChhY3R1YWxQb3NpdGlvbiA9PSBwb3NpdGlvbiAmJiBkLnNlbGVjdGFibGUgIT09IGZhbHNlKSB7XG4gICAgICAgIGl0ZW0gPSBkO1xuICAgICAgfVxuICAgICAgYWN0dWFsUG9zaXRpb24rKztcbiAgICAgIGlmICghZC5pc0Nsb3NlZCkge1xuICAgICAgICBkLmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgaWYgKGMuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgICAgICBpZiAoYWN0dWFsUG9zaXRpb24gPT0gcG9zaXRpb24gJiYgYy5zZWxlY3RhYmxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgaXRlbSA9IGM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdHVhbFBvc2l0aW9uKys7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpdGVtO1xuICB9LFxuXG5cbiAgLyoqXG4gICAqIE9idGllbmUgZmVjaGEgcG9yIHBvc2ljaW9uIGRlIG1vdXNlXG4gICAqIHVzYSBldmVudG8gY2xpY2sgZW4gJHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmFjaW9uIGNhcGliYXJhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBldnQgLSBFdmVudG8gbW91c2UgY2xpY2tcbiAgICogQHBhcmFtIHtPYmplY3R9ICR0YWJsZSAtIEVsZW1lbnRvIGRlIGRvbSAkdGFibGUgZGUgcGxhbmlsbGFcbiAgICogQHJldHVybiB7U3RyaW5nfSBGZWNoYSBmb3JtYXRlYWRhIGNvcnJlc3BvbmRpZW50ZVxuICAgKi9cbiAgZ2V0RGF5QnlFdmVudChjb25maWcsIGV2dCwgJHRhYmxlKSB7XG4gICAgbGV0IHBvcyA9IHRoaXMuZXZlbnRUb1Bvc2l0aW9uKGNvbmZpZywgZXZ0LCAkdGFibGUpO1xuICAgIGxldCBkYXkgPSBkYXRlVXRpbHMuYWRkRGF5c1N0cmluZyhjb25maWcudGltZWxpbmUuc3RhcnQsIHBvcy54KTtcbiAgICByZXR1cm4gZGF5O1xuICB9LFxuXG5cbiAgLyoqXG4gICAqIE9idGllbmUgaXRlbSBkZSBjb25maWcuZGF0YSBjYXBpYmFyYSwgdXNhbmRvIElEXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gQ29uZmlndXJhY2lvbiBDYXBpYmFyYVxuICAgKiBAcGFyYW0ge0ludGVnZXJ9IGlkIC0gSWQgYSBidXNjYXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IFt0eXBlXSAtIHRpcG8gZGUgaXRlbSBhIGJ1c2NhciBlbiBjb25maWcuZGF0YVxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFt3aXRoUGFyZW50XSAtIFNpIHNlIGRldnVlbHZlIHNvbG8gZWwgaXRlbSBvIGNvbiBlbCBwYXJlbnRcbiAgICogQHJldHVybiB7T2JqZWN0fSBpdGVtIG8ge2l0ZW0sIHBhcmVudH1cbiAgICovXG4gIGdldEl0ZW1CeUlkKGNvbmZpZywgaWQsIHR5cGVOb2RlID0gXCJjaGlsZFwiLCB3aXRoUGFyZW50ID0gZmFsc2UpIHtcbiAgICBsZXQgaXRlbSA9IG51bGw7XG4gICAgbGV0IHBhcmVudCA9IG51bGw7XG5cbiAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgaWYgKGQuaWQgPT0gaWQgJiYgdHlwZU5vZGUgPT0gXCJwYXJlbnRcIikge1xuICAgICAgICBpdGVtID0gZDtcbiAgICAgIH1cbiAgICAgIGQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcbiAgICAgICAgaWYgKGMuaWQgPT0gaWQgJiYgdHlwZU5vZGUgPT0gXCJjaGlsZFwiKSB7XG4gICAgICAgICAgaXRlbSA9IGM7XG4gICAgICAgICAgcGFyZW50ID0gZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAod2l0aFBhcmVudCkge1xuICAgICAgcmV0dXJuIHsgaXRlbSwgcGFyZW50IH1cbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH0sXG5cblxuICAvKipcbiAgICogT2J0aWVuZSBwb3NpY2lvbiBkZSBtb3VzZSBzZWd1biBldmVudG9cbiAgICogY29uIHJlc3BlY3RvIGEgbGEgcGxhbmlsbGFcblxuICAgKiAgIGxlZnQgOiBwb3NpY2lvbiBkZXNkZSBpenF1aWVyZGEgZW4gcGl4ZWxlcywgZW4gbXVsdGlwbG9zIGRlbCBhbmNobyBkZWwgZGlhLFxuICAgKiAgIHRvcCAgOiBwb3NpY2lvbiBkZXNkZSBhcnJpYmEgZW4gcGl4ZWxlcywgY29tbyBtdWx0aXBsbyBkZWwgYWx0byBkZWwgaXRlbSxcbiAgICogICB4ICAgIDogcG9zaWNpb24gZGVzZGUgaXpxdWllcmRhLCBlbiBvcmRlbiBudW1lcmljbyxcbiAgICogICB5ICAgIDogcG9zaWNpb24gZGVzZGUgYXJyaWJhLCBlbiBvcmRlbiBudW1lcmljbyxcbiAgICogICBfcmVhbCA6IHtcbiAgICogICAgIHRvcE9mZnNldCAgOiBkaWZmZXJlbmNpYSBlbnRyZSBwb3NpY2lvbiBpenF1aWVyZGEgZGUgcGFudGFsbGEgeSBkZSB0YWJsZSxcbiAgICogICAgIGxlZnRPZmZzZXQgOiBkaWZmZXJlbmNpYSBlbnRyZSBwb3NpY2lvbiBzdXBlcmlvciBkZSBwYW50YWxsYSB5IGRlIHRhYmxlLFxuICAgKiAgICAgbGVmdCAgICAgICA6IHBvc2ljaW9uIGVuIHBpeGVsZXMsXG4gICAqICAgICB0b3AgICAgICAgIDogcG9zaWNpb24gZW4gcGl4ZWxlc1xuICAgKiAgIH1cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIGNvbmZpZ3VyYWNpb24gY2FwaWJhcmFcbiAgICogQHBhcmFtIHtPYmplY3R9IGV2IC0gZXZlbnRvIG1vdXNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBlbGVtIC0gRWxlbWVudG8gZG9tIFRhcmdldCwgcGFyYSB1c2FyIGVuIGNhbGN1bG9zXG4gICAqIEByZXR1cm4ge09iamVjdH0gb2JqZXRvIGNvbiBwb3NpY2lvbmVzXG4gICAqL1xuICBldmVudFRvUG9zaXRpb24oY29uZmlnLCBldiwgJHRhYmxlKSB7XG4gICAgLy9jb25zb2xlLmxvZyhcImV2ZW50VG9Qb3NpdGlvblwiKTtcbiAgICBsZXQgJGNvbnRhaW5lciA9ICR0YWJsZS5wYXJlbnRFbGVtZW50O1xuICAgIGxldCByZWN0VGFibGUgPSB0aGlzLnRhYmxlUG9zaXRpb25zLmJvdW5kaW5nQ2xpZW50VGFibGU7IC8vdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGxldCByZWN0Q29udGFpbmVyID0gdGhpcy50YWJsZVBvc2l0aW9ucy5ib3VuZGluZ0NsaWVudENvbnRhaW5lcjsgLy90YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IGl0ZW1IZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIikpO1xuICAgIGxldCBkYXlXaWR0aCA9IHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1kYXktd2lkdGhcIikpO1xuICAgIGxldCBoZWFkZXJIZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taGVhZGVyLWhlaWdodFwiKSk7XG4gICAgbGV0IG5hdldpZHRoID1cbiAgICAgIHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1uYXYtd2lkdGhcIikpICtcbiAgICAgIHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1leC1uYXYtd2lkdGhcIikpICtcbiAgICAgIHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1idG4tbmF2LXdpZHRoXCIpKSArXG4gICAgICBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taW5pdGlhbC1uYXYtd2lkdGhcIikpO1xuXG4gICAgbGV0IHBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQoJHRhYmxlLnN0eWxlLnBhZGRpbmdMZWZ0IHx8IDApOyAgICAgICAgICAgLy8gICsgcGFyc2VJbnQoZWxlbS5vZmZzZXRMZWZ0KTtcbiAgICBsZXQgcGFkZGluZ1RvcCA9IHBhcnNlSW50KCR0YWJsZS5zdHlsZS5wYWRkaW5nVG9wIHx8IDApOyAgICAgICAgICAgIC8vICsgcGFyc2VJbnQoZWxlbS5vZmZzZXRUb3ApO1xuXG4gICAgbGV0IGxlZnRQb3NpdGlvbiA9IGV2LmNsaWVudFggLSBwYWRkaW5nTGVmdCAtIHBhcnNlSW50KHJlY3RUYWJsZS5sZWZ0KTtcbiAgICBsZWZ0UG9zaXRpb24gPSBsZWZ0UG9zaXRpb24gPj0gMCA/IGxlZnRQb3NpdGlvbiA6IDA7XG5cbiAgICBsZXQgdG9wUG9zaXRpb24gPSBldi5jbGllbnRZIC0gcGFkZGluZ1RvcCAtIHBhcnNlSW50KHJlY3RUYWJsZS50b3ApO1xuICAgIHRvcFBvc2l0aW9uID0gdG9wUG9zaXRpb24gPj0gMCA/IHRvcFBvc2l0aW9uIDogMDtcblxuICAgIGxldCBsZWZ0Um91bmRlZCA9IGxlZnRQb3NpdGlvbiAtIE1hdGguYWJzKGxlZnRQb3NpdGlvbiAlIGRheVdpZHRoKTtcbiAgICBsZXQgdG9wUm91bmRlZCA9IHRvcFBvc2l0aW9uIC0gTWF0aC5hYnModG9wUG9zaXRpb24gJSBpdGVtSGVpZ2h0KTtcblxuICAgIGxldCBsZWZ0Q2xpZW50ID0gbGVmdFBvc2l0aW9uIC0gdGhpcy50YWJsZVBvc2l0aW9ucy5zY3JvbGxMZWZ0O1xuICAgIGxldCB0b3BDbGllbnQgPSB0b3BQb3NpdGlvbiAtIHRoaXMudGFibGVQb3NpdGlvbnMuc2Nyb2xsVG9wO1xuICAgIGxldCB2aXNpYmxlV2lkdGggPSByZWN0Q29udGFpbmVyLndpZHRoIC0gbmF2V2lkdGg7XG4gICAgbGV0IHZpc2libGVIZWlnaHQgPSByZWN0Q29udGFpbmVyLmhlaWdodCAtIGhlYWRlckhlaWdodDtcblxuICAgIGxldCBwb3NpdGlvbiA9IHtcbiAgICAgIGxlZnRDbGllbnQsICAgICAgLy8gbGVmdCBlbiBwaXhlbGVzLCByZWxhdGl2byBhbCBzZWN0b3IgdmlzaWJsZVxuICAgICAgdG9wQ2xpZW50LCAgICAgICAvLyB0b3AgZW4gcGl4ZWxlcywgcmVsYXRpdm8gYWwgc2VjdG9yIHZpc2libGVcbiAgICAgIGxlZnRQb3NpdGlvbiwgICAgLy8gbGVmdCBlbiBwaXhlbGVzLCByZWxhdGl2byBhbCBlbGVtZW50b1xuICAgICAgdG9wUG9zaXRpb24sICAgICAvLyB0b3AgZW4gcGl4ZWxlcywgcmVsYXRpdm8gYWwgZWxlbWVudG9cbiAgICAgIGxlZnQ6IGxlZnRSb3VuZGVkLCAgICAgICAgICAgICAgLy8gbGVmdCBlbiBwaXhlbGVzLCByZWxhdGl2byBhbCBlbGVtZW50bywgcmVkb25kZWFkb1xuICAgICAgdG9wOiB0b3BSb3VuZGVkLCAgICAgICAgICAgICAgIC8vIHRvcCBlbiBwaXhlbGVzLCByZWxhdGl2byBhbCBlbGVtZW50bywgcmVkb25kZWFkb1xuICAgICAgeDogbGVmdFJvdW5kZWQgLyBkYXlXaWR0aCwgICAvLyBsZWZ0IGVuIHBvc2ljaW9uIGVuIGRpYXNcbiAgICAgIHk6IHRvcFJvdW5kZWQgLyBpdGVtSGVpZ2h0LCAgLy8gdG9wIGVuIHBvc2ljaW9uIGRlIGl0ZW1zXG4gICAgICB5UGVyY2VudDogXy5yb3VuZCgodG9wQ2xpZW50IC8gdmlzaWJsZUhlaWdodCkgKiAxMDAsIDIpLCAgIC8vIGxlZnQgZW4gcG9yY2VudGFqZSwgcmVsYXRpdm8gYWwgc2VjdG9yIHZpc2libGVcbiAgICAgIHhQZXJjZW50OiBfLnJvdW5kKChsZWZ0Q2xpZW50IC8gdmlzaWJsZVdpZHRoKSAqIDEwMCwgMiksICAgLy8gdG9wIGVuIHBvcmNlbnRhamUsIHJlbGF0aXZvIGFsIHNlY3RvciB2aXNpYmxlXG4gICAgICB5SW5uZXJQZXJjZW50OiBfLnJvdW5kKCh0b3BQb3NpdGlvbiAvICh0aGlzLnRhYmxlUG9zaXRpb25zLnNjcm9sbEhlaWdodCAtIGhlYWRlckhlaWdodCkpICogMTAwLCAyKSwgICAvLyBsZWZ0IGVuIHBvcmNlbnRhamUsIHJlbGF0aXZvIGFsIHNlY3RvciB2aXNpYmxlXG4gICAgICB4SW5uZXJQZXJjZW50OiBfLnJvdW5kKChsZWZ0UG9zaXRpb24gLyAodGhpcy50YWJsZVBvc2l0aW9ucy5zY3JvbGxXaWR0aCAtIG5hdldpZHRoKSkgKiAxMDAsIDIpLCAgIC8vIHRvcCBlbiBwb3JjZW50YWplLCByZWxhdGl2byBhbCBzZWN0b3IgdmlzaWJsZVxuXG4gICAgICAvKlxuICAgICAgICB2aXNpYmxlV2lkdGgsXG4gICAgICAgIHZpc2libGVIZWlnaHQsXG4gICAgICAgIG5hdldpZHRoLFxuICAgICAgICBfcmVhbCAgICA6IHtcbiAgICAgICAgICAgIHRvcE9mZnNldCAgOiBwYWRkaW5nVG9wICsgcGFyc2VJbnQocmVjdFRhYmxlLnRvcCksXG4gICAgICAgICAgICBsZWZ0T2Zmc2V0IDogcGFkZGluZ0xlZnQgKyBwYXJzZUludChyZWN0VGFibGUubGVmdCksXG4gICAgICAgICAgICBsZWZ0ICAgICAgIDogbGVmdFBvc2l0aW9uLFxuICAgICAgICAgICAgdG9wICAgICAgICA6IHRvcFBvc2l0aW9uXG4gICAgICAgIH1cbiAgICAgICAgKi9cbiAgICB9XG4gICAgLy9jb25zb2xlLnRhYmxlKHBvc2l0aW9uKTtcbiAgICAvL2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHBvc2l0aW9uKSk7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9LFxuXG5cbiAgZXZlbnRUb1Bvc2l0aW9uTmF2TGVmdChjb25maWcsIGV2LCBlbGVtKSB7XG4gICAgbGV0IHRhcmdldCA9IGVsZW0gfHwgZXYuY3VycmVudFRhcmdldDtcbiAgICBsZXQgcmVjdCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IHJlY3RQYXJlbnQgPSBlbGVtLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IGl0ZW1IZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taXRlbS1oZWlnaHRcIikpO1xuICAgIGxldCBoZWFkZXJIZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMuZ2V0Q1NTVmFyaWFibGUoY29uZmlnLCBcIi0taGVhZGVyLWhlaWdodFwiKSk7XG5cbiAgICBsZXQgcGFkZGluZ1RvcCA9IHBhcnNlSW50KHRhcmdldC5zdHlsZS5wYWRkaW5nVG9wIHx8IDApO1xuICAgIGxldCB0b3BQb3NpdGlvbiA9IGV2LmNsaWVudFkgLSBwYWRkaW5nVG9wIC0gcGFyc2VJbnQocmVjdC50b3ApO1xuICAgIHRvcFBvc2l0aW9uID0gdG9wUG9zaXRpb24gPj0gMCA/IHRvcFBvc2l0aW9uIDogMDtcbiAgICBsZXQgdG9wUm91bmRlZCA9IHRvcFBvc2l0aW9uIC0gTWF0aC5hYnModG9wUG9zaXRpb24gJSBpdGVtSGVpZ2h0KTtcbiAgICBsZXQgdG9wQ2xpZW50ID0gdG9wUG9zaXRpb24gLSBlbGVtLnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIGxldCBwb3NpdGlvbiA9IHtcbiAgICAgIHRvcENsaWVudCwgLy8gdG9wIGVuIHBpeGVsZXMsIHJlbGF0aXZvIGFsIHNlY3RvciB2aXNpYmxlXG4gICAgICB0b3A6IHRvcFJvdW5kZWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9wIGVuIHBpeGVsZXMsIHJlbGF0aXZvIGFsIGVsZW1lbnRvXG4gICAgICB5OiB0b3BSb3VuZGVkIC8gaXRlbUhlaWdodCwgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvcCBlbiBwb3NpY2lvbiBkZSBpdGVtc1xuICAgICAgeVBlcmNlbnQ6IF8ucm91bmQoKHRvcENsaWVudCAvIChyZWN0UGFyZW50LmhlaWdodCAtIGhlYWRlckhlaWdodCkpICogMTAwLCAyKSwgICAvLyB0b3AgZW4gcG9yY2VudGFqZSwgcmVsYXRpdm8gYWwgc2VjdG9yIHZpc2libGVcbiAgICB9XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9LFxuXG5cblxuXG4gIGdldFBvc2l0aW9uQnlJdGVtRGF0ZShjb25maWcsIGl0ZW0sIGRhdGUpIHtcblxuICAgIGxldCBoID0gcGFyc2VGbG9hdCh0aGlzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIpKTtcbiAgICBsZXQgdyA9IHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1kYXktd2lkdGhcIikpO1xuICAgIGxldCB5ID0gdGhpcy5nZXRQb3NpdGlvbkJ5SXRlbShjb25maWcsIGl0ZW0pO1xuICAgIGxldCB4ID0gZGF0ZVV0aWxzLmRpZmZEYXlzKGNvbmZpZy50aW1lbGluZS5zdGFydCwgZGF0ZSk7XG4gICAgbGV0IGxlZnQgPSB4ICogdztcbiAgICBsZXQgdG9wID0geSAqIGg7XG5cbiAgICBsZXQgcG9zaXRpb24gPSB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgeCxcbiAgICAgIHlcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zaXRpb247XG4gIH0sXG5cblxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHByb21lZGlvIGRlIGRhdG9zLCBkZSB1bmEgbGlzdGEgZGUgZGF0b3NcbiAgICogZW50cmUgdW5hIGZlY2hhIHkgbG9zIGRpYXMgaW5kaWNhZG9zLCBoYWNpYSBlbCBwYXNhZG9cbiAgICpcbiAgICogc2kgY3VlbnRhIDAsIGRldnVlbHZlIG51bGxcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBEYXRvcyBwYXJhIGJ1c2NhclxuICAgKiBAcGFyYW0ge0RhdGV9IGRhdGUgLSBmZWNoYSBkZSBidXNxdWVkYVxuICAgKiBAcGFyYW0ge0ludGVnZXJ9IGRheXMgLSBkaWZlcmVuY2lhIGRlIGRpYXNcbiAgICogQHJldHVybiB7RmxvYXR9IHByb21lZGlvIGRlIHZhbG9yZXNcbiAgICovXG4gIGdldEF2ZXJhZ2UoZGF0YSwgZGF0ZSwgZGF5cykge1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBsZXQgZGF0YVNvcnRlZCA9IGRhdGEuc29ydCgoYSwgYikgPT4gYi51bml4IC0gYS51bml4KTtcbiAgICBsZXQgZnJvbSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGxldCB0byA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGZyb20uc2V0RGF0ZShmcm9tLmdldERhdGUoKSAtIGRheXMpO1xuXG4gICAgZGF0YVNvcnRlZC5mb3JFYWNoKGQgPT4ge1xuICAgICAgbGV0IGREYXRlID0gbmV3IERhdGUoZC5kYXRlKTtcbiAgICAgIGlmIChmcm9tIDwgZERhdGUgJiYgZERhdGUgPCB0bykge1xuICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KGQudmFsdWUpO1xuICAgICAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+IDApIHtcbiAgICAgICAgICB0b3RhbCArPSB2YWx1ZTtcbiAgICAgICAgICBjb3VudCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZyb20uc2V0RGF0ZShmcm9tLmdldERhdGUoKSAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucm91bmQoY291bnQgPiAwID8gdG90YWwgLyBjb3VudCA6IDAsIDIpO1xuICB9LFxuXG5cblxuXG4gIC8qKlxuICAgKiBNZXNlcyBwb3IgcG9zaWNpb24sIGVuIGVzcGHDsW9sXG4gICAqXG4gICAqIEBwYXJhbSB7SW50ZWdlcn0gcG9zIC0gUG9zaWNpb24gZGUgbWVzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gTm9tYnJlIGRlIG1lc1xuICAgKi9cbiAgZ2V0TW9udGhCeVBvc2l0aW9uKHBvcykge1xuICAgIGxldCBtb250aHMgPSBbXG4gICAgICAnRW5lcm8nLFxuICAgICAgJ0ZlYnJlcm8nLFxuICAgICAgJ01hcnpvJyxcbiAgICAgICdBYnJpbCcsXG4gICAgICAnTWF5bycsXG4gICAgICAnSnVuaW8nLFxuICAgICAgJ0p1bGlvJyxcbiAgICAgICdBZ29zdG8nLFxuICAgICAgJ1NlcHRpZW1icmUnLFxuICAgICAgJ09jdHVicmUnLFxuICAgICAgJ05vdmllbWJyZScsXG4gICAgICAnRGljaWVtYnJlJ107XG4gICAgcmV0dXJuIG1vbnRoc1twb3NdO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWRvbmRlYSBudW1lcm9zXG4gICAqIEBwYXJhbSB7RmxvYXR9IG51bSAtIG51bWVybyBkZWNpbWFsIHBhcmEgcmVkb25kZWFyXG4gICAqIEBwYXJhbSB7SW50ZWdlcn0gIGRlY2ltYWwgLSBjYW50aWRhZCBkZSBkZWNpbWFsZXMgcGFyYSByZWRvbmRlYXJcbiAgICogQHJldHVybiB7RmxvYXR9IE51bWVybyByZWRvbmRlYWRvXG4gICAqL1xuICByb3VuZChudW0sIGRlY2ltYWwgPSAyKSB7XG4gICAgLy9sZXQgYmFzZTEwID0gMTAgKiBkZWNpbWFsO1xuICAgIC8vcmV0dXJuIGJhc2UxMCA/IE1hdGgucm91bmQobnVtICogYmFzZTEwKSAvIGJhc2UxMCA6IE1hdGgucm91bmQobnVtKTtcbiAgICByZXR1cm4gXy5yb3VuZChudW0sIGRlY2ltYWwpO1xuICB9LFxuXG5cbiAgLyoqXG4gICAqIEVkaXRhIHZhcmlhYmxlIENTUyBkZXNkZSBSb290XG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YXJOYW1lIC0gbm9tYnJlIGRlIHZhcmlhYmxlIENTU1xuICAgKiBAcGFyYW0ge0FueX0gdmFsdWUgLSB2YWxvciBhIGFzaWduYXIgYSB2YXJpYWJsZSBDU1NcbiAgICovXG5cbiAgc2V0Q1NTVmFyaWFibGUoY29uZmlnLCB2YXJOYW1lLCB2YWx1ZSkge1xuICAgIGxldCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihjb25maWcuc2VsZWN0b3IpO1xuICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XG4gICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHZhck5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIE9idGllbmUgdmFsb3IgZGUgdmFyaWFibGUgQ1NTIGRlc2RlIFJvb3RcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhck5hbWUgLSBub21icmUgZGUgdmFyaWFibGUgQ1NTXG4gICAqIEByZXR1cm4ge0Zsb2F0fSBOdW1lcm8gcmVkb25kZWFkb1xuICAgKi9cblxuICBnZXRDU1NWYXJpYWJsZShjb25maWcsIHZhck5hbWUpIHtcbiAgICBsZXQgY29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY29uZmlnLnNlbGVjdG9yKTtcbiAgICByZXR1cm4gY29udGFpbmVyRWxlbWVudCA/IGdldENvbXB1dGVkU3R5bGUoY29udGFpbmVyRWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSh2YXJOYW1lKSA6IG51bGw7XG4gIH0sXG5cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgbGEgcGFudGFsbGEgdGllbmUgdW4gdGFtYcOxbyBtb2JpbGVcbiAgICogbW9kaWZpY2EgdGhpcy5pc01vYmlsZVxuICAgKiBicmVha3BvaW50IDk2MGVcbiAgICogXG4gICAqIEByZXR1cm4geyBCb29sZWFuIH0gLSBzaSBlbCB0YW1hw7FvIGRlIHBhbnRhbGxhIGVzIG1lbm9yIGFsIGJyZWFrcG9pbnRcbiAgICovXG4gIGNoZWNrSXNNb2JpbGUoKSB7XG4gICAgbGV0IGJyZWFrUG9pbnQgPSA5NjA7XG4gICAgcmV0dXJuIEJvb2xlYW4od2luZG93Lm1hdGNoTWVkaWEoXG4gICAgICBcIihtYXgtd2lkdGg6IFwiICsgKGJyZWFrUG9pbnQgLSAxKSArIFwicHgpXCJcbiAgICApLm1hdGNoZXMpO1xuICB9LFxuXG5cbiAgZ2V0VGFibGVEaW1lbnNpb25zKGNvbmZpZykge1xuICAgIGxldCBoID0gcGFyc2VGbG9hdCh0aGlzLmdldENTU1ZhcmlhYmxlKGNvbmZpZywgXCItLWl0ZW0taGVpZ2h0XCIpKTtcbiAgICBsZXQgdyA9IHBhcnNlRmxvYXQodGhpcy5nZXRDU1NWYXJpYWJsZShjb25maWcsIFwiLS1kYXktd2lkdGhcIikpO1xuICAgIGxldCBzdGFydCA9IG5ldyBEYXRlKGNvbmZpZy50aW1lbGluZS5zdGFydCk7XG4gICAgbGV0IGVuZCA9IG5ldyBEYXRlKGNvbmZpZy50aW1lbGluZS5lbmQpO1xuICAgIGxldCByb3dzID0gMDtcblxuICAgIGVuZC5zZXRUaW1lKGVuZC5nZXRUaW1lKCkgKyBkYXRlVXRpbHMuZGF5SW5NaWxsaXNlY29uZHMpOy8vIGFkZCAyNCBob3Vyc1xuXG4gICAgbGV0IGRpZmZfdGltZSA9IGVuZC5nZXRUaW1lKCkgLSBzdGFydC5nZXRUaW1lKCk7XG4gICAgbGV0IGRheXMgPSBkaWZmX3RpbWUgLyBkYXRlVXRpbHMuZGF5SW5NaWxsaXNlY29uZHM7XG5cbiAgICBjb25maWcuZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgaWYgKGQuaXNIaWRkZW4pIHJldHVybjtcbiAgICAgIHJvd3MrKztcbiAgICAgIGlmIChkLmNoaWxkcmVuICYmICFkLmlzQ2xvc2VkKSB7XG4gICAgICAgIHJvd3MgKz0gZC5jaGlsZHJlbi5maWx0ZXIoYyA9PiAhYy5pc0hpZGRlbikubGVuZ3RoO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGhlaWdodCA9IHJvd3MgKiBoO1xuICAgIGxldCB3aWR0aCA9IGRheXMgKiB3O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodCxcbiAgICAgIHdpZHRoLFxuICAgICAgZGF5V2lkdGg6IHcsXG4gICAgICBpdGVtSGVpZ2h0OiBoXG4gICAgfVxuXG4gIH0sXG5cbiAgLy9odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy84MDI3NDIzL2hvdy10by1jaGVjay1pZi1hLXN0cmluZy1pcy1hLXZhbGlkLWhleC1jb2xvci1yZXByZXNlbnRhdGlvblxuICBpc0hleENvbG9yKHN0cikge1xuICAgIGxldCByZWcgPSAvXiMoWzAtOWEtZl17M30pezEsMn0kL2k7XG4gICAgcmV0dXJuIHJlZy50ZXN0KHN0cilcbiAgfSxcblxuICB0b0NhcGl0YWxpemUoc3RyKSB7XG4gICAgcmV0dXJuIChcIiBcIiArIHN0cikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtekEtWjAtOV0rKC4pL2csIChtLCBjaHIpID0+IGNoci50b1VwcGVyQ2FzZSgpKTtcbiAgfSxcblxuICBmb3JtYXROdW1iZXIobnVtKSB7XG4gICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChcImVzLUNMXCIpLmZvcm1hdChudW0pLnJlcGxhY2UoXCIuXCIsIFwiIFwiKTtcbiAgfSxcblxuXG4gIC8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzUyMjgwNTIvZGVib3VuY2UtZnVuY3Rpb24taW1wbGVtZW50ZWQtd2l0aC1wcm9taXNlc1xuICBkZWJvdW5jZShmLCBpbnRlcnZhbCkge1xuICAgIGxldCB0aW1lciA9IG51bGw7XG4gICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKGYoLi4uYXJncykpLCBpbnRlcnZhbCk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9LFxuXG4gIC8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjcwNzgyODUvc2ltcGxlLXRocm90dGxlLWluLWphdmFzY3JpcHQvMjcwNzg0MDEjMjcwNzg0MDFcbiAgdGhyb3R0bGUoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICAgIHZhciBjb250ZXh0LCBhcmdzLCByZXN1bHQ7XG4gICAgdmFyIHRpbWVvdXQgPSBudWxsO1xuICAgIHZhciBwcmV2aW91cyA9IDA7XG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gICAgdmFyIGxhdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgcHJldmlvdXMgPSBvcHRpb25zLmxlYWRpbmcgPT09IGZhbHNlID8gMCA6IERhdGUubm93KCk7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICBpZiAoIXRpbWVvdXQpIGNvbnRleHQgPSBhcmdzID0gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgIGlmICghcHJldmlvdXMgJiYgb3B0aW9ucy5sZWFkaW5nID09PSBmYWxzZSkgcHJldmlvdXMgPSBub3c7XG4gICAgICB2YXIgcmVtYWluaW5nID0gd2FpdCAtIChub3cgLSBwcmV2aW91cyk7XG4gICAgICBjb250ZXh0ID0gdGhpcztcbiAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBpZiAocmVtYWluaW5nIDw9IDAgfHwgcmVtYWluaW5nID4gd2FpdCkge1xuICAgICAgICBpZiAodGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBwcmV2aW91cyA9IG5vdztcbiAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgaWYgKCF0aW1lb3V0KSBjb250ZXh0ID0gYXJncyA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCF0aW1lb3V0ICYmIG9wdGlvbnMudHJhaWxpbmcgIT09IGZhbHNlKSB7XG4gICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCByZW1haW5pbmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWJBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBekJBO0FBMkJBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBTEE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBdGlCQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/util/utils.js\n");
|
|
271
271
|
|
|
272
272
|
/***/ })
|
|
273
273
|
|