.blocks_conseils{display:-ms-grid;display:grid;-ms-grid-columns:1fr;grid-template-columns:1fr;grid-row-gap:1.33333rem;/*!*//*!*/}@media only screen and (min-width: 768px){.blocks_conseils{-ms-grid-columns:(minmax(-webkit-calc(25% - 20px), 1fr))[4];-ms-grid-columns:(minmax(calc(25% - 20px), 1fr))[4];grid-template-columns:repeat(4, minmax(-webkit-calc(25% - 20px), 1fr));grid-template-columns:repeat(4, minmax(calc(25% - 20px), 1fr));grid-column-gap:1.33333rem}.blocks_conseils.column-3{-ms-grid-columns:(minmax(-webkit-calc(33.33% - 20px), 1fr))[3];-ms-grid-columns:(minmax(calc(33.33% - 20px), 1fr))[3];grid-template-columns:repeat(3, minmax(-webkit-calc(33.33% - 20px), 1fr));grid-template-columns:repeat(3, minmax(calc(33.33% - 20px), 1fr));max-width:975px;margin:auto}.blocks_conseils.column-2{-ms-grid-columns:(minmax(-webkit-calc(50% - 20px), 1fr))[2];-ms-grid-columns:(minmax(calc(50% - 20px), 1fr))[2];grid-template-columns:repeat(2, minmax(-webkit-calc(50% - 20px), 1fr));grid-template-columns:repeat(2, minmax(calc(50% - 20px), 1fr));max-width:650px;margin:auto}}@media only screen and (max-width: 1000px) and (min-width: 640px){.blocks_conseils{-ms-grid-columns:(minmax(-webkit-calc(50% - 20px), 1fr))[2];-ms-grid-columns:(minmax(calc(50% - 20px), 1fr))[2];grid-template-columns:repeat(2, minmax(-webkit-calc(50% - 20px), 1fr));grid-template-columns:repeat(2, minmax(calc(50% - 20px), 1fr));grid-column-gap:1.33333rem;max-width:670px;margin:auto}}.blocks_conseils img{display:block;width:100%}.blocks_conseils--item{max-width:325px;margin:auto}.blocks_conseils--item-infos{color:#FFF;text-transform:uppercase;padding:.66667rem .33333rem}body .tmpl_ehpad .blocks_conseils--item-infos{background-color:#ACC36D}body .tmpl_residences .blocks_conseils--item-infos{background-color:#A1AF90}body .tmpl_ssr .blocks_conseils--item-infos{background-color:#76B5BB}body .tmpl_sport .blocks_conseils--item-infos{background-color:#36B3A8}.blocks_conseils--item-infos h2{color:#FFF;font-size:1.13333rem;font-weight:400;line-height:1.2;letter-spacing:0.1em;margin-bottom:0}.blocks_conseils--item-infos h2 strong{display:block;font-weight:800}.blocks_conseils--item__image{display:block;overflow:hidden}.blocks_conseils--item__image img{-webkit-transition:-webkit-transform 3s linear;transition:-webkit-transform 3s linear;transition:transform 3s linear;transition:transform 3s linear, -webkit-transform 3s linear}.blocks_conseils--item:hover .blocks_conseils--item__image img{-webkit-transform:scale(1.4, 1.4);-ms-transform:scale(1.4, 1.4);transform:scale(1.4, 1.4)}.blocks_actus{display:-ms-grid;display:grid;-ms-grid-columns:1fr;grid-template-columns:1fr;grid-row-gap:2.33333rem;/*!*/}@media only screen and (min-width: 768px){.blocks_actus{-ms-grid-columns:(minmax(-webkit-calc(50% - 40px), 1fr))[2];-ms-grid-columns:(minmax(calc(50% - 40px), 1fr))[2];grid-template-columns:repeat(2, minmax(-webkit-calc(50% - 40px), 1fr));grid-template-columns:repeat(2, minmax(calc(50% - 40px), 1fr));grid-column-gap:2.66667rem}}.blocks_actus--item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-border-radius:20px;border-radius:20px;background:#F7F7F7}.blocks_actus--item[data-category-count="0"] .blocks_actus--post{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:100%}.blocks_actus--post{padding:-webkit-calc(1.36667rem + .375vw) -webkit-calc(1.53333rem + 2.25vw);padding:calc(1.36667rem + .375vw) calc(1.53333rem + 2.25vw)}@media (min-width: 1200px){.blocks_actus--post{padding:1.66667rem 3.33333rem}}.blocks_actus--post h2{font-size:1.33333rem;line-height:1;text-align:center;text-transform:uppercase;margin-bottom:1.33333rem;/*!*/}body .tmpl_ehpad .blocks_actus--post h2{color:#ACC36D}body .tmpl_residences .blocks_actus--post h2{color:#A1AF90}body .tmpl_ssr .blocks_actus--post h2{color:#76B5BB}body .tmpl_sport .blocks_actus--post h2{color:#36B3A8}.blocks_actus--post img{display:block;width:100%}.blocks_actus--post--infos{margin-top:.66667rem}.blocks_actus--post--infos h3{font-size:1.06667rem;margin-bottom:.53333rem}.blocks_actus--post--infos p{font-size:.93333rem;line-height:1.1}.blocks_actus--seemore{/*!*/padding:1rem .33333rem;-webkit-border-radius:0px 0px 20px 20px;border-radius:0px 0px 20px 20px}body .tmpl_ehpad .blocks_actus--seemore{background-color:#ACC36D}body .tmpl_residences .blocks_actus--seemore{background-color:#A1AF90}body .tmpl_ssr .blocks_actus--seemore{background-color:#76B5BB}body .tmpl_sport .blocks_actus--seemore{background-color:#36B3A8}.blocks_actus--seemore p{color:#FFF;font-weight:800;line-height:1}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvYmxvYy1jYXRlZ29yaWVzLWNvbnNlaWxzLnNjc3MiLCJoZWxwZXJzL2Z1bmN0aW9ucy5zY3NzIiwiaGVscGVycy9taXhpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZnMvc2Nzcy5zY3NzIiwiaGVscGVycy92YXJpYWJsZXMuc2NzcyIsImNvbXBvbmVudHMvYmxvYy1jYXRlZ29yaWVzLWFjdHVhbGl0ZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFDRSxnQkFBYSxDQUFiLFlBQWEsQ0FDYixvQkFBMEIsQ0FBMUIseUJBQTBCLENBQzFCLHVCQ2tCa0MsQ0RqQmxDLElBQUEsQ0FBSyxJQUFBLENBZUEsQ0V5R0wsMENGNUhGLGlCQU1DLDJEQUErRCxDQUEvRCxtREFBK0QsQ0FBL0Qsc0VBQStELENBQS9ELDhEQUErRCxDQUMvRCwwQkNjbUMsQ0RyQnBDLDBCQVNHLDhEQUFrRSxDQUFsRSxzREFBa0UsQ0FBbEUseUVBQWtFLENBQWxFLGlFQUFrRSxDQUNsRSxlQUFnQixDQUNoQixXQUFZLENBWGYsMEJBY0csMkRBQStELENBQS9ELG1EQUErRCxDQUEvRCxzRUFBK0QsQ0FBL0QsOERBQStELENBQy9ELGVBQWdCLENBQ2hCLFdBQVksQ0FDYixDQUdBLGtFQXBCRixpQkFxQkMsMkRBQStELENBQS9ELG1EQUErRCxDQUEvRCxzRUFBK0QsQ0FBL0QsOERBQStELENBQy9ELDBCQ0RtQyxDREVuQyxlQUFnQixDQUNoQixXQUFZLENBOENaLENBdEVELHFCQTRCQyxhQUFjLENBQ2QsVUFBVyxDQUNULHVCQUdGLGVBQWdCLENBQ2hCLFdBQVksQ0FFWiw2QkFDRSxVQUFXLENBQ1gsd0JBQXlCLENHK1B0QiwyQkF2RStCLENEcUJuQyw4Q0FDRCx3QkUzT29CLENGK09sQixtREFFRix3QkVoUGtCLENGb1BoQiw0Q0FFRix3QkVyUGtCLENGeVBoQiw4Q0FFRix3QkUxUG9CLENGOFBsQixnQ0YvTkQsVUFBVyxDRzBQUCxvQkF2RStCLENIakxuQyxlQUFnQixDQUNoQixlQUFnQixDQUNoQixvQkFBcUIsQ0FDckIsZUFBZ0IsQ0FaaEIsdUNBZUUsYUFBYyxDQUNkLGVBQWdCLENBQ2pCLDhCQUtBLGFBQWMsQ0FDZCxlQUFnQixDQUZqQixrQ0FLQSw4Q0FBWSxDQUFaLHNDQUFZLENBQVosOEJBQVksQ0FBWiwyREFBK0IsQ0E5QjlCLCtEQW1DQSxpQ0FBVyxDQUFYLDZCQUFXLENBQVgseUJBQTBCLENBQzNCLGNLbkVBLGdCQUFhLENBQWIsWUFBYSxDQUNiLG9CQUEwQixDQUExQix5QkFBMEIsQ0FDMUIsdUJKa0JrQyxDSWpCbEMsSUFBQSxDQUFLLENId0hMLDBDRzVIRixjQU1DLDJEQUErRCxDQUEvRCxtREFBK0QsQ0FBL0Qsc0VBQStELENBQS9ELDhEQUErRCxDQUMvRCwwQkpjbUMsQ0lpRG5DLENBNURDLG9CQUNELG1CQUFhLENBQWIsb0JBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWEsQ0FDYiwyQkFBc0IsQ0FBdEIsNEJBQXNCLENBQXRCLDZCQUFzQixDQUF0Qix5QkFBc0IsQ0FBdEIscUJBQXNCLENBQ3RCLHdCQUE4QixDQUE5QixxQ0FBOEIsQ0FBOUIscUJBQThCLENBQTlCLDZCQUE4QixDQUM5QiwwQkFBbUIsQ0FBbkIsa0JBQW1CLENBQ25CLGtCQUFtQixDQUxqQixpRUFRQSxtQkFBYSxDQUFiLG9CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFhLENBQ2IsMkJBQXNCLENBQXRCLDRCQUFzQixDQUF0Qiw2QkFBc0IsQ0FBdEIseUJBQXNCLENBQXRCLHFCQUFzQixDQUN0Qix3QkFBbUIsQ0FBbkIsMEJBQW1CLENBQW5CLHFCQUFtQixDQUFuQixrQkFBbUIsQ0FDbkIsV0FBWSxDQUNiLG9CRm1STSwyRUFmRSxDQWVGLDJEQWY2QixDQW5KakMsMkJFOUdGLG9CRnVSTSw2QkFsRjZCLENFdEtsQyxDQS9CQSx1QkY0UUcsb0JBdkUrQixDRWhNbEMsYUFBYyxDQUNkLGlCQUFrQixDQUNsQix3QkFBeUIsQ0ZxUXRCLHdCQXZFK0IsQ0U1TGxDLElBQUEsQ0FBSyxDSGlOTix3Q0FDRCxhRTNPb0IsQ0YrT2xCLDZDQUVGLGFFaFBrQixDRm9QaEIsc0NBRUYsYUVyUGtCLENGeVBoQix3Q0FFRixhRTFQb0IsQ0Y4UGxCLHdCR25PQSxhQUFjLENBQ2QsVUFBVyxDQUNaLDJCRjRQSSxvQkF2RStCLENFbkxuQyw4QkYwUEksb0JBdkUrQixDQXVFL0IsdUJBdkUrQixDRW5MbkMsNkJGMFBJLG1CQXZFK0IsQ0V6S25DLGVBQWdCLENBQ2QsdUJBS0gsSUFBQSxDRjBPSyxzQkF2RStCLENFaEtwQyx1Q0FBZSxDQUFmLCtCQUFnQyxDSHFML0Isd0NBQ0Qsd0JFM09vQixDRitPbEIsNkNBRUYsd0JFaFBrQixDRm9QaEIsc0NBRUYsd0JFclBrQixDRnlQaEIsd0NBRUYsd0JFMVBvQixDRjhQbEIseUJHek1BLFVBQVcsQ0FDWCxlQUFnQixDQUNoQixhQUFjIiwiZmlsZSI6ImFyY2hpdmUtcGFyZW50ZS10ZW1wbGF0ZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmxvY2tzX2NvbnNlaWxzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdyaWQtcm93LWdhcDogcmVtKDIwKTtcbiAgLyohKi9cbiAgQGluY2x1ZGUgbXEoJ3RhYmxldCcsICdtaW4nKSB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heChjYWxjKDI1JSAtIDIwcHgpLCAxZnIpKTtcblx0Z3JpZC1jb2x1bW4tZ2FwOiByZW0oMjApO1xuXHQmLmNvbHVtbi0zIHtcblx0ICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoY2FsYygzMy4zMyUgLSAyMHB4KSwgMWZyKSk7XG5cdCAgbWF4LXdpZHRoOiA5NzVweDtcblx0ICBtYXJnaW46IGF1dG87XG5cdH1cblx0Ji5jb2x1bW4tMiB7XG5cdCAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KGNhbGMoNTAlIC0gMjBweCksIDFmcikpO1xuXHQgIG1heC13aWR0aDogNjUwcHg7XG5cdCAgbWFyZ2luOiBhdXRvO1xuXHR9XG4gIH1cbiAgLyohKi9cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAje21hcC1kZWVwLWdldCgkYnJlYWtwb2ludHMsXCJ3aWR0aC0xMDAwXCIpfSkgYW5kIChtaW4td2lkdGg6ICN7bWFwLWRlZXAtZ2V0KCRicmVha3BvaW50cyxcInRhYmxldC1zbWFsbFwiKX0pIHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KGNhbGMoNTAlIC0gMjBweCksIDFmcikpO1xuXHRncmlkLWNvbHVtbi1nYXA6IHJlbSgyMCk7XG5cdG1heC13aWR0aDogNjcwcHg7XG5cdG1hcmdpbjogYXV0bztcbiAgfVxuXG4gIGltZyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtLWl0ZW0ge1xuXHRtYXgtd2lkdGg6IDMyNXB4O1xuXHRtYXJnaW46IGF1dG87XG5cblx0Ji1pbmZvcyB7XG5cdCAgY29sb3I6ICNGRkY7XG5cdCAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0ICBAaW5jbHVkZSBjbGFzcy1vZi1wYXJlbnQoJ2JhY2tncm91bmQtY29sb3InKTtcblx0ICBAaW5jbHVkZSBwYWRkaW5nKDEwcHggNXB4KTtcblxuXHQgIGgyIHtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMTdweCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjFlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0c3Ryb25nIHtcblx0XHQgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdCAgZm9udC13ZWlnaHQ6IDgwMDtcblx0XHR9XG5cdCAgfVxuXHR9XG5cblx0Jl9faW1hZ2Uge1xuXHQgIGRpc3BsYXk6IGJsb2NrO1xuXHQgIG92ZXJmbG93OiBoaWRkZW47XG5cblx0ICBpbWcge1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAzcyBsaW5lYXI7XG5cdCAgfVxuXHR9XG5cblx0Jjpob3ZlciAmX19pbWFnZSBpbWcge1xuXHQgIHRyYW5zZm9ybTogc2NhbGUoMS40LCAxLjQpO1xuXHR9XG4gIH1cbn0iLCJAZnVuY3Rpb24geigkbmFtZSkge1xuICBAaWYgaW5kZXgoJHotaW5kZXhlcywgJG5hbWUpIHtcblx0QHJldHVybiAoKGxlbmd0aCgkei1pbmRleGVzKSArIDk5OSkgLSBpbmRleCgkei1pbmRleGVzLCAkbmFtZSkpICsgMTtcbiAgfSBAZWxzZSB7XG5cdEB3YXJuICdUaGVyZSBpcyBubyBpdGVtIFwiI3skbmFtZX1cIiBpbiB0aGlzIGxpc3Q7IGNob29zZSBvbmUgb2Y6ICN7JHotaW5kZXhlc30nO1xuXHRAcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICBAaWYgdHlwZS1vZigkbnVtYmVyKSA9PSAnbnVtYmVyJyBhbmQgbm90IHVuaXRsZXNzKCRudW1iZXIpIHtcblx0QHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG5AZnVuY3Rpb24gZW0oJHBpeGVsLCAkY29udGV4dDogJGJyb3dzZXItY29udGV4dCkge1xuICBAcmV0dXJuICgkcGl4ZWwgLyAkY29udGV4dCkgKiAxZW07XG59XG5cbkBmdW5jdGlvbiByZW0oJHBpeGVsLCAkY29udGV4dDogJGJyb3dzZXItY29udGV4dCkge1xuICBAcmV0dXJuICgkcGl4ZWwgLyAkY29udGV4dCkgKiAxcmVtO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGxhaW4gU0FTUyBUcmlnb25vbWV0cnkgQWxnb3JpdGhtIGluIFRheWxvciBFeHBhbnNpb24gLy9cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vXG4vLyBCYXNlZCBvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1xuLy8gICAgICBodHRwOi8vamFwYm9yc3QubmV0L3Bvc3RzL3Nhc3Mtc2luZXMtYW5kLWNvc2luZXMgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiRwaTogMy4xNDE1OTI2NTM1OTtcbiRfcHJlY2lzaW9uOiAxMDtcblxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cCkge1xuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cCA+IDEge1xuXHRAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHAge1xuXHQgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG5cdH1cbiAgfVxuICBAaWYgJGV4cCA8IDEge1xuXHRAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwIHtcblx0ICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuXHR9XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBmYWN0KCRudW0pIHtcbiAgJGZhY3Q6IDE7XG4gIEBpZiAkbnVtID4gMCB7XG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG51bSB7XG5cdCAgJGZhY3Q6ICRmYWN0ICogJGk7XG5cdH1cbiAgfVxuICBAcmV0dXJuICRmYWN0O1xufVxuXG5AZnVuY3Rpb24gX3RvX3VuaXRsZXNzX3JhZCgkYW5nbGUpIHtcbiAgQGlmIHVuaXQoJGFuZ2xlKSA9PSBcImRlZ1wiIHtcblx0JGFuZ2xlOiAkYW5nbGUgLyAxODBkZWcgKiAkcGk7XG4gIH1cbiAgQGlmIHVuaXQoJGFuZ2xlKSA9PSBcInJhZFwiIHtcblx0JGFuZ2xlOiAkYW5nbGUgLyAxcmFkO1xuICB9XG4gIEByZXR1cm4gJGFuZ2xlO1xufVxuXG5AZnVuY3Rpb24gc2luKCRhbmdsZSkge1xuICAkYTogX3RvX3VuaXRsZXNzX3JhZCgkYW5nbGUpO1xuICAkc2luOiAkYTtcbiAgQGZvciAkbiBmcm9tIDEgdGhyb3VnaCAkX3ByZWNpc2lvbiB7XG5cdCRzaW46ICRzaW4gKyAocG93KC0xLCAkbikgLyBmYWN0KDIgKiAkbiArIDEpICkgKiBwb3coJGEsICgyICogJG4gKyAxKSk7XG4gIH1cbiAgQHJldHVybiAkc2luO1xufVxuXG5AZnVuY3Rpb24gY29zKCRhbmdsZSkge1xuICAkYTogX3RvX3VuaXRsZXNzX3JhZCgkYW5nbGUpO1xuICAkY29zOiAxO1xuICBAZm9yICRuIGZyb20gMSB0aHJvdWdoICRfcHJlY2lzaW9uIHtcblx0JGNvczogJGNvcyArICggcG93KC0xLCRuKSAvIGZhY3QoMiokbikgKSAqIHBvdygkYSwyKiRuKTtcbiAgfVxuICBAcmV0dXJuICRjb3M7XG59XG5cbkBmdW5jdGlvbiB0YW4oJGFuZ2xlKSB7XG4gIEByZXR1cm4gc2luKCRhbmdsZSkgLyBjb3MoJGFuZ2xlKTtcbn1cblxuLy8vL1xuLy8vIEhlbHBlciBmdW5jdGlvbiB0byBlYXNpbHkgdXNlIGFuIFNWRyBpbmxpbmUgaW4gQ1NTXG4vLy8gd2l0aG91dCBlbmNvZGluZyBpdCB0byBiYXNlNjQsIHNhdmluZyBieXRlcy5cbi8vLyBJdCBhbHNvIGhlbHBzIHdpdGggYnJvd3NlciBzdXBwb3J0LlxuLy8vL1xuXG4vLy8gQSBzbWFsbCBmdW5jdGlvbiBhbGxvd2luZyBza2lwcGluZyBiYXNlNjQgZW5jb2Rpbmdcbi8vLyBhbmQgc2ltcGx5IHBhc3RpbmcgdGhlIFNWRyBtYXJrdXAgcmlnaHQgaW4gdGhlIENTUy5cbi8vLyBAYXV0aG9yIEpha29iIEVyaWtzZW5cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9qYWtvYi1lL3Blbi9kb01vTUxcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN2ZyAtIFNWRyBpbWFnZSB0byBlbmNvZGVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gRW5jb2RlZCBTVkcgZGF0YSB1cmlcbkBmdW5jdGlvbiBzdmctdXJpKCRzdmcpIHtcbiAgJGVuY29kZWQ6ICcnO1xuICAkc2xpY2U6IDIwMDA7XG4gICRpbmRleDogMDtcbiAgJGxvb3BzOiBjZWlsKHN0ci1sZW5ndGgoJHN2ZykgLyAkc2xpY2UpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxvb3BzIHtcblx0JGNodW5rOiBzdHItc2xpY2UoJHN2ZywgJGluZGV4LCAkaW5kZXggKyAkc2xpY2UgLSAxKTtcblx0JGNodW5rOiBzdHItcmVwbGFjZSgkY2h1bmssICdcIicsIFwiJ1wiKTtcblx0JGNodW5rOiBzdHItcmVwbGFjZSgkY2h1bmssICc8JywgJyUzQycpO1xuXHQkY2h1bms6IHN0ci1yZXBsYWNlKCRjaHVuaywgJz4nLCAnJTNFJyk7XG5cdCRjaHVuazogc3RyLXJlcGxhY2UoJGNodW5rLCAnJicsICclMjYnKTtcblx0JGNodW5rOiBzdHItcmVwbGFjZSgkY2h1bmssICcjJywgJyUyMycpO1xuXHQkZW5jb2RlZDogI3skZW5jb2RlZH0jeyRjaHVua307XG5cdCRpbmRleDogJGluZGV4ICsgJHNsaWNlO1xuICB9XG5cbiAgQHJldHVybiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCN7JGVuY29kZWR9XCIpO1xufVxuXG4vLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBsaW5rIGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC8xYjRmMmRhNTUyNzgzMDA4OGU0ZFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlYXJjaCAtIFN1YnN0cmluZyB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG5cbiAgQGlmICRpbmRleCB7XG5cdEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuIiwiQG1peGluIGZvbnQtZmFjZSgkZm9udC1uYW1lLCAkZmlsZS1uYW1lLCAkd2VpZ2h0OiBub3JtYWwsICRzdHlsZTogbm9ybWFsKSB7XG4gIEBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogcXVvdGUoJGZvbnQtbmFtZSk7XG5cdHNyYzogdXJsKCRmaWxlLW5hbWUgKyAnLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcblx0c3JjOiB1cmwoJGZpbGUtbmFtZSArICcuZW90Jyk7XG5cdHNyYzogdXJsKCRmaWxlLW5hbWUgKyAnLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdHVybCgkZmlsZS1uYW1lICsgJy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG5cdHVybCgkZmlsZS1uYW1lICsgJy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdHVybCgkZmlsZS1uYW1lICsgJy5zdmcjI3skZm9udC1uYW1lfScpIGZvcm1hdCgnc3ZnJyk7XG5cdGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXHRmb250LXN0eWxlOiAkc3R5bGU7XG4gIH1cbn1cblxuQG1peGluIGRlZmF1bHQtbGluaygpIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzIGVhc2UsIGJvcmRlci1ib3R0b20tY29sb3IgLjNzIGVhc2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNjM2MzYzO1xuXG4gICY6aG92ZXIge1xuXHRjb2xvcjogdmFyKC0tdGVtcGxhdGUtcHJpbWFyeS1jb2xvcik7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRlbXBsYXRlLXByaW1hcnktY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBjdXJzb3IoKSB7XG4gIGJvZHkudG1wbF9laHBhZCAmIHtcblx0Y3Vyc29yOiBzdmctdXJpKCc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDM5IDM5XCIgZmlsbD1cIm5vbmVcIj4gPGNpcmNsZSByPVwiMTkuNVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxOS41IDE5LjUpXCIgZmlsbD1cInVybCgjNWU1ZWI0MmYtYTgyMC00YjExLTg5NWMtN2ZlNzliMWNlYzY4KVwiPjwvY2lyY2xlPiA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTguMTgzNiAxMi45OTk5QzE4LjE4MzYgMTIuNDQ3NiAxOC42MzEzIDExLjk5OTkgMTkuMTgzNiAxMS45OTk5QzE5LjczNTkgMTEuOTk5OSAyMC4xODM2IDEyLjQ0NzYgMjAuMTgzNiAxMi45OTk5VjE4LjgxOEwyNiAxOC44MThDMjYuNTUyMyAxOC44MTggMjcgMTkuMjY1NyAyNyAxOS44MThDMjcgMjAuMzcwMyAyNi41NTIzIDIwLjgxOCAyNiAyMC44MThIMjAuMTgzNlYyNS45OTk5QzIwLjE4MzYgMjYuNTUyMiAxOS43MzU5IDI2Ljk5OTkgMTkuMTgzNiAyNi45OTk5QzE4LjYzMTMgMjYuOTk5OSAxOC4xODM2IDI2LjU1MjIgMTguMTgzNiAyNS45OTk5VjIwLjgxOEgxM0MxMi40NDc3IDIwLjgxOCAxMiAyMC4zNzAzIDEyIDE5LjgxOEMxMiAxOS4yNjU3IDEyLjQ0NzcgMTguODE4IDEzIDE4LjgxOEwxOC4xODM2IDE4LjgxOFYxMi45OTk5WlwiIGZpbGw9XCJ3aGl0ZVwiPjwvcGF0aD4gPGRlZnM+IDxsaW5lYXJHcmFkaWVudCBpZD1cIjVlNWViNDJmLWE4MjAtNGIxMS04OTVjLTdmZTc5YjFjZWM2OFwiIHgxPVwiMS44MzMzM1wiIHkxPVwiNC42OFwiIHgyPVwiNDAuMzc4NFwiIHkyPVwiNi4zMDUwN1wiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPiA8c3RvcCBzdG9wLWNvbG9yPVwiI0FDQzM2RFwiPjwvc3RvcD4gPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjNkM5QTJFXCI+PC9zdG9wPiA8L2xpbmVhckdyYWRpZW50PiA8L2RlZnM+IDwvc3ZnPicpIDIwIDIwLCBhdXRvO1xuICB9XG5cbiAgYm9keS50bXBsX3Nwb3J0ICYge1xuXHRjdXJzb3I6IHN2Zy11cmkoJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgMzkgMzlcIiBmaWxsPVwibm9uZVwiPiA8Y2lyY2xlIHI9XCIxOS41XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDE5LjUgMTkuNSlcIiBmaWxsPVwidXJsKCM1ZTVlYjQyZi1hODIwLTRiMTEtODk1Yy03ZmU3OWIxY2VjNjgpXCI+PC9jaXJjbGU+IDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xOC4xODM2IDEyLjk5OTlDMTguMTgzNiAxMi40NDc2IDE4LjYzMTMgMTEuOTk5OSAxOS4xODM2IDExLjk5OTlDMTkuNzM1OSAxMS45OTk5IDIwLjE4MzYgMTIuNDQ3NiAyMC4xODM2IDEyLjk5OTlWMTguODE4TDI2IDE4LjgxOEMyNi41NTIzIDE4LjgxOCAyNyAxOS4yNjU3IDI3IDE5LjgxOEMyNyAyMC4zNzAzIDI2LjU1MjMgMjAuODE4IDI2IDIwLjgxOEgyMC4xODM2VjI1Ljk5OTlDMjAuMTgzNiAyNi41NTIyIDE5LjczNTkgMjYuOTk5OSAxOS4xODM2IDI2Ljk5OTlDMTguNjMxMyAyNi45OTk5IDE4LjE4MzYgMjYuNTUyMiAxOC4xODM2IDI1Ljk5OTlWMjAuODE4SDEzQzEyLjQ0NzcgMjAuODE4IDEyIDIwLjM3MDMgMTIgMTkuODE4QzEyIDE5LjI2NTcgMTIuNDQ3NyAxOC44MTggMTMgMTguODE4TDE4LjE4MzYgMTguODE4VjEyLjk5OTlaXCIgZmlsbD1cIndoaXRlXCI+PC9wYXRoPiA8ZGVmcz4gPGxpbmVhckdyYWRpZW50IGlkPVwiNWU1ZWI0MmYtYTgyMC00YjExLTg5NWMtN2ZlNzliMWNlYzY4XCIgeDE9XCIxLjgzMzMzXCIgeTE9XCI0LjY4XCIgeDI9XCI0MC4zNzg0XCIgeTI9XCI2LjMwNTA3XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+IDxzdG9wIHN0b3AtY29sb3I9XCIjMzVCM0E3XCI+PC9zdG9wPiA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMxNzhDODFcIj48L3N0b3A+IDwvbGluZWFyR3JhZGllbnQ+IDwvZGVmcz4gPC9zdmc+JykgMjAgMjAsIGF1dG87XG4gIH1cblxuICBib2R5LnRtcGxfcmVzaWRlbmNlcyAmIHtcblx0Y3Vyc29yOiBzdmctdXJpKCc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDM5IDM5XCIgZmlsbD1cIm5vbmVcIj4gPGNpcmNsZSByPVwiMTkuNVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxOS41IDE5LjUpXCIgZmlsbD1cInVybCgjNWU1ZWI0MmYtYTgyMC00YjExLTg5NWMtN2ZlNzliMWNlYzY4KVwiPjwvY2lyY2xlPiA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTguMTgzNiAxMi45OTk5QzE4LjE4MzYgMTIuNDQ3NiAxOC42MzEzIDExLjk5OTkgMTkuMTgzNiAxMS45OTk5QzE5LjczNTkgMTEuOTk5OSAyMC4xODM2IDEyLjQ0NzYgMjAuMTgzNiAxMi45OTk5VjE4LjgxOEwyNiAxOC44MThDMjYuNTUyMyAxOC44MTggMjcgMTkuMjY1NyAyNyAxOS44MThDMjcgMjAuMzcwMyAyNi41NTIzIDIwLjgxOCAyNiAyMC44MThIMjAuMTgzNlYyNS45OTk5QzIwLjE4MzYgMjYuNTUyMiAxOS43MzU5IDI2Ljk5OTkgMTkuMTgzNiAyNi45OTk5QzE4LjYzMTMgMjYuOTk5OSAxOC4xODM2IDI2LjU1MjIgMTguMTgzNiAyNS45OTk5VjIwLjgxOEgxM0MxMi40NDc3IDIwLjgxOCAxMiAyMC4zNzAzIDEyIDE5LjgxOEMxMiAxOS4yNjU3IDEyLjQ0NzcgMTguODE4IDEzIDE4LjgxOEwxOC4xODM2IDE4LjgxOFYxMi45OTk5WlwiIGZpbGw9XCJ3aGl0ZVwiPjwvcGF0aD4gPGRlZnM+IDxsaW5lYXJHcmFkaWVudCBpZD1cIjVlNWViNDJmLWE4MjAtNGIxMS04OTVjLTdmZTc5YjFjZWM2OFwiIHgxPVwiMS44MzMzM1wiIHkxPVwiNC42OFwiIHgyPVwiNDAuMzc4NFwiIHkyPVwiNi4zMDUwN1wiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPiA8c3RvcCBzdG9wLWNvbG9yPVwiI0ExQUY5MFwiPjwvc3RvcD4gPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjN0M4QTZCXCI+PC9zdG9wPiA8L2xpbmVhckdyYWRpZW50PiA8L2RlZnM+IDwvc3ZnPicpIDIwIDIwLCBhdXRvO1xuICB9XG5cbiAgYm9keS50bXBsX3NzciAmIHtcblx0Y3Vyc29yOiBzdmctdXJpKCc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDM5IDM5XCIgZmlsbD1cIm5vbmVcIj4gPGNpcmNsZSByPVwiMTkuNVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxOS41IDE5LjUpXCIgZmlsbD1cInVybCgjNWU1ZWI0MmYtYTgyMC00YjExLTg5NWMtN2ZlNzliMWNlYzY4KVwiPjwvY2lyY2xlPiA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTguMTgzNiAxMi45OTk5QzE4LjE4MzYgMTIuNDQ3NiAxOC42MzEzIDExLjk5OTkgMTkuMTgzNiAxMS45OTk5QzE5LjczNTkgMTEuOTk5OSAyMC4xODM2IDEyLjQ0NzYgMjAuMTgzNiAxMi45OTk5VjE4LjgxOEwyNiAxOC44MThDMjYuNTUyMyAxOC44MTggMjcgMTkuMjY1NyAyNyAxOS44MThDMjcgMjAuMzcwMyAyNi41NTIzIDIwLjgxOCAyNiAyMC44MThIMjAuMTgzNlYyNS45OTk5QzIwLjE4MzYgMjYuNTUyMiAxOS43MzU5IDI2Ljk5OTkgMTkuMTgzNiAyNi45OTk5QzE4LjYzMTMgMjYuOTk5OSAxOC4xODM2IDI2LjU1MjIgMTguMTgzNiAyNS45OTk5VjIwLjgxOEgxM0MxMi40NDc3IDIwLjgxOCAxMiAyMC4zNzAzIDEyIDE5LjgxOEMxMiAxOS4yNjU3IDEyLjQ0NzcgMTguODE4IDEzIDE4LjgxOEwxOC4xODM2IDE4LjgxOFYxMi45OTk5WlwiIGZpbGw9XCJ3aGl0ZVwiPjwvcGF0aD4gPGRlZnM+IDxsaW5lYXJHcmFkaWVudCBpZD1cIjVlNWViNDJmLWE4MjAtNGIxMS04OTVjLTdmZTc5YjFjZWM2OFwiIHgxPVwiMS44MzMzM1wiIHkxPVwiNC42OFwiIHgyPVwiNDAuMzc4NFwiIHkyPVwiNi4zMDUwN1wiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPiA8c3RvcCBzdG9wLWNvbG9yPVwiIzc2QjVCQVwiPjwvc3RvcD4gPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjNEU5NTlCXCI+PC9zdG9wPiA8L2xpbmVhckdyYWRpZW50PiA8L2RlZnM+IDwvc3ZnPicpIDIwIDIwLCBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiBhZG1pbi1zdGlja3ktZml4KCAkb2Zmc2V0OiAwICkge1xuICAkbmFycm93LW9mZnNldDogNDZweDtcbiAgJHdpZGUtb2Zmc2V0OiAzMnB4O1xuICBAaWYgJG9mZnNldCAhPSAwIGFuZCB0eXBlLW9mKCRvZmZzZXQpID09ICdudW1iZXInIHtcblx0JG5hcnJvdy1vZmZzZXQ6ICRuYXJyb3ctb2Zmc2V0ICsgJG9mZnNldDtcblx0JHdpZGUtb2Zmc2V0OiAkd2lkZS1vZmZzZXQgKyAkb2Zmc2V0O1xuICB9XG4gIC5hZG1pbi1iYXIgJiB7XG5cdHRvcDogJG5hcnJvdy1vZmZzZXQ7XG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc4M3B4KSB7XG5cdCAgdG9wOiAkd2lkZS1vZmZzZXQ7XG5cdH1cbiAgfVxufVxuXG5AbWl4aW4gbGluZS1oZWlnaHQoJHBzLWZvbnQtc2l6ZSwgJHBzLWxpbmUtaGVpZ2h0OiAwKSB7XG4gIEBpZiAkcHMtbGluZS1oZWlnaHQgPT0gMCB7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH0gQGVsc2Uge1xuXHRsaW5lLWhlaWdodDogKCRwcy1saW5lLWhlaWdodCAvICRwcy1mb250LXNpemUpO1xuICB9XG59XG5cbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkcHMtbGV0dGVyLXNwYWNpbmcpIHtcbiAgbGV0dGVyLXNwYWNpbmc6ICgkcHMtbGV0dGVyLXNwYWNpbmcgLyAxMDAwKSArIGVtO1xufVxuXG5AbWl4aW4gc2NhbGUtaGVhZGluZygkYmFzZS1mb250LXNpemUsICRoZWFkaW5nLXNjYWxlKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG5cdGgjeyRpfSB7XG5cdCAgZm9udC1zaXplOiByZW0oJGJhc2UtZm9udC1zaXplICsgJGhlYWRpbmctc2NhbGUgKiAoNiAtICRpKSk7XG5cdH1cbiAgfVxufVxuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKCRjb2xvciwgJGRpcmVjdGlvbiwgJHNpemU6IDZweCwgJHBvc2l0aW9uOiBhYnNvbHV0ZSwgJHJvdW5kOiBmYWxzZSkge1xuICBAaW5jbHVkZSBwc2V1ZG8oJHBvczogJHBvc2l0aW9uKTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgQGlmICRyb3VuZCB7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcbiAgfVxuICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcblx0Ym9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG5cdG1hcmdpbi10b3A6IDAgLSByb3VuZCggJHNpemUgLyAyLjUgKTtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwIHtcblx0Ym9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG5cdG1hcmdpbi1ib3R0b206IDAgLSByb3VuZCggJHNpemUgLyAyLjUgKTtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcblx0Ym9yZGVyLXRvcDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItbGVmdDogJHNpemUgc29saWQgJGNvbG9yO1xuXHRtYXJnaW4tcmlnaHQ6IC0kc2l6ZTtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuXHRib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yaWdodDogJHNpemUgc29saWQgJGNvbG9yO1xuXHRtYXJnaW4tbGVmdDogLSRzaXplO1xuICB9XG59XG5cbkBtaXhpbiBoZWFkaW5ncyB7XG4gIGgxLCBoMiwgaDMsXG4gIGg0LCBoNSwgaDYge1xuXHRAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbXEoJHdpZHRoLCAkdHlwZTogbWF4KSB7XG4gIEBpZiBtYXBfaGFzX2tleSgkYnJlYWtwb2ludHMsICR3aWR0aCkge1xuXHQkd2lkdGg6IG1hcF9nZXQoJGJyZWFrcG9pbnRzLCAkd2lkdGgpO1xuICB9IEBlbHNlIHtcblx0JHdpZHRoOiAkd2lkdGggKiAxcHg7XG4gIH1cbiAgQGlmICR0eXBlID09IG1heCB7XG5cdCR3aWR0aDogJHdpZHRoIC0gMXB4O1xuICB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKCN7JHR5cGV9LXdpZHRoOiAkd2lkdGgpIHtcblx0QGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHBob3Rvc2hvcC1sZXR0ZXIoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nLXBzZCwgJGxpbmUtaGVpZ2h0LXBzZDogMCwgJGltcG9ydGFudDogMCkge1xuICBAaWYgJGltcG9ydGFudCA9PSAxIHtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplICogMXB4ICFpbXBvcnRhbnQ7XG5cdGxldHRlci1zcGFjaW5nOiAoKCRsZXR0ZXItc3BhY2luZy1wc2QgKiAkZm9udC1zaXplKSAvIDEwMDApICogMXB4ICFpbXBvcnRhbnQ7XG5cdEBpZiAkbGluZS1oZWlnaHQtcHNkID09IDAge1xuXHQgIGxpbmUtaGVpZ2h0OiAoKDEyMCAqICRmb250LXNpemUpIC8gMTAwKSAqIDFweCAhaW1wb3J0YW50O1xuXHR9IEBlbHNlIHtcblx0ICBsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSArICgkbGluZS1oZWlnaHQtcHNkIC8gMikgKiAxcHggIWltcG9ydGFudDtcblx0fVxuICB9IEBlbHNlIHtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplICogMXB4O1xuXHRsZXR0ZXItc3BhY2luZzogKCgkbGV0dGVyLXNwYWNpbmctcHNkICogJGZvbnQtc2l6ZSkgLyAxMDAwKSAqIDFweDtcblx0QGlmICRsaW5lLWhlaWdodC1wc2QgPT0gMCB7XG5cdCAgbGluZS1oZWlnaHQ6ICgoMTIwICogJGZvbnQtc2l6ZSkgLyAxMDApICogMXB4O1xuXHR9IEBlbHNlIHtcblx0ICBsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSArICgkbGluZS1oZWlnaHQtcHNkIC8gMikgKiAxcHg7XG5cdH1cbiAgfVxufVxuXG4vKipcbiAgQ09OVkVSVCBQSE9UT1NIT1AgQk9YIFNIQURPVyBUTyBDU1NcbiAqL1xuQG1peGluIHBob3Rvc2hvcC1ib3gtc2hhZG93KCRvcGFjaXR5LCAkYW5nbGUsICRkaXN0YW5jZSwgJHNwcmVhZCwgJHNpemUsICRyZWQ6IDAsICRncmVlbjogMCwgJGJsdWU6IDAsICRtb3JlX2JveF9zaGFkb3c6IDApIHtcbiAgJGNzc09wYWNpdHk6ICRvcGFjaXR5IC8gMTAwOyAvLyBjb252ZXJ0IG9wYWNpdHkgdG8gbnVtYmVyXG4gICRhbmc6ICgxODAgLSAkYW5nbGUpICogMy4xNCAvIDE4MDsgLy8gY29udmVydCB0byByYWRpYW5zXG5cbiAgJG9mZnNldFk6IHJvdW5kKHNpbigkYW5nKSAqICRkaXN0YW5jZSk7IC8vIFZlcnRpY2FsIHNoYWRvd1xuICAkb2Zmc2V0WDogcm91bmQoY29zKCRhbmcpICogJGRpc3RhbmNlKTsgLy8gSG9yaXpvbnRhbCBzaGFkb3dcblxuICAkc3ByZWFkUmFkOiAkc2l6ZSAqICRzcHJlYWQvMTAwOyAvLyBTcHJlYWQgcmFkaXVzXG4gICRibHVyUmFkOiAkc2l6ZSAtICRzcHJlYWRSYWQ7IC8vIEJsdXIgcmFkaXVzXG5cbiAgQGlmICRtb3JlX2JveF9zaGFkb3cgPT0gMCB7XG5cdGJveC1zaGFkb3c6ICN7JG9mZnNldFh9cHggI3skb2Zmc2V0WX1weCAjeyRibHVyUmFkfXB4ICN7JHNwcmVhZFJhZH1weCByZ2JhKCRyZWQsICRncmVlbiwgJGJsdWUsICRjc3NPcGFjaXR5KTtcbiAgfSBAZWxzZSB7XG5cdGJveC1zaGFkb3c6ICN7JG9mZnNldFh9cHggI3skb2Zmc2V0WX1weCAjeyRibHVyUmFkfXB4ICN7JHNwcmVhZFJhZH1weCByZ2JhKCRyZWQsICRncmVlbiwgJGJsdWUsICRjc3NPcGFjaXR5KSwgJG1vcmVfYm94X3NoYWRvdztcbiAgfVxufVxuXG4vLyBAbGluayBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvZGVlcC1nZXRzZXQtbWFwcy9cbkBmdW5jdGlvbiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG5cdCRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gIH1cbiAgQHJldHVybiAkbWFwO1xufVxuXG5AZnVuY3Rpb24gaGV4VG9SR0IoJGhleCkge1xuICBAcmV0dXJuIHJlZCgkaGV4KSwgZ3JlZW4oJGhleCksIGJsdWUoJGhleCk7XG59XG5cbkBtaXhpbiBnZW5lcmF0ZUNvbG9ycygkY29sb3JzKSB7XG4gIC8vIENvbG9ycywgUkdCIENvbG9yc1xuICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkY29sb3JzIHtcblx0QGlmIHN0ci1zbGljZSgjeyR2YWx1ZX0sIDEsIDEpID09IFwiI1wiIHtcblx0ICAtLSN7JGNvbG9yfTogI3skdmFsdWV9O1xuXHQgIC0tUkdCXyN7JGNvbG9yfTogI3toZXhUb1JHQigkdmFsdWUpfTtcblx0fSBAZWxzZSB7XG5cdCAgLS0jeyRjb2xvcn06IHZhcigtLSN7JHZhbHVlfSk7XG5cdCAgLS1SR0JfI3skY29sb3J9OiB2YXIoLS1SR0JfI3skdmFsdWV9KTtcblx0fVxuICB9XG59XG5cbkBtaXhpbiBsaW5lYXJHcmFkaWVudENvbG9ycygpIHtcbiAgYm9keS50bXBsX2VocGFkICYge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjQUNDMzZEIDAlLCAjNkM5QTJFIDEwMCUpO1xuICB9XG5cbiAgYm9keS50bXBsX3Jlc2lkZW5jZXMgJiB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNBMUFGOTAgMCUsICM3QzhBNkIgMTAwJSk7XG4gIH1cblxuICBib2R5LnRtcGxfc3NyICYge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjNzZCNUJBIDAlLCAjNEU5NTlCIDEwMCUpO1xuICB9XG5cbiAgYm9keS50bXBsX3Nwb3J0ICYge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMzVCM0E3IDUlLCAjMTc4QzgxIDEwMCUpO1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiogTWl4aW4gcG91ciBnw6luw6lyZXIgbGVzIGNsYXNzIHBvdXIgbGVzIGF1dHJlcyBlbnRpdMOpcyAqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1peGluIGNsYXNzLW9mLWJvZHkoJGF0dHJpYnV0ZSwgJGF0dHJpYnV0ZTI6IG51bGwpIHtcbiAgYm9keS50bXBsX2VocGFkICYge1xuXHQjeyRhdHRyaWJ1dGV9OiAkY29sb3ItZWhwYWQ7XG5cdEBpZiAkYXR0cmlidXRlMiAhPSBudWxsIHtcblx0ICAjeyRhdHRyaWJ1dGUyfTogJGNvbG9yLWVocGFkO1xuXHR9XG4gIH1cbiAgYm9keS50bXBsX3Jlc2lkZW5jZXMgJiB7XG5cdCN7JGF0dHJpYnV0ZX06ICRjb2xvci1yZXM7XG5cdEBpZiAkYXR0cmlidXRlMiAhPSBudWxsIHtcblx0ICAjeyRhdHRyaWJ1dGUyfTogJGNvbG9yLXJlcztcblx0fVxuICB9XG4gIGJvZHkudG1wbF9zc3IgJiB7XG5cdCN7JGF0dHJpYnV0ZX06ICRjb2xvci1zc3I7XG5cdEBpZiAkYXR0cmlidXRlMiAhPSBudWxsIHtcblx0ICAjeyRhdHRyaWJ1dGUyfTogJGNvbG9yLXNzcjtcblx0fVxuICB9XG4gIGJvZHkudG1wbF9zcG9ydCAmIHtcblx0I3skYXR0cmlidXRlfTogJGNvbG9yLXNwb3J0O1xuXHRAaWYgJGF0dHJpYnV0ZTIgIT0gbnVsbCB7XG5cdCAgI3skYXR0cmlidXRlMn06ICRjb2xvci1zcG9ydDtcblx0fVxuICB9XG59XG5cbkBtaXhpbiBjbGFzcy1vZi1wYXJlbnQoJGF0dHJpYnV0ZSwgJGF0dHJpYnV0ZTI6IG51bGwpIHtcbiAgYm9keSAudG1wbF9laHBhZCAmIHtcblx0I3skYXR0cmlidXRlfTogJGNvbG9yLWVocGFkO1xuXHRAaWYgJGF0dHJpYnV0ZTIgIT0gbnVsbCB7XG5cdCAgI3skYXR0cmlidXRlMn06ICRjb2xvci1laHBhZDtcblx0fVxuICB9XG4gIGJvZHkgLnRtcGxfcmVzaWRlbmNlcyAmIHtcblx0I3skYXR0cmlidXRlfTogJGNvbG9yLXJlcztcblx0QGlmICRhdHRyaWJ1dGUyICE9IG51bGwge1xuXHQgICN7JGF0dHJpYnV0ZTJ9OiAkY29sb3ItcmVzO1xuXHR9XG4gIH1cbiAgYm9keSAudG1wbF9zc3IgJiB7XG5cdCN7JGF0dHJpYnV0ZX06ICRjb2xvci1zc3I7XG5cdEBpZiAkYXR0cmlidXRlMiAhPSBudWxsIHtcblx0ICAjeyRhdHRyaWJ1dGUyfTogJGNvbG9yLXNzcjtcblx0fVxuICB9XG4gIGJvZHkgLnRtcGxfc3BvcnQgJiB7XG5cdCN7JGF0dHJpYnV0ZX06ICRjb2xvci1zcG9ydDtcblx0QGlmICRhdHRyaWJ1dGUyICE9IG51bGwge1xuXHQgICN7JGF0dHJpYnV0ZTJ9OiAkY29sb3Itc3BvcnQ7XG5cdH1cbiAgfVxufVxuXG5AbWl4aW4gY2xhc3Mtb2YtcGFyZW50LWVsZW1lbnQoJGF0dHJpYnV0ZSwgJGF0dHJpYnV0ZTI6IG51bGwpIHtcbiAgJi50bXBsX2VocGFkIHtcblx0I3skYXR0cmlidXRlfTogJGNvbG9yLWVocGFkO1xuXHRAaWYgJGF0dHJpYnV0ZTIgIT0gbnVsbCB7XG5cdCAgI3skYXR0cmlidXRlMn06ICRjb2xvci1laHBhZDtcblx0fVxuICB9XG4gICYudG1wbF9yZXNpZGVuY2VzIHtcblx0I3skYXR0cmlidXRlfTogJGNvbG9yLXJlcztcblx0QGlmICRhdHRyaWJ1dGUyICE9IG51bGwge1xuXHQgICN7JGF0dHJpYnV0ZTJ9OiAkY29sb3ItcmVzO1xuXHR9XG4gIH1cbiAgJi50bXBsX3NzciB7XG5cdCN7JGF0dHJpYnV0ZX06ICRjb2xvci1zc3I7XG5cdEBpZiAkYXR0cmlidXRlMiAhPSBudWxsIHtcblx0ICAjeyRhdHRyaWJ1dGUyfTogJGNvbG9yLXNzcjtcblx0fVxuICB9XG4gICYudG1wbF9zcG9ydCB7XG5cdCN7JGF0dHJpYnV0ZX06ICRjb2xvci1zcG9ydDtcblx0QGlmICRhdHRyaWJ1dGUyICE9IG51bGwge1xuXHQgICN7JGF0dHJpYnV0ZTJ9OiAkY29sb3Itc3BvcnQ7XG5cdH1cbiAgfVxufVxuXG5AbWl4aW4gc3ViLW1lbnUtY29sb3IoKSB7XG4gIC50bXBsX2VocGFkIHtcblx0LnViZXJtZW51LXN1Ym1lbnUge1xuXHQgID4gLnViZXJtZW51LWl0ZW0tdHlwZS1jb2x1bW4ge1xuXHRcdD4gLnViZXJtZW51LXN1Ym1lbnUtdHlwZS1zdGFjayB7XG5cdFx0ICA+IC51YmVybWVudS1pdGVtLWxldmVsLTIge1xuXHRcdFx0PiBhIHtcblx0XHRcdCAgY29sb3I6ICRjb2xvci1laHBhZDtcblxuXHRcdFx0ICAmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICRjb2xvci10ZXh0O1xuXHRcdFx0ICB9XG5cdFx0XHR9XG5cdFx0ICB9XG5cdFx0fVxuXG5cdFx0LnViZXJtZW51LXN1Ym1lbnUtdHlwZS1hdXRvIHtcblx0XHQgIGEge1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHQgIGNvbG9yOiAkY29sb3ItZWhwYWQ7XG5cdFx0XHR9XG5cdFx0ICB9XG5cdFx0fVxuXHQgIH1cblx0fVxuICB9XG5cbiAgLnRtcGxfcmVzaWRlbmNlcyB7XG5cdC51YmVybWVudS1zdWJtZW51IHtcblx0ICA+IC51YmVybWVudS1pdGVtLXR5cGUtY29sdW1uIHtcblx0XHQ+IC51YmVybWVudS1zdWJtZW51LXR5cGUtc3RhY2sge1xuXHRcdCAgPiAudWJlcm1lbnUtaXRlbS1sZXZlbC0yIHtcblx0XHRcdD4gYSB7XG5cdFx0XHQgIGNvbG9yOiAkY29sb3ItcmVzO1xuXG5cdFx0XHQgICY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJGNvbG9yLXRleHQ7XG5cdFx0XHQgIH1cblx0XHRcdH1cblx0XHQgIH1cblx0XHR9XG5cblx0XHQudWJlcm1lbnUtc3VibWVudS10eXBlLWF1dG8ge1xuXHRcdCAgYSB7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdCAgY29sb3I6ICRjb2xvci1yZXM7XG5cdFx0XHR9XG5cdFx0ICB9XG5cdFx0fVxuXHQgIH1cblx0fVxuICB9XG5cbiAgLnRtcGxfc3NyIHtcblx0LnViZXJtZW51LXN1Ym1lbnUge1xuXHQgID4gLnViZXJtZW51LWl0ZW0tdHlwZS1jb2x1bW4ge1xuXHRcdD4gLnViZXJtZW51LXN1Ym1lbnUtdHlwZS1zdGFjayB7XG5cdFx0ICA+IC51YmVybWVudS1pdGVtLWxldmVsLTIge1xuXHRcdFx0PiBhIHtcblx0XHRcdCAgY29sb3I6ICRjb2xvci1zc3I7XG5cblx0XHRcdCAgJjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3ItdGV4dDtcblx0XHRcdCAgfVxuXHRcdFx0fVxuXHRcdCAgfVxuXHRcdH1cblxuXHRcdC51YmVybWVudS1zdWJtZW51LXR5cGUtYXV0byB7XG5cdFx0ICBhIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0ICBjb2xvcjogJGNvbG9yLXNzcjtcblx0XHRcdH1cblx0XHQgIH1cblx0XHR9XG5cdCAgfVxuXHR9XG4gIH1cblxuICAudG1wbF9zcG9ydCB7XG5cdC51YmVybWVudS1zdWJtZW51IHtcblx0ICA+IC51YmVybWVudS1pdGVtLXR5cGUtY29sdW1uIHtcblx0XHQ+IC51YmVybWVudS1zdWJtZW51LXR5cGUtc3RhY2sge1xuXHRcdCAgPiAudWJlcm1lbnUtaXRlbS1sZXZlbC0yIHtcblx0XHRcdD4gYSB7XG5cdFx0XHQgIGNvbG9yOiAkY29sb3Itc3BvcnQ7XG5cblx0XHRcdCAgJjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3ItdGV4dDtcblx0XHRcdCAgfVxuXHRcdFx0fVxuXHRcdCAgfVxuXHRcdH1cblxuXHRcdC51YmVybWVudS1zdWJtZW51LXR5cGUtYXV0byB7XG5cdFx0ICBhIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0ICBjb2xvcjogJGNvbG9yLXNwb3J0O1xuXHRcdFx0fVxuXHRcdCAgfVxuXHRcdH1cblx0ICB9XG5cdH1cbiAgfVxuXG59XG5AbWl4aW4gbGlzdC1hZHZhbmNlZC1zdHlsZSgpIHtcbiAgbGkge1xuXHRwYWRkaW5nLWxlZnQ6IHJlbSgyNSk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblxuXHQmOmJlZm9yZSB7XG5cdCAgY29udGVudDogJyc7XG5cdCAgd2lkdGg6IDE2cHg7XG5cdCAgaGVpZ2h0OiAxNS40MnB4O1xuXHQgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICB0b3A6IDRweDtcblx0ICBsZWZ0OiAwO1xuXHQgIGJvcmRlci1yYWRpdXM6IDA7XG5cdCAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvcGljdG8tZ2VuZXJhbC5zdmcnKTtcblx0ICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHQgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cblx0ICBib2R5LnRtcGxfZ2VuZXJhbCAmIHtcblx0XHRoZWlnaHQ6IDE2cHg7XG5cdCAgfVxuXG5cdCAgYm9keS50bXBsX2VocGFkICYge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1hZ2VzL3BpY3RvLWVocGFkLnN2ZycpO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdCAgfVxuXG5cdCAgYm9keS50bXBsX3Jlc2lkZW5jZXMgJiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvcGljdG8tcmVzaWRlbmNlcy5zdmcnKTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHQgIH1cblxuXHQgIGJvZHkudG1wbF9zc3IgJiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvcGljdG8tc3NyLnN2ZycpO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdCAgfVxuXG5cdCAgYm9keS50bXBsX3Nwb3J0ICYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3BpY3RvLXNwb3J0LnN2ZycpO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdCAgfVxuXG5cdCAgLnR4dC1jb2xvci13aGl0ZSAmIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9waWN0by1idWxsZXQtd2hpdGUuc3ZnJykgIWltcG9ydGFudDtcblx0ICB9XG5cdH1cbiAgfVxufVxuXG5AbWl4aW4gbmV3LXByb2dyZXNzLXBhZ2luYXRpb24oJG1hcmdpblRvcDogMjBweCwgJGZvbnRTaXplOiA5cHgsICRzaG93TmF2aWdhdGlvbjogMTEwMCkge1xuXHRtYXJnaW4tdG9wOiAkbWFyZ2luVG9wO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE0cHg7XG5cblx0Ji5pbnZpc2libGUtbmF2aWdhdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRAaW5jbHVkZSBtcSgkc2hvd05hdmlnYXRpb24sJ21pbicpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0YnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblxuXHQmX19jb3VudGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogNC4xOHB4O1xuXHRcdHdpZHRoOiA2MHB4O1xuXHRcdGhlaWdodDogNjBweDtcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGVuZDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHRib2R5LnRtcGxfZWhwYWQgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTJkZWcsI0FDQzM2RCA1JSwgIzZDOUEyRSAxMDAlKTtcblx0XHR9XG5cblx0XHRib2R5LnRtcGxfcmVzaWRlbmNlcyAmIHtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MmRlZywjQTFBRjkwIDUlLCAjN0M4QTZCIDEwMCUpO1xuXHRcdH1cblxuXHRcdGJvZHkudG1wbF9zc3IgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTJkZWcsICM3NkI1QkEgNSUsICM0RTk1OUIgMTAwJSk7XG5cdFx0fVxuXG5cdFx0Ym9keS50bXBsX3Nwb3J0ICYge1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkyZGVnLCAjMzVCM0E3IDUlLCAjMTc4QzgxIDEwMCUpO1xuXHRcdH1cblx0XHRcblx0XHQucHJvZ3Jlc3MtYmFyX19wcm9ncmVzcyB7XG5cdFx0XHRmaWxsOiBub25lO1xuXHRcdFx0c3Ryb2tlOiAjRjJGMkYyO1xuXHRcdFx0c3Ryb2tlLWRhc2hhcnJheTogMTAwIDEwMDtcblx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAxMDA7XG5cdFx0XHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdFx0XHRzdHJva2Utd2lkdGg6IDAuODtcblx0XHRcdHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNXMgZWFzZS1pbi1vdXQ7XG5cdFx0fVxuXHRcblx0XHQucHJvZ3Jlc3MtYmFyX19iYWNrZ3JvdW5kIHtcblx0XHRcdGZpbGw6IG5vbmU7XG5cdFx0XHRzdHJva2U6IHJnYmEoMjQyLCAyNDIsIDI0MiwgMC4zKTtcblx0XHRcdHN0cm9rZS13aWR0aDogMC44O1xuXHRcdH1cblx0XG5cdFx0c3ZnIHtcblx0XHRcdHdpZHRoOiA1MS42MzJweDtcblx0XHRcdGhlaWdodDogNTEuNjMycHg7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuXHRcdH1cblx0fVxuXG5cdCZfX2NvdW50ZXJfX251bWJlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAkZm9udFNpemU7XG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0fVxufSIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdCwgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuXG4vLyBTQ1NTIFJGUyBtaXhpblxuLy9cbi8vIEF1dG9tYXRlZCByZXNwb25zaXZlIHZhbHVlcyBmb3IgZm9udCBzaXplcywgcGFkZGluZ3MsIG1hcmdpbnMgYW5kIG11Y2ggbW9yZVxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2Jsb2IvbWFpbi9MSUNFTlNFKVxuXG4vLyBDb25maWd1cmF0aW9uXG5cbi8vIEJhc2UgdmFsdWVcbiRyZnMtYmFzZS12YWx1ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRyZnMtdW5pdDogcmVtICFkZWZhdWx0O1xuXG5AaWYgJHJmcy11bml0ICE9IHJlbSBhbmQgJHJmcy11bml0ICE9IHB4IHtcbiAgQGVycm9yIFwiYCN7JHJmcy11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy11bml0LiBVc2UgYHB4YCBvciBgcmVtYC5cIjtcbn1cblxuLy8gQnJlYWtwb2ludCBhdCB3aGVyZSB2YWx1ZXMgc3RhcnQgZGVjcmVhc2luZyBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlclxuJHJmcy1icmVha3BvaW50OiAxMjAwcHggIWRlZmF1bHQ7XG4kcmZzLWJyZWFrcG9pbnQtdW5pdDogcHggIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBweCBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gZW0gYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHJlbSB7XG4gIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xufVxuXG4vLyBSZXNpemUgdmFsdWVzIGJhc2VkIG9uIHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoXG4kcmZzLXR3by1kaW1lbnNpb25hbDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhY3RvciBvZiBkZWNyZWFzZVxuJHJmcy1mYWN0b3I6IDEwICFkZWZhdWx0O1xuXG5AaWYgdHlwZS1vZigkcmZzLWZhY3RvcikgIT0gbnVtYmVyIG9yICRyZnMtZmFjdG9yIDw9IDEge1xuICBAZXJyb3IgXCJgI3skcmZzLWZhY3Rvcn1gIGlzIG5vdCBhIHZhbGlkICAkcmZzLWZhY3RvciwgaXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMS5cIjtcbn1cblxuLy8gTW9kZS4gUG9zc2liaWxpdGllczogXCJtaW4tbWVkaWEtcXVlcnlcIiwgXCJtYXgtbWVkaWEtcXVlcnlcIlxuJHJmcy1tb2RlOiBtaW4tbWVkaWEtcXVlcnkgIWRlZmF1bHQ7XG5cbi8vIEdlbmVyYXRlIGVuYWJsZSBvciBkaXNhYmxlIGNsYXNzZXMuIFBvc3NpYmlsaXRpZXM6IGZhbHNlLCBcImVuYWJsZVwiIG9yIFwiZGlzYWJsZVwiXG4kcmZzLWNsYXNzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gMSByZW0gPSAkcmZzLXJlbS12YWx1ZSBweFxuJHJmcy1yZW0tdmFsdWU6IDE2ICFkZWZhdWx0O1xuXG4vLyBTYWZhcmkgaWZyYW1lIHJlc2l6ZSBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9pc3N1ZXMvMTRcbiRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGUgUkZTIGJ5IHNldHRpbmcgJGVuYWJsZS1yZnMgdG8gZmFsc2VcbiRlbmFibGUtcmZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBDYWNoZSAkcmZzLWJhc2UtdmFsdWUgdW5pdFxuJHJmcy1iYXNlLXZhbHVlLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLXZhbHVlKTtcblxuQGZ1bmN0aW9uIGRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMCkge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwIG9yICRkaXZpZGVuZCA8IDAgYW5kICRkaXZpc29yIDwgMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciBcIkNhbm5vdCBkaXZpZGUgYnkgMFwiO1xuICB9XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgJHJlc3VsdDogMDtcbiAgJGZhY3RvcjogMTA7XG4gIEB3aGlsZSAoJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPj0gMCkge1xuICAgICRxdW90aWVudDogMDtcbiAgICBAd2hpbGUgKCRyZW1haW5kZXIgPj0gJGRpdmlzb3IpIHtcbiAgICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICB9XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJHF1b3RpZW50O1xuICAgICRmYWN0b3I6ICRmYWN0b3IgKiAuMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyICogMTA7XG4gICAgJHByZWNpc2lvbjogJHByZWNpc2lvbiAtIDE7XG4gICAgQGlmICgkcHJlY2lzaW9uIDwgMCBhbmQgJHJlbWFpbmRlciA+PSAkZGl2aXNvciAqIDUpIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAxO1xuICAgIH1cbiAgfVxuICAkcmVzdWx0OiAkcmVzdWx0ICogJGZhY3RvciAqICRzaWduO1xuICAkZGl2aWRlbmQtdW5pdDogdW5pdCgkZGl2aWRlbmQpO1xuICAkZGl2aXNvci11bml0OiB1bml0KCRkaXZpc29yKTtcbiAgJHVuaXQtbWFwOiAoXG4gICAgXCJweFwiOiAxcHgsXG4gICAgXCJyZW1cIjogMXJlbSxcbiAgICBcImVtXCI6IDFlbSxcbiAgICBcIiVcIjogMSVcbiAgKTtcbiAgQGlmICgkZGl2aWRlbmQtdW5pdCAhPSAkZGl2aXNvci11bml0IGFuZCBtYXAtaGFzLWtleSgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KSkge1xuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiBtYXAtZ2V0KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8gUmVtb3ZlIHB4LXVuaXQgZnJvbSAkcmZzLWJhc2UtdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHB4IHtcbiAgJHJmcy1iYXNlLXZhbHVlOiBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlLCAkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSByZW0ge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsIGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHB4IHtcbiAgJHJmcy1icmVha3BvaW50OiBkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSByZW0gb3IgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gXCJlbVwiIHtcbiAgJHJmcy1icmVha3BvaW50OiBkaXZpZGUoJHJmcy1icmVha3BvaW50LCBkaXZpZGUoJHJmcy1icmVha3BvaW50ICogMCArIDEsICRyZnMtcmVtLXZhbHVlKSk7XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgbWVkaWEgcXVlcnkgdmFsdWVcbiRyZnMtbXEtdmFsdWU6IGlmKCRyZnMtYnJlYWtwb2ludC11bml0ID09IHB4LCAjeyRyZnMtYnJlYWtwb2ludH1weCwgI3tkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLXJlbS12YWx1ZSl9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH0pO1xuJHJmcy1tcS1wcm9wZXJ0eS13aWR0aDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LXdpZHRoLCBtaW4td2lkdGgpO1xuJHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHQ6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC1oZWlnaHQsIG1pbi1oZWlnaHQpO1xuXG4vLyBJbnRlcm5hbCBtaXhpbiB1c2VkIHRvIGRldGVybWluZSB3aGljaCBtZWRpYSBxdWVyeSBuZWVkcyB0byBiZSB1c2VkXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeSB7XG4gIEBpZiAkcmZzLXR3by1kaW1lbnNpb25hbCB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSwgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIGFuZCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZGlzYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1ydWxlIHtcbiAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgLy8gQWRkaW5nIGFuIGV4dHJhIGNsYXNzIGluY3JlYXNlcyBzcGVjaWZpY2l0eSwgd2hpY2ggcHJldmVudHMgdGhlIG1lZGlhIHF1ZXJ5IHRvIG92ZXJyaWRlIHRoZSBwcm9wZXJ0eVxuICAgICYsXG4gICAgLmRpc2FibGUtcmZzICYsXG4gICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgIC5lbmFibGUtcmZzICYsXG4gICAgJi5lbmFibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGVuYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcblxuICBAaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkge1xuICAgICAgLmVuYWJsZS1yZnMgJixcbiAgICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgZm9ybWF0dGVkIG5vbi1yZXNwb25zaXZlIHZhbHVlXG5AZnVuY3Rpb24gcmZzLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogJyc7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyAnIDAnO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyAkcmZzLXJlbS12YWx1ZSl9cmVtLCAkdmFsdWUpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHVuaXQgPT0gcmVtIHtcbiAgICAgICAgLy8gQ29udmVydCB0byBweCBpZiBuZWVkZWRcbiAgICAgICAgJHZhbDogJHZhbCArICcgJyArIGlmKCRyZnMtdW5pdCA9PSBweCwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSkgKiAkcmZzLXJlbS12YWx1ZX1weCwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSByZXNwb25zaXZlIHZhbHVlIGNhbGN1bGF0ZWQgYnkgUkZTXG5AZnVuY3Rpb24gcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogJyc7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyAnIDAnO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIC8vIENhY2hlICR2YWx1ZSB1bml0XG4gICAgICAkdW5pdDogaWYodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIsIHVuaXQoJHZhbHVlKSwgZmFsc2UpO1xuXG4gICAgICAvLyBJZiAkdmFsdWUgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJHZhbHVlIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgICAgIEBpZiBub3QgJHVuaXQgb3IgJHVuaXQgIT0gcHggYW5kICR1bml0ICE9IHJlbSB7XG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIHVuaXQgZnJvbSAkdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuICAgICAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyBpZigkdW5pdCA9PSBweCwgMSwgZGl2aWRlKDEsICRyZnMtcmVtLXZhbHVlKSkpO1xuXG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgIEBpZiBhYnMoJHZhbHVlKSA8PSAkcmZzLWJhc2UtdmFsdWUgb3Igbm90ICRlbmFibGUtcmZzIHtcbiAgICAgICAgICAkdmFsOiAkdmFsICsgJyAnICsgIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHJmcy1yZW0tdmFsdWUpfXJlbSwgI3skdmFsdWV9cHgpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgICAkdmFsdWUtbWluOiAkcmZzLWJhc2UtdmFsdWUgKyBkaXZpZGUoYWJzKCR2YWx1ZSkgLSAkcmZzLWJhc2UtdmFsdWUsICRyZnMtZmFjdG9yKTtcblxuICAgICAgICAgIC8vIENhbGN1bGF0ZSBkaWZmZXJlbmNlIGJldHdlZW4gJHZhbHVlIGFuZCB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1kaWZmOiBhYnMoJHZhbHVlKSAtICR2YWx1ZS1taW47XG5cbiAgICAgICAgICAvLyBCYXNlIHZhbHVlIGZvcm1hdHRpbmdcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUtbWluLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZS1taW59cHgpO1xuXG4gICAgICAgICAgLy8gVXNlIG5lZ2F0aXZlIHZhbHVlIGlmIG5lZWRlZFxuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCR2YWx1ZSA8IDAsIC0kbWluLXdpZHRoLCAkbWluLXdpZHRoKTtcblxuICAgICAgICAgIC8vIFVzZSBgdm1pbmAgaWYgdHdvLWRpbWVuc2lvbmFsIGlzIGVuYWJsZWRcbiAgICAgICAgICAkdmFyaWFibGUtdW5pdDogaWYoJHJmcy10d28tZGltZW5zaW9uYWwsIHZtaW4sIHZ3KTtcblxuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFyaWFibGUgd2lkdGggYmV0d2VlbiAwIGFuZCAkcmZzLWJyZWFrcG9pbnRcbiAgICAgICAgICAkdmFyaWFibGUtd2lkdGg6ICN7ZGl2aWRlKCR2YWx1ZS1kaWZmICogMTAwLCAkcmZzLWJyZWFrcG9pbnQpfSN7JHZhcmlhYmxlLXVuaXR9O1xuXG4gICAgICAgICAgLy8gUmV0dXJuIHRoZSBjYWxjdWxhdGVkIHZhbHVlXG4gICAgICAgICAgJHZhbDogJHZhbCArICcgY2FsYygnICsgJG1pbi13aWR0aCArIGlmKCR2YWx1ZSA8IDAsICcgLSAnLCAnICsgJykgKyAkdmFyaWFibGUtd2lkdGggKyAnKSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIFJGUyBtaXhpblxuQG1peGluIHJmcygkdmFsdWVzLCAkcHJvcGVydHk6IGZvbnQtc2l6ZSkge1xuICBAaWYgJHZhbHVlcyAhPSBudWxsIHtcbiAgICAkdmFsOiByZnMtdmFsdWUoJHZhbHVlcyk7XG4gICAgJGZsdWlkVmFsOiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcyk7XG5cbiAgICAvLyBEbyBub3QgcHJpbnQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHJlc3BvbnNpdmUgJiBub24tcmVzcG9uc2l2ZSB2YWx1ZXMgYXJlIHRoZSBzYW1lXG4gICAgQGlmICR2YWwgPT0gJGZsdWlkVmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWRWYWwpO1xuXG4gICAgICAgIC8vIEluY2x1ZGUgc2FmYXJpIGlmcmFtZSByZXNpemUgZml4IGlmIG5lZWRlZFxuICAgICAgICBtaW4td2lkdGg6IGlmKCRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeCwgKDAgKiAxdncpLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkZmx1aWRWYWwsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTaG9ydGhhbmQgaGVscGVyIG1peGluc1xuQG1peGluIGZvbnQtc2l6ZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nKTtcbn1cblxuQG1peGluIHBhZGRpbmctdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXRvcCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXJpZ2h0KTtcbn1cblxuQG1peGluIHBhZGRpbmctYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctbGVmdCk7XG59XG5cbkBtaXhpbiBtYXJnaW4oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbik7XG59XG5cbkBtaXhpbiBtYXJnaW4tdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tdG9wKTtcbn1cblxuQG1peGluIG1hcmdpbi1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXJpZ2h0KTtcbn1cblxuQG1peGluIG1hcmdpbi1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1ib3R0b20pO1xufVxuXG5AbWl4aW4gbWFyZ2luLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1sZWZ0KTtcbn1cbiIsIiRicm93c2VyLWNvbnRleHQ6IDE1O1xuJHJmcy1yZW0tdmFsdWU6ICRicm93c2VyLWNvbnRleHQ7XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENPTE9SU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiBCYXNlIGNvbG9ycyAqL1xuJGNvbG9yLXByaW1hcnk6ICM2Nzg3Qjc7XG4kY29sb3ItZWhwYWQ6ICNBQ0MzNkQ7XG4kY29sb3ItcmVzOiAjQTFBRjkwO1xuJGNvbG9yLXNzcjogIzc2QjVCQjtcbiRjb2xvci1zcG9ydDogIzM2QjNBODtcbiRjb2xvci10ZXh0OiAjNjM2MzYzO1xuJGNvbG9yLWhlYWRpbmdzOiAjM0QzRDNEO1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBMQVlPVVRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGNvbnRhaW5lci13aWR0aDogMTM5MHB4O1xuJGd1dHRlcjogMTVweDtcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVFlQT0dSQVBIWVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiBEZWZhdWx0IGZvbnRzICovXG4kZm9udC1zZXJpZjogR2VvcmdpYSwgc2VyaWY7XG4kZm9udC1zYW5zLXNlcmlmOiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuJGZvbnQtbW9ub3NwYWNlOiBDb3VyaWVyLCBtb25vc3BhY2U7XG4kZm9udC1jdXJzaXZlOiBjdXJzaXZlO1xuXG4vKiBBcHAgZm9udHMgKi9cbiRmb250LXByaW1hcnk6ICdha3Rpdi1ncm90ZXNrJywgJGZvbnQtc2Fucy1zZXJpZjtcbiRmb250LWJvbGQ6ICdBa3Rpdkdyb3Rlc2stYm9sZCcsICRmb250LXNhbnMtc2VyaWY7XG4kZm9udC1ibGFjazogJ0FrdGl2R3JvdGVzay1ibGFjaycsICRmb250LXNhbnMtc2VyaWY7XG5cbi8qIEZvbnQgd2VpZ2h0cyAqL1xuJHRoaW46IHZhcigtLWZvbnRXZWlnaHRUaGluKTtcbiRsaWdodDogdmFyKC0tZm9udFdlaWdodExpZ2h0KTtcbiRyZWd1bGFyOiB2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7XG4kbWVkaXVtOiB2YXIoLS1mb250V2VpZ2h0TWVkaXVtKTtcbiRzZW1pLWJvbGQ6IHZhcigtLWZvbnRXZWlnaHRTZW1pQm9sZCk7XG4kYm9sZDogdmFyKC0tZm9udFdlaWdodEJvbGQpO1xuJGV4dHJhLWJvbGQ6IHZhcigtLWZvbnRXZWlnaHRFeHRyYUJvbGQpO1xuJGJsYWNrOiB2YXIoLS1mb250V2VpZ2h0QmxhY2spO1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCUkVBS1BPSU5UU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcblx0XHRcInBob25lXCI6IDQwMHB4LFxuXHRcdFwicGhvbmUtd2lkZVwiOiA0ODBweCxcblx0XHRcInBoYWJsZXRcIjogNTYwcHgsXG5cdFx0XCJ0YWJsZXQtc21hbGxcIjogNjQwcHgsXG5cdFx0XCJ0YWJsZXRcIjogNzY4cHgsXG5cdFx0XCJ3aWR0aC05MDBcIjogOTAwcHgsXG5cdFx0XCJ3aWR0aC0xMDAwXCI6IDEwMDBweCxcblx0XHRcInRhYmxldC13aWRlXCI6IDEwMjRweCxcblx0XHRcIndpZHRoLTExMDBcIjogMTEwMHB4LFxuXHRcdFwiZGVza3RvcFwiOiAxMjQ4cHgsXG5cdFx0XCJkZXNrdG9wLXdpZGVcIjogMTQ0MHB4LFxuKTtcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gWiBJTkRFWEVTXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiR6LWluZGV4ZXM6IChcblx0XHQnbW9kYWwtcG9wdXAnLFxuXHRcdCdoZWFkZXInLFxuXHRcdCdtZW51LW92ZXJsYXknLFxuXHRcdCdkb2N0b2xpYi13aWRnZXQnLFxuXHRcdCd3aWRnZXQtZm9vdGVyLW1vYmlsZScsXG5cdFx0J3dpZGdldC1pbmNyZWFzZS1kZWNyZWFzZS1mb250Jyxcblx0XHQnZmFuY3lib3gtY29udGFpbmVyJyxcblx0XHQnYmFjay10by10b3AnXG4pO1xuIiwiLmJsb2Nrc19hY3R1cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBncmlkLXJvdy1nYXA6IHJlbSgzNSk7XG4gIC8qISovXG4gIEBpbmNsdWRlIG1xKCd0YWJsZXQnLCAnbWluJykge1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoY2FsYyg1MCUgLSA0MHB4KSwgMWZyKSk7XG5cdGdyaWQtY29sdW1uLWdhcDogcmVtKDQwKTtcbiAgfVxuXG4gICYtLWl0ZW0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdGJhY2tncm91bmQ6ICNGN0Y3Rjc7XG5cblx0JltkYXRhLWNhdGVnb3J5LWNvdW50PVwiMFwiXSAuYmxvY2tzX2FjdHVzLS1wb3N0IHtcblx0ICBkaXNwbGF5OiBmbGV4O1xuXHQgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdCAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblx0ICBoZWlnaHQ6IDEwMCU7XG5cdH1cbiAgfVxuXG4gICYtLXBvc3Qge1xuXHRAaW5jbHVkZSBwYWRkaW5nKDI1cHggNTBweCk7XG5cblx0aDIge1xuXHQgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcblx0ICBsaW5lLWhlaWdodDogMTtcblx0ICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdCAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0ICBAaW5jbHVkZSBtYXJnaW4tYm90dG9tKDIwcHgpO1xuXHQgIC8qISovXG5cdCAgQGluY2x1ZGUgY2xhc3Mtb2YtcGFyZW50KCdjb2xvcicpO1xuXHR9XG5cblx0aW1nIHtcblx0ICBkaXNwbGF5OiBibG9jaztcblx0ICB3aWR0aDogMTAwJTtcblx0fVxuXG5cdCYtLWluZm9zIHtcblx0ICBAaW5jbHVkZSBtYXJnaW4tdG9wKDEwcHgpO1xuXG5cdCAgaDMge1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4KTtcblx0XHRAaW5jbHVkZSBtYXJnaW4tYm90dG9tKDhweCk7XG5cdCAgfVxuXG5cdCAgcCB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdCAgfVxuXHR9XG4gIH1cblxuICAmLS1zZWVtb3JlIHtcblx0LyohKi9cblx0QGluY2x1ZGUgY2xhc3Mtb2YtcGFyZW50KCdiYWNrZ3JvdW5kLWNvbG9yJyk7XG5cdEBpbmNsdWRlIHBhZGRpbmcoMTVweCA1cHgpO1xuXHRib3JkZXItcmFkaXVzOiAwcHggMHB4IDIwcHggMjBweDtcblxuXHRwIHtcblx0ICBjb2xvcjogI0ZGRjtcblx0ICBmb250LXdlaWdodDogODAwO1xuXHQgIGxpbmUtaGVpZ2h0OiAxO1xuXHR9XG4gIH1cbn0iXX0= */
