From 2ed924ee983bc80ee70009afd2df15aeee427619 Mon Sep 17 00:00:00 2001 From: jt <jt@activesoft.com> Date: 星期六, 08 十月 2022 09:22:34 +0800 Subject: [PATCH] test --- unpackage/dist/dev/app-plus/app-service.js | 1199 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 650 insertions(+), 549 deletions(-) diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index ac51854..96c3c79 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -2260,11 +2260,112 @@ blur: _vm.onevent } }) - : _vm._e() + : _vm._e(), + _c( + "div", + { + staticClass: _vm._$s( + "21-" + $30 + "-" + $31, + "sc", + "input_vallist" + ), + attrs: { _i: "21-" + $30 + "-" + $31 } + }, + _vm._l( + _vm._$s(22 + "-" + $30 + "-" + $31, "f", { + forItems: _vm.inputValList + }), + function(inputval, vindex, $22, $32) { + return _c( + "ul", + { + key: _vm._$s( + 22 + "-" + $30 + "-" + $31, + "f", + { + forIndex: $22, + key: + 22 + + "-" + + $30 + + "-" + + $31 + + "-" + + $32 + } + ) + }, + [ + _c("li", [ + _c("span", [ + _vm._v( + _vm._$s( + "24-" + + $30 + + "-" + + $31 + + "-" + + $32, + "t0-0", + _vm._s(inputval.Name) + ) + ) + ]), + _c( + "a", + { + attrs: { + _i: + "25-" + + $30 + + "-" + + $31 + + "-" + + $32 + }, + on: { + click: function($event) { + return _vm.inputValListIsDel( + vindex + ) + } + } + }, + [ + _c("i", { + staticClass: _vm._$s( + "26-" + + $30 + + "-" + + $31 + + "-" + + $32, + "sc", + "ace-icon fa fa-times" + ), + attrs: { + _i: + "26-" + + $30 + + "-" + + $31 + + "-" + + $32 + } + }) + ] + ) + ]) + ] + ) + } + ), + 0 + ) ]) : _vm._e(), _vm._$s( - "21-" + $30 + "-" + $31, + "27-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -2273,21 +2374,21 @@ "p", { staticClass: _vm._$s( - "22-" + $30 + "-" + $31, + "28-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "22-" + $30 + "-" + $31, + "28-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "22-" + $30 + "-" + $31 } + attrs: { _i: "28-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "22-" + $30 + "-" + $31, + "28-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -2295,18 +2396,18 @@ ] ), _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "i", attr.Height == "1" ) ? _c("input", { staticClass: _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "s", { width: @@ -2321,26 +2422,26 @@ ), attrs: { value: _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "a-value", attr.Value ), "data-index": _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "a-data-iindex", iindex ), disabled: _vm._$s( - "23-" + $30 + "-" + $31, + "29-" + $30 + "-" + $31, "a-disabled", attr.edit ? false : true ), - _i: "23-" + $30 + "-" + $31 + _i: "29-" + $30 + "-" + $31 }, on: { focus: _vm.ontap, @@ -2348,18 +2449,18 @@ } }) : _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "e", attr.Height == "2" ) ? _c("textarea", { staticClass: _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "s", { width: @@ -2374,26 +2475,26 @@ ), attrs: { value: _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "a-value", attr.Value ), "data-index": _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "a-data-iindex", iindex ), disabled: _vm._$s( - "24-" + $30 + "-" + $31, + "30-" + $30 + "-" + $31, "a-disabled", attr.edit ? false : true ), - _i: "24-" + $30 + "-" + $31 + _i: "30-" + $30 + "-" + $31 }, on: { focus: _vm.ontap, @@ -2401,18 +2502,18 @@ } }) : _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "e", attr.Height == "3" ) ? _c("textarea", { staticClass: _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "s", { width: @@ -2427,26 +2528,26 @@ ), attrs: { value: _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "a-value", attr.Value ), "data-index": _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "a-data-iindex", iindex ), disabled: _vm._$s( - "25-" + $30 + "-" + $31, + "31-" + $30 + "-" + $31, "a-disabled", attr.edit ? false : true ), - _i: "25-" + $30 + "-" + $31 + _i: "31-" + $30 + "-" + $31 }, on: { focus: _vm.ontap, @@ -2455,7 +2556,7 @@ }) : _vm._e(), _vm._$s( - "26-" + $30 + "-" + $31, + "32-" + $30 + "-" + $31, "i", attr.ext_button == true ) @@ -2463,18 +2564,18 @@ "div", { staticClass: _vm._$s( - "26-" + $30 + "-" + $31, + "32-" + $30 + "-" + $31, "sc", "text-right2" ), - attrs: { _i: "26-" + $30 + "-" + $31 } + attrs: { _i: "32-" + $30 + "-" + $31 } }, [ _c( "a", { attrs: { - _i: "27-" + $30 + "-" + $31 + _i: "33-" + $30 + "-" + $31 }, on: { click: function($event) { @@ -2488,12 +2589,12 @@ [ _c("i", { staticClass: _vm._$s( - "28-" + $30 + "-" + $31, + "34-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "28-" + $30 + "-" + $31 + _i: "34-" + $30 + "-" + $31 } }) ] @@ -2502,17 +2603,17 @@ ) : _vm._e(), _vm._$s( - "29-" + $30 + "-" + $31, + "35-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "29-" + $30 + "-" + $31, + "35-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "29-" + $30 + "-" + $31 } + attrs: { _i: "35-" + $30 + "-" + $31 } }) : _vm._e() ]) @@ -2520,106 +2621,7 @@ ] ) : _vm._e(), - _vm._$s("30-" + $30 + "-" + $31, "i", attr.Type == "甯冨皵鍊�) - ? _c( - "view", - { - staticClass: _vm._$s( - "30-" + $30 + "-" + $31, - "sc", - "form-group" - ), - style: _vm._$s("30-" + $30 + "-" + $31, "s", { - display: attr.hidden == "True" ? "none" : "" - }), - attrs: { _i: "30-" + $30 + "-" + $31 } - }, - [ - _c( - "checkbox-group", - { - staticClass: _vm._$s( - "31-" + $30 + "-" + $31, - "sc", - "check_rememberPwd" - ), - style: _vm._$s("31-" + $30 + "-" + $31, "s", { - "margin-left": - classattr.control_style == "宸﹀彸甯冨眬" - ? classattr.title_p_wdith + 2 + "%" - : "10rpx" - }), - attrs: { - "data-ischeck": _vm._$s( - "31-" + $30 + "-" + $31, - "a-data-ischeck", - attr.Value - ), - "data-index": _vm._$s( - "31-" + $30 + "-" + $31, - "a-data-index", - index - ), - "data-iindex": _vm._$s( - "31-" + $30 + "-" + $31, - "a-data-iindex", - iindex - ), - _i: "31-" + $30 + "-" + $31 - }, - on: { change: _vm.oncheck } - }, - [ - _c("label", [ - _c("checkbox", { - attrs: { - value: _vm._$s( - "33-" + $30 + "-" + $31, - "a-value", - attr.Value - ), - checked: _vm._$s( - "33-" + $30 + "-" + $31, - "a-checked", - attr.Value - ), - _i: "33-" + $30 + "-" + $31 - } - }), - _c("text", [ - _vm._v( - _vm._$s( - "34-" + $30 + "-" + $31, - "t0-0", - _vm._s(attr.DispName) - ) - ), - _vm._$s( - "35-" + $30 + "-" + $31, - "i", - attr.notempty == true - ) - ? _c("i", { - staticClass: _vm._$s( - "35-" + $30 + "-" + $31, - "sc", - "i_tishi" - ), - attrs: { _i: "35-" + $30 + "-" + $31 } - }) - : _vm._e() - ]) - ]) - ] - ) - ] - ) - : _vm._e(), - _vm._$s( - "36-" + $30 + "-" + $31, - "i", - attr.Type == "鏃ユ湡" || attr.Type == "鏃堕棿" - ) + _vm._$s("36-" + $30 + "-" + $31, "i", attr.Type == "甯冨皵鍊�) ? _c( "view", { @@ -2634,8 +2636,107 @@ attrs: { _i: "36-" + $30 + "-" + $31 } }, [ + _c( + "checkbox-group", + { + staticClass: _vm._$s( + "37-" + $30 + "-" + $31, + "sc", + "check_rememberPwd" + ), + style: _vm._$s("37-" + $30 + "-" + $31, "s", { + "margin-left": + classattr.control_style == "宸﹀彸甯冨眬" + ? classattr.title_p_wdith + 2 + "%" + : "10rpx" + }), + attrs: { + "data-ischeck": _vm._$s( + "37-" + $30 + "-" + $31, + "a-data-ischeck", + attr.Value + ), + "data-index": _vm._$s( + "37-" + $30 + "-" + $31, + "a-data-index", + index + ), + "data-iindex": _vm._$s( + "37-" + $30 + "-" + $31, + "a-data-iindex", + iindex + ), + _i: "37-" + $30 + "-" + $31 + }, + on: { change: _vm.oncheck } + }, + [ + _c("label", [ + _c("checkbox", { + attrs: { + value: _vm._$s( + "39-" + $30 + "-" + $31, + "a-value", + attr.Value + ), + checked: _vm._$s( + "39-" + $30 + "-" + $31, + "a-checked", + attr.Value + ), + _i: "39-" + $30 + "-" + $31 + } + }), + _c("text", [ + _vm._v( + _vm._$s( + "40-" + $30 + "-" + $31, + "t0-0", + _vm._s(attr.DispName) + ) + ), + _vm._$s( + "41-" + $30 + "-" + $31, + "i", + attr.notempty == true + ) + ? _c("i", { + staticClass: _vm._$s( + "41-" + $30 + "-" + $31, + "sc", + "i_tishi" + ), + attrs: { _i: "41-" + $30 + "-" + $31 } + }) + : _vm._e() + ]) + ]) + ] + ) + ] + ) + : _vm._e(), + _vm._$s( + "42-" + $30 + "-" + $31, + "i", + attr.Type == "鏃ユ湡" || attr.Type == "鏃堕棿" + ) + ? _c( + "view", + { + staticClass: _vm._$s( + "42-" + $30 + "-" + $31, + "sc", + "form-group" + ), + style: _vm._$s("42-" + $30 + "-" + $31, "s", { + display: attr.hidden == "True" ? "none" : "" + }), + attrs: { _i: "42-" + $30 + "-" + $31 } + }, + [ _vm._$s( - "37-" + $30 + "-" + $31, + "43-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -2644,38 +2745,38 @@ "text", { staticClass: _vm._$s( - "38-" + $30 + "-" + $31, + "44-" + $30 + "-" + $31, "sc", "tx_title" ), style: _vm._$s( - "38-" + $30 + "-" + $31, + "44-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "38-" + $30 + "-" + $31 } + attrs: { _i: "44-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "38-" + $30 + "-" + $31, + "44-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) ), _vm._$s( - "39-" + $30 + "-" + $31, + "45-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "39-" + $30 + "-" + $31, + "45-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "39-" + $30 + "-" + $31 + _i: "45-" + $30 + "-" + $31 } }) : _vm._e() @@ -2685,32 +2786,32 @@ "picker", { staticClass: _vm._$s( - "40-" + $30 + "-" + $31, + "46-" + $30 + "-" + $31, "sc", "date_iput" ), style: _vm._$s( - "40-" + $30 + "-" + $31, + "46-" + $30 + "-" + $31, "s", { width: attr.Width } ), attrs: { value: _vm._$s( - "40-" + $30 + "-" + $31, + "46-" + $30 + "-" + $31, "a-value", attr.Value ), "data-index": _vm._$s( - "40-" + $30 + "-" + $31, + "46-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "40-" + $30 + "-" + $31, + "46-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "40-" + $30 + "-" + $31 + _i: "46-" + $30 + "-" + $31 }, on: { change: _vm.ondateTime } }, @@ -2719,16 +2820,16 @@ "view", { staticClass: _vm._$s( - "41-" + $30 + "-" + $31, + "47-" + $30 + "-" + $31, "sc", "picker" ), - attrs: { _i: "41-" + $30 + "-" + $31 } + attrs: { _i: "47-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "41-" + $30 + "-" + $31, + "47-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -2740,7 +2841,7 @@ ]) : _vm._e(), _vm._$s( - "42-" + $30 + "-" + $31, + "48-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -2749,21 +2850,21 @@ "p", { staticClass: _vm._$s( - "43-" + $30 + "-" + $31, + "49-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "43-" + $30 + "-" + $31, + "49-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "43-" + $30 + "-" + $31 } + attrs: { _i: "49-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "43-" + $30 + "-" + $31, + "49-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -2774,12 +2875,12 @@ "picker", { staticClass: _vm._$s( - "44-" + $30 + "-" + $31, + "50-" + $30 + "-" + $31, "sc", "date_iput attr_field" ), style: _vm._$s( - "44-" + $30 + "-" + $31, + "50-" + $30 + "-" + $31, "s", { width: @@ -2791,21 +2892,21 @@ ), attrs: { value: _vm._$s( - "44-" + $30 + "-" + $31, + "50-" + $30 + "-" + $31, "a-value", attr.Value ), "data-index": _vm._$s( - "44-" + $30 + "-" + $31, + "50-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "44-" + $30 + "-" + $31, + "50-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "44-" + $30 + "-" + $31 + _i: "50-" + $30 + "-" + $31 }, on: { change: _vm.ondateTime } }, @@ -2814,16 +2915,16 @@ "view", { staticClass: _vm._$s( - "45-" + $30 + "-" + $31, + "51-" + $30 + "-" + $31, "sc", "picker" ), - attrs: { _i: "45-" + $30 + "-" + $31 } + attrs: { _i: "51-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "45-" + $30 + "-" + $31, + "51-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -2833,17 +2934,17 @@ ] ), _vm._$s( - "46-" + $30 + "-" + $31, + "52-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "46-" + $30 + "-" + $31, + "52-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "46-" + $30 + "-" + $31 } + attrs: { _i: "52-" + $30 + "-" + $31 } }) : _vm._e() ]) @@ -2852,7 +2953,7 @@ ) : _vm._e(), _vm._$s( - "47-" + $30 + "-" + $31, + "53-" + $30 + "-" + $31, "i", attr.Type == "瀛楀吀" || attr.Type == "瀛楀吀-瀛楃涓� ) @@ -2860,18 +2961,18 @@ "view", { staticClass: _vm._$s( - "47-" + $30 + "-" + $31, + "53-" + $30 + "-" + $31, "sc", "form-group" ), - style: _vm._$s("47-" + $30 + "-" + $31, "s", { + style: _vm._$s("53-" + $30 + "-" + $31, "s", { display: attr.hidden == "True" ? "none" : "" }), - attrs: { _i: "47-" + $30 + "-" + $31 } + attrs: { _i: "53-" + $30 + "-" + $31 } }, [ _vm._$s( - "48-" + $30 + "-" + $31, + "54-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -2882,151 +2983,9 @@ "text", { staticClass: _vm._$s( - "49-" + $30 + "-" + $31, + "55-" + $30 + "-" + $31, "sc", "tx_title" - ), - attrs: { _i: "49-" + $30 + "-" + $31 } - }, - [ - _vm._v( - _vm._$s( - "49-" + $30 + "-" + $31, - "t0-0", - _vm._s(attr.DispName) - ) - ), - _vm._$s( - "50-" + $30 + "-" + $31, - "i", - attr.notempty == true - ) - ? _c("i", { - staticClass: _vm._$s( - "50-" + $30 + "-" + $31, - "sc", - "i_tishi" - ), - attrs: { - _i: "50-" + $30 + "-" + $31 - } - }) - : _vm._e() - ] - ), - _vm._$s( - "51-" + $30 + "-" + $31, - "i", - attr.select == false - ) - ? _c( - "picker", - { - staticClass: _vm._$s( - "51-" + $30 + "-" + $31, - "sc", - "section_iput" - ), - style: _vm._$s( - "51-" + $30 + "-" + $31, - "s", - { width: attr.Width } - ), - attrs: { - range: _vm._$s( - "51-" + $30 + "-" + $31, - "a-range", - attr.dictitem - ), - "data-index": _vm._$s( - "51-" + $30 + "-" + $31, - "a-data-index", - index - ), - "data-iindex": _vm._$s( - "51-" + $30 + "-" + $31, - "a-data-iindex", - iindex - ), - disabled: _vm._$s( - "51-" + $30 + "-" + $31, - "a-disabled", - attr.edit ? false : true - ), - _i: "51-" + $30 + "-" + $31 - }, - on: { change: _vm.onchange } - }, - [ - _c("label", [ - _vm._v( - _vm._$s( - "52-" + $30 + "-" + $31, - "t0-0", - _vm._s(attr.Value) - ) - ) - ]) - ] - ) - : _vm._$s( - "53-" + $30 + "-" + $31, - "e", - attr.select == true - ) - ? _c("select-cy", { - style: _vm._$s( - "53-" + $30 + "-" + $31, - "s", - { width: attr.Width } - ), - attrs: { - value: attr.Value, - name: attr.Name, - options: attr.dictitem, - showClearIcon: "true", - "data-index": _vm._$s( - "53-" + $30 + "-" + $31, - "a-data-index", - index - ), - "data-iindex": _vm._$s( - "53-" + $30 + "-" + $31, - "a-data-iindex", - iindex - ), - disabled: attr.edit ? false : true, - _i: "53-" + $30 + "-" + $31 - }, - on: { change: _vm.onchange2 } - }) - : _vm._e() - ], - 1 - ) - : _vm._e(), - _vm._$s( - "54-" + $30 + "-" + $31, - "i", - classattr.control_style == "宸﹀彸甯冨眬" - ) - ? _c( - "view", - [ - _c( - "p", - { - staticClass: _vm._$s( - "55-" + $30 + "-" + $31, - "sc", - "tx_title2" - ), - style: _vm._$s( - "55-" + $30 + "-" + $31, - "s", - { - width: classattr.title_p_wdith + "%" - } ), attrs: { _i: "55-" + $30 + "-" + $31 } }, @@ -3037,11 +2996,27 @@ "t0-0", _vm._s(attr.DispName) ) + ), + _vm._$s( + "56-" + $30 + "-" + $31, + "i", + attr.notempty == true ) + ? _c("i", { + staticClass: _vm._$s( + "56-" + $30 + "-" + $31, + "sc", + "i_tishi" + ), + attrs: { + _i: "56-" + $30 + "-" + $31 + } + }) + : _vm._e() ] ), _vm._$s( - "56-" + $30 + "-" + $31, + "57-" + $30 + "-" + $31, "i", attr.select == false ) @@ -3049,12 +3024,138 @@ "picker", { staticClass: _vm._$s( - "56-" + $30 + "-" + $31, + "57-" + $30 + "-" + $31, + "sc", + "section_iput" + ), + style: _vm._$s( + "57-" + $30 + "-" + $31, + "s", + { width: attr.Width } + ), + attrs: { + range: _vm._$s( + "57-" + $30 + "-" + $31, + "a-range", + attr.dictitem + ), + "data-index": _vm._$s( + "57-" + $30 + "-" + $31, + "a-data-index", + index + ), + "data-iindex": _vm._$s( + "57-" + $30 + "-" + $31, + "a-data-iindex", + iindex + ), + disabled: _vm._$s( + "57-" + $30 + "-" + $31, + "a-disabled", + attr.edit ? false : true + ), + _i: "57-" + $30 + "-" + $31 + }, + on: { change: _vm.onchange } + }, + [ + _c("label", [ + _vm._v( + _vm._$s( + "58-" + $30 + "-" + $31, + "t0-0", + _vm._s(attr.Value) + ) + ) + ]) + ] + ) + : _vm._$s( + "59-" + $30 + "-" + $31, + "e", + attr.select == true + ) + ? _c("select-cy", { + style: _vm._$s( + "59-" + $30 + "-" + $31, + "s", + { width: attr.Width } + ), + attrs: { + value: attr.Value, + name: attr.Name, + options: attr.dictitem, + showClearIcon: "true", + "data-index": _vm._$s( + "59-" + $30 + "-" + $31, + "a-data-index", + index + ), + "data-iindex": _vm._$s( + "59-" + $30 + "-" + $31, + "a-data-iindex", + iindex + ), + disabled: attr.edit ? false : true, + _i: "59-" + $30 + "-" + $31 + }, + on: { change: _vm.onchange2 } + }) + : _vm._e() + ], + 1 + ) + : _vm._e(), + _vm._$s( + "60-" + $30 + "-" + $31, + "i", + classattr.control_style == "宸﹀彸甯冨眬" + ) + ? _c( + "view", + [ + _c( + "p", + { + staticClass: _vm._$s( + "61-" + $30 + "-" + $31, + "sc", + "tx_title2" + ), + style: _vm._$s( + "61-" + $30 + "-" + $31, + "s", + { + width: classattr.title_p_wdith + "%" + } + ), + attrs: { _i: "61-" + $30 + "-" + $31 } + }, + [ + _vm._v( + _vm._$s( + "61-" + $30 + "-" + $31, + "t0-0", + _vm._s(attr.DispName) + ) + ) + ] + ), + _vm._$s( + "62-" + $30 + "-" + $31, + "i", + attr.select == false + ) + ? _c( + "picker", + { + staticClass: _vm._$s( + "62-" + $30 + "-" + $31, "sc", "section_iput attr_field" ), style: _vm._$s( - "56-" + $30 + "-" + $31, + "62-" + $30 + "-" + $31, "s", { width: @@ -3068,21 +3169,21 @@ ), attrs: { range: _vm._$s( - "56-" + $30 + "-" + $31, + "62-" + $30 + "-" + $31, "a-range", attr.dictitem ), "data-index": _vm._$s( - "56-" + $30 + "-" + $31, + "62-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "56-" + $30 + "-" + $31, + "62-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "56-" + $30 + "-" + $31 + _i: "62-" + $30 + "-" + $31 }, on: { change: _vm.onchange } }, @@ -3090,7 +3191,7 @@ _c("label", [ _vm._v( _vm._$s( - "57-" + $30 + "-" + $31, + "63-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -3099,13 +3200,13 @@ ] ) : _vm._$s( - "58-" + $30 + "-" + $31, + "64-" + $30 + "-" + $31, "e", attr.select == true ) ? _c("select-cy", { style: _vm._$s( - "58-" + $30 + "-" + $31, + "64-" + $30 + "-" + $31, "s", { width: attr.Width } ), @@ -3115,32 +3216,32 @@ options: attr.dictitem, showClearIcon: "true", "data-index": _vm._$s( - "58-" + $30 + "-" + $31, + "64-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "58-" + $30 + "-" + $31, + "64-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "58-" + $30 + "-" + $31 + _i: "64-" + $30 + "-" + $31 }, on: { change: _vm.onchange2 } }) : _vm._e(), _vm._$s( - "59-" + $30 + "-" + $31, + "65-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "59-" + $30 + "-" + $31, + "65-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "59-" + $30 + "-" + $31 } + attrs: { _i: "65-" + $30 + "-" + $31 } }) : _vm._e() ], @@ -3151,7 +3252,7 @@ ) : _vm._e(), _vm._$s( - "60-" + $30 + "-" + $31, + "66-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤瀵硅薄(鍗曚釜)" || attr.Type == "寮曠敤瀵硅薄(澶氫釜)" @@ -3160,18 +3261,18 @@ "view", { staticClass: _vm._$s( - "60-" + $30 + "-" + $31, + "66-" + $30 + "-" + $31, "sc", "form-group" ), - style: _vm._$s("60-" + $30 + "-" + $31, "s", { + style: _vm._$s("66-" + $30 + "-" + $31, "s", { display: attr.hidden == "True" ? "none" : "" }), - attrs: { _i: "60-" + $30 + "-" + $31 } + attrs: { _i: "66-" + $30 + "-" + $31 } }, [ _vm._$s( - "61-" + $30 + "-" + $31, + "67-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -3180,40 +3281,40 @@ "text", { staticClass: _vm._$s( - "62-" + $30 + "-" + $31, + "68-" + $30 + "-" + $31, "sc", "tx_title" ), - attrs: { _i: "62-" + $30 + "-" + $31 } + attrs: { _i: "68-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "62-" + $30 + "-" + $31, + "68-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) ), _vm._$s( - "63-" + $30 + "-" + $31, + "69-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "63-" + $30 + "-" + $31, + "69-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "63-" + $30 + "-" + $31 + _i: "69-" + $30 + "-" + $31 } }) : _vm._e() ] ), _vm._$s( - "64-" + $30 + "-" + $31, + "70-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤瀵硅薄(鍗曚釜)" ) @@ -3221,11 +3322,11 @@ "div", { staticClass: _vm._$s( - "64-" + $30 + "-" + $31, + "70-" + $30 + "-" + $31, "sc", "text-right" ), - attrs: { _i: "64-" + $30 + "-" + $31 } + attrs: { _i: "70-" + $30 + "-" + $31 } }, [ _c( @@ -3233,16 +3334,16 @@ { attrs: { "data-classid": _vm._$s( - "65-" + $30 + "-" + $31, + "71-" + $30 + "-" + $31, "a-data-classid", attr.RelCls.split("|")[0] ), "data-classname": _vm._$s( - "65-" + $30 + "-" + $31, + "71-" + $30 + "-" + $31, "a-data-classname", attr.RelCls.split("|")[1] ), - _i: "65-" + $30 + "-" + $31 + _i: "71-" + $30 + "-" + $31 }, on: { click: _vm.classAttr_AddRef @@ -3251,12 +3352,12 @@ [ _c("i", { staticClass: _vm._$s( - "66-" + $30 + "-" + $31, + "72-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "66-" + $30 + "-" + $31 + _i: "72-" + $30 + "-" + $31 } }) ] @@ -3265,7 +3366,7 @@ ) : _vm._e(), _vm._$s( - "67-" + $30 + "-" + $31, + "73-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤瀵硅薄(澶氫釜)" ) @@ -3273,38 +3374,38 @@ "div", { staticClass: _vm._$s( - "67-" + $30 + "-" + $31, + "73-" + $30 + "-" + $31, "sc", "text-right" ), - attrs: { _i: "67-" + $30 + "-" + $31 } + attrs: { _i: "73-" + $30 + "-" + $31 } }, [ _c( "picker", { staticClass: _vm._$s( - "68-" + $30 + "-" + $31, + "74-" + $30 + "-" + $31, "sc", "select" ), attrs: { range: _vm._$s( - "68-" + $30 + "-" + $31, + "74-" + $30 + "-" + $31, "a-range", attr.RelClsList ), "data-index": _vm._$s( - "68-" + $30 + "-" + $31, + "74-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "68-" + $30 + "-" + $31, + "74-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "68-" + $30 + "-" + $31 + _i: "74-" + $30 + "-" + $31 }, on: { change: _vm.classAttr_AddRef @@ -3314,7 +3415,7 @@ _c("label", [ _vm._v( _vm._$s( - "69-" + $30 + "-" + $31, + "75-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -3326,23 +3427,23 @@ "a", { staticClass: _vm._$s( - "70-" + $30 + "-" + $31, + "76-" + $30 + "-" + $31, "sc", "class_attr_add_ref" ), attrs: { - _i: "70-" + $30 + "-" + $31 + _i: "76-" + $30 + "-" + $31 } }, [ _c("i", { staticClass: _vm._$s( - "71-" + $30 + "-" + $31, + "77-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "71-" + $30 + "-" + $31 + _i: "77-" + $30 + "-" + $31 } }) ] @@ -3352,28 +3453,28 @@ : _vm._e(), _c("input", { style: _vm._$s( - "72-" + $30 + "-" + $31, + "78-" + $30 + "-" + $31, "s", { width: attr.Width } ), attrs: { "data-index": _vm._$s( - "72-" + $30 + "-" + $31, + "78-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "72-" + $30 + "-" + $31, + "78-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "72-" + $30 + "-" + $31 + _i: "78-" + $30 + "-" + $31 } }) ]) : _vm._e(), _vm._$s( - "73-" + $30 + "-" + $31, + "79-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -3382,21 +3483,21 @@ "p", { staticClass: _vm._$s( - "74-" + $30 + "-" + $31, + "80-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "74-" + $30 + "-" + $31, + "80-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "74-" + $30 + "-" + $31 } + attrs: { _i: "80-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "74-" + $30 + "-" + $31, + "80-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -3405,12 +3506,12 @@ ), _c("input", { staticClass: _vm._$s( - "75-" + $30 + "-" + $31, + "81-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "75-" + $30 + "-" + $31, + "81-" + $30 + "-" + $31, "s", { width: @@ -3423,20 +3524,20 @@ ), attrs: { "data-index": _vm._$s( - "75-" + $30 + "-" + $31, + "81-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "75-" + $30 + "-" + $31, + "81-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "75-" + $30 + "-" + $31 + _i: "81-" + $30 + "-" + $31 } }), _vm._$s( - "76-" + $30 + "-" + $31, + "82-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤瀵硅薄(鍗曚釜)" ) @@ -3444,11 +3545,11 @@ "div", { staticClass: _vm._$s( - "76-" + $30 + "-" + $31, + "82-" + $30 + "-" + $31, "sc", "text-right2" ), - attrs: { _i: "76-" + $30 + "-" + $31 } + attrs: { _i: "82-" + $30 + "-" + $31 } }, [ _c( @@ -3456,16 +3557,16 @@ { attrs: { "data-classid": _vm._$s( - "77-" + $30 + "-" + $31, + "83-" + $30 + "-" + $31, "a-data-classid", attr.RelCls.split("|")[0] ), "data-classname": _vm._$s( - "77-" + $30 + "-" + $31, + "83-" + $30 + "-" + $31, "a-data-classname", attr.RelCls.split("|")[1] ), - _i: "77-" + $30 + "-" + $31 + _i: "83-" + $30 + "-" + $31 }, on: { click: _vm.classAttr_AddRef @@ -3474,12 +3575,12 @@ [ _c("i", { staticClass: _vm._$s( - "78-" + $30 + "-" + $31, + "84-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "78-" + $30 + "-" + $31 + _i: "84-" + $30 + "-" + $31 } }) ] @@ -3488,7 +3589,7 @@ ) : _vm._e(), _vm._$s( - "79-" + $30 + "-" + $31, + "85-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤瀵硅薄(澶氫釜)" ) @@ -3496,38 +3597,38 @@ "div", { staticClass: _vm._$s( - "79-" + $30 + "-" + $31, + "85-" + $30 + "-" + $31, "sc", "text-right2" ), - attrs: { _i: "79-" + $30 + "-" + $31 } + attrs: { _i: "85-" + $30 + "-" + $31 } }, [ _c( "picker", { staticClass: _vm._$s( - "80-" + $30 + "-" + $31, + "86-" + $30 + "-" + $31, "sc", "select" ), attrs: { range: _vm._$s( - "80-" + $30 + "-" + $31, + "86-" + $30 + "-" + $31, "a-range", attr.RelClsList ), "data-index": _vm._$s( - "80-" + $30 + "-" + $31, + "86-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "80-" + $30 + "-" + $31, + "86-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "80-" + $30 + "-" + $31 + _i: "86-" + $30 + "-" + $31 }, on: { change: _vm.classAttr_AddRef @@ -3537,7 +3638,7 @@ _c("label", [ _vm._v( _vm._$s( - "81-" + $30 + "-" + $31, + "87-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -3549,23 +3650,23 @@ "a", { staticClass: _vm._$s( - "82-" + $30 + "-" + $31, + "88-" + $30 + "-" + $31, "sc", "class_attr_add_ref" ), attrs: { - _i: "82-" + $30 + "-" + $31 + _i: "88-" + $30 + "-" + $31 } }, [ _c("i", { staticClass: _vm._$s( - "83-" + $30 + "-" + $31, + "89-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "83-" + $30 + "-" + $31 + _i: "89-" + $30 + "-" + $31 } }) ] @@ -3574,17 +3675,17 @@ ) : _vm._e(), _vm._$s( - "84-" + $30 + "-" + $31, + "90-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "84-" + $30 + "-" + $31, + "90-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "84-" + $30 + "-" + $31 } + attrs: { _i: "90-" + $30 + "-" + $31 } }) : _vm._e() ]) @@ -3593,7 +3694,7 @@ ) : _vm._e(), _vm._$s( - "85-" + $30 + "-" + $31, + "91-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤浜哄憳" ) @@ -3601,18 +3702,18 @@ "view", { staticClass: _vm._$s( - "85-" + $30 + "-" + $31, + "91-" + $30 + "-" + $31, "sc", "form-group" ), - style: _vm._$s("85-" + $30 + "-" + $31, "s", { + style: _vm._$s("91-" + $30 + "-" + $31, "s", { display: attr.hidden == "True" ? "none" : "" }), - attrs: { _i: "85-" + $30 + "-" + $31 } + attrs: { _i: "91-" + $30 + "-" + $31 } }, [ _vm._$s( - "86-" + $30 + "-" + $31, + "92-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -3621,33 +3722,33 @@ "text", { staticClass: _vm._$s( - "87-" + $30 + "-" + $31, + "93-" + $30 + "-" + $31, "sc", "tx_title" ), - attrs: { _i: "87-" + $30 + "-" + $31 } + attrs: { _i: "93-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "87-" + $30 + "-" + $31, + "93-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) ), _vm._$s( - "88-" + $30 + "-" + $31, + "94-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "88-" + $30 + "-" + $31, + "94-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "88-" + $30 + "-" + $31 + _i: "94-" + $30 + "-" + $31 } }) : _vm._e() @@ -3657,23 +3758,23 @@ "div", { staticClass: _vm._$s( - "89-" + $30 + "-" + $31, + "95-" + $30 + "-" + $31, "sc", "text-right" ), - attrs: { _i: "89-" + $30 + "-" + $31 } + attrs: { _i: "95-" + $30 + "-" + $31 } }, [ _c( "a", { staticClass: _vm._$s( - "90-" + $30 + "-" + $31, + "96-" + $30 + "-" + $31, "sc", "class_attr_add_per" ), attrs: { - _i: "90-" + $30 + "-" + $31 + _i: "96-" + $30 + "-" + $31 }, on: { click: function($event) { @@ -3687,12 +3788,12 @@ [ _c("i", { staticClass: _vm._$s( - "91-" + $30 + "-" + $31, + "97-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "91-" + $30 + "-" + $31 + _i: "97-" + $30 + "-" + $31 } }) ] @@ -3701,23 +3802,23 @@ ), _c("input", { style: _vm._$s( - "92-" + $30 + "-" + $31, + "98-" + $30 + "-" + $31, "s", { width: attr.Width } ), attrs: { value: _vm._$s( - "92-" + $30 + "-" + $31, + "98-" + $30 + "-" + $31, "a-value", attr.Value ), - _i: "92-" + $30 + "-" + $31 + _i: "98-" + $30 + "-" + $31 } }) ]) : _vm._e(), _vm._$s( - "93-" + $30 + "-" + $31, + "99-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -3726,21 +3827,21 @@ "p", { staticClass: _vm._$s( - "94-" + $30 + "-" + $31, + "100-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "94-" + $30 + "-" + $31, + "100-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "94-" + $30 + "-" + $31 } + attrs: { _i: "100-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "94-" + $30 + "-" + $31, + "100-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -3749,12 +3850,12 @@ ), _c("input", { staticClass: _vm._$s( - "95-" + $30 + "-" + $31, + "101-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "95-" + $30 + "-" + $31, + "101-" + $30 + "-" + $31, "s", { width: @@ -3767,34 +3868,34 @@ ), attrs: { value: _vm._$s( - "95-" + $30 + "-" + $31, + "101-" + $30 + "-" + $31, "a-value", attr.Value ), - _i: "95-" + $30 + "-" + $31 + _i: "101-" + $30 + "-" + $31 } }), _c( "div", { staticClass: _vm._$s( - "96-" + $30 + "-" + $31, + "102-" + $30 + "-" + $31, "sc", "text-right2" ), - attrs: { _i: "96-" + $30 + "-" + $31 } + attrs: { _i: "102-" + $30 + "-" + $31 } }, [ _c( "a", { staticClass: _vm._$s( - "97-" + $30 + "-" + $31, + "103-" + $30 + "-" + $31, "sc", "class_attr_add_per" ), attrs: { - _i: "97-" + $30 + "-" + $31 + _i: "103-" + $30 + "-" + $31 }, on: { click: function($event) { @@ -3808,12 +3909,12 @@ [ _c("i", { staticClass: _vm._$s( - "98-" + $30 + "-" + $31, + "104-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "98-" + $30 + "-" + $31 + _i: "104-" + $30 + "-" + $31 } }) ] @@ -3821,17 +3922,17 @@ ] ), _vm._$s( - "99-" + $30 + "-" + $31, + "105-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "99-" + $30 + "-" + $31, + "105-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "99-" + $30 + "-" + $31 } + attrs: { _i: "105-" + $30 + "-" + $31 } }) : _vm._e() ]) @@ -3840,7 +3941,7 @@ ) : _vm._e(), _vm._$s( - "100-" + $30 + "-" + $31, + "106-" + $30 + "-" + $31, "i", attr.Type == "寮曠敤椤圭洰" ) @@ -3848,18 +3949,18 @@ "view", { staticClass: _vm._$s( - "100-" + $30 + "-" + $31, + "106-" + $30 + "-" + $31, "sc", "form-group" ), - style: _vm._$s("100-" + $30 + "-" + $31, "s", { + style: _vm._$s("106-" + $30 + "-" + $31, "s", { display: attr.hidden == "True" ? "none" : "" }), - attrs: { _i: "100-" + $30 + "-" + $31 } + attrs: { _i: "106-" + $30 + "-" + $31 } }, [ _vm._$s( - "101-" + $30 + "-" + $31, + "107-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -3868,33 +3969,33 @@ "text", { staticClass: _vm._$s( - "102-" + $30 + "-" + $31, + "108-" + $30 + "-" + $31, "sc", "tx_title" ), - attrs: { _i: "102-" + $30 + "-" + $31 } + attrs: { _i: "108-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "102-" + $30 + "-" + $31, + "108-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) ), _vm._$s( - "103-" + $30 + "-" + $31, + "109-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "103-" + $30 + "-" + $31, + "109-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "103-" + $30 + "-" + $31 + _i: "109-" + $30 + "-" + $31 } }) : _vm._e() @@ -3904,23 +4005,23 @@ "div", { staticClass: _vm._$s( - "104-" + $30 + "-" + $31, + "110-" + $30 + "-" + $31, "sc", "text-right" ), - attrs: { _i: "104-" + $30 + "-" + $31 } + attrs: { _i: "110-" + $30 + "-" + $31 } }, [ _c( "a", { staticClass: _vm._$s( - "105-" + $30 + "-" + $31, + "111-" + $30 + "-" + $31, "sc", "class_attr_add_prj" ), attrs: { - _i: "105-" + $30 + "-" + $31 + _i: "111-" + $30 + "-" + $31 }, on: { click: function($event) { @@ -3934,12 +4035,12 @@ [ _c("i", { staticClass: _vm._$s( - "106-" + $30 + "-" + $31, + "112-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "106-" + $30 + "-" + $31 + _i: "112-" + $30 + "-" + $31 } }) ] @@ -3948,23 +4049,23 @@ ), _c("input", { style: _vm._$s( - "107-" + $30 + "-" + $31, + "113-" + $30 + "-" + $31, "s", { width: attr.Width } ), attrs: { value: _vm._$s( - "107-" + $30 + "-" + $31, + "113-" + $30 + "-" + $31, "a-value", attr.Value ), - _i: "107-" + $30 + "-" + $31 + _i: "113-" + $30 + "-" + $31 } }) ]) : _vm._e(), _vm._$s( - "108-" + $30 + "-" + $31, + "114-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -3973,21 +4074,21 @@ "p", { staticClass: _vm._$s( - "109-" + $30 + "-" + $31, + "115-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "109-" + $30 + "-" + $31, + "115-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "109-" + $30 + "-" + $31 } + attrs: { _i: "115-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "109-" + $30 + "-" + $31, + "115-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -3996,12 +4097,12 @@ ), _c("input", { staticClass: _vm._$s( - "110-" + $30 + "-" + $31, + "116-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "110-" + $30 + "-" + $31, + "116-" + $30 + "-" + $31, "s", { width: @@ -4014,34 +4115,34 @@ ), attrs: { value: _vm._$s( - "110-" + $30 + "-" + $31, + "116-" + $30 + "-" + $31, "a-value", attr.Value ), - _i: "110-" + $30 + "-" + $31 + _i: "116-" + $30 + "-" + $31 } }), _c( "div", { staticClass: _vm._$s( - "111-" + $30 + "-" + $31, + "117-" + $30 + "-" + $31, "sc", "text-right2" ), - attrs: { _i: "111-" + $30 + "-" + $31 } + attrs: { _i: "117-" + $30 + "-" + $31 } }, [ _c( "a", { staticClass: _vm._$s( - "112-" + $30 + "-" + $31, + "118-" + $30 + "-" + $31, "sc", "class_attr_add_prj" ), attrs: { - _i: "112-" + $30 + "-" + $31 + _i: "118-" + $30 + "-" + $31 }, on: { click: function($event) { @@ -4055,12 +4156,12 @@ [ _c("i", { staticClass: _vm._$s( - "113-" + $30 + "-" + $31, + "119-" + $30 + "-" + $31, "sc", "ace-icon fa fa-plus-circle" ), attrs: { - _i: "113-" + $30 + "-" + $31 + _i: "119-" + $30 + "-" + $31 } }) ] @@ -4068,17 +4169,17 @@ ] ), _vm._$s( - "114-" + $30 + "-" + $31, + "120-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "114-" + $30 + "-" + $31, + "120-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "114-" + $30 + "-" + $31 } + attrs: { _i: "120-" + $30 + "-" + $31 } }) : _vm._e() ]) @@ -4086,23 +4187,23 @@ ] ) : _vm._e(), - _vm._$s("115-" + $30 + "-" + $31, "i", attr.Type == "缂栫爜") + _vm._$s("121-" + $30 + "-" + $31, "i", attr.Type == "缂栫爜") ? _c( "view", { staticClass: _vm._$s( - "115-" + $30 + "-" + $31, + "121-" + $30 + "-" + $31, "sc", "form-group" ), - style: _vm._$s("115-" + $30 + "-" + $31, "s", { + style: _vm._$s("121-" + $30 + "-" + $31, "s", { display: attr.hidden == "True" ? "none" : "" }), - attrs: { _i: "115-" + $30 + "-" + $31 } + attrs: { _i: "121-" + $30 + "-" + $31 } }, [ _vm._$s( - "116-" + $30 + "-" + $31, + "122-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -4111,33 +4212,33 @@ "text", { staticClass: _vm._$s( - "117-" + $30 + "-" + $31, + "123-" + $30 + "-" + $31, "sc", "tx_title" ), - attrs: { _i: "117-" + $30 + "-" + $31 } + attrs: { _i: "123-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "117-" + $30 + "-" + $31, + "123-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) ), _vm._$s( - "118-" + $30 + "-" + $31, + "124-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "118-" + $30 + "-" + $31, + "124-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "118-" + $30 + "-" + $31 + _i: "124-" + $30 + "-" + $31 } }) : _vm._e() @@ -4145,33 +4246,33 @@ ), _c("input", { style: _vm._$s( - "119-" + $30 + "-" + $31, + "125-" + $30 + "-" + $31, "s", { width: attr.Width } ), attrs: { "data-index": _vm._$s( - "119-" + $30 + "-" + $31, + "125-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "119-" + $30 + "-" + $31, + "125-" + $30 + "-" + $31, "a-data-iindex", iindex ), disabled: _vm._$s( - "119-" + $30 + "-" + $31, + "125-" + $30 + "-" + $31, "a-disabled", attr.edit ? false : true ), - _i: "119-" + $30 + "-" + $31 + _i: "125-" + $30 + "-" + $31 } }) ]) : _vm._e(), _vm._$s( - "120-" + $30 + "-" + $31, + "126-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -4180,21 +4281,21 @@ "p", { staticClass: _vm._$s( - "121-" + $30 + "-" + $31, + "127-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "121-" + $30 + "-" + $31, + "127-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "121-" + $30 + "-" + $31 } + attrs: { _i: "127-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "121-" + $30 + "-" + $31, + "127-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -4203,12 +4304,12 @@ ), _c("input", { staticClass: _vm._$s( - "122-" + $30 + "-" + $31, + "128-" + $30 + "-" + $31, "sc", "attr_field" ), style: _vm._$s( - "122-" + $30 + "-" + $31, + "128-" + $30 + "-" + $31, "s", { width: @@ -4220,35 +4321,35 @@ ), attrs: { "data-index": _vm._$s( - "122-" + $30 + "-" + $31, + "128-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "122-" + $30 + "-" + $31, + "128-" + $30 + "-" + $31, "a-data-iindex", iindex ), disabled: _vm._$s( - "122-" + $30 + "-" + $31, + "128-" + $30 + "-" + $31, "a-disabled", attr.edit ? false : true ), - _i: "122-" + $30 + "-" + $31 + _i: "128-" + $30 + "-" + $31 } }), _vm._$s( - "123-" + $30 + "-" + $31, + "129-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "123-" + $30 + "-" + $31, + "129-" + $30 + "-" + $31, "sc", "i_tishi" ), - attrs: { _i: "123-" + $30 + "-" + $31 } + attrs: { _i: "129-" + $30 + "-" + $31 } }) : _vm._e() ]) @@ -4257,7 +4358,7 @@ ) : _vm._e(), _vm._$s( - "124-" + $30 + "-" + $31, + "130-" + $30 + "-" + $31, "i", attr.Type == "鐪佸競鍖� ) @@ -4265,18 +4366,18 @@ "view", { staticClass: _vm._$s( - "124-" + $30 + "-" + $31, + "130-" + $30 + "-" + $31, "sc", "form-group" ), - style: _vm._$s("124-" + $30 + "-" + $31, "s", { + style: _vm._$s("130-" + $30 + "-" + $31, "s", { display: attr.hidden == "True" ? "none" : "" }), - attrs: { _i: "124-" + $30 + "-" + $31 } + attrs: { _i: "130-" + $30 + "-" + $31 } }, [ _vm._$s( - "125-" + $30 + "-" + $31, + "131-" + $30 + "-" + $31, "i", classattr.control_style == "涓婁笅甯冨眬" ) @@ -4287,33 +4388,33 @@ "text", { staticClass: _vm._$s( - "126-" + $30 + "-" + $31, + "132-" + $30 + "-" + $31, "sc", "tx_title" ), - attrs: { _i: "126-" + $30 + "-" + $31 } + attrs: { _i: "132-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "126-" + $30 + "-" + $31, + "132-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) ), _vm._$s( - "127-" + $30 + "-" + $31, + "133-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "127-" + $30 + "-" + $31, + "133-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "127-" + $30 + "-" + $31 + _i: "133-" + $30 + "-" + $31 } }) : _vm._e() @@ -4323,34 +4424,34 @@ "pickerAddress", { staticClass: _vm._$s( - "128-" + $30 + "-" + $31, + "134-" + $30 + "-" + $31, "sc", "date_iput" ), style: _vm._$s( - "128-" + $30 + "-" + $31, + "134-" + $30 + "-" + $31, "s", { width: attr.Width } ), attrs: { "data-index": _vm._$s( - "128-" + $30 + "-" + $31, + "134-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "128-" + $30 + "-" + $31, + "134-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "128-" + $30 + "-" + $31 + _i: "134-" + $30 + "-" + $31 }, on: { change: _vm.addresschange } }, [ _vm._v( _vm._$s( - "128-" + $30 + "-" + $31, + "134-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -4362,7 +4463,7 @@ ) : _vm._e(), _vm._$s( - "129-" + $30 + "-" + $31, + "135-" + $30 + "-" + $31, "i", classattr.control_style == "宸﹀彸甯冨眬" ) @@ -4373,23 +4474,23 @@ "p", { staticClass: _vm._$s( - "130-" + $30 + "-" + $31, + "136-" + $30 + "-" + $31, "sc", "tx_title2" ), style: _vm._$s( - "130-" + $30 + "-" + $31, + "136-" + $30 + "-" + $31, "s", { width: classattr.title_p_wdith + "%" } ), - attrs: { _i: "130-" + $30 + "-" + $31 } + attrs: { _i: "136-" + $30 + "-" + $31 } }, [ _vm._v( _vm._$s( - "130-" + $30 + "-" + $31, + "136-" + $30 + "-" + $31, "t0-0", _vm._s(attr.DispName) ) @@ -4400,12 +4501,12 @@ "pickerAddress", { staticClass: _vm._$s( - "131-" + $30 + "-" + $31, + "137-" + $30 + "-" + $31, "sc", "date_iput attr_field" ), style: _vm._$s( - "131-" + $30 + "-" + $31, + "137-" + $30 + "-" + $31, "s", { width: @@ -4417,23 +4518,23 @@ ), attrs: { "data-index": _vm._$s( - "131-" + $30 + "-" + $31, + "137-" + $30 + "-" + $31, "a-data-index", index ), "data-iindex": _vm._$s( - "131-" + $30 + "-" + $31, + "137-" + $30 + "-" + $31, "a-data-iindex", iindex ), - _i: "131-" + $30 + "-" + $31 + _i: "137-" + $30 + "-" + $31 }, on: { change: _vm.addresschange } }, [ _vm._v( _vm._$s( - "131-" + $30 + "-" + $31, + "137-" + $30 + "-" + $31, "t0-0", _vm._s(attr.Value) ) @@ -4441,18 +4542,18 @@ ] ), _vm._$s( - "132-" + $30 + "-" + $31, + "138-" + $30 + "-" + $31, "i", attr.notempty == true ) ? _c("i", { staticClass: _vm._$s( - "132-" + $30 + "-" + $31, + "138-" + $30 + "-" + $31, "sc", "i_tishi" ), attrs: { - _i: "132-" + $30 + "-" + $31 + _i: "138-" + $30 + "-" + $31 } }) : _vm._e() @@ -4472,11 +4573,11 @@ _c( "button", { - staticClass: _vm._$s("133-" + $30, "sc", "btn_add"), - attrs: { _i: "133-" + $30 }, + staticClass: _vm._$s("139-" + $30, "sc", "btn_add"), + attrs: { _i: "139-" + $30 }, on: { click: _vm.sava } }, - [_vm._v(_vm._$s("133-" + $30, "t0-0", _vm._s(_vm.title)))] + [_vm._v(_vm._$s("139-" + $30, "t0-0", _vm._s(_vm.title)))] ) ] ) @@ -4774,7 +4875,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 50));\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _pickerAddress = _interopRequireDefault(__webpack_require__(/*! ../../js/pickerAddress/pickerAddress.vue */ 53));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);}_next(undefined);});};}var _default =\n{\n components: {\n pickerAddress: _pickerAddress.default },\n\n data: function data() {\n return {\n title: '鏂板',\n param: {},\n classAttrList: [],\n classGridStyle: [],\n edit_inital_event: \"\", //寮圭獥鍒濆鍖栦簨浠禝D\n edit_ok_event: \"\", //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID\n edit_select_compose_event: \"\", //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢╘n edit_compose_cls_id: \"\",\n global_attr: [],\n refdatastore: [] //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}\n };\n\n },\n onLoad: function onLoad(options) {\n // console.log(options);\n uni.setNavigationBarTitle({ title: options.titlename }); //璁剧疆椤堕儴鏍囬 \n var param = JSON.parse(options.param);\n this.$data.title = param.Add_BtnName ? param.Add_BtnName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧\n // console.log(param);\n if (!param.EditDlgMode) {\n uni.showModal({ title: \"鎻愮ず\", content: \"璇ュ姛鑳界偣鏈厤缃紪杈戠獥鍙o紝璇烽噸鏂伴厤缃紒\", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n if (!param.Edit_dlg.Name) {\n uni.showModal({ title: \"鎻愮ず\", content: \"璇ュ姛鑳界偣鏈厤缃獥鍙f牱寮忥紝璇烽噸鏂伴厤缃紒\", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n this.$data.param = param;\n var edit_dlg = {\n Model: param.EditDlgMode,\n Name: param.Edit_dlg.Name };\n\n var dataInfo = {\n class_id: param.clsid };\n\n var $this = this;\n $this.$store.state.thisareaFuncID = param.clsid;\n // console.log($this.$store.getters.getclassAttrList);\n //鑾峰彇\n if ($this.$store.getters.getclassAttrList) {\n $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;\n $this.classGridStyleInfo();\n } else\n $this.$store.dispatch('classAttrList', dataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.classAttrList = success.data;\n\n $this.classGridStyleInfo();\n } else {\n uni.showModal({ title: \"閿欒1\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒1.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n\n },\n methods: {\n classGridStyleInfo: function classGridStyleInfo() {var _this = this;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee() {var $this, gridstyleInfo;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:\n $this = _this;\n gridstyleInfo = {\n class_id: $this.$data.param.clsid,\n name: $this.$data.param.Edit_dlg.Name,\n type: '2' };\n\n $this.$store.state.thisEditName = $this.$data.param.Edit_dlg.Name;\n // console.log($this.$store.getters.getclassGridStyleInfo);\n //鑾峰彇\n if ($this.$store.getters.getclassGridStyleInfo) {\n $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;\n $this.class_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('classGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.classGridStyle = success.data;\n\n $this.class_attr_init();\n } else {\n uni.showModal({ title: \"閿欒1.2\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:432\");\n uni.showModal({ title: \"閿欒1.3\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n }case 4:case \"end\":return _context.stop();}}}, _callee);}))();\n },\n ontap: function ontap(e) {var _this2 = this; //鎵爜鍔熻兘\n //console.log(e.target)\n getApp().onScan(function (result) {\n //console.log(result.decodedata);\n _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata;\n });\n },\n onarrow: function onarrow(index, open) {\n // console.log(index+'--'+open);\n this.$data.classAttrList[index].Open = open == true ? false : true;\n },\n ondateTime: function ondateTime(e) {\n //console.log(e.target)\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n },\n onchange: function onchange(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:453\");\n var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:456\");\n if (value.Name != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = value.Name;\n __f__(\"log\", this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value, \" at pages/modal/classAttr.vue:459\");\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info);\n }\n }\n\n },\n onchange2: function onchange2(item, value, delvalue) {\n // console.log(item);\n // console.log(value);\n // console.log(delvalue);\n if (item.length == 0) {//涓虹┖鏃讹紝娓呯┖灞炴�value\n var index,iindex,dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n this.$data.classAttrList[i].Attr[j].Value = \"\";\n }\n }\n }\n }\n }\n\n for (var v in item) {\n var index,iindex,dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n index = i;iindex = j;dindex = d;\n }\n }\n }\n }\n var itemvalue = item[v];\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:526\");\n if (itemvalue.Name != data_attr.Value) {\n this.$data.classAttrList[index].Attr[iindex].Value = value;\n __f__(\"log\", this.$data.classAttrList[index].Attr[iindex].Value, \" at pages/modal/classAttr.vue:529\");\n var eventid = this.$data.classAttrList[index].Attr[iindex].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�)\n req.push({ attr: ar.Name, val: itemvalue.Name });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info);\n }\n }\n }\n\n\n },\n onevent: function onevent(e) {\n // console.log(e.target);\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (e.target.value != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info, data_attr);\n }\n }\n\n },\n oncheck: function oncheck(e) {\n // console.log(e.target);\n var ischecked = e.target.dataset.ischeck ? false : true;\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (ischecked != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = ischecked;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info);\n }\n }\n\n },\n addresschange: function addresschange(e) {\n // console.log(e.target);\n __f__(\"log\", e.data.join(';'), \" at pages/modal/classAttr.vue:655\");\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data.join(';');\n },\n classAttr_extButton: function classAttr_extButton(index, iindex) {\n var $this = this;\n var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;\n var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;\n if (!before_click_button) {\n uni.showModal({ title: \"鎻愮ず\", content: \"before_click_button-event_id涓虹┖锛乗", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n if (!button_callback) {\n uni.showModal({ title: \"鎻愮ず\", content: \"button_callback-event_id涓虹┖锛乗", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);\n },\n classAttr_AddPer: function classAttr_AddPer(index, iindex) {\n var param = { index: index, iindex: iindex };\n var $this = this;\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:681\");\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].Login + ';' + data[0].Name;\n\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"4\",\n projectid: \"\",\n rclsid: \"\",\n robjid: \"\",\n userlogin: data[0].Login,\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: [] };\n\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n } } });\n\n\n },\n classAttr_AddRef: function classAttr_AddRef(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:710\");\n uni.showModal({ title: \"鎻愮ず\", content: \"姝ゅ姛鑳借繕鏈疄鐜帮紒\", showCancel: false, confirmText: \"鍙栨秷\" });\n // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];\n // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;\n },\n classAttr_AddPrj: function classAttr_AddPrj(index, iindex) {\n var param = { index: index, iindex: iindex };\n var $this = this;\n uni.navigateTo({\n url: '../selPrj/index?relation=-1¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n // console.log(data);\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: [] };\n\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n } } });\n\n\n },\n sava: function sava() {\n if (this.$data.edit_ok_event)\n this.OKDataObjRunCustomEvent();else\n\n this.add();\n },\n add: function add() {var _this3 = this;\n uni.showLoading({\n title: \"鍔犺浇涓�..\" });\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ name: ar.Name, value: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ name: ar.Name, value: ar.Value ? '1' : '0' });else\n if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {//鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr)\n valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({ name: ar.Name, value: valStr });\n } else\n req.push({ name: ar.Name, value: ar.Value });\n } else\n\n req.push({ name: ar.Name, value: ar.Value ? ar.Value : '' });\n\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({ title: \"鎻愮ず\", content: ar.DispName + '涓嶈兘涓虹┖锛�, showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n }\n }\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid } };\n\n\n\n var dataInfo = {\n class_id: this.$data.param.clsid, data_obj_id: '', masterclsid: '',\n req: JSON.stringify(req), upfile: JSON.stringify([]), post_data: JSON.stringify({}),\n compose: JSON.stringify([]), refdatastore: JSON.stringify([]), extinfo: JSON.stringify(enviroment),\n not_trigger_sys_event: '' };\n\n\n // return\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:816\");\n this.$store.dispatch('addclassattr', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:818\");\n uni.hideLoading();\n if (success.code == '00000') {\n var action = JSON.parse(success.data.Action);\n if (action.ret == '0') {\n if (action.result_type == '0') {\n uni.showToast({ title: action.result, icon: \"success\", duration: 3000 });\n }\n // \"{\"ret\":0, \"result_type\":0, \"result\":\"鍒涘缓鎴愬姛123123123\",\"info\":\"\"}\"\n }\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/classAttr?param=' + JSON.stringify(_this3.$data.param) + \"&titlename=\" + _this3.$data.title });\n\n // this.class_attr_init();\n } else {\n uni.showModal({ title: \"閿欒\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:837\");\n uni.hideLoading();\n uni.showModal({ title: \"鎻愮ず\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n class_attr_init: function class_attr_init() {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.classAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.classAttrList.length; s++) {\n var clsattr = this.$data.classAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n }\n if (ca.select == true)\n ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else\n ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = { year: nowDate.getFullYear(), month: nowDate.getMonth() + 1, day: nowDate.getDate() };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({ id: rescls[0], name: rescls[1] });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�)\n ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�)\n ca.Value = false;\n\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.classGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith });\n\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.classAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.classGridStyle.StyleDef) {\n if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({ attr: ar.attr, val: ar.value ? ar.value : '' });\n }\n }\n }\n }\n\n var eventlist = this.$data.classGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n __f__(\"log\", req, \" at pages/modal/classAttr.vue:952\");\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.classGridStyle, \" at pages/modal/classAttr.vue:968\");\n __f__(\"log\", this.$data.classAttrList, \" at pages/modal/classAttr.vue:969\");\n\n } else {\n uni.showModal({ title: \"鎻愮ず\", content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\", showCancel: false, confirmText: \"鍙栨秷\" });\n }\n },\n ini_DataObjRunCustomEvent: function ini_DataObjRunCustomEvent(info) {var _this4 = this;\n var param = {\n EditStyle: this.$data.param.Edit_dlg.Name,\n ViewStyle: this.$data.param.Edit_dlg.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n } } };\n\n\n var inputparameter = '';\n var global_attr = '';\n\n var dataInfo = {\n edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,\n rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,\n attr: JSON.stringify(info.attr), extinfo: JSON.stringify(param), inputparameter: inputparameter, global_attr: global_attr };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:999\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1001\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/classAttr.vue:1016\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this4.$data.classAttrList.length; a++) {\n for (var l = 0; l < _this4.$data.classAttrList[a].Attr.length; l++) {\n var ca = _this4.$data.classAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({ \"CN_S_NAME\": val, \"Name\": val, \"label\": val, \"value\": val });\n\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n\n var length = 0;\n if (!_this4.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this4.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this4.$data.refdatastore.length; j++) {\n if (_this4.$data.refdatastore[j].attr == val[i].attr) {\n _this4.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({ title: \"閿欒2.2\", content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗", showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }\n }\n\n } else {\n uni.showModal({ title: \"閿欒2\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒2.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n DataObjRunCustomEvent: function DataObjRunCustomEvent(info, data_attr) {\n var $this = this;\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n } };\n\n if (data_attr) {\n enviroment.edit_dlg = {\n type: 'small', //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n if (data_attr) {\n enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name, //瀛楁灞炴�\n text: data_attr.DispName, //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName, //灞炴�缁刓n type: data_attr.Type, //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly, //鏄惁鍙\n button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n }\n var dataInfo = {\n edtype: info.edtype, eventid: info.eventid, projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,\n attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), inputparameter: '', global_attr: JSON.stringify(this.$data.global_attr) };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1103\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1105\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/classAttr.vue:1111\");\n for (var i = 0; i < actionlist.length; i++) {\n var action = actionlist[i];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({ \"CN_S_NAME\": val, \"Name\": val, \"label\": val, \"value\": val });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/classAttr.vue:1138\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (data.action[i].action_type == 'set_global_attr') {\n $this.$data.global_attr = data.action[i].value || [];\n }\n }\n }\n\n if (data.result) {\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({ title: \"閿欒3\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒3.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n OKDataObjRunCustomEvent: function OKDataObjRunCustomEvent() {var _this5 = this;\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n } };\n\n\n\n var eventid = this.$data.edit_ok_event.scrip_id;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value });\n }\n }\n\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({ 'attr': this.$data.refdatastore[i].attr, 'val': this.$data.refdatastore[i].value });\n }\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n var dataInfo = {\n edtype: info.edtype, eventid: info.eventid, projectid: info.projectid, rclsid: info.rclsid,\n robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,\n attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), global_attr: JSON.stringify(this.$data.global_attr) };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1258\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1260\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!_this5.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n _this5.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this5.$data.refdatastore.length; j++) {\n if (_this5.$data.refdatastore[j].attr == result[i].attr) {\n _this5.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n\n _this5.add();\n } else {\n uni.showModal({ title: \"閿欒4\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒4.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n DataObjRunCustomEvent_Return: function DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {var _this6 = this;\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n } };\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({ 'attr': this.$data.refdatastore[i].attr, 'val': this.$data.refdatastore[i].value });\n }\n }\n }\n var extinfo = enviroment;\n extinfo.edit_dlg = {\n type: 'small', //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n if (data_attr) {\n extinfo.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name, //瀛楁灞炴�\n text: data_attr.DispName, //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName, //灞炴�缁刓n type: data_attr.Type, //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly, //鏄惁鍙\n button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n var dataInfo = {\n edtype: \"0\", eventid: eventid, projectid: '', rclsid: '', robjid: '', userlogin: '',\n clsid: this.$data.param.clsid, objid: '', attr: JSON.stringify(req),\n extinfo: JSON.stringify(extinfo), global_attr: JSON.stringify(this.$data.global_attr) };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1349\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1351\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n if (data != \"\") {\n\n var actions = data.action;\n __f__(\"log\", actions, \" at pages/modal/classAttr.vue:1357\");\n if (actions) {\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n var val = action.value;\n var enviroment = JSON.stringify(enviroment);\n\n if (action.action_type == 'open_panel') {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛� });\n\n d.show();\n } else\n if (action.action_type == 'open_select_userdlg') {\n var style = val.style;\n // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''\n var $this = _this6;\n var param = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req,\n data_attr: data_attr };\n\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:1387\");\n var callback_eventid = param.button_callback.trim();\n var info = {\n eventid: callback_eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req,\n inputparameter: data };\n\n $this.DataObjRunCustomEvent(info, param.data_attr);\n } } });\n\n\n } else\n if (action.action_type == 'open_data_query_dlg') {\n\n } else\n if (action.action_type == 'open_common_dlg') {\n var value = action.value;\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛� });\n\n d.show();\n } else\n if (action.action_type == 'open_project_query_dlg') {\n //console.log(action.value.select_range);\n //console.log(action.value.mulit_select);\n var priRel = '-1';\n if (action.value.select_range == '鍏ㄩ儴鐩稿叧')\n priRel = '0';else\n if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')\n priRel = '1';else\n if (action.value.select_range == '鎴戝垱寤虹殑')\n priRel = '2';else\n if (action.value.select_range == '鎴戝弬涓庣殑' || action.value.select_range == '鎴戝弬鍔犵殑')\n priRel = '3';else\n if (action.value.select_range == '鎴戝叧娉ㄧ殑')\n priRel = '4';else\n if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')\n priRel = '5';\n\n var $this = _this6;\n var param_ = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req };\n\n uni.navigateTo({\n url: '../selPrj/index?relation=' + priRel + '¶m=' + JSON.stringify(param_),\n events: {\n AddPer: function AddPer(data, param) {\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var callback_eventid = param.button_callback.trim();\n if (callback_eventid) {\n var info = {\n eventid: callback_eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req };\n\n\n $this.DataObjRunCustomEvent(info);\n }\n } } });\n\n\n } else {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛� });\n\n d.show();\n }\n }\n }\n } else {\n uni.showModal({ title: \"鎻愮ず5.2\", content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n } else {\n uni.showModal({ title: \"閿欒5\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"鎻愮ず5.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 13)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9kYWwvY2xhc3NBdHRyLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtVkEscUg7QUFDQTtBQUNBO0FBQ0EseUNBREEsRUFEQTs7QUFJQSxNQUpBLGtCQUlBO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLGVBRkE7QUFHQSx1QkFIQTtBQUlBLHdCQUpBO0FBS0EsMkJBTEEsRUFLQTtBQUNBLHVCQU5BLEVBTUE7QUFDQSxtQ0FQQSxFQU9BO0FBQ0EsNkJBUkE7QUFTQSxxQkFUQTtBQVVBLHNCQVZBLENBVUE7QUFWQTs7QUFhQSxHQWxCQTtBQW1CQSxRQW5CQSxrQkFtQkEsT0FuQkEsRUFtQkE7QUFDQTtBQUNBLDREQUZBLENBRUE7QUFDQTtBQUNBLGlGQUpBLENBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBREE7QUFFQSwrQkFGQTs7QUFJQTtBQUNBLDJCQURBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FIQTtBQUlBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FKQSxNQUlBO0FBQ0E7QUFDQTtBQUNBLEtB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LG9EQUhBO0FBSUEsNEJBSkE7O0FBTUE7QUFDQSxrR0FEQTtBQUVBO0FBQ0EsNEJBREEsa0JBQ0EsSUFEQSxFQUNBLEtBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFEQTtBQUVBLHVDQUZBO0FBR0EsaURBSEE7QUFJQSxzQ0FKQTtBQUtBLHNDQUxBO0FBTUEseUNBTkE7QUFPQSwwREFQQTtBQVFBLHFDQVJBO0FBU0EsMkNBVEE7OztBQVlBO0FBQ0E7QUFDQSx1QkFwQkEsRUFGQTs7O0FBeUJBLGlCQWpEQSxNQWlEQTtBQUNBO0FBQ0EsK0VBREE7QUFFQSxnRUFGQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBekhBLE1BeUhBO0FBQ0E7QUFDQTtBQUNBLFNBOUhBLE1BOEhBO0FBQ0E7QUFDQTtBQUNBLE9BbklBLEVBbUlBLEtBbklBLENBbUlBO0FBQ0E7QUFDQTtBQUNBLE9BdElBO0FBdUlBLEtBeGpDQSxFQWhFQSxFIiwiZmlsZSI6IjQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHN0eWxlPlxyXG5cdC5jbGFzc19hdHRyX3RpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTogNDRycHg7XHJcblx0ICAgIHBhZGRpbmctYm90dG9tOiAyMnJweDtcclxuXHQgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuXHQuY2xhc3NfYXR0cl90aXRsZSAudGl0bGVfbGluZSB7XHJcblx0ICAgIGJvcmRlci1ib3R0b206IDJycHggc29saWQgI2FhYTtcclxuXHQgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdCAgICBib3R0b206IC01MHJweDtcclxuXHQgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI5MHJweCk7XHJcblx0ICAgIG1hcmdpbi1sZWZ0OiAxMDBweDtcclxuXHR9XHJcblx0LmNsYXNzX2F0dHJfdGl0bGUgLnRpdGxlX2ljb24ge1xyXG5cdCAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0ICAgIHdpZHRoOiAxMDBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogNjRycHg7XHJcblx0ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHQgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHQgICAgcGFkZGluZy10b3A6IDEwcnB4OyAgICBcclxuXHRcdHBhZGRpbmctbGVmdDogMjBycHg7XHJcblx0ICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHQgICAgY29sb3I6ICNmZmY7XHJcblx0fVxyXG5cdC5jbGFzc19hdHRyX3RpdGxlIGkge1xyXG5cdCAgICBjb2xvcjogIzJjNmFhMCFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cdC5jbGFzc19hdHRyX3RpdGxlIC50aXRsZV9pY29uIGkge1xyXG5cdCAgICBmb250LXNpemU6IDgwcnB4O1xyXG5cdH1cclxuXHQuY2xhc3NfYXR0cl90aXRsZSAudGl0bGUge1xyXG5cdCAgICBwYWRkaW5nLXJpZ2h0OiAyMnJweDtcclxuXHQgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdCAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ICAgIGJvdHRvbTogLThycHg7XHJcblx0fVxyXG5cdC5jbGFzc19hdHRyX3RpdGxlIC5hcnJvdyB7XHJcblx0ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogNnJweDtcclxuXHRcdHJpZ2h0OiAzMHJweDtcclxuXHRcdGZvbnQtc2l6ZTogNjBycHg7XHJcblx0fVxyXG5cdGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuXHRcdGZvbnQtc2l6ZTogMTJycHg7XHJcblx0fVxyXG5cdHRleHRhcmVhe1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XHJcblx0XHRwYWRkaW5nOiAxMHJweCA4cnB4IDEycnB4O1xyXG5cdFx0YmFja2dyb3VuZDogI0ZGRjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcclxuXHRcdGZvbnQtc2l6ZTogMzRycHg7XHJcblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcclxuXHRcdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdHRyYW5zaXRpb24tZHVyYXRpb246IDAuMXM7XHJcblx0XHRjb2xvcjogIzA0NmRiMztcclxuXHRcdG1hcmdpbi10b3A6IDRweDtcclxuXHR9XHJcblx0aW5wdXR7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogNTJycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiAjRkZGO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xyXG5cdFx0Y29sb3I6ICMwNDZkYjM7XHJcblx0XHRwYWRkaW5nOiAxMHJweCA4cnB4IDEycnB4O1xyXG5cdFx0Zm9udC1zaXplOiAzNHJweDtcclxuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0dHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xcztcclxuXHRcdG1hcmdpbi10b3A6IDRycHg7XHJcblx0fVxyXG5cdC5zZWxlY3R7ICAgIFxyXG5cdFx0d2lkdGg6IDIwcHg7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdH1cclxuXHQuY2xhc3NfYXR0cl9ib2R5IC5mb3JtLWdyb3VwIHtcclxuXHRcdG1hcmdpbjogMjBycHggMzBycHg7XHJcblx0ICAgIC8qIG1hcmdpbi1sZWZ0OiAtMTJweDtcclxuXHQgICAgbWFyZ2luLXJpZ2h0OiAtMTJweDsgKi9cclxuXHR9XHJcblx0LmZvcm0tZ3JvdXAgPiBsYWJlbFtjbGFzcyo9XCJjb2wtXCJdIHtcclxuXHQgICAgbWFyZ2luLWJvdHRvbTogOHJweDtcclxuXHRcdGZvbnQtc2l6ZTogMzJycHg7XHJcblx0fVxyXG5cdC5mb3JtLWdyb3VwIGxhYmVsIHtcclxuXHQgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHQgICAgbGluZS1oZWlnaHQ6IDYwcnB4O1xyXG5cdH1cclxuXHQubm8tcGFkZGluZy1yaWdodCB7XHJcblx0ICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuXHR9XHJcblx0LmNvbC14cy0xMiB7XHJcblx0ICAgIHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHQudHhfdGl0bGV7XHJcblx0XHRmb250LXNpemU6IDM2cnB4O1xyXG5cdH1cclxuXHQudHhfdGl0bGUye1xyXG5cdFx0Zm9udC1zaXplOiAzNnJweDtcclxuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246IC0ycHg7XHJcblx0fVxyXG5cdC50ZXh0LXJpZ2h0e1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAyMHJweDtcclxuXHRcdG1hcmdpbi10b3A6IC02cnB4O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0Zm9udC1zaXplOiA0NHJweDtcclxuXHR9XHJcblx0LnRleHQtcmlnaHQyIHtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOiAtNHB4O1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDlweDtcclxuXHRcdGZsb2F0OiBub25lO1xyXG5cdFx0Zm9udC1zaXplOiA0NHJweDtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR9XHJcblx0LnNlY3Rpb25faXB1dHtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XHJcblx0XHR3aWR0aDogOTglO1xyXG5cdFx0aGVpZ2h0OiA2MnJweDtcclxuXHRcdGJhY2tncm91bmQ6ICNGRkY7XHJcblx0XHRib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XHJcblx0XHRjb2xvcjogIzA0NmRiMztcclxuXHRcdHBhZGRpbmc6IDEwcnB4IDhycHggMTBycHg7XHJcblx0XHRmb250LXNpemU6IDM0cnB4O1xyXG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcblx0XHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcblx0XHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFzO1xyXG5cdH1cclxuXHQuZGF0ZV9pcHV0e1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcclxuXHRcdC8qIHdpZHRoOiA5OCU7ICovXHJcblx0XHRoZWlnaHQ6IDYycnB4O1xyXG5cdFx0YmFja2dyb3VuZDogI0ZGRjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcclxuXHRcdGNvbG9yOiAjMDQ2ZGIzO1xyXG5cdFx0cGFkZGluZzogMTBycHggOHJweCA0cnB4O1xyXG5cdFx0Zm9udC1zaXplOiAzNHJweDtcclxuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0dHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xcztcclxuXHR9XHJcblx0YnV0dG9uLmJ0bl9hZGQge1xyXG5cdFx0bWFyZ2luLXRvcDogNTBycHg7XHJcblx0XHRwYWRkaW5nOiAyMHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XHJcblx0XHRiYWNrZ3JvdW5kOiAjMjdBNkUxO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0fVxyXG5cdC5pX3Rpc2hpe1xyXG5cdFx0Y29sb3I6IHJlZDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBzdWI7XHJcblx0XHRmb250LXN0eWxlOiBpbml0aWFsO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDIwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAxN3B4O1xyXG5cdH1cclxuXHQuYXR0cl9maWVsZHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRtYXJnaW4tbGVmdDogOHB4O1xyXG5cdFx0Lyogd2lkdGg6IDcxJTsgKi9cclxuXHR9XHJcbjwvc3R5bGU+XHJcblxyXG48dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250ZW50XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInYtYXJlYVwiIHYtZm9yPVwiKGNsYXNzYXR0cixpbmRleCkgaW4gY2xhc3NBdHRyTGlzdFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2xhc3NfYXR0cl90aXRsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGl0bGVfbGluZVwiPjwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ0aXRsZV9pY29uXCIgOnN0eWxlPVwieydiYWNrZ3JvdW5kLWNvbG9yJzpjbGFzc2F0dHIuQmtDb2xvcn1cIj4gICBcclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwiYWNlLWljb24gZmFcIiA6Y2xhc3M9XCJjbGFzc2F0dHIuSW1nRm9udFN0eWxlXCI+PC9pPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e2NsYXNzYXR0ci5OYW1lfX08L3NwYW4+XHJcblx0XHRcdFx0PGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwiYXJyb3dcIiBAdGFwPVwib25hcnJvdyhpbmRleCxjbGFzc2F0dHIuT3BlbilcIj48aSBjbGFzcz1cImFjZS1pY29uIGZhIFwiOmNsYXNzPVwiY2xhc3NhdHRyLk9wZW4/J2ZhLWFuZ2xlLWRvd24nOidmYS1hbmdsZS11cCdcIj48L2k+PC9hPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImNsYXNzX2F0dHJfYm9keVwiIDpzdHlsZT1cInsnZGlzcGxheSc6Y2xhc3NhdHRyLk9wZW4/J2Jsb2NrJzonbm9uZSd9XCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImR2X2ZpZWxkX2RpdlwiIHYtZm9yPVwiKGF0dHIsaWluZGV4KSBpbiBjbGFzc2F0dHIuQXR0clwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLWdyb3VwXCIgdi1pZj1cImF0dHIuVHlwZT09J+Wtl+espuS4sicgfHwgYXR0ci5UeXBlPT0n5Y+v5Y+Y6ZW/5a2X56ym5LiyJyB8fCBhdHRyLlR5cGU9PSfmlbTmlbAnIHx8IGF0dHIuVHlwZT09J+a1rueCueaVsCdcIiA6c3R5bGU9XCJ7J2Rpc3BsYXknOmF0dHIuaGlkZGVuID09ICdUcnVlJz8nbm9uZSc6Jyd9XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+S4iuS4i+W4g+WxgCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInR4X3RpdGxlXCIgOnN0eWxlPVwieyd3aWR0aCc6Y2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGgrJyUnfVwiPnt7YXR0ci5EaXNwTmFtZX19OjxpIGNsYXNzPVwiaV90aXNoaVwiIHYtaWY9XCJhdHRyLm5vdGVtcHR5PT10cnVlXCI+KjwvaT48L3RleHQ+ICA8IS0tIGF0dHIuTm90RW1wdHk9PScxJyAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiIHYtaWY9XCJhdHRyLmV4dF9idXR0b249PXRydWVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxhIEB0YXA9XCJjbGFzc0F0dHJfZXh0QnV0dG9uKGluZGV4LGlpbmRleClcIiA+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgOnZhbHVlPVwiYXR0ci5WYWx1ZVwiIEBmb2N1cz1cIm9udGFwXCIgQGJsdXI9XCJvbmV2ZW50XCIgdi1pZj1cImF0dHIuSGVpZ2h0PT0nMSdcIiA6ZGF0YS1pbmRleD1cImluZGV4XCIgOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgOnN0eWxlPVwieyd3aWR0aCc6YXR0ci5XaWR0aH1cIiA6ZGlzYWJsZWQ9XCJhdHRyLmVkaXQ/ZmFsc2U6dHJ1ZVwiID4gPCEtLSA9PSdmbGFzZSc/dHJ1ZTpmYWxzZSAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dGFyZWEgOnZhbHVlPVwiYXR0ci5WYWx1ZVwiIEBmb2N1cz1cIm9udGFwXCIgQGJsdXI9XCJvbmV2ZW50XCIgdi1lbHNlLWlmPVwiYXR0ci5IZWlnaHQ9PScyJ1wiIDpkYXRhLWluZGV4PVwiaW5kZXhcIjpkYXRhLWlpbmRleD1cImlpbmRleFwiIHN0eWxlPVwiaGVpZ2h0OjYwcHg7XCIgOnN0eWxlPVwieyd3aWR0aCc6YXR0ci5XaWR0aH1cIiA6ZGlzYWJsZWQ9XCJhdHRyLmVkaXQ/ZmFsc2U6dHJ1ZVwiPjwvdGV4dGFyZWE+XHJcblx0XHRcdFx0XHRcdFx0PHRleHRhcmVhIDp2YWx1ZT1cImF0dHIuVmFsdWVcIiBAZm9jdXM9XCJvbnRhcFwiIEBibHVyPVwib25ldmVudFwiIHYtZWxzZS1pZj1cImF0dHIuSGVpZ2h0PT0nMydcIiA6ZGF0YS1pbmRleD1cImluZGV4XCI6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIiBzdHlsZT1cImhlaWdodDo5MHB4O1wiIDpzdHlsZT1cInsnd2lkdGgnOmF0dHIuV2lkdGh9XCIgOmRpc2FibGVkPVwiYXR0ci5lZGl0P2ZhbHNlOnRydWVcIj48L3RleHRhcmVhPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+W3puWPs+W4g+WxgCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cInR4X3RpdGxlMlwiIDpzdHlsZT1cInsnd2lkdGgnOmNsYXNzYXR0ci50aXRsZV9wX3dkaXRoKyclJ31cIj57e2F0dHIuRGlzcE5hbWV9fTo8L3A+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhdHRyX2ZpZWxkXCIgOnZhbHVlPVwiYXR0ci5WYWx1ZVwiIEBmb2N1cz1cIm9udGFwXCIgQGJsdXI9XCJvbmV2ZW50XCIgdi1pZj1cImF0dHIuSGVpZ2h0PT0nMSdcIiA6ZGF0YS1pbmRleD1cImluZGV4XCIgOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgOnN0eWxlPVwieyd3aWR0aCc6IGF0dHIuV2lkdGguc3BsaXQoJyUnKVswXSAtIGNsYXNzYXR0ci50aXRsZV9wX3dkaXRoIC0gKGF0dHIuTm90RW1wdHk9PScxJz8xMDo1KSAtIChhdHRyLmV4dF9idXR0b249PXRydWU/OTowKSArJyUnfVwiIDpkaXNhYmxlZD1cImF0dHIuZWRpdD9mYWxzZTp0cnVlXCIgPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0YXJlYSBjbGFzcz1cImF0dHJfZmllbGRcIiA6dmFsdWU9XCJhdHRyLlZhbHVlXCIgQGZvY3VzPVwib250YXBcIiBAYmx1cj1cIm9uZXZlbnRcIiB2LWVsc2UtaWY9XCJhdHRyLkhlaWdodD09JzInXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgc3R5bGU9XCJoZWlnaHQ6NjBweDtcIiA6c3R5bGU9XCJ7J3dpZHRoJzogYXR0ci5XaWR0aC5zcGxpdCgnJScpWzBdIC0gY2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGggLSAoYXR0ci5Ob3RFbXB0eT09JzEnPzEwOjUpIC0gKGF0dHIuZXh0X2J1dHRvbj09dHJ1ZT85OjApICsnJSd9XCIgOmRpc2FibGVkPVwiYXR0ci5lZGl0P2ZhbHNlOnRydWVcIj48L3RleHRhcmVhPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0YXJlYSBjbGFzcz1cImF0dHJfZmllbGRcIiA6dmFsdWU9XCJhdHRyLlZhbHVlXCIgQGZvY3VzPVwib250YXBcIiBAYmx1cj1cIm9uZXZlbnRcIiB2LWVsc2UtaWY9XCJhdHRyLkhlaWdodD09JzMnXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgc3R5bGU9XCJoZWlnaHQ6OTBweDtcIiA6c3R5bGU9XCJ7J3dpZHRoJzogYXR0ci5XaWR0aC5zcGxpdCgnJScpWzBdIC0gY2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGggLSAoYXR0ci5Ob3RFbXB0eT09JzEnPzEwOjUpIC0gKGF0dHIuZXh0X2J1dHRvbj09dHJ1ZT85OjApICsnJSd9XCIgOmRpc2FibGVkPVwiYXR0ci5lZGl0P2ZhbHNlOnRydWVcIj48L3RleHRhcmVhPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0MlwiIHYtaWY9XCJhdHRyLmV4dF9idXR0b249PXRydWVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxhIEB0YXA9XCJjbGFzc0F0dHJfZXh0QnV0dG9uKGluZGV4LGlpbmRleClcIiA+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJpX3Rpc2hpXCIgdi1pZj1cImF0dHIubm90ZW1wdHk9PXRydWVcIj4qPC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZvcm0tZ3JvdXBcIiB2LWlmPVwiYXR0ci5UeXBlPT0n5biD5bCU5YC8J1wiIDpzdHlsZT1cInsnZGlzcGxheSc6YXR0ci5oaWRkZW4gPT0gJ1RydWUnPydub25lJzonJ31cIj5cclxuXHRcdFx0XHRcdFx0PGNoZWNrYm94LWdyb3VwIGNsYXNzPVwiY2hlY2tfcmVtZW1iZXJQd2RcIiBAY2hhbmdlPVwib25jaGVja1wiIDpkYXRhLWlzY2hlY2s9XCJhdHRyLlZhbHVlXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiIDpkYXRhLWlpbmRleD1cImlpbmRleFwiIDpzdHlsZT1cInsnbWFyZ2luLWxlZnQnOiBjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+W3puWPs+W4g+WxgCc/Y2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGgrMiArJyUnOicxMHJweCd9XCI+XHJcblx0XHRcdFx0XHRcdFx0PGxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGNoZWNrYm94IDp2YWx1ZT1cImF0dHIuVmFsdWVcIiA6Y2hlY2tlZD1cImF0dHIuVmFsdWVcIi8+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dGV4dD57e2F0dHIuRGlzcE5hbWV9fTxpIGNsYXNzPVwiaV90aXNoaVwiIHYtaWY9XCJhdHRyLm5vdGVtcHR5PT10cnVlXCI+KjwvaT48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0PC9jaGVja2JveC1ncm91cD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1ncm91cFwiIHYtaWY9XCJhdHRyLlR5cGU9PSfml6XmnJ8nIHx8IGF0dHIuVHlwZT09J+aXtumXtCdcIiA6c3R5bGU9XCJ7J2Rpc3BsYXknOmF0dHIuaGlkZGVuID09ICdUcnVlJz8nbm9uZSc6Jyd9XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+S4iuS4i+W4g+WxgCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInR4X3RpdGxlXCIgOnN0eWxlPVwieyd3aWR0aCc6Y2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGgrJyUnfVwiPnt7YXR0ci5EaXNwTmFtZX19OjxpIGNsYXNzPVwiaV90aXNoaVwiIHYtaWY9XCJhdHRyLm5vdGVtcHR5PT10cnVlXCI+KjwvaT48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PHBpY2tlciBtb2RlPVwiZGF0ZVwiIDp2YWx1ZT1cImF0dHIuVmFsdWVcIiBAY2hhbmdlPVwib25kYXRlVGltZVwiIGNsYXNzPVwiZGF0ZV9pcHV0XCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiIDpkYXRhLWlpbmRleD1cImlpbmRleFwiIDpzdHlsZT1cInsnd2lkdGgnOmF0dHIuV2lkdGh9XCI+XHJcblx0XHRcdFx0XHRcdFx0ICAgPHZpZXcgY2xhc3M9XCJwaWNrZXJcIj57e2F0dHIuVmFsdWV9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiY2xhc3NhdHRyLmNvbnRyb2xfc3R5bGU9PSflt6blj7PluIPlsYAnXCI+XHJcblx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJ0eF90aXRsZTJcIiA6c3R5bGU9XCJ7J3dpZHRoJzpjbGFzc2F0dHIudGl0bGVfcF93ZGl0aCsnJSd9XCI+e3thdHRyLkRpc3BOYW1lfX06PC9wPlxyXG5cdFx0XHRcdFx0XHRcdDxwaWNrZXIgbW9kZT1cImRhdGVcIiA6dmFsdWU9XCJhdHRyLlZhbHVlXCIgQGNoYW5nZT1cIm9uZGF0ZVRpbWVcIiBjbGFzcz1cImRhdGVfaXB1dCBhdHRyX2ZpZWxkXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiIDpkYXRhLWlpbmRleD1cImlpbmRleFwiIDpzdHlsZT1cInsnd2lkdGgnOiBhdHRyLldpZHRoLnNwbGl0KCclJylbMF0gLSBjbGFzc2F0dHIudGl0bGVfcF93ZGl0aCAtIChhdHRyLk5vdEVtcHR5PT0nMSc/MTA6NSkgKyclJ31cIj5cclxuXHRcdFx0XHRcdFx0XHQgICA8dmlldyBjbGFzcz1cInBpY2tlclwiPnt7YXR0ci5WYWx1ZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiaV90aXNoaVwiIHYtaWY9XCJhdHRyLm5vdGVtcHR5PT10cnVlXCI+KjwvaT5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLWdyb3VwXCIgdi1pZj1cImF0dHIuVHlwZT09J+Wtl+WFuCcgfHwgYXR0ci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sidcIiA6c3R5bGU9XCJ7J2Rpc3BsYXknOmF0dHIuaGlkZGVuID09ICdUcnVlJz8nbm9uZSc6Jyd9XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+S4iuS4i+W4g+WxgCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInR4X3RpdGxlXCI+e3thdHRyLkRpc3BOYW1lfX06PGkgY2xhc3M9XCJpX3Rpc2hpXCIgdi1pZj1cImF0dHIubm90ZW1wdHk9PXRydWVcIj4qPC9pPjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHQ8cGlja2VyIGNsYXNzPVwic2VjdGlvbl9pcHV0XCIgQGNoYW5nZT1cIm9uY2hhbmdlXCIgOnJhbmdlPVwiYXR0ci5kaWN0aXRlbVwiIHJhbmdlLWtleT1cIkNOX1NfTkFNRVwiIHYtaWY9XCJhdHRyLnNlbGVjdD09ZmFsc2VcIiA6ZGF0YS1pbmRleD1cImluZGV4XCIgOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgOnN0eWxlPVwieyd3aWR0aCc6YXR0ci5XaWR0aH1cIiA6ZGlzYWJsZWQ9XCJhdHRyLmVkaXQ/ZmFsc2U6dHJ1ZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiXCI+e3sgYXR0ci5WYWx1ZSB9fTwvbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdFx0XHRcdFx0PHNlbGVjdC1jeSA6dmFsdWU9XCJhdHRyLlZhbHVlXCIgOm5hbWU9XCJhdHRyLk5hbWVcIiA6b3B0aW9ucz1cImF0dHIuZGljdGl0ZW1cIiBzaG93Q2xlYXJJY29uPVwidHJ1ZVwiIEBjaGFuZ2U9XCJvbmNoYW5nZTJcIiB2LWVsc2UtaWY9XCJhdHRyLnNlbGVjdD09dHJ1ZVwiIDpkYXRhLWluZGV4PVwiaW5kZXhcIiA6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIiA6c3R5bGU9XCJ7J3dpZHRoJzphdHRyLldpZHRofVwiIDpkaXNhYmxlZD1cImF0dHIuZWRpdD9mYWxzZTp0cnVlXCI+PC9zZWxlY3QtY3k+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgdi1pZj1cImNsYXNzYXR0ci5jb250cm9sX3N0eWxlPT0n5bem5Y+z5biD5bGAJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwidHhfdGl0bGUyXCIgOnN0eWxlPVwieyd3aWR0aCc6Y2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGgrJyUnfVwiPnt7YXR0ci5EaXNwTmFtZX19OjwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8cGlja2VyIGNsYXNzPVwic2VjdGlvbl9pcHV0IGF0dHJfZmllbGRcIiBAY2hhbmdlPVwib25jaGFuZ2VcIiA6cmFuZ2U9XCJhdHRyLmRpY3RpdGVtXCIgcmFuZ2Uta2V5PVwiQ05fU19OQU1FXCIgdi1pZj1cImF0dHIuc2VsZWN0PT1mYWxzZVwiIDpkYXRhLWluZGV4PVwiaW5kZXhcIiA6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIiA6c3R5bGU9XCJ7J3dpZHRoJzogYXR0ci5XaWR0aC5zcGxpdCgnJScpWzBdIC0gY2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGggLSAoYXR0ci5Ob3RFbXB0eT09JzEnPzEwOjUpICsnJSd9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJcIj57eyBhdHRyLlZhbHVlIH19PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0XHRcdFx0XHQ8c2VsZWN0LWN5IDp2YWx1ZT1cImF0dHIuVmFsdWVcIiA6bmFtZT1cImF0dHIuTmFtZVwiIDpvcHRpb25zPVwiYXR0ci5kaWN0aXRlbVwiIHNob3dDbGVhckljb249XCJ0cnVlXCIgQGNoYW5nZT1cIm9uY2hhbmdlMlwiIHYtZWxzZS1pZj1cImF0dHIuc2VsZWN0PT10cnVlXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiIDpkYXRhLWlpbmRleD1cImlpbmRleFwiIDpzdHlsZT1cInsnd2lkdGgnOmF0dHIuV2lkdGh9XCI+PC9zZWxlY3QtY3k+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJpX3Rpc2hpXCIgdi1pZj1cImF0dHIubm90ZW1wdHk9PXRydWVcIj4qPC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZvcm0tZ3JvdXBcIiB2LWlmPVwiYXR0ci5UeXBlPT0n5byV55So5a+56LGhKOWNleS4qiknIHx8IGF0dHIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJ1wiIDpzdHlsZT1cInsnZGlzcGxheSc6YXR0ci5oaWRkZW4gPT0gJ1RydWUnPydub25lJzonJ31cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgdi1pZj1cImNsYXNzYXR0ci5jb250cm9sX3N0eWxlPT0n5LiK5LiL5biD5bGAJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidHhfdGl0bGVcIj57e2F0dHIuRGlzcE5hbWV9fTo8aSBjbGFzcz1cImlfdGlzaGlcIiB2LWlmPVwiYXR0ci5ub3RlbXB0eT09dHJ1ZVwiPio8L2k+PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCIgdi1pZj1cImF0dHIuVHlwZT09J+W8leeUqOWvueixoSjljZXkuKopJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGEgQHRhcD1cImNsYXNzQXR0cl9BZGRSZWZcIiA6ZGF0YS1jbGFzc2lkPVwiYXR0ci5SZWxDbHMuc3BsaXQoJ3wnKVswXVwiIDpkYXRhLWNsYXNzbmFtZT1cImF0dHIuUmVsQ2xzLnNwbGl0KCd8JylbMV1cIiA+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIiB2LWlmPVwiYXR0ci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cGlja2VyIGNsYXNzPVwic2VsZWN0XCIgQGNoYW5nZT1cImNsYXNzQXR0cl9BZGRSZWZcIiA6cmFuZ2U9XCJhdHRyLlJlbENsc0xpc3RcIiByYW5nZS1rZXk9XCJuYW1lXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiIDpkYXRhLWlpbmRleD1cImlpbmRleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJcIj57eyBhdHRyLlZhbHVlIH19PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJjbGFzc19hdHRyX2FkZF9yZWZcIj48aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLXBsdXMtY2lyY2xlXCI+PC9pPjwvYT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiA6ZGF0YS1pbmRleD1cImluZGV4XCIgOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgOnN0eWxlPVwieyd3aWR0aCc6YXR0ci5XaWR0aH1cIiBkaXNhYmxlZD1cInRydWVcIiA+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgdi1pZj1cImNsYXNzYXR0ci5jb250cm9sX3N0eWxlPT0n5bem5Y+z5biD5bGAJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwidHhfdGl0bGUyXCIgOnN0eWxlPVwieyd3aWR0aCc6Y2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGgrJyUnfVwiPnt7YXR0ci5EaXNwTmFtZX19OjwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImF0dHJfZmllbGRcIiA6ZGF0YS1pbmRleD1cImluZGV4XCIgOmRhdGEtaWluZGV4PVwiaWluZGV4XCIgOnN0eWxlPVwieyd3aWR0aCc6IGF0dHIuV2lkdGguc3BsaXQoJyUnKVswXSAtIGNsYXNzYXR0ci50aXRsZV9wX3dkaXRoIC0gKGF0dHIuTm90RW1wdHk9PScxJz8xMDo1KSAtIDkgKyclJ31cIiBkaXNhYmxlZD1cInRydWVcIiA+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHQtcmlnaHQyXCIgdi1pZj1cImF0dHIuVHlwZT09J+W8leeUqOWvueixoSjljZXkuKopJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGEgQHRhcD1cImNsYXNzQXR0cl9BZGRSZWZcIiA6ZGF0YS1jbGFzc2lkPVwiYXR0ci5SZWxDbHMuc3BsaXQoJ3wnKVswXVwiIDpkYXRhLWNsYXNzbmFtZT1cImF0dHIuUmVsQ2xzLnNwbGl0KCd8JylbMV1cIiA+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHQtcmlnaHQyXCIgdi1pZj1cImF0dHIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHBpY2tlciBjbGFzcz1cInNlbGVjdFwiIEBjaGFuZ2U9XCJjbGFzc0F0dHJfQWRkUmVmXCIgOnJhbmdlPVwiYXR0ci5SZWxDbHNMaXN0XCIgcmFuZ2Uta2V5PVwibmFtZVwiIDpkYXRhLWluZGV4PVwiaW5kZXhcIiA6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiXCI+e3sgYXR0ci5WYWx1ZSB9fTwvbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxhIGNsYXNzPVwiY2xhc3NfYXR0cl9hZGRfcmVmXCI+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJpX3Rpc2hpXCIgdi1pZj1cImF0dHIubm90ZW1wdHk9PXRydWVcIj4qPC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZvcm0tZ3JvdXBcIiB2LWlmPVwiYXR0ci5UeXBlPT0n5byV55So5Lq65ZGYJ1wiIDpzdHlsZT1cInsnZGlzcGxheSc6YXR0ci5oaWRkZW4gPT0gJ1RydWUnPydub25lJzonJ31cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgdi1pZj1cImNsYXNzYXR0ci5jb250cm9sX3N0eWxlPT0n5LiK5LiL5biD5bGAJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidHhfdGl0bGVcIj57e2F0dHIuRGlzcE5hbWV9fTo8aSBjbGFzcz1cImlfdGlzaGlcIiB2LWlmPVwiYXR0ci5ub3RlbXB0eT09dHJ1ZVwiPio8L2k+PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8YSBjbGFzcz1cImNsYXNzX2F0dHJfYWRkX3BlclwiIEB0YXA9XCJjbGFzc0F0dHJfQWRkUGVyKGluZGV4LGlpbmRleClcIj48aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLXBsdXMtY2lyY2xlXCI+PC9pPjwvYT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiA6dmFsdWU9XCJhdHRyLlZhbHVlXCIgOnN0eWxlPVwieyd3aWR0aCc6YXR0ci5XaWR0aH1cIiBkaXNhYmxlZD1cInRydWVcIiA+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgdi1pZj1cImNsYXNzYXR0ci5jb250cm9sX3N0eWxlPT0n5bem5Y+z5biD5bGAJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwidHhfdGl0bGUyXCIgOnN0eWxlPVwieyd3aWR0aCc6Y2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGgrJyUnfVwiPnt7YXR0ci5EaXNwTmFtZX19OjwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImF0dHJfZmllbGRcIiA6dmFsdWU9XCJhdHRyLlZhbHVlXCIgOnN0eWxlPVwieyd3aWR0aCc6IGF0dHIuV2lkdGguc3BsaXQoJyUnKVswXSAtIGNsYXNzYXR0ci50aXRsZV9wX3dkaXRoIC0gKGF0dHIuTm90RW1wdHk9PScxJz8xMDo1KSAtIDkgKyclJ31cIiBkaXNhYmxlZD1cInRydWVcIiA+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHQtcmlnaHQyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8YSBjbGFzcz1cImNsYXNzX2F0dHJfYWRkX3BlclwiIEB0YXA9XCJjbGFzc0F0dHJfQWRkUGVyKGluZGV4LGlpbmRleClcIj48aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLXBsdXMtY2lyY2xlXCI+PC9pPjwvYT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImlfdGlzaGlcIiB2LWlmPVwiYXR0ci5ub3RlbXB0eT09dHJ1ZVwiPio8L2k+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1ncm91cFwiIHYtaWY9XCJhdHRyLlR5cGU9PSflvJXnlKjpobnnm64nXCIgOnN0eWxlPVwieydkaXNwbGF5JzphdHRyLmhpZGRlbiA9PSAnVHJ1ZSc/J25vbmUnOicnfVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiY2xhc3NhdHRyLmNvbnRyb2xfc3R5bGU9PSfkuIrkuIvluIPlsYAnXCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0eF90aXRsZVwiPnt7YXR0ci5EaXNwTmFtZX19OjxpIGNsYXNzPVwiaV90aXNoaVwiIHYtaWY9XCJhdHRyLm5vdGVtcHR5PT10cnVlXCI+KjwvaT48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjbGFzc19hdHRyX2FkZF9wcmpcIiBAdGFwPVwiY2xhc3NBdHRyX0FkZFByaihpbmRleCxpaW5kZXgpXCI+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgOnZhbHVlPVwiYXR0ci5WYWx1ZVwiIDpzdHlsZT1cInsnd2lkdGgnOmF0dHIuV2lkdGh9XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+W3puWPs+W4g+WxgCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cInR4X3RpdGxlMlwiIDpzdHlsZT1cInsnd2lkdGgnOmNsYXNzYXR0ci50aXRsZV9wX3dkaXRoKyclJ31cIj57e2F0dHIuRGlzcE5hbWV9fTo8L3A+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhdHRyX2ZpZWxkXCIgOnZhbHVlPVwiYXR0ci5WYWx1ZVwiIDpzdHlsZT1cInsnd2lkdGgnOiBhdHRyLldpZHRoLnNwbGl0KCclJylbMF0gLSBjbGFzc2F0dHIudGl0bGVfcF93ZGl0aCAtIChhdHRyLk5vdEVtcHR5PT0nMSc/MTA6NSkgLSA5ICsnJSd9XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0MlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJjbGFzc19hdHRyX2FkZF9wcmpcIiBAdGFwPVwiY2xhc3NBdHRyX0FkZFByaihpbmRleCxpaW5kZXgpXCI+PGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1wbHVzLWNpcmNsZVwiPjwvaT48L2E+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJpX3Rpc2hpXCIgdi1pZj1cImF0dHIubm90ZW1wdHk9PXRydWVcIj4qPC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZvcm0tZ3JvdXBcIiB2LWlmPVwiYXR0ci5UeXBlPT0n57yW56CBJ1wiIDpzdHlsZT1cInsnZGlzcGxheSc6YXR0ci5oaWRkZW4gPT0gJ1RydWUnPydub25lJzonJ31cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgdi1pZj1cImNsYXNzYXR0ci5jb250cm9sX3N0eWxlPT0n5LiK5LiL5biD5bGAJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidHhfdGl0bGVcIj57e2F0dHIuRGlzcE5hbWV9fTo8aSBjbGFzcz1cImlfdGlzaGlcIiB2LWlmPVwiYXR0ci5ub3RlbXB0eT09dHJ1ZVwiPio8L2k+PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIDpkYXRhLWluZGV4PVwiaW5kZXhcIiA6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIiA6c3R5bGU9XCJ7J3dpZHRoJzphdHRyLldpZHRofVwiIDpkaXNhYmxlZD1cImF0dHIuZWRpdD9mYWxzZTp0cnVlXCIgPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJjbGFzc2F0dHIuY29udHJvbF9zdHlsZT09J+W3puWPs+W4g+WxgCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cInR4X3RpdGxlMlwiIDpzdHlsZT1cInsnd2lkdGgnOmNsYXNzYXR0ci50aXRsZV9wX3dkaXRoKyclJ31cIj57e2F0dHIuRGlzcE5hbWV9fTo8L3A+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhdHRyX2ZpZWxkXCIgOmRhdGEtaW5kZXg9XCJpbmRleFwiIDpkYXRhLWlpbmRleD1cImlpbmRleFwiIDpzdHlsZT1cInsnd2lkdGgnOiBhdHRyLldpZHRoLnNwbGl0KCclJylbMF0gLSBjbGFzc2F0dHIudGl0bGVfcF93ZGl0aCAtIChhdHRyLk5vdEVtcHR5PT0nMSc/MTA6NSkgKyclJ31cIiA6ZGlzYWJsZWQ9XCJhdHRyLmVkaXQ/ZmFsc2U6dHJ1ZVwiID5cclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImlfdGlzaGlcIiB2LWlmPVwiYXR0ci5ub3RlbXB0eT09dHJ1ZVwiPio8L2k+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1ncm91cFwiIHYtaWY9XCJhdHRyLlR5cGU9PSfnnIHluILljLonXCIgOnN0eWxlPVwieydkaXNwbGF5JzphdHRyLmhpZGRlbiA9PSAnVHJ1ZSc/J25vbmUnOicnfVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiY2xhc3NhdHRyLmNvbnRyb2xfc3R5bGU9PSfkuIrkuIvluIPlsYAnXCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0eF90aXRsZVwiPnt7YXR0ci5EaXNwTmFtZX19OjxpIGNsYXNzPVwiaV90aXNoaVwiIHYtaWY9XCJhdHRyLm5vdGVtcHR5PT10cnVlXCI+KjwvaT48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PHBpY2tlckFkZHJlc3MgY2xhc3M9XCJkYXRlX2lwdXRcIiBAY2hhbmdlPVwiYWRkcmVzc2NoYW5nZVwiIDpkYXRhLWluZGV4PVwiaW5kZXhcIiA6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIiA6c3R5bGU9XCJ7J3dpZHRoJzphdHRyLldpZHRofVwiID57e2F0dHIuVmFsdWV9fTwvcGlja2VyQWRkcmVzcz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiY2xhc3NhdHRyLmNvbnRyb2xfc3R5bGU9PSflt6blj7PluIPlsYAnXCI+XHJcblx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJ0eF90aXRsZTJcIiA6c3R5bGU9XCJ7J3dpZHRoJzpjbGFzc2F0dHIudGl0bGVfcF93ZGl0aCsnJSd9XCI+e3thdHRyLkRpc3BOYW1lfX06PC9wPlxyXG5cdFx0XHRcdFx0XHRcdDxwaWNrZXJBZGRyZXNzIGNsYXNzPVwiZGF0ZV9pcHV0IGF0dHJfZmllbGRcIiBAY2hhbmdlPVwiYWRkcmVzc2NoYW5nZVwiIDpkYXRhLWluZGV4PVwiaW5kZXhcIiA6ZGF0YS1paW5kZXg9XCJpaW5kZXhcIiA6c3R5bGU9XCJ7J3dpZHRoJzogYXR0ci5XaWR0aC5zcGxpdCgnJScpWzBdIC0gY2xhc3NhdHRyLnRpdGxlX3Bfd2RpdGggLSAoYXR0ci5Ob3RFbXB0eT09JzEnPzEwOjUpICsnJSd9XCI+e3thdHRyLlZhbHVlfX08L3BpY2tlckFkZHJlc3M+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJpX3Rpc2hpXCIgdi1pZj1cImF0dHIubm90ZW1wdHk9PXRydWVcIj4qPC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcclxuXHRcdFx0XHJcblx0XHRcdDxidXR0b24gdHlwZT1cImRlZmF1bHRcIiBAdGFwPVwic2F2YVwiIGNsYXNzPVwiYnRuX2FkZFwiPnt7dGl0bGV9fTwvYnV0dG9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT4gXHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBwaWNrZXJBZGRyZXNzIGZyb20gJy4uLy4uL2pzL3BpY2tlckFkZHJlc3MvcGlja2VyQWRkcmVzcy52dWUnXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czoge1xyXG4gICAgICAgICAgICBwaWNrZXJBZGRyZXNzXHJcbiAgICAgICAgfSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0dGl0bGU6ICfmlrDlop4nLFxyXG5cdFx0XHRcdHBhcmFtOnt9LFxyXG5cdFx0XHRcdGNsYXNzQXR0ckxpc3Q6W10sXHJcblx0XHRcdFx0Y2xhc3NHcmlkU3R5bGU6W10sXHJcblx0XHRcdFx0ZWRpdF9pbml0YWxfZXZlbnQ6XCJcIiwgIC8v5by556qX5Yid5aeL5YyW5LqL5Lu2SURcclxuXHRcdFx0XHRlZGl0X29rX2V2ZW50OlwiXCIsICAgICAgLy/lvLnnqpfngrnlh7tPSyDop6blj5Hkuovku7ZJRFxyXG5cdFx0XHRcdGVkaXRfc2VsZWN0X2NvbXBvc2VfZXZlbnQ6XCJcIiwgIC8v6YCJ5oup57uE5oiQ5a+56LGh5pe26LCD55SoXHJcblx0XHRcdFx0ZWRpdF9jb21wb3NlX2Nsc19pZDpcIlwiLFxyXG5cdFx0XHRcdGdsb2JhbF9hdHRyOltdLFxyXG5cdFx0XHRcdHJlZmRhdGFzdG9yZTogW10sXHQgICAvL+W8leeUqOaVsOaNruWtmOWCqOWMui8vIHthdHRyOidHX1BSSl8nICsgYmluZGF0dHIgKyAnX0lEJywgdmFsdWU6aW5mby5pZH1cclxuXHRcdFx0XHRcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKG9wdGlvbnMpO1xyXG5cdFx0XHR1bmkuc2V0TmF2aWdhdGlvbkJhclRpdGxlKHsgdGl0bGU6IG9wdGlvbnMudGl0bGVuYW1lfSk7IC8v6K6+572u6aG26YOo5qCH6aKYIFxyXG5cdFx0XHR2YXIgcGFyYW0gPSBKU09OLnBhcnNlKG9wdGlvbnMucGFyYW0pO1xyXG5cdFx0XHR0aGlzLiRkYXRhLnRpdGxlID0gcGFyYW0uQWRkX0J0bk5hbWU/cGFyYW0uQWRkX0J0bk5hbWU6b3B0aW9ucy50aXRsZW5hbWU7IC8v6K6+572u5oyJ6ZKu5paH5a2XXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcclxuXHRcdFx0aWYoIXBhcmFtLkVkaXREbGdNb2RlKXtcclxuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLor6Xlip/og73ngrnmnKrphY3nva7nvJbovpHnqpflj6PvvIzor7fph43mlrDphY3nva7vvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0aWYoIXBhcmFtLkVkaXRfZGxnLk5hbWUpe1xyXG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuivpeWKn+iDveeCueacqumFjee9rueql+WPo+agt+W8j++8jOivt+mHjeaWsOmFjee9ru+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLiRkYXRhLnBhcmFtID0gcGFyYW07XHJcblx0XHRcdHZhciBlZGl0X2RsZyA9IHtcclxuXHRcdFx0ICAgIE1vZGVsOiBwYXJhbS5FZGl0RGxnTW9kZSxcclxuXHRcdFx0ICAgIE5hbWU6IHBhcmFtLkVkaXRfZGxnLk5hbWVcclxuXHRcdFx0fVxyXG5cdFx0XHR2YXIgZGF0YUluZm8gPSB7XHJcblx0XHRcdFx0Y2xhc3NfaWQ6IHBhcmFtLmNsc2lkXHJcblx0XHRcdH07XHJcblx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XHJcblx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzYXJlYUZ1bmNJRCA9IHBhcmFtLmNsc2lkO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0F0dHJMaXN0KTtcclxuXHRcdFx0IC8v6I635Y+WXHJcblx0XHRcdGlmKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3Qpe1xyXG5cdFx0XHQgXHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NBdHRyTGlzdC5kYXRhO1xyXG5cdFx0XHRcdCR0aGlzLmNsYXNzR3JpZFN0eWxlSW5mbygpO1xyXG5cdFx0XHR9ZWxzZVxyXG5cdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnY2xhc3NBdHRyTGlzdCcsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coc3VjY2Vzcyk7XHJcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QgPSBzdWNjZXNzLmRhdGE7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8oKTtcclxuXHRcdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzFcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XHJcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdGFzeW5jIGNsYXNzR3JpZFN0eWxlSW5mbygpe1xyXG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XHJcblx0XHRcdFx0dmFyIGdyaWRzdHlsZUluZm8gPSB7XHJcblx0XHRcdFx0XHRjbGFzc19pZDogJHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0XHRuYW1lOiAkdGhpcy4kZGF0YS5wYXJhbS5FZGl0X2RsZy5OYW1lLFxyXG5cdFx0XHRcdFx0dHlwZTogJzInXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHQkdGhpcy4kc3RvcmUuc3RhdGUudGhpc0VkaXROYW1lID0gJHRoaXMuJGRhdGEucGFyYW0uRWRpdF9kbGcuTmFtZVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mbyk7XHJcblx0XHRcdFx0IC8v6I635Y+WXHJcblx0XHRcdFx0aWYoJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NHcmlkU3R5bGVJbmZvKXtcclxuXHRcdFx0XHQgXHQkdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSA9ICR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mby5kYXRhO1xyXG5cdFx0XHRcdFx0JHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XHJcblx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKGdyaWRzdHlsZUluZm8pO1xyXG5cdFx0XHRcdFx0JHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdjbGFzc0dyaWRTdHlsZUluZm8nLGdyaWRzdHlsZUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhzdWNjZXNzKTtcclxuXHRcdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3MuZGF0YS5TdHlsZURlZiA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhLlN0eWxlRGVmKTtcclxuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSA9IHN1Y2Nlc3MuZGF0YTtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQkdGhpcy5jbGFzc19hdHRyX2luaXQoKTtcclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjJcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KS5jYXRjaChleD0+e1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMS4zXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdG9udGFwKGUpeyAvL+aJq+eggeWKn+iDvVxyXG5cdFx0XHRcdC8vY29uc29sZS5sb2coZS50YXJnZXQpXHJcblx0XHRcdFx0Z2V0QXBwKCkub25TY2FuKChyZXN1bHQpPT57XHJcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKHJlc3VsdC5kZWNvZGVkYXRhKTtcclxuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1yZXN1bHQuZGVjb2RlZGF0YTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbmFycm93KGluZGV4LG9wZW4pe1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGluZGV4KyctLScrb3Blbik7XHJcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5PcGVuPW9wZW49PXRydWU/ZmFsc2U6dHJ1ZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0b25kYXRlVGltZShlKSB7XHJcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlLnRhcmdldClcclxuXHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9ZS50YXJnZXQudmFsdWU7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uY2hhbmdlKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlLnRhcmdldCk7XHJcblx0XHRcdFx0dmFyIHZhbHVlPXRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5kaWN0aXRlbVtlLnRhcmdldC52YWx1ZV07XHJcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xyXG5cdFx0XHRcdGlmICh2YWx1ZS5OYW1lICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXZhbHVlLk5hbWU7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWUpO1xyXG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uYWN0aW9uO1xyXG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcclxuXHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcclxuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XHJcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XHJcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcclxuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcclxuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxyXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcclxuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcclxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xyXG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XHJcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxyXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcclxuXHRcdFx0XHQgICAgICAgIFx0fVxyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcclxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxyXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXHJcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcclxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxyXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXHJcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXHJcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uY2hhbmdlMihpdGVtLHZhbHVlLGRlbHZhbHVlKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coaXRlbSk7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codmFsdWUpO1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRlbHZhbHVlKTtcclxuXHRcdFx0XHRpZihpdGVtLmxlbmd0aD09MCl7IC8v5Li656m65pe277yM5riF56m65bGe5oCndmFsdWVcclxuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xyXG5cdFx0XHRcdFx0Zm9yKHZhciBpIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCl7XHJcblx0XHRcdFx0XHRcdGZvcih2YXIgaiBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaV0uQXR0cil7XHJcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcclxuXHRcdFx0XHRcdFx0XHRcdGlmKGRlbHZhbHVlWzBdLk5hbWUgPT0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW1bZF0uTmFtZSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLlZhbHVlPVwiXCI7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0Zm9yKHZhciB2IGluIGl0ZW0pe1xyXG5cdFx0XHRcdFx0dmFyIGluZGV4ICxpaW5kZXgsZGluZGV4PTA7XHJcblx0XHRcdFx0XHRmb3IodmFyIGkgaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0KXtcclxuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcclxuXHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW0pe1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYoaXRlbVt2XS5OYW1lID09IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtW2RdLk5hbWUpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpbmRleD1pO2lpbmRleD1qO2RpbmRleD1kO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dmFyIGl0ZW12YWx1ZSA9IGl0ZW1bdl07XHJcblx0XHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XHJcblx0XHRcdFx0XHRpZiAoaXRlbXZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLlZhbHVlPXZhbHVlO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5WYWx1ZSk7XHJcblx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYWN0aW9uO1xyXG5cdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xyXG5cdFx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XHJcblx0XHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XHJcblx0XHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcclxuXHRcdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcclxuXHRcdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XHJcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxyXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xyXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXHJcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xyXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8JylcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xyXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGl0ZW12YWx1ZS5OYW1lfSk7XHJcblx0XHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXHJcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XHJcblx0XHRcdFx0XHQgICAgICAgIFx0fVxyXG5cdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcclxuXHRcdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXHJcblx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcclxuXHRcdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXHJcblx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcclxuXHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcclxuXHRcdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcclxuXHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbmV2ZW50KGUpe1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcclxuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dO1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XHJcblx0XHRcdFx0aWYgKGUudGFyZ2V0LnZhbHVlICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUudGFyZ2V0LnZhbHVlO1xyXG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uYWN0aW9uO1xyXG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcclxuXHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcclxuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XHJcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XHJcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcclxuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcclxuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxyXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcclxuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcclxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xyXG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XHJcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxyXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcclxuXHRcdFx0XHQgICAgICAgIFx0fVxyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcclxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxyXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXHJcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcclxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxyXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXHJcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXHJcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbywgZGF0YV9hdHRyKTtcclxuXHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0b25jaGVjayhlKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZS50YXJnZXQpO1xyXG5cdFx0XHRcdHZhciBpc2NoZWNrZWQgPSBlLnRhcmdldC5kYXRhc2V0LmlzY2hlY2s/ZmFsc2U6dHJ1ZTtcclxuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dO1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XHJcblx0XHRcdFx0aWYgKGlzY2hlY2tlZCAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcclxuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1pc2NoZWNrZWQ7XHJcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XHJcblx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xyXG5cdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xyXG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcclxuXHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcclxuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xyXG5cdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xyXG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXHJcblx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xyXG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxyXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XHJcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8JylcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcclxuXHRcdFx0XHRcdFx0XHRcdGVsc2VcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdCAgICAgICAgXHR9XHJcblx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcclxuXHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxyXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXHJcblx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiAnJyxcclxuXHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6ICcnLFxyXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXHJcblx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiAnJyxcclxuXHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcclxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcclxuXHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXHJcblx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcclxuXHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0YWRkcmVzc2NoYW5nZShlKSB7XHJcblx0XHRcdCAgICAvLyBjb25zb2xlLmxvZyhlLnRhcmdldCk7XHJcblx0XHRcdCAgICBjb25zb2xlLmxvZyhlLmRhdGEuam9pbignOycpKVxyXG5cdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1lLmRhdGEuam9pbignOycpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbGFzc0F0dHJfZXh0QnV0dG9uKGluZGV4LGlpbmRleCl7XHJcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcclxuXHRcdFx0XHR2YXIgYmVmb3JlX2NsaWNrX2J1dHRvbiA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5iZWZvcmVfY2xpY2tfYnV0dG9uO1xyXG5cdFx0XHRcdHZhciBidXR0b25fY2FsbGJhY2sgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYnV0dG9uX2NhbGxiYWNrO1xyXG5cdFx0XHRcdGlmKCFiZWZvcmVfY2xpY2tfYnV0dG9uKXtcclxuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcImJlZm9yZV9jbGlja19idXR0b24tZXZlbnRfaWTkuLrnqbrvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoIWJ1dHRvbl9jYWxsYmFjayl7XHJcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCJidXR0b25fY2FsbGJhY2stZXZlbnRfaWTkuLrnqbrvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdO1xyXG5cdFx0XHRcdHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybihiZWZvcmVfY2xpY2tfYnV0dG9uLCBkYXRhX2F0dHIsIGJ1dHRvbl9jYWxsYmFjaywgaW5kZXgsaWluZGV4KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2xhc3NBdHRyX0FkZFBlcihpbmRleCxpaW5kZXgpe1xyXG5cdFx0XHRcdHZhciBwYXJhbT17aW5kZXg6aW5kZXgsaWluZGV4OmlpbmRleH07XHJcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6Jy4uL3NlbHBzbi9pbmRleD9tdWxpdD1mYWxzZSZwYXJhbT0nK0pTT04uc3RyaW5naWZ5KHBhcmFtKSxcclxuXHRcdFx0XHRcdGV2ZW50czp7XHJcblx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXHJcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocGFyYW0pO1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpO1xyXG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWx1ZT1kYXRhWzBdLk5hbWU7XHJcblx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uTG9naW4rJzsnK2RhdGFbMF0uTmFtZTtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5hY3Rpb247XHJcblx0XHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcclxuXHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZCA9IGV2ZW50aWQudHJpbSgpO1xyXG5cdFx0XHRcdFx0XHRcdCAgICBpZiAoZXZlbnRpZCkge1xyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiNFwiLFxyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogXCJcIixcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogZGF0YVswXS5Mb2dpbixcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogW10sXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyB2YXIgZGF0YV9hdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdO1xyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xyXG5cdFx0XHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNsYXNzQXR0cl9BZGRSZWYoZSl7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xyXG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuatpOWKn+iDvei/mOacquWunueOsO+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdC8vIHZhciB2YWx1ZT10aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uUmVsQ2xzW2UudGFyZ2V0LnZhbHVlXTtcclxuXHRcdFx0XHQvLyB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9dmFsdWU7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNsYXNzQXR0cl9BZGRQcmooaW5kZXgsaWluZGV4KXtcclxuXHRcdFx0XHR2YXIgcGFyYW09e2luZGV4OmluZGV4LGlpbmRleDppaW5kZXh9O1xyXG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOicuLi9zZWxQcmovaW5kZXg/cmVsYXRpb249LTEmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXHJcblx0XHRcdFx0XHRldmVudHM6e1xyXG5cdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxyXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcclxuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xyXG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLklEKyc7JytkYXRhWzBdLk5hbWU7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uYWN0aW9uO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XHJcblx0XHRcdFx0XHRcdFx0ICAgIGV2ZW50aWQgPSBldmVudGlkLnRyaW0oKTtcclxuXHRcdFx0XHRcdFx0XHQgICAgaWYgKGV2ZW50aWQpIHtcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjJcIixcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6IGRhdGFbMF0uSUQsXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogXCJcIixcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46IFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IFtdLFxyXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQgICAgICAgIC8vIHZhciBkYXRhX2F0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF07XHJcblx0XHRcdFx0XHRcdFx0ICAgICAgICAkdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XHJcblx0XHRcdFx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2YSgpe1xyXG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLmVkaXRfb2tfZXZlbnQpXHJcblx0XHRcdFx0XHR0aGlzLk9LRGF0YU9ialJ1bkN1c3RvbUV2ZW50KCk7XHJcblx0XHRcdFx0ZWxzZVxyXG5cdFx0XHRcdFx0dGhpcy5hZGQoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0YWRkKCl7XHJcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcclxuXHRcdFx0XHRcdHRpdGxlOlwi5Yqg6L295LitLi4uXCJcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR2YXIgcmVxPVtdO1xyXG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcclxuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XHJcblx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcclxuXHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7fpgInmi6knIHx8IGFyLlZhbHVlPT0n4oCU4oCU6K+36YCJ5oup4oCU4oCUJykgYXIuVmFsdWU9Jyc7XHJcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXHJcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcclxuXHRcdFx0XHQgICAgICAgIGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxyXG5cdFx0XHRcdCAgICAgICAgXHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xyXG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8JylcclxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XHJcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSflrZflhbgnIHx8IGFyLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XHJcblx0XHRcdFx0XHRcdFx0aWYoYXIuc2VsZWN0PT10cnVlKXsgLy/liKTmlq3kuIvmi4nmmK/lkKblpJrpgIlcclxuXHRcdFx0XHRcdFx0XHRcdHZhciB2YWxTdHIgPVwiXCI7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIHYgaW4gYXIuVmFsdWUpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZih2YWxTdHIpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1cIjtcIjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1hci5WYWx1ZVt2XTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IHZhbFN0cn0pO1xyXG5cdFx0XHRcdFx0XHRcdH1lbHNlXHJcblx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZX0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGVsc2VcclxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdGlmICgoYXIuTm90RW1wdHkgPT0gJzEnIHx8IGFyLm5vdGVtcHR5ID09IHRydWUpICYmICFhci5WYWx1ZSkge1xyXG5cdFx0XHRcdFx0XHQvLyBpZihhci5ub3RFbXB0eT09JzEnKXtcclxuXHRcdFx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHRcdFx0XHQvLyB1bmkuc2hvd1RvYXN0KHt0aXRsZTphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxpY29uOlwic3VjY2Vzc1wiLGR1cmF0aW9uOjMwMDB9KTtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6YXIuRGlzcE5hbWUrJ+S4jeiDveS4uuepuu+8gScsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHZhciBlbnZpcm9tZW50ID0ge1xyXG5cdFx0XHRcdCAgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcclxuXHRcdFx0XHQgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxyXG5cdFx0XHRcdCAgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cclxuXHRcdFx0XHQgICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcclxuXHRcdFx0XHQgICAgIG1hc3Rlcjoge1xyXG5cdFx0XHRcdCAgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgXHJcblx0XHRcdFx0ICAgICB9XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHQgXHJcblx0XHRcdFx0dmFyIGRhdGFJbmZvPXtcclxuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIGRhdGFfb2JqX2lkOiAnJywgbWFzdGVyY2xzaWQ6ICcnLFxyXG5cdFx0XHRcdCAgICByZXE6IEpTT04uc3RyaW5naWZ5KHJlcSksIHVwZmlsZTogSlNPTi5zdHJpbmdpZnkoW10pLCBwb3N0X2RhdGE6IEpTT04uc3RyaW5naWZ5KHt9KSxcclxuXHRcdFx0XHQgICAgY29tcG9zZTogSlNPTi5zdHJpbmdpZnkoW10pLCByZWZkYXRhc3RvcmU6IEpTT04uc3RyaW5naWZ5KFtdKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIFxyXG5cdFx0XHRcdFx0bm90X3RyaWdnZXJfc3lzX2V2ZW50OiAnJ1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gcmV0dXJuXHJcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xyXG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhZGRjbGFzc2F0dHInLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9PntcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xyXG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdHZhciBhY3Rpb24gPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YS5BY3Rpb24pO1xyXG5cdFx0XHRcdFx0XHRpZihhY3Rpb24ucmV0PT0nMCcpe1xyXG5cdFx0XHRcdFx0XHRcdGlmKGFjdGlvbi5yZXN1bHRfdHlwZT09JzAnKXtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOmFjdGlvbi5yZXN1bHQsaWNvbjpcInN1Y2Nlc3NcIixkdXJhdGlvbjozMDAwfSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdC8vIFwie1wicmV0XCI6MCwgXCJyZXN1bHRfdHlwZVwiOjAsIFwicmVzdWx0XCI6XCLliJvlu7rmiJDlip8xMjMxMjMxMjNcIixcImluZm9cIjpcIlwifVwiXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ly/liLfmlrBcclxuXHRcdFx0XHRcdFx0dW5pLnJlZGlyZWN0VG8oe1xyXG5cdFx0XHRcdFx0XHRcdHVybDonLi4vbW9kYWwvY2xhc3NBdHRyP3BhcmFtPScrSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5wYXJhbSkrXCImdGl0bGVuYW1lPVwiK3RoaXMuJGRhdGEudGl0bGVcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XHJcblx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor69cIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNsYXNzX2F0dHJfaW5pdCgpe1xyXG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuc2hvd19zdHlsZVxyXG5cdFx0XHRcdHZhciBuZXdhdHRybGlzdCA9IFtdO1xyXG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0ICAgICAgICB2YXIgb3BlbiA9IGF0dHJsaXN0W2ldLm9wZW47XHJcblx0XHRcdFx0ICAgICAgICB2YXIgbmFtZSA9IGF0dHJsaXN0W2ldLmF0dHJncm91cF9uYW1lO1xyXG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJzID0gYXR0cmxpc3RbaV0uYXR0cnM7XHJcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IHMrKykge1xyXG5cdFx0XHRcdCAgICAgICAgICAgIHZhciBjbHNhdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3NdO1xyXG5cdFx0XHRcdCAgICAgICAgICAgIGlmIChuYW1lID09IGNsc2F0dHIuTmFtZSkge1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IFtdO1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IGNsc2F0dHIuQXR0ci5sZW5ndGg7IGwrKykge1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYSA9IGNsc2F0dHIuQXR0cltsXTtcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnNbal0uYXR0ciA9PSBjYS5OYW1lKSB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmFjdGlvbiA9IGF0dHJzW2pdLmFjdGlvbjtcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZWRpdCA9IGF0dHJzW2pdLmVkaXQ7XHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLm5vdGVtcHR5ID0gYXR0cnNbal0ubm90ZW1wdHk7XHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmV4dF9idXR0b24gPSBhdHRyc1tqXS5leHRfYnV0dG9uO1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25faW1nID0gYXR0cnNbal0uYnV0dG9uX2ltZztcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX3Rvb2x0aXAgPSBhdHRyc1tqXS5idXR0b25fdG9vbHRpcDtcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYmVmb3JlX2NsaWNrX2J1dHRvbiA9IGF0dHJzW2pdLmJlZm9yZV9jbGlja19idXR0b247XHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl9jYWxsYmFjayA9IGF0dHJzW2pdLmJ1dHRvbl9jYWxsYmFjaztcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuaGlkZGVuID0gYXR0cnNbal0uaGlkZGVuO1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5zZWxlY3QgPSBhdHRyc1tqXS5zZWxlY3Q9PXVuZGVmaW5lZD9mYWxzZTphdHRyc1tqXS5zZWxlY3Q7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9XCJcIjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLmRpY3RpdGVtKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RpdGVtbGlzdD1bXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgZCA9IDA7IGQgPCBjYS5kaWN0aXRlbS5sZW5ndGg7IGQrKykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtW2RdLmxhYmVsPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbVtkXS52YWx1ZT1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2Euc2VsZWN0ID09IHRydWUpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBbXTsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7fpgInmi6knOy8vY2EuZGljdGl0ZW1bMF0uQ05fU19OQU1FO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+aXpeacnycgfHwgY2EuVHlwZT09J+aXtumXtCcpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkYXRlID0ge3llYXI6IG5vd0RhdGUuZ2V0RnVsbFllYXIoKSxtb250aDogbm93RGF0ZS5nZXRNb250aCgpICsgMSxkYXk6IG5vd0RhdGUuZ2V0RGF0ZSgpfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IGRhdGUueWVhciArICctJyArIChkYXRlLm1vbnRoID49IDEwID8gZGF0ZS5tb250aCA6ICcwJyArIGRhdGUubW9udGgpICsgJy0nICsgKGRhdGUuZGF5ID49IDEwID8gZGF0ZS5kYXkgOiAnMCcgKyBkYXRlLmRheSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlbENsc0xpc3Q9W107XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyX3Jlc2NscyA9IGNhLlJlbENscy5zcGxpdCgnLCcpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGlpIGluIGF0dHJfcmVzY2xzKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVzY2xzID0gYXR0cl9yZXNjbHNbaWldLnNwbGl0KCd8Jyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVsQ2xzTGlzdC5wdXNoKHtpZDpyZXNjbHNbMF0sbmFtZTpyZXNjbHNbMV19KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5SZWxDbHNMaXN0ID0gcmVsQ2xzTGlzdDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+3JztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfnnIHluILljLonKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7fpgInmi6knO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W4g+WwlOWAvCcpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLnB1c2goY2EpO1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICBuZXdhdHRybGlzdC5wdXNoKHtcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEJrQ29sb3I6IGNsc2F0dHIuQmtDb2xvcixcclxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEhhc0FjZTogY2xzYXR0ci5IYXNBY2UsXHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBJbWdGb250U3R5bGU6IGNsc2F0dHIuSW1nRm9udFN0eWxlLFxyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgTmFtZTogY2xzYXR0ci5OYW1lLFxyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3JkZXI6IGNsc2F0dHIuT3JkZXIsXHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBPcGVuOiBvcGVuLFxyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQXR0cjogYXR0cixcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udHJvbF9zdHlsZTp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmNvbnRyb2xfc3R5bGUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlX3Bfd2RpdGg6dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi50aXRsZV9wX3dkaXRoXHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgIH0pXHJcblx0XHRcdFx0ICAgICAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0ICAgIGlmIChuZXdhdHRybGlzdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0ICAgICAgICB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QgPSBuZXdhdHRybGlzdDtcclxuXHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdFx0dmFyIHJlcT1bXTtcclxuXHRcdFx0XHQgICAgaWYgKHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYpIHtcclxuXHRcdFx0XHQgICAgICAgICBpZiAodGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHQgICAgICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcclxuXHRcdFx0XHQgICAgICAgICAgICAvLyAkZWwuZmluZCgnLmF0dHJfZmllbGQnKS5wcm9wKCdyZWFkb25seScsIHRydWUpO1xyXG5cdFx0XHRcdCAgICAgICAgICAgIC8vICRlbC5maW5kKCcuYXR0cl9maWVsZCcpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XHJcblx0XHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLmF0dHJzXHJcblx0XHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGFyID0gYXR0cltqXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5hdHRyLCB2YWw6IGFyLnZhbHVlP2FyLnZhbHVlOicnIH0pO1xyXG5cdFx0XHRcdCAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0ICAgICAgICAgICAgfVxyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdFx0fVx0XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdHZhciBldmVudGxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmV2ZW50O1xyXG5cdFx0XHRcdFx0aWYgKGV2ZW50bGlzdCkge1xyXG5cdFx0XHRcdFx0ICAgIGlmIChldmVudGxpc3QubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50bGlzdC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX29rJykge1xyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9va19ldmVudCA9IGV2ZW50bGlzdFtpXTtcclxuXHRcdFx0XHRcdCAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdpbml0aWFsJykge1xyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQgPSBldmVudGxpc3RbaV07XHJcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX3NlbGVjdF9jb21wb3NlJykge1xyXG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCA9IGV2ZW50bGlzdFtpXS5zY3JpcF9pZDtcclxuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfY29tcG9zZV9jbHNfaWQgPSBldmVudGxpc3RbaV0uY29tcG9zZV9jbHNfaWQ7XHJcblx0XHRcdFx0XHQgICAgICAgICAgICB9XHJcblx0XHRcdFx0XHQgICAgICAgIH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2cocmVxKTtcclxuXHRcdFx0XHRcdGlmICh0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50KSB7XHJcblx0XHRcdFx0XHQgICAgdmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50LnNjcmlwX2lkO1xyXG5cdFx0XHRcdFx0ICAgIHZhciBpbmZvID0ge1xyXG5cdFx0XHRcdFx0ICAgICAgICBldmVudGlkOiBldmVudGlkLFxyXG5cdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMFwiLFxyXG5cdFx0XHRcdFx0ICAgICAgICBwcm9qZWN0aWQ6ICcnLFxyXG5cdFx0XHRcdFx0ICAgICAgICByY2xzaWQ6ICcnLFxyXG5cdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6ICcnLFxyXG5cdFx0XHRcdFx0ICAgICAgICB1c2VybG9naW46ICcnLFxyXG5cdFx0XHRcdFx0ICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcclxuXHRcdFx0XHRcdCAgICAgICAgb2JqaWQ6IFwiXCIsXHJcblx0XHRcdFx0XHQgICAgICAgIGF0dHI6IHJlcSxcclxuXHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHQgICAgdGhpcy5pbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QpO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuacquaJvuWIsOWPr+aYvuekuueahOeahOWxnuaAp1wiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0aW5pX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKXtcclxuXHRcdFx0XHR2YXIgcGFyYW0gPSB7XHJcblx0XHRcdFx0ICAgIEVkaXRTdHlsZTogdGhpcy4kZGF0YS5wYXJhbS5FZGl0X2RsZy5OYW1lLFxyXG5cdFx0XHRcdCAgICBWaWV3U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uRWRpdF9kbGcuTmFtZSxcclxuXHRcdFx0XHQgICAgTm90VHJpZ2dlclN5c0V2ZW50OiAwLFxyXG5cdFx0XHRcdCAgICBlbnZpcm9tZW50OiB7XHJcblx0XHRcdFx0ICAgICAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xyXG5cdFx0XHRcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXHJcblx0XHRcdFx0ICAgICAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxyXG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxyXG5cdFx0XHRcdCAgICAgICAgbWFzdGVyOiB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxyXG5cdFx0XHRcdCAgICAgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcclxuXHRcdFx0XHQgICAgICAgIH1cclxuXHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR2YXIgaW5wdXRwYXJhbWV0ZXIgPSAnJztcclxuXHRcdFx0XHR2YXIgZ2xvYmFsX2F0dHIgPSAnJztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR2YXIgZGF0YUluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJjbHNpZDogaW5mby5yY2xzaWQsIHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcclxuICAgICAgICAgICAgICAgICAgICBhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShwYXJhbSksIGlucHV0cGFyYW1ldGVyOiBpbnB1dHBhcmFtZXRlciwgZ2xvYmFsX2F0dHI6IGdsb2JhbF9hdHRyXHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xyXG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcclxuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XHJcblx0XHRcdFx0XHRcdHZhciBhY3Rpb25saXN0ID0gZGF0YS5hY3Rpb247XHJcblx0XHRcdFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XHJcblx0XHRcdFx0XHRcdCAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFjdGlvbmxpc3QubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ubGlzdFtqXVxyXG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb25fdHlwZSA9IGFjdGlvbi5hY3Rpb25fdHlwZTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgdmFsdWUgPSBhY3Rpb24udmFsdWU7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbl90eXBlID09ICdzZXRfZGxnX2F0dHInKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGlmICh2YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIHZhbCA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhbCA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHZhbCk7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgYSA9IDA7IGEgPCB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBhKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgbCA9IDA7IGwgPCB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbYV0uQXR0ci5sZW5ndGg7IGwrKykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBjYSA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyW2xdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh2YWxbaV0uYXR0ciAgPT0gY2EuTmFtZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+Wtl+WFuCcgfHwgY2EuVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RJdGVtTGlzdD1bXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHZhbFtpXS5jaG9pY2VfbGlzdCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHZhbCA9dmFsW2ldLmNob2ljZV9saXN0W2RdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpY3RJdGVtTGlzdC5wdXNoKHtcIkNOX1NfTkFNRVwiOnZhbCxcIk5hbWVcIjp2YWwsXCJsYWJlbFwiOnZhbCxcInZhbHVlXCI6dmFsfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGF0dHJbal0uZGljdGl0ZW0gPSB2YWxbaV0uY2hvaWNlX2xpc3Q7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY2EudmFsdWUgPSB2YWxbaV0udmFsdWU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gMDtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsW2ldLmF0dHIgPT0gcy5hdHRyXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2godmFsW2ldKTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHZhbFtpXS5hdHRyKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSB2YWxbaV0udmFsdWU7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH1cclxuXHRcdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbl90eXBlID09ICdvcGVuX3NlbGVjdF91c2VyZGxnJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzIuMlwiLGNvbnRlbnQ6XCJvcGVuX3NlbGVjdF91c2VyZGxn6L+Z5LiqYWN0aW9uX3R5cGXov5jmnKrlpITnkIbvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xyXG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yLjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdCAgICBEYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyxkYXRhX2F0dHIpe1xyXG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XHJcblx0XHQgICAgXHR2YXIgZW52aXJvbWVudCA9IHtcclxuXHRcdCAgICBcdCAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xyXG5cdFx0ICAgIFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxyXG5cdFx0ICAgIFx0ICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXHJcblx0XHQgICAgXHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxyXG5cdFx0ICAgIFx0ICAgIG1hc3Rlcjoge1xyXG5cdFx0ICAgIFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXHJcblx0XHQgICAgXHQgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcclxuXHRcdCAgICBcdCAgICB9XHJcblx0XHQgICAgXHR9O1xyXG5cdFx0ICAgIFx0aWYoZGF0YV9hdHRyKXtcclxuXHRcdFx0XHRcdGVudmlyb21lbnQuZWRpdF9kbGcgPSB7XHJcblx0XHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xyXG5cdFx0XHRcdFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLC8v5b2T5YmN5pWw5o2u57G7aWRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcclxuXHRcdFx0XHRcdCAgICBlbnZpcm9tZW50LmVkaXRfZGxnLmZvcm1fY29udHJvbCA9IHsvL+aJgOWxnueahOihqOWNleaOp+S7tlxyXG5cdFx0XHRcdFx0ICAgICAgICBuYW1lOiBkYXRhX2F0dHIuTmFtZSwvL+Wtl+auteWxnuaAp1xyXG5cdFx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcclxuXHRcdFx0XHRcdCAgICAgICAgZ3JvdXBfbmFtZTogZGF0YV9hdHRyLkdyb3VwTmFtZSwvL+WxnuaAp+e7hFxyXG5cdFx0XHRcdFx0ICAgICAgICB0eXBlOiBkYXRhX2F0dHIuVHlwZSwvL+Wtl+auteexu+Wei1xyXG5cdFx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XHJcblx0XHRcdFx0XHQgICAgICAgIGJ1dHRvbl9pbWc6IGRhdGFfYXR0ci5idXR0b25faW1nLC8v5byV55So5oyJ6ZKu55qE5Zu+5qCHXHJcblx0XHRcdFx0XHQgICAgICAgIGJ1dHRvbl90b29sdGlwOiBkYXRhX2F0dHIuYnV0dG9uX3Rvb2x0aXAvL+W8leeUqOaMiemSrueahHRvb2x0aXBcclxuXHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xyXG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLnJlcGxhY2UoJ3snLCcnKS5yZXBsYWNlKCd9JywnJyksXHJcblx0XHQgICAgICAgICAgICByY2xzaWQ6IGluZm8ucmNsc2lkLCByb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXHJcblx0XHQgICAgICAgICAgICBhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgaW5wdXRwYXJhbWV0ZXI6ICcnLCBnbG9iYWxfYXR0cjogSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5nbG9iYWxfYXR0cilcclxuXHRcdCAgICAgICAgfVxyXG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xyXG5cdFx0ICAgIFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9PntcclxuXHRcdCAgICBcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XHJcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XHJcblx0XHQgICAgXHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHQgICAgXHRcdFx0aWYgKGFjdGlvbmxpc3QpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhY3Rpb25saXN0KTtcclxuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25saXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ubGlzdFtpXTtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB2YXIgcmVzdWx0ID0gYWN0aW9uLnZhbHVlO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0W2ldLmNob2ljZV9saXN0KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5UeXBlPT0n5a2X5YW4JyB8fCBhdHRyW2pdLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0SXRlbUxpc3Q9W107XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiByZXN1bHRbaV0uY2hvaWNlX2xpc3Qpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciB2YWwgPXJlc3VsdFtpXS5jaG9pY2VfbGlzdFtkXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkaWN0SXRlbUxpc3QucHVzaCh7XCJDTl9TX05BTUVcIjp2YWwsXCJOYW1lXCI6dmFsLFwibGFiZWxcIjp2YWwsXCJ2YWx1ZVwiOnZhbH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGF0dHJbal0uZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGF0dHJbal0uZGljdGl0ZW0gPSByZXN1bHRbaV0uY2hvaWNlX2xpc3Q7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGF0dHJbal0uTmFtZSsnPT0nK3Jlc3VsdFtpXS5hdHRyKTtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0fVxyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdH1cclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2gocmVzdWx0W2ldKTtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICB9IGVsc2UgaWYgKGRhdGEuYWN0aW9uW2ldLmFjdGlvbl90eXBlID09ICdzZXRfZ2xvYmFsX2F0dHInKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLmdsb2JhbF9hdHRyID0gZGF0YS5hY3Rpb25baV0udmFsdWUgfHwgW107XHJcblx0XHRcdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0ICAgIFx0XHRcdCAgICB9XHJcblx0XHQgICAgXHRcdFx0fVxyXG5cdFx0ICAgIFx0XHRcdFxyXG5cdFx0ICAgIFx0XHRcdGlmIChkYXRhLnJlc3VsdCkge1xyXG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgcmVzdWx0ID0gZGF0YS5yZXN1bHQ7XHJcblx0XHQgICAgXHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0XHR9XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdH1cclxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0dmFyIGxlbmd0aCA9IDA7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXHJcblx0XHQgICAgXHRcdFx0ICAgICAgICB9KS5sZW5ndGgpIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBsZW5ndGggPSAxO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICB9XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cclxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cclxuXHRcdCAgICBcdFx0XHQgICAgfVxyXG5cdFx0ICAgIFx0XHRcdH1cclxuXHRcdCAgICBcdFx0fWVsc2V7XHJcblx0XHQgICAgXHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68zXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdCAgICBcdFx0fVxyXG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9PntcclxuXHRcdCAgICBcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xyXG5cdFx0ICAgIFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzMuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xyXG5cdFx0ICAgIFx0fSk7XHJcblx0XHQgICAgfSxcclxuXHRcdFx0T0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQoKXtcclxuXHRcdCAgICBcdHZhciBlbnZpcm9tZW50ID0ge1xyXG5cdFx0XHRcdCAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xyXG5cdFx0XHRcdCAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4ZcclxuXHRcdFx0XHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cclxuXHRcdFx0XHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxyXG5cdFx0XHRcdCAgICBtYXN0ZXI6IHtcclxuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRjbHNfaWRcclxuXHRcdFx0XHQgICAgICAgIFxyXG5cdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0fTtcclxuXHRcdCAgICBcdFxyXG5cdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5lZGl0X29rX2V2ZW50LnNjcmlwX2lkO1xyXG5cdFx0XHRcdHZhciByZXE9W107XHJcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xyXG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcclxuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xyXG5cdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivt+mAieaLqScgfHwgYXIuVmFsdWU9PSfigJTigJTor7fpgInmi6nigJTigJQnKSBhci5WYWx1ZT0nJztcclxuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcclxuXHRcdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xyXG5cdFx0XHRcdCAgICAgICAgaWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXHJcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xyXG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8JylcclxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xyXG5cdFx0XHRcdFx0XHRlbHNlXHJcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlIH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdCAgICBcdGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGggPiAwKSB7XHJcblx0XHQgICAgXHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0ICAgIFx0ICAgICAgICBpZiAoIXJlcS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcclxuXHRcdCAgICBcdCAgICAgICAgICAgIHJldHVybiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyID09IHMubmFtZVxyXG5cdFx0ICAgIFx0ICAgICAgICB9KS5sZW5ndGgpIHtcclxuXHRcdCAgICBcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XHJcblx0XHQgICAgXHQgICAgICAgICAgICByZXEucHVzaCh7ICdhdHRyJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciwgJ3ZhbCc6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLnZhbHVlIH0pO1xyXG5cdFx0ICAgIFx0ICAgICAgICB9XHJcblx0XHQgICAgXHQgICAgfVxyXG5cdFx0ICAgIFx0fVxyXG5cdFx0ICAgIFx0dmFyIGluZm8gPSB7XHJcblx0XHQgICAgXHQgICAgZXZlbnRpZDogZXZlbnRpZCxcclxuXHRcdCAgICBcdCAgICBlZHR5cGU6IFwiMFwiLFxyXG5cdFx0ICAgIFx0ICAgIHByb2plY3RpZDogJycsXHJcblx0XHQgICAgXHQgICAgcmNsc2lkOiAnJyxcclxuXHRcdCAgICBcdCAgICByb2JqaWQ6ICcnLFxyXG5cdFx0ICAgIFx0ICAgIHVzZXJsb2dpbjogJycsXHJcblx0XHQgICAgXHQgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHQgICAgXHQgICAgb2JqaWQ6IFwiXCIsXHJcblx0XHQgICAgXHQgICAgYXR0cjogcmVxLFxyXG5cdFx0ICAgIFx0fVxyXG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xyXG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLHJjbHNpZDogaW5mby5yY2xzaWQsIFxyXG5cdFx0XHRcdFx0cm9iamlkOiBpbmZvLnJvYmppZCwgdXNlcmxvZ2luOiBpbmZvLnVzZXJsb2dpbiwgY2xzaWQ6IGluZm8uY2xzaWQsIG9iamlkOiBpbmZvLm9iamlkLFxyXG5cdFx0XHRcdFx0YXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxyXG5cdFx0ICAgICAgICB9XHJcblx0XHQgICAgXHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XHJcblx0XHQgICAgXHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xyXG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcclxuXHRcdCAgICBcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcdFx0XHJcblx0XHQgICAgXHRcdFx0dmFyIHJlc3VsdCA9IGRhdGEucmVzdWx0O1xyXG5cdFx0ICAgIFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgIC8vIHNlbGYuY2xhc3NfYXR0cl9lbGUuZmluZCgnLmF0dHJfZmllbGRbZGF0YS1maWVsZD1cIicgKyByZXN1bHRbaV0uYXR0ciArICdcIl0nKS52YWwocmVzdWx0W2ldLnZhbHVlKS5kYXRhKCd2YWwnLCByZXN1bHRbaV0udmFsdWUpO1xyXG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgbGVuZ3RoID0gMDtcclxuXHRcdCAgICBcdFx0XHQgICAgaWYgKCF0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcclxuXHRcdCAgICBcdFx0XHQgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcclxuXHRcdCAgICBcdFx0XHQgICAgfSkubGVuZ3RoKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICBsZW5ndGggPSAxO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xyXG5cdFx0ICAgIFx0XHRcdCAgICB9XHJcblx0XHQgICAgXHRcdFx0ICAgIGlmIChsZW5ndGggPT0gMCkge1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cclxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cclxuXHRcdCAgICBcdFx0XHQgICAgfVxyXG5cdFx0ICAgIFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdHRoaXMuYWRkKCk7XHJcblx0XHQgICAgXHRcdH1lbHNle1xyXG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNFwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XHJcblx0XHQgICAgXHRcdH1cclxuXHRcdCAgICBcdH0pLmNhdGNoKGV4PT57XHJcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcclxuXHRcdCAgICBcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor680LjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdCAgICBcdH0pO1xyXG5cdFx0ICAgIH0sXHJcblx0XHQgICAgRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybihldmVudGlkLGRhdGFfYXR0cixidXR0b25fY2FsbGJhY2ssaW5kZXgsaWluZGV4KXtcclxuXHRcdFx0XHR2YXIgZW52aXJvbWVudCA9IHtcclxuXHRcdFx0XHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcclxuXHRcdFx0XHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXHJcblx0XHRcdFx0ICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXHJcblx0XHRcdFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcclxuXHRcdFx0XHQgICAgbWFzdGVyOiB7XHJcblx0XHRcdFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXHJcblx0XHRcdFx0ICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHZhciByZXE9W107XHJcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xyXG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcclxuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xyXG5cdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxyXG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XHJcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcclxuXHRcdFx0XHQgICAgICAgIFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XHJcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxyXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XHJcblx0XHRcdFx0XHRcdGVsc2VcclxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgfSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHQgICAgICAgIGlmICghcmVxLmZpbHRlcihmdW5jdGlvbiAocykge1xyXG5cdFx0XHRcdCAgICAgICAgICAgIHJldHVybiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyID09IHMubmFtZVxyXG5cdFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgbGVuZ3RoID0gMTtcclxuXHRcdFx0XHQgICAgICAgICAgICByZXEucHVzaCh7ICdhdHRyJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciwgJ3ZhbCc6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLnZhbHVlIH0pO1xyXG5cdFx0XHRcdCAgICAgICAgfVxyXG5cdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHZhciBleHRpbmZvID0gZW52aXJvbWVudDtcclxuXHRcdFx0XHRleHRpbmZvLmVkaXRfZGxnID0ge1xyXG5cdFx0XHRcdCAgICB0eXBlOiAnc21hbGwnLC8v5bCP56qX5Y+jXHJcblx0XHRcdFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLC8v5b2T5YmN5pWw5o2u57G7aWRcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGRhdGFfYXR0cikge1xyXG5cdFx0XHRcdCAgICBleHRpbmZvLmVkaXRfZGxnLmZvcm1fY29udHJvbCA9IHsvL+aJgOWxnueahOihqOWNleaOp+S7tlxyXG5cdFx0XHRcdCAgICAgICAgbmFtZTogZGF0YV9hdHRyLk5hbWUsLy/lrZfmrrXlsZ7mgKdcclxuXHRcdFx0XHQgICAgICAgIHRleHQ6IGRhdGFfYXR0ci5EaXNwTmFtZSwvL+aYvuekuuaWh+acrFxyXG5cdFx0XHRcdCAgICAgICAgZ3JvdXBfbmFtZTogZGF0YV9hdHRyLkdyb3VwTmFtZSwvL+WxnuaAp+e7hFxyXG5cdFx0XHRcdCAgICAgICAgdHlwZTogZGF0YV9hdHRyLlR5cGUsLy/lrZfmrrXnsbvlnotcclxuXHRcdFx0XHQgICAgICAgIHJlYWRvbmx5OiBkYXRhX2F0dHIuUmVhZE9ubHksLy/mmK/lkKblj6ror7tcclxuXHRcdFx0XHQgICAgICAgIGJ1dHRvbl9pbWc6IGRhdGFfYXR0ci5idXR0b25faW1nLC8v5byV55So5oyJ6ZKu55qE5Zu+5qCHXHJcblx0XHRcdFx0ICAgICAgICBidXR0b25fdG9vbHRpcDogZGF0YV9hdHRyLmJ1dHRvbl90b29sdGlwLy/lvJXnlKjmjInpkq7nmoR0b29sdGlwXHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xyXG5cdFx0XHRcdFx0ZWR0eXBlOiAgXCIwXCIsIGV2ZW50aWQ6IGV2ZW50aWQsIHByb2plY3RpZDogJycscmNsc2lkOiAnJywgcm9iamlkOiAnJywgdXNlcmxvZ2luOiAnJywgXHJcblx0XHRcdFx0XHRjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgb2JqaWQ6ICcnLGF0dHI6IEpTT04uc3RyaW5naWZ5KHJlcSksIFxyXG5cdFx0XHRcdFx0ZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZXh0aW5mbyksIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XHJcblx0XHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9PntcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xyXG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcclxuXHRcdFx0XHRcdFx0aWYgKGRhdGEgIT0gXCJcIikge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdHZhciBhY3Rpb25zID0gZGF0YS5hY3Rpb247XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGFjdGlvbnMpO1xyXG5cdFx0XHRcdFx0XHRpZiAoYWN0aW9ucykge1xyXG5cdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbnNbaV07XHJcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIHZhbCA9IGFjdGlvbi52YWx1ZTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgZW52aXJvbWVudCA9IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgIFxyXG5cdFx0XHRcdFx0XHQgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fcGFuZWwnKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6JyxcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgY29udGVudDogYWN0aW9uLmFjdGlvbl90eXBlICsgJ+atpGFjdGlvbuWwmuacquWkhOeQhu+8gSdcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICB9KTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICBkLnNob3coKTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgZWxzZSBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdvcGVuX3NlbGVjdF91c2VyZGxnJykge1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgc3R5bGUgPSB2YWwuc3R5bGU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdC8vIHN0eWxlID09ICd1c2VyJyA/ICfpgInmi6nkurrlkZgnIDogc3R5bGUgPT0gJ2RlcGFydG1lbnQnID8gJ+mAieaLqemDqOmXqCcgOiBzdHlsZSA9PSAncm9sZScgPyAn6YCJ5oup6KeS6ImyJyA6ICcnXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBwYXJhbT17XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW5kZXg6IGluZGV4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlpbmRleDppaW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnV0dG9uX2NhbGxiYWNrOmJ1dHRvbl9jYWxsYmFjayxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXE6cmVxLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRhdGFfYXR0cjpkYXRhX2F0dHJcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0dXJsOicuLi9zZWxwc24vaW5kZXg/bXVsaXQ9ZmFsc2UmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0ZXZlbnRzOntcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdHZhciBjYWxsYmFja19ldmVudGlkID0gcGFyYW0uYnV0dG9uX2NhbGxiYWNrLnRyaW0oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluZm8gPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBldmVudGlkOiBjYWxsYmFja19ldmVudGlkLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgZWR0eXBlOiBcIjBcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHByb2plY3RpZDogJycsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICByY2xzaWQ6ICcnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcm9iamlkOiAnJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHVzZXJsb2dpbjogJycsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBvYmppZDogXCJcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGF0dHI6IHBhcmFtLnJlcSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGlucHV0cGFyYW1ldGVyOiBkYXRhXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIHBhcmFtLmRhdGFfYXR0cik7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHR9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0fVxyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcdFxyXG5cdFx0XHRcdFx0XHQgICAgICAgIH1cclxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fZGF0YV9xdWVyeV9kbGcnKSB7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFxyXG5cdFx0XHRcdFx0XHQgICAgICAgIH1cclxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fY29tbW9uX2RsZycpIHtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgZCA9IGRpYWxvZyh7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6JyxcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH0pO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBkLnNob3coKTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICAgICAgZWxzZSBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdvcGVuX3Byb2plY3RfcXVlcnlfZGxnJykge1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UpO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5tdWxpdF9zZWxlY3QpO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgcHJpUmVsID0gJy0xJztcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+WFqOmDqOebuOWFsycpXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMCc7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkei0n+i0o+eahOmhueebricpXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMSc7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWIm+W7uueahCcpXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMic7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWPguS4jueahCcgfHwgYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5Y+C5Yqg55qEJylcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICczJztcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5YWz5rOo55qEJylcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICc0JztcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5LiL5bGe55qE6aG555uuJylcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwcmlSZWwgPSAnNSc7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBwYXJhbV89e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGluZGV4OiBpbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpaW5kZXg6aWluZGV4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJ1dHRvbl9jYWxsYmFjazpidXR0b25fY2FsbGJhY2ssXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxOnJlcVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR1cmw6Jy4uL3NlbFByai9pbmRleD9yZWxhdGlvbj0nK3ByaVJlbCsnJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW1fKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRldmVudHM6e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QWRkUGVyKGRhdGEscGFyYW0peyBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbHVlPWRhdGFbMF0uTmFtZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uSUQrJzsnK2RhdGFbMF0uTmFtZTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdFx0dmFyIGNhbGxiYWNrX2V2ZW50aWQgPSBwYXJhbS5idXR0b25fY2FsbGJhY2sudHJpbSgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tfZXZlbnRpZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgdmFyIGluZm8gPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgZXZlbnRpZDogY2FsbGJhY2tfZXZlbnRpZCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHByb2plY3RpZDogZGF0YVswXS5JRCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICByY2xzaWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgcm9iamlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHVzZXJsb2dpbjogXCJcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgb2JqaWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgYXR0cjogcGFyYW0ucmVxLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgZCA9IGRpYWxvZyh7XHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6JyxcclxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH0pO1xyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBkLnNob3coKTtcclxuXHRcdFx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLo1LjJcIixjb250ZW50OiAn6LCD55SoIGJlZm9yZV9jbGlja19idXR0b24g6ISa5pys6L+U5Zue56m677yMZXZlbnRfaWQnICsgZXZlbnRpZCxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNVwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkuY2F0Y2goZXg9PntcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcclxuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6NS4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHQgICAgfSxcclxuXHRcdCAgICBcclxuXHRcdFx0XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 50));\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _pickerAddress = _interopRequireDefault(__webpack_require__(/*! ../../js/pickerAddress/pickerAddress.vue */ 53));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);}_next(undefined);});};}var _default =\n{\n components: {\n pickerAddress: _pickerAddress.default },\n\n data: function data() {\n return {\n title: '鏂板',\n param: {},\n classAttrList: [],\n classGridStyle: [],\n edit_inital_event: \"\", //寮圭獥鍒濆鍖栦簨浠禝D\n edit_ok_event: \"\", //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID\n edit_select_compose_event: \"\", //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢╘n edit_compose_cls_id: \"\",\n global_attr: [],\n refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}\n inputValList: [{ Name: \"test\" }, { Name: \"test2\" }, { Name: \"test3\" }, { Name: \"test4\" }, { Name: \"test5\" }, { Name: \"test6\" }, { Name: \"test7\" }] };\n\n },\n onLoad: function onLoad(options) {\n // console.log(options);\n uni.setNavigationBarTitle({ title: options.titlename }); //璁剧疆椤堕儴鏍囬 \n var param = JSON.parse(options.param);\n this.$data.title = param.Add_BtnName ? param.Add_BtnName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧\n // console.log(param);\n if (!param.EditDlgMode) {\n uni.showModal({ title: \"鎻愮ず\", content: \"璇ュ姛鑳界偣鏈厤缃紪杈戠獥鍙o紝璇烽噸鏂伴厤缃紒\", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n if (!param.Edit_dlg.Name) {\n uni.showModal({ title: \"鎻愮ず\", content: \"璇ュ姛鑳界偣鏈厤缃獥鍙f牱寮忥紝璇烽噸鏂伴厤缃紒\", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n this.$data.param = param;\n var edit_dlg = {\n Model: param.EditDlgMode,\n Name: param.Edit_dlg.Name };\n\n var dataInfo = {\n class_id: param.clsid };\n\n var $this = this;\n $this.$store.state.thisareaFuncID = param.clsid;\n // console.log($this.$store.getters.getclassAttrList);\n //鑾峰彇\n if ($this.$store.getters.getclassAttrList) {\n $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;\n $this.classGridStyleInfo();\n } else\n $this.$store.dispatch('classAttrList', dataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.classAttrList = success.data;\n\n $this.classGridStyleInfo();\n } else {\n uni.showModal({ title: \"閿欒1\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒1.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n\n },\n methods: {\n classGridStyleInfo: function classGridStyleInfo() {var _this = this;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee() {var $this, gridstyleInfo;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:\n $this = _this;\n gridstyleInfo = {\n class_id: $this.$data.param.clsid,\n name: $this.$data.param.Edit_dlg.Name,\n type: '2' };\n\n $this.$store.state.thisEditName = $this.$data.param.Edit_dlg.Name;\n // console.log($this.$store.getters.getclassGridStyleInfo);\n //鑾峰彇\n if ($this.$store.getters.getclassGridStyleInfo) {\n $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;\n $this.class_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('classGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.classGridStyle = success.data;\n\n $this.class_attr_init();\n } else {\n uni.showModal({ title: \"閿欒1.2\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:459\");\n uni.showModal({ title: \"閿欒1.3\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n }case 4:case \"end\":return _context.stop();}}}, _callee);}))();\n },\n ontap: function ontap(e) {var _this2 = this; //鎵爜鍔熻兘\n //console.log(e.target)\n getApp().onScan(function (result) {\n //console.log(result.decodedata);\n _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata;\n });\n },\n onarrow: function onarrow(index, open) {\n // console.log(index+'--'+open);\n this.$data.classAttrList[index].Open = open == true ? false : true;\n },\n ondateTime: function ondateTime(e) {\n //console.log(e.target)\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n },\n onchange: function onchange(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:480\");\n var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:483\");\n if (value.Name != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = value.Name;\n __f__(\"log\", this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value, \" at pages/modal/classAttr.vue:486\");\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info);\n }\n }\n\n },\n onchange2: function onchange2(item, value, delvalue) {\n // console.log(item);\n // console.log(value);\n // console.log(delvalue);\n if (item.length == 0) {//涓虹┖鏃讹紝娓呯┖灞炴�value\n var index,iindex,dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n this.$data.classAttrList[i].Attr[j].Value = \"\";\n }\n }\n }\n }\n }\n\n for (var v in item) {\n var index,iindex,dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n index = i;iindex = j;dindex = d;\n }\n }\n }\n }\n var itemvalue = item[v];\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:553\");\n if (itemvalue.Name != data_attr.Value) {\n this.$data.classAttrList[index].Attr[iindex].Value = value;\n __f__(\"log\", this.$data.classAttrList[index].Attr[iindex].Value, \" at pages/modal/classAttr.vue:556\");\n var eventid = this.$data.classAttrList[index].Attr[iindex].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�)\n req.push({ attr: ar.Name, val: itemvalue.Name });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info);\n }\n }\n }\n\n\n },\n onevent: function onevent(e) {\n // console.log(e.target);\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (e.target.value != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info, data_attr);\n }\n }\n\n },\n oncheck: function oncheck(e) {\n // console.log(e.target);\n var ischecked = e.target.dataset.ischeck ? false : true;\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (ischecked != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = ischecked;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value ? ar.Value : '' });\n\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.DataObjRunCustomEvent(info);\n }\n }\n\n },\n inputValListIsDel: function inputValListIsDel(index) {\n // console.log(index);\n this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹筡n // console.log(this.$data.inputValList);\n },\n addresschange: function addresschange(e) {\n // console.log(e.target);\n __f__(\"log\", e.data.join(';'), \" at pages/modal/classAttr.vue:687\");\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data.join(';');\n },\n classAttr_extButton: function classAttr_extButton(index, iindex) {\n var $this = this;\n var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;\n var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;\n if (!before_click_button) {\n uni.showModal({ title: \"鎻愮ず\", content: \"before_click_button-event_id涓虹┖锛乗", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n if (!button_callback) {\n uni.showModal({ title: \"鎻愮ず\", content: \"button_callback-event_id涓虹┖锛乗", showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);\n },\n classAttr_AddPer: function classAttr_AddPer(index, iindex) {\n var param = { index: index, iindex: iindex };\n var $this = this;\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:713\");\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].Login + ';' + data[0].Name;\n\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"4\",\n projectid: \"\",\n rclsid: \"\",\n robjid: \"\",\n userlogin: data[0].Login,\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: [] };\n\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n } } });\n\n\n },\n classAttr_AddRef: function classAttr_AddRef(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:742\");\n uni.showModal({ title: \"鎻愮ず\", content: \"姝ゅ姛鑳借繕鏈疄鐜帮紒\", showCancel: false, confirmText: \"鍙栨秷\" });\n // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];\n // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;\n },\n classAttr_AddPrj: function classAttr_AddPrj(index, iindex) {\n var param = { index: index, iindex: iindex };\n var $this = this;\n uni.navigateTo({\n url: '../selPrj/index?relation=-1¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n // console.log(data);\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: [] };\n\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n } } });\n\n\n },\n sava: function sava() {\n if (this.$data.edit_ok_event)\n this.OKDataObjRunCustomEvent();else\n\n this.add();\n },\n add: function add() {var _this3 = this;\n uni.showLoading({\n title: \"鍔犺浇涓�..\" });\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ name: ar.Name, value: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ name: ar.Name, value: ar.Value ? '1' : '0' });else\n if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {//鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr)\n valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({ name: ar.Name, value: valStr });\n } else\n req.push({ name: ar.Name, value: ar.Value });\n } else\n\n req.push({ name: ar.Name, value: ar.Value ? ar.Value : '' });\n\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({ title: \"鎻愮ず\", content: ar.DispName + '涓嶈兘涓虹┖锛�, showCancel: false, confirmText: \"鍙栨秷\" });\n return;\n }\n }\n }\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid } };\n\n\n\n var dataInfo = {\n class_id: this.$data.param.clsid, data_obj_id: '', masterclsid: '',\n req: JSON.stringify(req), upfile: JSON.stringify([]), post_data: JSON.stringify({}),\n compose: JSON.stringify([]), refdatastore: JSON.stringify([]), extinfo: JSON.stringify(enviroment),\n not_trigger_sys_event: '' };\n\n\n // return\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:848\");\n this.$store.dispatch('addclassattr', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:850\");\n uni.hideLoading();\n if (success.code == '00000') {\n var action = JSON.parse(success.data.Action);\n if (action.ret == '0') {\n if (action.result_type == '0') {\n uni.showToast({ title: action.result, icon: \"success\", duration: 3000 });\n }\n // \"{\"ret\":0, \"result_type\":0, \"result\":\"鍒涘缓鎴愬姛123123123\",\"info\":\"\"}\"\n }\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/classAttr?param=' + JSON.stringify(_this3.$data.param) + \"&titlename=\" + _this3.$data.title });\n\n // this.class_attr_init();\n } else {\n uni.showModal({ title: \"閿欒\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:869\");\n uni.hideLoading();\n uni.showModal({ title: \"鎻愮ず\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n class_attr_init: function class_attr_init() {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.classAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.classAttrList.length; s++) {\n var clsattr = this.$data.classAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n }\n if (ca.select == true)\n ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else\n ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = { year: nowDate.getFullYear(), month: nowDate.getMonth() + 1, day: nowDate.getDate() };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({ id: rescls[0], name: rescls[1] });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�)\n ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�)\n ca.Value = false;\n\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.classGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith });\n\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.classAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.classGridStyle.StyleDef) {\n if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({ attr: ar.attr, val: ar.value ? ar.value : '' });\n }\n }\n }\n }\n\n var eventlist = this.$data.classGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n __f__(\"log\", req, \" at pages/modal/classAttr.vue:984\");\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n this.ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.classGridStyle, \" at pages/modal/classAttr.vue:1000\");\n __f__(\"log\", this.$data.classAttrList, \" at pages/modal/classAttr.vue:1001\");\n\n } else {\n uni.showModal({ title: \"鎻愮ず\", content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\", showCancel: false, confirmText: \"鍙栨秷\" });\n }\n },\n ini_DataObjRunCustomEvent: function ini_DataObjRunCustomEvent(info) {var _this4 = this;\n var param = {\n EditStyle: this.$data.param.Edit_dlg.Name,\n ViewStyle: this.$data.param.Edit_dlg.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n } } };\n\n\n var inputparameter = '';\n var global_attr = '';\n\n var dataInfo = {\n edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,\n rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,\n attr: JSON.stringify(info.attr), extinfo: JSON.stringify(param), inputparameter: inputparameter, global_attr: global_attr };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1031\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1033\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/classAttr.vue:1048\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this4.$data.classAttrList.length; a++) {\n for (var l = 0; l < _this4.$data.classAttrList[a].Attr.length; l++) {\n var ca = _this4.$data.classAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({ \"CN_S_NAME\": val, \"Name\": val, \"label\": val, \"value\": val });\n\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n\n var length = 0;\n if (!_this4.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this4.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this4.$data.refdatastore.length; j++) {\n if (_this4.$data.refdatastore[j].attr == val[i].attr) {\n _this4.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({ title: \"閿欒2.2\", content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗", showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }\n }\n\n } else {\n uni.showModal({ title: \"閿欒2\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒2.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n DataObjRunCustomEvent: function DataObjRunCustomEvent(info, data_attr) {\n var $this = this;\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n } };\n\n if (data_attr) {\n enviroment.edit_dlg = {\n type: 'small', //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n if (data_attr) {\n enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name, //瀛楁灞炴�\n text: data_attr.DispName, //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName, //灞炴�缁刓n type: data_attr.Type, //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly, //鏄惁鍙\n button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n }\n var dataInfo = {\n edtype: info.edtype, eventid: info.eventid, projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,\n attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), inputparameter: '', global_attr: JSON.stringify(this.$data.global_attr) };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1135\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1137\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/classAttr.vue:1143\");\n for (var i = 0; i < actionlist.length; i++) {\n var action = actionlist[i];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({ \"CN_S_NAME\": val, \"Name\": val, \"label\": val, \"value\": val });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/classAttr.vue:1170\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (data.action[i].action_type == 'set_global_attr') {\n $this.$data.global_attr = data.action[i].value || [];\n }\n }\n }\n\n if (data.result) {\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({ title: \"閿欒3\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒3.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n OKDataObjRunCustomEvent: function OKDataObjRunCustomEvent() {var _this5 = this;\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n } };\n\n\n\n var eventid = this.$data.edit_ok_event.scrip_id;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value });\n }\n }\n\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({ 'attr': this.$data.refdatastore[i].attr, 'val': this.$data.refdatastore[i].value });\n }\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req };\n\n var dataInfo = {\n edtype: info.edtype, eventid: info.eventid, projectid: info.projectid, rclsid: info.rclsid,\n robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,\n attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), global_attr: JSON.stringify(this.$data.global_attr) };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1290\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1292\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!_this5.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n _this5.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this5.$data.refdatastore.length; j++) {\n if (_this5.$data.refdatastore[j].attr == result[i].attr) {\n _this5.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n\n _this5.add();\n } else {\n uni.showModal({ title: \"閿欒4\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"閿欒4.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n },\n DataObjRunCustomEvent_Return: function DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {var _this6 = this;\n var enviroment = {\n 'function': '3000', // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top', // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n } };\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)')\n if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰')\n req.push({ attr: ar.Name, val: ar.ValID ? ar.ValID : '' });else\n if (ar.Type == '甯冨皵鍊�)\n req.push({ attr: ar.Name, val: ar.Value ? '1' : '0' });else\n\n req.push({ attr: ar.Name, val: ar.Value });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({ 'attr': this.$data.refdatastore[i].attr, 'val': this.$data.refdatastore[i].value });\n }\n }\n }\n var extinfo = enviroment;\n extinfo.edit_dlg = {\n type: 'small', //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n if (data_attr) {\n extinfo.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name, //瀛楁灞炴�\n text: data_attr.DispName, //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName, //灞炴�缁刓n type: data_attr.Type, //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly, //鏄惁鍙\n button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n var dataInfo = {\n edtype: \"0\", eventid: eventid, projectid: '', rclsid: '', robjid: '', userlogin: '',\n clsid: this.$data.param.clsid, objid: '', attr: JSON.stringify(req),\n extinfo: JSON.stringify(extinfo), global_attr: JSON.stringify(this.$data.global_attr) };\n\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1381\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1383\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n if (data != \"\") {\n\n var actions = data.action;\n __f__(\"log\", actions, \" at pages/modal/classAttr.vue:1389\");\n if (actions) {\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n var val = action.value;\n var enviroment = JSON.stringify(enviroment);\n\n if (action.action_type == 'open_panel') {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛� });\n\n d.show();\n } else\n if (action.action_type == 'open_select_userdlg') {\n var style = val.style;\n // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''\n var $this = _this6;\n var param = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req,\n data_attr: data_attr };\n\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:1419\");\n var callback_eventid = param.button_callback.trim();\n var info = {\n eventid: callback_eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req,\n inputparameter: data };\n\n $this.DataObjRunCustomEvent(info, param.data_attr);\n } } });\n\n\n } else\n if (action.action_type == 'open_data_query_dlg') {\n\n } else\n if (action.action_type == 'open_common_dlg') {\n var value = action.value;\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛� });\n\n d.show();\n } else\n if (action.action_type == 'open_project_query_dlg') {\n //console.log(action.value.select_range);\n //console.log(action.value.mulit_select);\n var priRel = '-1';\n if (action.value.select_range == '鍏ㄩ儴鐩稿叧')\n priRel = '0';else\n if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')\n priRel = '1';else\n if (action.value.select_range == '鎴戝垱寤虹殑')\n priRel = '2';else\n if (action.value.select_range == '鎴戝弬涓庣殑' || action.value.select_range == '鎴戝弬鍔犵殑')\n priRel = '3';else\n if (action.value.select_range == '鎴戝叧娉ㄧ殑')\n priRel = '4';else\n if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')\n priRel = '5';\n\n var $this = _this6;\n var param_ = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req };\n\n uni.navigateTo({\n url: '../selPrj/index?relation=' + priRel + '¶m=' + JSON.stringify(param_),\n events: {\n AddPer: function AddPer(data, param) {\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var callback_eventid = param.button_callback.trim();\n if (callback_eventid) {\n var info = {\n eventid: callback_eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req };\n\n\n $this.DataObjRunCustomEvent(info);\n }\n } } });\n\n\n } else {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛� });\n\n d.show();\n }\n }\n }\n } else {\n uni.showModal({ title: \"鎻愮ず5.2\", content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n } else {\n uni.showModal({ title: \"閿欒5\", content: success.msg, showCancel: false, confirmText: \"鍙栨秷\" });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({ title: \"鎻愮ず5.1\", content: ex.errMsg, showCancel: false, confirmText: \"鍙栨秷\" });\n });\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 13)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9kYWwvY2xhc3NBdHRyLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwicGlja2VyQWRkcmVzcyIsImRhdGEiLCJ0aXRsZSIsInBhcmFtIiwiY2xhc3NBdHRyTGlzdCIsImNsYXNzR3JpZFN0eWxlIiwiZWRpdF9pbml0YWxfZXZlbnQiLCJlZGl0X29rX2V2ZW50IiwiZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCIsImVkaXRfY29tcG9zZV9jbHNfaWQiLCJnbG9iYWxfYXR0ciIsInJlZmRhdGFzdG9yZSIsImlucHV0VmFsTGlzdCIsIk5hbWUiLCJvbkxvYWQiLCJvcHRpb25zIiwidW5pIiwic2V0TmF2aWdhdGlvbkJhclRpdGxlIiwidGl0bGVuYW1lIiwiSlNPTiIsInBhcnNlIiwiJGRhdGEiLCJBZGRfQnRuTmFtZSIsIkVkaXREbGdNb2RlIiwic2hvd01vZGFsIiwiY29udGVudCIsInNob3dDYW5jZWwiLCJjb25maXJtVGV4dCIsIkVkaXRfZGxnIiwiZWRpdF9kbGciLCJNb2RlbCIsImRhdGFJbmZvIiwiY2xhc3NfaWQiLCJjbHNpZCIsIiR0aGlzIiwiJHN0b3JlIiwic3RhdGUiLCJ0aGlzYXJlYUZ1bmNJRCIsImdldHRlcnMiLCJnZXRjbGFzc0F0dHJMaXN0IiwiY2xhc3NHcmlkU3R5bGVJbmZvIiwiZGlzcGF0Y2giLCJ0aGVuIiwic3VjY2VzcyIsImNvZGUiLCJtc2ciLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwibWV0aG9kcyIsImdyaWRzdHlsZUluZm8iLCJuYW1lIiwidHlwZSIsInRoaXNFZGl0TmFtZSIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImNsYXNzX2F0dHJfaW5pdCIsIlN0eWxlRGVmIiwib250YXAiLCJlIiwiZ2V0QXBwIiwib25TY2FuIiwicmVzdWx0IiwidGFyZ2V0IiwiZGF0YXNldCIsIkF0dHIiLCJWYWx1ZSIsImRlY29kZWRhdGEiLCJvbmFycm93IiwiaW5kZXgiLCJvcGVuIiwiT3BlbiIsIm9uZGF0ZVRpbWUiLCJ2YWx1ZSIsIm9uY2hhbmdlIiwiZGljdGl0ZW0iLCJkYXRhX2F0dHIiLCJldmVudGlkIiwiYWN0aW9uIiwicmVxIiwiYXR0cmxpc3QiLCJpIiwibGVuZ3RoIiwiYXR0ciIsImoiLCJhciIsIlR5cGUiLCJwdXNoIiwidmFsIiwiVmFsSUQiLCJpbmZvIiwiZWR0eXBlIiwicHJvamVjdGlkIiwicmNsc2lkIiwicm9iamlkIiwidXNlcmxvZ2luIiwib2JqaWQiLCJEYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJvbmNoYW5nZTIiLCJpdGVtIiwiZGVsdmFsdWUiLCJpaW5kZXgiLCJkaW5kZXgiLCJkIiwidiIsIml0ZW12YWx1ZSIsIm9uZXZlbnQiLCJvbmNoZWNrIiwiaXNjaGVja2VkIiwiaXNjaGVjayIsImlucHV0VmFsTGlzdElzRGVsIiwic3BsaWNlIiwiYWRkcmVzc2NoYW5nZSIsImpvaW4iLCJjbGFzc0F0dHJfZXh0QnV0dG9uIiwiYmVmb3JlX2NsaWNrX2J1dHRvbiIsImJ1dHRvbl9jYWxsYmFjayIsIkRhdGFPYmpSdW5DdXN0b21FdmVudF9SZXR1cm4iLCJjbGFzc0F0dHJfQWRkUGVyIiwibmF2aWdhdGVUbyIsInVybCIsInN0cmluZ2lmeSIsImV2ZW50cyIsIkFkZFBlciIsIkxvZ2luIiwidHJpbSIsImNsYXNzQXR0cl9BZGRSZWYiLCJjbGFzc0F0dHJfQWRkUHJqIiwiSUQiLCJzYXZhIiwiT0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJhZGQiLCJzaG93TG9hZGluZyIsInNlbGVjdCIsInZhbFN0ciIsIk5vdEVtcHR5Iiwibm90ZW1wdHkiLCJoaWRlTG9hZGluZyIsIkRpc3BOYW1lIiwiZW52aXJvbWVudCIsImNsc19pZCIsImJ1dHRvbl9uYW1lIiwibWFzdGVyIiwiZGF0YV9vYmpfaWQiLCJtYXN0ZXJjbHNpZCIsInVwZmlsZSIsInBvc3RfZGF0YSIsImNvbXBvc2UiLCJleHRpbmZvIiwibm90X3RyaWdnZXJfc3lzX2V2ZW50IiwiQWN0aW9uIiwicmV0IiwicmVzdWx0X3R5cGUiLCJzaG93VG9hc3QiLCJpY29uIiwiZHVyYXRpb24iLCJyZWRpcmVjdFRvIiwic2hvd19zdHlsZSIsIm5ld2F0dHJsaXN0IiwiYXR0cmdyb3VwX25hbWUiLCJhdHRycyIsInMiLCJjbHNhdHRyIiwibCIsImNhIiwiZWRpdCIsImV4dF9idXR0b24iLCJidXR0b25faW1nIiwiYnV0dG9uX3Rvb2x0aXAiLCJoaWRkZW4iLCJ1bmRlZmluZWQiLCJkaWN0aXRlbWxpc3QiLCJsYWJlbCIsIkNOX1NfTkFNRSIsIm5vd0RhdGUiLCJEYXRlIiwiZGF0ZSIsInllYXIiLCJnZXRGdWxsWWVhciIsIm1vbnRoIiwiZ2V0TW9udGgiLCJkYXkiLCJnZXREYXRlIiwicmVsQ2xzTGlzdCIsImF0dHJfcmVzY2xzIiwiUmVsQ2xzIiwic3BsaXQiLCJpaSIsInJlc2NscyIsImlkIiwiUmVsQ2xzTGlzdCIsIkJrQ29sb3IiLCJIYXNBY2UiLCJJbWdGb250U3R5bGUiLCJPcmRlciIsImNvbnRyb2xfc3R5bGUiLCJ0aXRsZV9wX3dkaXRoIiwiZXZlbnRsaXN0IiwiZXZlbnQiLCJldmVudF9pZCIsInNjcmlwX2lkIiwiY29tcG9zZV9jbHNfaWQiLCJpbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50IiwiRWRpdFN0eWxlIiwiVmlld1N0eWxlIiwiTm90VHJpZ2dlclN5c0V2ZW50IiwiaW5wdXRwYXJhbWV0ZXIiLCJhY3Rpb25saXN0IiwiYWN0aW9uX3R5cGUiLCJhIiwiZGljdEl0ZW1MaXN0IiwiY2hvaWNlX2xpc3QiLCJmaWx0ZXIiLCJmb3JtX2NvbnRyb2wiLCJ0ZXh0IiwiZ3JvdXBfbmFtZSIsIkdyb3VwTmFtZSIsInJlYWRvbmx5IiwiUmVhZE9ubHkiLCJyZXBsYWNlIiwiYyIsImFjdGlvbnMiLCJkaWFsb2ciLCJzaG93Iiwic3R5bGUiLCJjYWxsYmFja19ldmVudGlkIiwicHJpUmVsIiwic2VsZWN0X3JhbmdlIiwicGFyYW1fIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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RyxLQTdqQ0ksRUFoRUssRSIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5cdGltcG9ydCBwaWNrZXJBZGRyZXNzIGZyb20gJy4uLy4uL2pzL3BpY2tlckFkZHJlc3MvcGlja2VyQWRkcmVzcy52dWUnXG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRjb21wb25lbnRzOiB7XG4gICAgICAgICAgICBwaWNrZXJBZGRyZXNzXG4gICAgICAgIH0sXG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpdGxlOiAn5paw5aKeJyxcblx0XHRcdFx0cGFyYW06e30sXG5cdFx0XHRcdGNsYXNzQXR0ckxpc3Q6W10sXG5cdFx0XHRcdGNsYXNzR3JpZFN0eWxlOltdLFxuXHRcdFx0XHRlZGl0X2luaXRhbF9ldmVudDpcIlwiLCAgLy/lvLnnqpfliJ3lp4vljJbkuovku7ZJRFxuXHRcdFx0XHRlZGl0X29rX2V2ZW50OlwiXCIsICAgICAgLy/lvLnnqpfngrnlh7tPSyDop6blj5Hkuovku7ZJRFxuXHRcdFx0XHRlZGl0X3NlbGVjdF9jb21wb3NlX2V2ZW50OlwiXCIsICAvL+mAieaLqee7hOaIkOWvueixoeaXtuiwg+eUqFxuXHRcdFx0XHRlZGl0X2NvbXBvc2VfY2xzX2lkOlwiXCIsXG5cdFx0XHRcdGdsb2JhbF9hdHRyOltdLFxuXHRcdFx0XHRyZWZkYXRhc3RvcmU6IFtdLFx0ICAgLy/lvJXnlKjmlbDmja7lrZjlgqjljLovLyB7YXR0cjonR19QUkpfJyArIGJpbmRhdHRyICsgJ19JRCcsIHZhbHVlOmluZm8uaWR9XG5cdFx0XHRcdGlucHV0VmFsTGlzdDpbe05hbWU6XCJ0ZXN0XCJ9LHtOYW1lOlwidGVzdDJcIn0se05hbWU6XCJ0ZXN0M1wifSx7TmFtZTpcInRlc3Q0XCJ9LHtOYW1lOlwidGVzdDVcIn0se05hbWU6XCJ0ZXN0NlwifSx7TmFtZTpcInRlc3Q3XCJ9XSxcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uTG9hZChvcHRpb25zKSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZyhvcHRpb25zKTtcblx0XHRcdHVuaS5zZXROYXZpZ2F0aW9uQmFyVGl0bGUoeyB0aXRsZTogb3B0aW9ucy50aXRsZW5hbWV9KTsgLy/orr7nva7pobbpg6jmoIfpopggXG5cdFx0XHR2YXIgcGFyYW0gPSBKU09OLnBhcnNlKG9wdGlvbnMucGFyYW0pO1xuXHRcdFx0dGhpcy4kZGF0YS50aXRsZSA9IHBhcmFtLkFkZF9CdG5OYW1lP3BhcmFtLkFkZF9CdG5OYW1lOm9wdGlvbnMudGl0bGVuYW1lOyAvL+iuvue9ruaMiemSruaWh+Wtl1xuXHRcdFx0Ly8gY29uc29sZS5sb2cocGFyYW0pO1xuXHRcdFx0aWYoIXBhcmFtLkVkaXREbGdNb2RlKXtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi6K+l5Yqf6IO954K55pyq6YWN572u57yW6L6R56qX5Y+j77yM6K+36YeN5paw6YWN572u77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmKCFwYXJhbS5FZGl0X2RsZy5OYW1lKXtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi6K+l5Yqf6IO954K55pyq6YWN572u56qX5Y+j5qC35byP77yM6K+36YeN5paw6YWN572u77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMuJGRhdGEucGFyYW0gPSBwYXJhbTtcblx0XHRcdHZhciBlZGl0X2RsZyA9IHtcblx0XHRcdCAgICBNb2RlbDogcGFyYW0uRWRpdERsZ01vZGUsXG5cdFx0XHQgICAgTmFtZTogcGFyYW0uRWRpdF9kbGcuTmFtZVxuXHRcdFx0fVxuXHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdFx0XHRjbGFzc19pZDogcGFyYW0uY2xzaWRcblx0XHRcdH07XG5cdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0JHRoaXMuJHN0b3JlLnN0YXRlLnRoaXNhcmVhRnVuY0lEID0gcGFyYW0uY2xzaWQ7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0F0dHJMaXN0KTtcblx0XHRcdCAvL+iOt+WPllxuXHRcdFx0aWYoJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NBdHRyTGlzdCl7XG5cdFx0XHQgXHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NBdHRyTGlzdC5kYXRhO1xuXHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8oKTtcblx0XHRcdH1lbHNlXG5cdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnY2xhc3NBdHRyTGlzdCcsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QgPSBzdWNjZXNzLmRhdGE7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCR0aGlzLmNsYXNzR3JpZFN0eWxlSW5mbygpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMS4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XG5cdFx0XHRhc3luYyBjbGFzc0dyaWRTdHlsZUluZm8oKXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dmFyIGdyaWRzdHlsZUluZm8gPSB7XG5cdFx0XHRcdFx0Y2xhc3NfaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdG5hbWU6ICR0aGlzLiRkYXRhLnBhcmFtLkVkaXRfZGxnLk5hbWUsXG5cdFx0XHRcdFx0dHlwZTogJzInXG5cdFx0XHRcdH07XG5cdFx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzRWRpdE5hbWUgPSAkdGhpcy4kZGF0YS5wYXJhbS5FZGl0X2RsZy5OYW1lXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mbyk7XG5cdFx0XHRcdCAvL+iOt+WPllxuXHRcdFx0XHRpZigkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0dyaWRTdHlsZUluZm8pe1xuXHRcdFx0XHQgXHQkdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSA9ICR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mby5kYXRhO1xuXHRcdFx0XHRcdCR0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKGdyaWRzdHlsZUluZm8pO1xuXHRcdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnY2xhc3NHcmlkU3R5bGVJbmZvJyxncmlkc3R5bGVJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0XHRzdWNjZXNzLmRhdGEuU3R5bGVEZWYgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YS5TdHlsZURlZik7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0JHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjJcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuM1wiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0b250YXAoZSl7IC8v5omr56CB5Yqf6IO9XG5cdFx0XHRcdC8vY29uc29sZS5sb2coZS50YXJnZXQpXG5cdFx0XHRcdGdldEFwcCgpLm9uU2NhbigocmVzdWx0KT0+e1xuXHRcdFx0XHRcdC8vY29uc29sZS5sb2cocmVzdWx0LmRlY29kZWRhdGEpO1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1yZXN1bHQuZGVjb2RlZGF0YTtcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRvbmFycm93KGluZGV4LG9wZW4pe1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhpbmRleCsnLS0nK29wZW4pO1xuXHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLk9wZW49b3Blbj09dHJ1ZT9mYWxzZTp0cnVlO1xuXHRcdFx0fSxcblx0XHRcdG9uZGF0ZVRpbWUoZSkge1xuXHRcdFx0XHQvL2NvbnNvbGUubG9nKGUudGFyZ2V0KVxuXHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9ZS50YXJnZXQudmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0b25jaGFuZ2UoZSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHRcdHZhciB2YWx1ZT10aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uZGljdGl0ZW1bZS50YXJnZXQudmFsdWVdO1xuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xuXHRcdFx0XHRpZiAodmFsdWUuTmFtZSAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcblx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9dmFsdWUuTmFtZTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWUpO1xuXHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmFjdGlvbjtcblx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcblx0XHRcdFx0ICAgICAgICB2YXIgcmVxPVtdO1xuXHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXG5cdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdG9uY2hhbmdlMihpdGVtLHZhbHVlLGRlbHZhbHVlKSB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGl0ZW0pO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyh2YWx1ZSk7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRlbHZhbHVlKTtcblx0XHRcdFx0aWYoaXRlbS5sZW5ndGg9PTApeyAvL+S4uuepuuaXtu+8jOa4heepuuWxnuaAp3ZhbHVlXG5cdFx0XHRcdFx0dmFyIGluZGV4ICxpaW5kZXgsZGluZGV4PTA7XG5cdFx0XHRcdFx0Zm9yKHZhciBpIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCl7XG5cdFx0XHRcdFx0XHRmb3IodmFyIGogaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHIpe1xuXHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW0pe1xuXHRcdFx0XHRcdFx0XHRcdGlmKGRlbHZhbHVlWzBdLk5hbWUgPT0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW1bZF0uTmFtZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaV0uQXR0cltqXS5WYWx1ZT1cIlwiO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRmb3IodmFyIHYgaW4gaXRlbSl7XG5cdFx0XHRcdFx0dmFyIGluZGV4ICxpaW5kZXgsZGluZGV4PTA7XG5cdFx0XHRcdFx0Zm9yKHZhciBpIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCl7XG5cdFx0XHRcdFx0XHRmb3IodmFyIGogaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHIpe1xuXHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW0pe1xuXHRcdFx0XHRcdFx0XHRcdGlmKGl0ZW1bdl0uTmFtZSA9PSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaV0uQXR0cltqXS5kaWN0aXRlbVtkXS5OYW1lKXtcblx0XHRcdFx0XHRcdFx0XHRcdGluZGV4PWk7aWluZGV4PWo7ZGluZGV4PWQ7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHZhciBpdGVtdmFsdWUgPSBpdGVtW3ZdO1xuXHRcdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xuXHRcdFx0XHRcdGlmIChpdGVtdmFsdWUuTmFtZSAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLlZhbHVlPXZhbHVlO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uVmFsdWUpO1xuXHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5hY3Rpb247XG5cdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSflrZflhbgnIHx8IGFyLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGl0ZW12YWx1ZS5OYW1lfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdG9uZXZlbnQoZSl7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0aWYgKGUudGFyZ2V0LnZhbHVlICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1lLnRhcmdldC52YWx1ZTtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLCBkYXRhX2F0dHIpO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdG9uY2hlY2soZSkge1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHRcdHZhciBpc2NoZWNrZWQgPSBlLnRhcmdldC5kYXRhc2V0LmlzY2hlY2s/ZmFsc2U6dHJ1ZTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0aWYgKGlzY2hlY2tlZCAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcblx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9aXNjaGVja2VkO1xuXHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmFjdGlvbjtcblx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcblx0XHRcdFx0ICAgICAgICB2YXIgcmVxPVtdO1xuXHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRpbnB1dFZhbExpc3RJc0RlbChpbmRleCl7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGluZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmlucHV0VmFsTGlzdC5zcGxpY2UoaW5kZXgsIDEpOyAvL+WIoOmZpHRhYlBhZ2Vqc29u55qE5YaF5a65XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuaW5wdXRWYWxMaXN0KTtcblx0XHRcdH0sXG5cdFx0XHRhZGRyZXNzY2hhbmdlKGUpIHtcblx0XHRcdCAgICAvLyBjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHQgICAgY29uc29sZS5sb2coZS5kYXRhLmpvaW4oJzsnKSlcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUuZGF0YS5qb2luKCc7Jyk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX2V4dEJ1dHRvbihpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR2YXIgYmVmb3JlX2NsaWNrX2J1dHRvbiA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5iZWZvcmVfY2xpY2tfYnV0dG9uO1xuXHRcdFx0XHR2YXIgYnV0dG9uX2NhbGxiYWNrID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLmJ1dHRvbl9jYWxsYmFjaztcblx0XHRcdFx0aWYoIWJlZm9yZV9jbGlja19idXR0b24pe1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcImJlZm9yZV9jbGlja19idXR0b24tZXZlbnRfaWTkuLrnqbrvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYoIWJ1dHRvbl9jYWxsYmFjayl7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OlwiYnV0dG9uX2NhbGxiYWNrLWV2ZW50X2lk5Li656m677yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XTtcblx0XHRcdFx0dGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnRfUmV0dXJuKGJlZm9yZV9jbGlja19idXR0b24sIGRhdGFfYXR0ciwgYnV0dG9uX2NhbGxiYWNrLCBpbmRleCxpaW5kZXgpO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9BZGRQZXIoaW5kZXgsaWluZGV4KXtcblx0XHRcdFx0dmFyIHBhcmFtPXtpbmRleDppbmRleCxpaW5kZXg6aWluZGV4fTtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDonLi4vc2VscHNuL2luZGV4P211bGl0PWZhbHNlJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxuXHRcdFx0XHRcdGV2ZW50czp7XG5cdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsSUQ9ZGF0YVswXS5Mb2dpbisnOycrZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZCA9IGV2ZW50aWQudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHQgICAgaWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjRcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiBkYXRhWzBdLkxvZ2luLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBhdHRyOiBbXSxcblx0XHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdC8vIHZhciBkYXRhX2F0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF07XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRjbGFzc0F0dHJfQWRkUmVmKGUpe1xuXHRcdFx0XHRjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuatpOWKn+iDvei/mOacquWunueOsO+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHQvLyB2YXIgdmFsdWU9dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlJlbENsc1tlLnRhcmdldC52YWx1ZV07XG5cdFx0XHRcdC8vIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT12YWx1ZTtcblx0XHRcdH0sXG5cdFx0XHRjbGFzc0F0dHJfQWRkUHJqKGluZGV4LGlpbmRleCl7XG5cdFx0XHRcdHZhciBwYXJhbT17aW5kZXg6aW5kZXgsaWluZGV4OmlpbmRleH07XG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHR1cmw6Jy4uL3NlbFByai9pbmRleD9yZWxhdGlvbj0tMSZwYXJhbT0nK0pTT04uc3RyaW5naWZ5KHBhcmFtKSxcblx0XHRcdFx0XHRldmVudHM6e1xuXHRcdFx0XHRcdFx0QWRkUGVyKGRhdGEscGFyYW0peyBcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocGFyYW0pO1xuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhKTtcblx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbHVlPWRhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uSUQrJzsnK2RhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLmFjdGlvbjtcblx0XHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHRcdFx0ICAgIGV2ZW50aWQgPSBldmVudGlkLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0ICAgIGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIyXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogZGF0YVswXS5JRCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogW10sXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgLy8gdmFyIGRhdGFfYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XTtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAkdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdHNhdmEoKXtcblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuZWRpdF9va19ldmVudClcblx0XHRcdFx0XHR0aGlzLk9LRGF0YU9ialJ1bkN1c3RvbUV2ZW50KCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHR0aGlzLmFkZCgpO1xuXHRcdFx0fSxcblx0XHRcdGFkZCgpe1xuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdHRpdGxlOlwi5Yqg6L295LitLi4uXCJcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivt+mAieaLqScgfHwgYXIuVmFsdWU9PSfigJTigJTor7fpgInmi6nigJTigJQnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgaWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSflrZflhbgnIHx8IGFyLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0XHRcdFx0XHRcdGlmKGFyLnNlbGVjdD09dHJ1ZSl7IC8v5Yik5pat5LiL5ouJ5piv5ZCm5aSa6YCJXG5cdFx0XHRcdFx0XHRcdFx0dmFyIHZhbFN0ciA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIHYgaW4gYXIuVmFsdWUpe1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYodmFsU3RyKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPVwiO1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1hci5WYWx1ZVt2XTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogdmFsU3RyfSk7XG5cdFx0XHRcdFx0XHRcdH1lbHNlXG5cdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWV9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGlmICgoYXIuTm90RW1wdHkgPT0gJzEnIHx8IGFyLm5vdGVtcHR5ID09IHRydWUpICYmICFhci5WYWx1ZSkge1xuXHRcdFx0XHRcdFx0Ly8gaWYoYXIubm90RW1wdHk9PScxJyl7XG5cdFx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdFx0XHQvLyB1bmkuc2hvd1RvYXN0KHt0aXRsZTphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxpY29uOlwic3VjY2Vzc1wiLGR1cmF0aW9uOjMwMDB9KTtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OmFyLkRpc3BOYW1lKyfkuI3og73kuLrnqbrvvIEnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0XHRcdCAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0XHRcdCAgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHRcdFx0ICAgICBidXR0b25fbmFtZTogJ+aWsOWinicsXG5cdFx0XHRcdCAgICAgbWFzdGVyOiB7XG5cdFx0XHRcdCAgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgXG5cdFx0XHRcdCAgICAgfVxuXHRcdFx0XHR9O1xuXHRcdFx0XHQgXG5cdFx0XHRcdHZhciBkYXRhSW5mbz17XG5cdFx0XHRcdCAgICBjbGFzc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgZGF0YV9vYmpfaWQ6ICcnLCBtYXN0ZXJjbHNpZDogJycsXG5cdFx0XHRcdCAgICByZXE6IEpTT04uc3RyaW5naWZ5KHJlcSksIHVwZmlsZTogSlNPTi5zdHJpbmdpZnkoW10pLCBwb3N0X2RhdGE6IEpTT04uc3RyaW5naWZ5KHt9KSxcblx0XHRcdFx0ICAgIGNvbXBvc2U6IEpTT04uc3RyaW5naWZ5KFtdKSwgcmVmZGF0YXN0b3JlOiBKU09OLnN0cmluZ2lmeShbXSksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpLCBcblx0XHRcdFx0XHRub3RfdHJpZ2dlcl9zeXNfZXZlbnQ6ICcnXG5cdFx0XHRcdH07XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYWRkY2xhc3NhdHRyJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGFjdGlvbiA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhLkFjdGlvbik7XG5cdFx0XHRcdFx0XHRpZihhY3Rpb24ucmV0PT0nMCcpe1xuXHRcdFx0XHRcdFx0XHRpZihhY3Rpb24ucmVzdWx0X3R5cGU9PScwJyl7XG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7dGl0bGU6YWN0aW9uLnJlc3VsdCxpY29uOlwic3VjY2Vzc1wiLGR1cmF0aW9uOjMwMDB9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyBcIntcInJldFwiOjAsIFwicmVzdWx0X3R5cGVcIjowLCBcInJlc3VsdFwiOlwi5Yib5bu65oiQ5YqfMTIzMTIzMTIzXCIsXCJpbmZvXCI6XCJcIn1cIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly/liLfmlrBcblx0XHRcdFx0XHRcdHVuaS5yZWRpcmVjdFRvKHtcblx0XHRcdFx0XHRcdFx0dXJsOicuLi9tb2RhbC9jbGFzc0F0dHI/cGFyYW09JytKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLnBhcmFtKStcIiZ0aXRsZW5hbWU9XCIrdGhpcy4kZGF0YS50aXRsZVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHQvLyB0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor69cIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NfYXR0cl9pbml0KCl7XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuc2hvd19zdHlsZVxuXHRcdFx0XHR2YXIgbmV3YXR0cmxpc3QgPSBbXTtcblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgdmFyIG9wZW4gPSBhdHRybGlzdFtpXS5vcGVuO1xuXHRcdFx0XHQgICAgICAgIHZhciBuYW1lID0gYXR0cmxpc3RbaV0uYXR0cmdyb3VwX25hbWU7XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJzID0gYXR0cmxpc3RbaV0uYXR0cnM7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBzKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgdmFyIGNsc2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Rbc107XG5cdFx0XHRcdCAgICAgICAgICAgIGlmIChuYW1lID09IGNsc2F0dHIuTmFtZSkge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBbXTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IGNsc2F0dHIuQXR0ci5sZW5ndGg7IGwrKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2EgPSBjbHNhdHRyLkF0dHJbbF07XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyc1tqXS5hdHRyID09IGNhLk5hbWUpIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmFjdGlvbiA9IGF0dHJzW2pdLmFjdGlvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmVkaXQgPSBhdHRyc1tqXS5lZGl0O1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Eubm90ZW1wdHkgPSBhdHRyc1tqXS5ub3RlbXB0eTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmV4dF9idXR0b24gPSBhdHRyc1tqXS5leHRfYnV0dG9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX2ltZyA9IGF0dHJzW2pdLmJ1dHRvbl9pbWc7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25fdG9vbHRpcCA9IGF0dHJzW2pdLmJ1dHRvbl90b29sdGlwO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYmVmb3JlX2NsaWNrX2J1dHRvbiA9IGF0dHJzW2pdLmJlZm9yZV9jbGlja19idXR0b247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25fY2FsbGJhY2sgPSBhdHRyc1tqXS5idXR0b25fY2FsbGJhY2s7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5oaWRkZW4gPSBhdHRyc1tqXS5oaWRkZW47XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5zZWxlY3QgPSBhdHRyc1tqXS5zZWxlY3Q9PXVuZGVmaW5lZD9mYWxzZTphdHRyc1tqXS5zZWxlY3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPVwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuZGljdGl0ZW0pe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RpdGVtbGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGQgPSAwOyBkIDwgY2EuZGljdGl0ZW0ubGVuZ3RoOyBkKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW1bZF0ubGFiZWw9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbVtkXS52YWx1ZT1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5zZWxlY3QgPT0gdHJ1ZSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBbXTsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7Ly9jYS5kaWN0aXRlbVswXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfml6XmnJ8nIHx8IGNhLlR5cGU9PSfml7bpl7QnKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBub3dEYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkYXRlID0ge3llYXI6IG5vd0RhdGUuZ2V0RnVsbFllYXIoKSxtb250aDogbm93RGF0ZS5nZXRNb250aCgpICsgMSxkYXk6IG5vd0RhdGUuZ2V0RGF0ZSgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBkYXRlLnllYXIgKyAnLScgKyAoZGF0ZS5tb250aCA+PSAxMCA/IGRhdGUubW9udGggOiAnMCcgKyBkYXRlLm1vbnRoKSArICctJyArIChkYXRlLmRheSA+PSAxMCA/IGRhdGUuZGF5IDogJzAnICsgZGF0ZS5kYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZWxDbHNMaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHJfcmVzY2xzID0gY2EuUmVsQ2xzLnNwbGl0KCcsJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGlpIGluIGF0dHJfcmVzY2xzKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlc2NscyA9IGF0dHJfcmVzY2xzW2lpXS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZWxDbHNMaXN0LnB1c2goe2lkOnJlc2Nsc1swXSxuYW1lOnJlc2Nsc1sxXX0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuUmVsQ2xzTGlzdCA9IHJlbENsc0xpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7cnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n55yB5biC5Yy6Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLnB1c2goY2EpO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgbmV3YXR0cmxpc3QucHVzaCh7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQmtDb2xvcjogY2xzYXR0ci5Ca0NvbG9yLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEhhc0FjZTogY2xzYXR0ci5IYXNBY2UsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgSW1nRm9udFN0eWxlOiBjbHNhdHRyLkltZ0ZvbnRTdHlsZSxcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBOYW1lOiBjbHNhdHRyLk5hbWUsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3JkZXI6IGNsc2F0dHIuT3JkZXIsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3Blbjogb3Blbixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBBdHRyOiBhdHRyLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udHJvbF9zdHlsZTp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmNvbnRyb2xfc3R5bGUsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZV9wX3dkaXRoOnRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYudGl0bGVfcF93ZGl0aFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgfSlcblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0ICAgIGlmIChuZXdhdHRybGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gbmV3YXR0cmxpc3Q7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgIGlmICh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmKSB7XG5cdFx0XHRcdCAgICAgICAgIGlmICh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgncmVhZG9ubHknLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBhdHRybGlzdFtpXS5hdHRyc1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuYXR0ciwgdmFsOiBhci52YWx1ZT9hci52YWx1ZTonJyB9KTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHR9XHRcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR2YXIgZXZlbnRsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5ldmVudDtcblx0XHRcdFx0XHRpZiAoZXZlbnRsaXN0KSB7XG5cdFx0XHRcdFx0ICAgIGlmIChldmVudGxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudGxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHQgICAgICAgICAgICBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdiZWZvcmVfb2snKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9va19ldmVudCA9IGV2ZW50bGlzdFtpXTtcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnaW5pdGlhbCcpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudCA9IGV2ZW50bGlzdFtpXTtcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX3NlbGVjdF9jb21wb3NlJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfc2VsZWN0X2NvbXBvc2VfZXZlbnQgPSBldmVudGxpc3RbaV0uc2NyaXBfaWQ7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9jb21wb3NlX2Nsc19pZCA9IGV2ZW50bGlzdFtpXS5jb21wb3NlX2Nsc19pZDtcblx0XHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQpIHtcblx0XHRcdFx0XHQgICAgdmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50LnNjcmlwX2lkO1xuXHRcdFx0XHRcdCAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHQgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdCAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHQgICAgdGhpcy5pbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlKTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuacquaJvuWIsOWPr+aYvuekuueahOeahOWxnuaAp1wiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0aW5pX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKXtcblx0XHRcdFx0dmFyIHBhcmFtID0ge1xuXHRcdFx0XHQgICAgRWRpdFN0eWxlOiB0aGlzLiRkYXRhLnBhcmFtLkVkaXRfZGxnLk5hbWUsXG5cdFx0XHRcdCAgICBWaWV3U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uRWRpdF9kbGcuTmFtZSxcblx0XHRcdFx0ICAgIE5vdFRyaWdnZXJTeXNFdmVudDogMCxcblx0XHRcdFx0ICAgIGVudmlyb21lbnQ6IHtcblx0XHRcdFx0ICAgICAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdCAgICAgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGlucHV0cGFyYW1ldGVyID0gJyc7XG5cdFx0XHRcdHZhciBnbG9iYWxfYXR0ciA9ICcnO1xuXHRcdFx0XHRcblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQsXG4gICAgICAgICAgICAgICAgICAgIHJjbHNpZDogaW5mby5yY2xzaWQsIHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkocGFyYW0pLCBpbnB1dHBhcmFtZXRlcjogaW5wdXRwYXJhbWV0ZXIsIGdsb2JhbF9hdHRyOiBnbG9iYWxfYXR0clxuICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdFx0XHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcblx0XHRcdFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XG5cdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhY3Rpb25saXN0Lmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25saXN0W2pdXG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb25fdHlwZSA9IGFjdGlvbi5hY3Rpb25fdHlwZTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciB2YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhbCA9IEpTT04ucGFyc2UodmFsdWUpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codmFsKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGEgPSAwOyBhIDwgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBsID0gMDsgbCA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBjYSA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyW2xdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodmFsW2ldLmF0dHIgID09IGNhLk5hbWUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5a2X5YW4JyB8fCBjYS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RJdGVtTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiB2YWxbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID12YWxbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpY3RJdGVtTGlzdC5wdXNoKHtcIkNOX1NfTkFNRVwiOnZhbCxcIk5hbWVcIjp2YWwsXCJsYWJlbFwiOnZhbCxcInZhbHVlXCI6dmFsfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gdmFsW2ldLmNob2ljZV9saXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY2EudmFsdWUgPSB2YWxbaV0udmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gMDtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWxbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaCh2YWxbaV0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHZhbFtpXS5hdHRyKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gdmFsW2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ29wZW5fc2VsZWN0X3VzZXJkbGcnKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzIuMlwiLGNvbnRlbnQ6XCJvcGVuX3NlbGVjdF91c2VyZGxn6L+Z5LiqYWN0aW9uX3R5cGXov5jmnKrlpITnkIbvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMi4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHQgICAgRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sZGF0YV9hdHRyKXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHQgICAgXHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHQgICAgXHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHQgICAgXHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0ICAgIFx0ICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0ICAgIFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHQgICAgXHQgICAgbWFzdGVyOiB7XG5cdFx0ICAgIFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0ICAgIFx0ICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0ICAgIFx0ICAgIH1cblx0XHQgICAgXHR9O1xuXHRcdCAgICBcdGlmKGRhdGFfYXR0cil7XG5cdFx0XHRcdFx0ZW52aXJvbWVudC5lZGl0X2RsZyA9IHtcblx0XHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xuXHRcdFx0XHRcdCAgICBjbGFzc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwvL+W9k+WJjeaVsOaNruexu2lkXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcblx0XHRcdFx0XHQgICAgZW52aXJvbWVudC5lZGl0X2RsZy5mb3JtX2NvbnRyb2wgPSB7Ly/miYDlsZ7nmoTooajljZXmjqfku7Zcblx0XHRcdFx0XHQgICAgICAgIG5hbWU6IGRhdGFfYXR0ci5OYW1lLC8v5a2X5q615bGe5oCnXG5cdFx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHRcdFx0XHQgICAgICAgIGdyb3VwX25hbWU6IGRhdGFfYXR0ci5Hcm91cE5hbWUsLy/lsZ7mgKfnu4Rcblx0XHRcdFx0XHQgICAgICAgIHR5cGU6IGRhdGFfYXR0ci5UeXBlLC8v5a2X5q6157G75Z6LXG5cdFx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0XHRcdFx0ICAgICAgICBidXR0b25faW1nOiBkYXRhX2F0dHIuYnV0dG9uX2ltZywvL+W8leeUqOaMiemSrueahOWbvuagh1xuXHRcdFx0XHRcdCAgICAgICAgYnV0dG9uX3Rvb2x0aXA6IGRhdGFfYXR0ci5idXR0b25fdG9vbHRpcC8v5byV55So5oyJ6ZKu55qEdG9vbHRpcFxuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdCAgICAgICAgICAgIGVkdHlwZTogaW5mby5lZHR5cGUsIGV2ZW50aWQ6IGluZm8uZXZlbnRpZCwgcHJvamVjdGlkOiBpbmZvLnByb2plY3RpZC5yZXBsYWNlKCd7JywnJykucmVwbGFjZSgnfScsJycpLFxuXHRcdCAgICAgICAgICAgIHJjbHNpZDogaW5mby5yY2xzaWQsIHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcblx0XHQgICAgICAgICAgICBhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgaW5wdXRwYXJhbWV0ZXI6ICcnLCBnbG9iYWxfYXR0cjogSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5nbG9iYWxfYXR0cilcblx0XHQgICAgICAgIH1cblx0XHQgICAgXHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0ICAgIFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHQgICAgXHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdCAgICBcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XG5cdFx0ICAgIFx0XHRcdHZhciBhY3Rpb25saXN0ID0gZGF0YS5hY3Rpb247XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHQgICAgXHRcdFx0aWYgKGFjdGlvbmxpc3QpIHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYWN0aW9ubGlzdCk7XG5cdFx0ICAgIFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdGlvbmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ubGlzdFtpXTtcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdzZXRfZGxnX2F0dHInKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIHZhciByZXN1bHQgPSBhY3Rpb24udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdFtpXS5jaG9pY2VfbGlzdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5UeXBlPT0n5a2X5YW4JyB8fCBhdHRyW2pdLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdEl0ZW1MaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHJlc3VsdFtpXS5jaG9pY2VfbGlzdCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciB2YWwgPXJlc3VsdFtpXS5jaG9pY2VfbGlzdFtkXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGljdEl0ZW1MaXN0LnB1c2goe1wiQ05fU19OQU1FXCI6dmFsLFwiTmFtZVwiOnZhbCxcImxhYmVsXCI6dmFsLFwidmFsdWVcIjp2YWx9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGF0dHJbal0uZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gcmVzdWx0W2ldLmNob2ljZV9saXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHR2YXIgYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbY10uQXR0cjtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhdHRyW2pdLk5hbWUrJz09JytyZXN1bHRbaV0uYXR0cik7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2gocmVzdWx0W2ldKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSByZXN1bHRbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSBlbHNlIGlmIChkYXRhLmFjdGlvbltpXS5hY3Rpb25fdHlwZSA9PSAnc2V0X2dsb2JhbF9hdHRyJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgJHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIgPSBkYXRhLmFjdGlvbltpXS52YWx1ZSB8fCBbXTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdFxuXHRcdCAgICBcdFx0XHRpZiAoZGF0YS5yZXN1bHQpIHtcblx0XHQgICAgXHRcdFx0ICAgIHZhciByZXN1bHQgPSBkYXRhLnJlc3VsdDtcblx0XHQgICAgXHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbY10uQXR0cjtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHR9ZWxzZXtcblx0XHQgICAgXHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68zXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHRcdH1cblx0XHQgICAgXHR9KS5jYXRjaChleD0+e1xuXHRcdCAgICBcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdCAgICBcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68zLjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHR9KTtcblx0XHQgICAgfSxcblx0XHRcdE9LRGF0YU9ialJ1bkN1c3RvbUV2ZW50KCl7XG5cdFx0ICAgIFx0dmFyIGVudmlyb21lbnQgPSB7XG5cdFx0XHRcdCAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdFx0XHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0XHRcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgbWFzdGVyOiB7XG5cdFx0XHRcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdFx0XHQgICAgICAgIFxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9O1xuXHRcdCAgICBcdFxuXHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuZWRpdF9va19ldmVudC5zY3JpcF9pZDtcblx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0ICAgIFx0aWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aCA+IDApIHtcblx0XHQgICAgXHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdCAgICAgICAgaWYgKCFyZXEuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIgPT0gcy5uYW1lXG5cdFx0ICAgIFx0ICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHQgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdCAgICAgICAgICAgIHJlcS5wdXNoKHsgJ2F0dHInOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyLCAndmFsJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0udmFsdWUgfSk7XG5cdFx0ICAgIFx0ICAgICAgICB9XG5cdFx0ICAgIFx0ICAgIH1cblx0XHQgICAgXHR9XG5cdFx0ICAgIFx0dmFyIGluZm8gPSB7XG5cdFx0ICAgIFx0ICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0ICAgIFx0ICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0ICAgIFx0ICAgIHByb2plY3RpZDogJycsXG5cdFx0ICAgIFx0ICAgIHJjbHNpZDogJycsXG5cdFx0ICAgIFx0ICAgIHJvYmppZDogJycsXG5cdFx0ICAgIFx0ICAgIHVzZXJsb2dpbjogJycsXG5cdFx0ICAgIFx0ICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdCAgICBcdCAgICBvYmppZDogXCJcIixcblx0XHQgICAgXHQgICAgYXR0cjogcmVxLFxuXHRcdCAgICBcdH1cblx0XHQgICAgXHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLHJjbHNpZDogaW5mby5yY2xzaWQsIFxuXHRcdFx0XHRcdHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcblx0XHRcdFx0XHRhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1x0XHRcblx0XHQgICAgXHRcdFx0dmFyIHJlc3VsdCA9IGRhdGEucmVzdWx0O1xuXHRcdCAgICBcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHQgICAgLy8gc2VsZi5jbGFzc19hdHRyX2VsZS5maW5kKCcuYXR0cl9maWVsZFtkYXRhLWZpZWxkPVwiJyArIHJlc3VsdFtpXS5hdHRyICsgJ1wiXScpLnZhbChyZXN1bHRbaV0udmFsdWUpLmRhdGEoJ3ZhbCcsIHJlc3VsdFtpXS52YWx1ZSk7XG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgIGlmICghdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLmFkZCgpO1xuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNFwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNC4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0ICAgIERhdGFPYmpSdW5DdXN0b21FdmVudF9SZXR1cm4oZXZlbnRpZCxkYXRhX2F0dHIsYnV0dG9uX2NhbGxiYWNrLGluZGV4LGlpbmRleCl7XG5cdFx0XHRcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHRcdFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRjbHNfaWRcblx0XHRcdFx0ICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH07XG5cdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlIH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIGlmICghcmVxLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdFx0XHQgICAgICAgICAgICByZXR1cm4gdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciA9PSBzLm5hbWVcblx0XHRcdFx0ICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHRcdFx0ICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHRcdFx0ICAgICAgICAgICAgcmVxLnB1c2goeyAnYXR0cic6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIsICd2YWwnOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS52YWx1ZSB9KTtcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGV4dGluZm8gPSBlbnZpcm9tZW50O1xuXHRcdFx0XHRleHRpbmZvLmVkaXRfZGxnID0ge1xuXHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsLy/lvZPliY3mlbDmja7nsbtpZFxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcblx0XHRcdFx0ICAgIGV4dGluZm8uZWRpdF9kbGcuZm9ybV9jb250cm9sID0gey8v5omA5bGe55qE6KGo5Y2V5o6n5Lu2XG5cdFx0XHRcdCAgICAgICAgbmFtZTogZGF0YV9hdHRyLk5hbWUsLy/lrZfmrrXlsZ7mgKdcblx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHRcdFx0ICAgICAgICBncm91cF9uYW1lOiBkYXRhX2F0dHIuR3JvdXBOYW1lLC8v5bGe5oCn57uEXG5cdFx0XHRcdCAgICAgICAgdHlwZTogZGF0YV9hdHRyLlR5cGUsLy/lrZfmrrXnsbvlnotcblx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX2ltZzogZGF0YV9hdHRyLmJ1dHRvbl9pbWcsLy/lvJXnlKjmjInpkq7nmoTlm77moIdcblx0XHRcdFx0ICAgICAgICBidXR0b25fdG9vbHRpcDogZGF0YV9hdHRyLmJ1dHRvbl90b29sdGlwLy/lvJXnlKjmjInpkq7nmoR0b29sdGlwXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdFx0XHRcdGVkdHlwZTogIFwiMFwiLCBldmVudGlkOiBldmVudGlkLCBwcm9qZWN0aWQ6ICcnLHJjbHNpZDogJycsIHJvYmppZDogJycsIHVzZXJsb2dpbjogJycsIFxuXHRcdFx0XHRcdGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCBvYmppZDogJycsYXR0cjogSlNPTi5zdHJpbmdpZnkocmVxKSwgXG5cdFx0XHRcdFx0ZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZXh0aW5mbyksIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcblx0XHRcdFx0XHRcdGlmIChkYXRhICE9IFwiXCIpIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHZhciBhY3Rpb25zID0gZGF0YS5hY3Rpb247XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhY3Rpb25zKTtcblx0XHRcdFx0XHRcdGlmIChhY3Rpb25zKSB7XG5cdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25zW2ldO1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgdmFsID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgZW52aXJvbWVudCA9IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpO1xuXHRcdFx0XHRcdFx0ICAgICAgICBcblx0XHRcdFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9wYW5lbCcpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgdGl0bGU6ICc8aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPiAnICsgJ+aPkOekuicsXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICBjb250ZW50OiBhY3Rpb24uYWN0aW9uX3R5cGUgKyAn5q2kYWN0aW9u5bCa5pyq5aSE55CG77yBJ1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICB9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgZC5zaG93KCk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgZWxzZSBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdvcGVuX3NlbGVjdF91c2VyZGxnJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHN0eWxlID0gdmFsLnN0eWxlO1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gc3R5bGUgPT0gJ3VzZXInID8gJ+mAieaLqeS6uuWRmCcgOiBzdHlsZSA9PSAnZGVwYXJ0bWVudCcgPyAn6YCJ5oup6YOo6ZeoJyA6IHN0eWxlID09ICdyb2xlJyA/ICfpgInmi6nop5LoibInIDogJydcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcGFyYW09e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpbmRleDogaW5kZXgsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlpbmRleDppaW5kZXgsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJ1dHRvbl9jYWxsYmFjazpidXR0b25fY2FsbGJhY2ssXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcTpyZXEsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRhdGFfYXR0cjpkYXRhX2F0dHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0dXJsOicuLi9zZWxwc24vaW5kZXg/bXVsaXQ9ZmFsc2UmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdGV2ZW50czp7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0QWRkUGVyKGRhdGEscGFyYW0peyBcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdFx0dmFyIGNhbGxiYWNrX2V2ZW50aWQgPSBwYXJhbS5idXR0b25fY2FsbGJhY2sudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZDogY2FsbGJhY2tfZXZlbnRpZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGF0dHI6IHBhcmFtLnJlcSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBpbnB1dHBhcmFtZXRlcjogZGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIHBhcmFtLmRhdGFfYXR0cik7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0fVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHR9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcdFxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9kYXRhX3F1ZXJ5X2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9jb21tb25fZGxnJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRpdGxlOiAnPGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gJyArICfmj5DnpLonLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGQuc2hvdygpO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9wcm9qZWN0X3F1ZXJ5X2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIC8vY29uc29sZS5sb2coYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5tdWxpdF9zZWxlY3QpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHByaVJlbCA9ICctMSc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5YWo6YOo55u45YWzJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMCc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHotJ/otKPnmoTpobnnm64nKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICcxJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWIm+W7uueahCcpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzInO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5Y+C5LiO55qEJyB8fCBhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHlj4LliqDnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICczJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWFs+azqOeahCcpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzQnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5LiL5bGe55qE6aG555uuJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cHJpUmVsID0gJzUnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcGFyYW1fPXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW5kZXg6IGluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpaW5kZXg6aWluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRidXR0b25fY2FsbGJhY2s6YnV0dG9uX2NhbGxiYWNrLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXE6cmVxXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDonLi4vc2VsUHJqL2luZGV4P3JlbGF0aW9uPScrcHJpUmVsKycmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbV8pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRldmVudHM6e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uSUQrJzsnK2RhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdHZhciBjYWxsYmFja19ldmVudGlkID0gcGFyYW0uYnV0dG9uX2NhbGxiYWNrLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjYWxsYmFja19ldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGV2ZW50aWQ6IGNhbGxiYWNrX2V2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGVkdHlwZTogXCIyXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHByb2plY3RpZDogZGF0YVswXS5JRCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgcmNsc2lkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHVzZXJsb2dpbjogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgYXR0cjogcGFyYW0ucmVxLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgZCA9IGRpYWxvZyh7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGl0bGU6ICc8aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPiAnICsgJ+aPkOekuicsXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgY29udGVudDogYWN0aW9uLmFjdGlvbl90eXBlICsgJ+atpGFjdGlvbuWwmuacquWkhOeQhu+8gSdcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZC5zaG93KCk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLo1LjJcIixjb250ZW50OiAn6LCD55SoIGJlZm9yZV9jbGlja19idXR0b24g6ISa5pys6L+U5Zue56m677yMZXZlbnRfaWQnICsgZXZlbnRpZCxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNVwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekujUuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHQgICAgfSxcblx0XHQgICAgXG5cdFx0XHRcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ @@ -6164,7 +6265,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 74));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 79));\n\n\nvar _app = _interopRequireDefault(__webpack_require__(/*! ./modules/app */ 80));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n modules: {\n app: _app.default },\n\n state: {\n hasLogin: false,\n loginProvider: \"\",\n areaFunc: '',\n thisareaFuncID: '',\n thisEditName: '',\n thisDictName: '',\n _classAttrList: {},\n _classGridStyleInfo: {},\n _dicValueInfo: {},\n DataObjRunCustomEventInfo: '',\n querySelpsn: '',\n ProjectGetAnalysisList: '',\n addclassattr: '',\n username: \"sa\",\n userpwd: \"0000\",\n url: \"39.100.224.211\" //192.168.1.184:5200 36.33.24.94:5200\n },\n mutations: {\n setUrl: function setUrl(state, url) {\n state.url = url;\n },\n login: function login(state, provider) {\n state.hasLogin = true;\n state.loginProvider = provider;\n },\n areaFunc: function areaFunc(state, ret) {\n state.areaFunc = ret;\n },\n setareaFuncid: function setareaFuncid(state, id) {\n state.thisareaFuncID = id;\n },\n seteditName: function seteditName(state, editName) {\n state.thisEditName = editName;\n },\n setDictName: function setDictName(state, dictName) {\n state.thisDictName = dictName;\n },\n classAttrList: function classAttrList(state, ret) {\n // state._classAttrList[state.thisareaFuncID] = ret;\n _vue.default.set(state._classAttrList, state.thisareaFuncID, ret);\n },\n classGridStyleInfo: function classGridStyleInfo(state, ret) {\n // state._classGridStyleInfo[state.thisareaFuncID] = ret;\n var data = {};\n if (state._classGridStyleInfo[state.thisareaFuncID])\n data = state._classGridStyleInfo[state.thisareaFuncID];\n _vue.default.set(data, state.thisEditName, ret);\n _vue.default.set(state._classGridStyleInfo, state.thisareaFuncID, data);\n },\n dicValueInfo: function dicValueInfo(state, ret) {\n // state._dicValueInfo[state.thisareaFuncID] = ret;\n _vue.default.set(state._dicValueInfo, state.thisDictName, ret);\n },\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(state, ret) {\n state.DataObjRunCustomEventInfo = ret;\n },\n querySelpsn: function querySelpsn(state, ret) {\n state.querySelpsn = ret;\n },\n ProjectGetAnalysisList: function ProjectGetAnalysisList(state, ret) {\n state.ProjectGetAnalysisList = ret;\n },\n addclassattr: function addclassattr(state, ret) {\n state.addclassattr = ret;\n },\n logout: function logout(state) {\n state.hasLogin = false;\n } },\n\n getters: {\n loginid: function loginid(state) {\n return state.loginProvider.loginid;\n },\n getUrl: function getUrl(state) {\n return state.url;\n },\n getclassAttrList: function getclassAttrList(state) {\n return state._classAttrList[state.thisareaFuncID];\n },\n getclassGridStyleInfo: function getclassGridStyleInfo(state) {\n if (state._classGridStyleInfo[state.thisareaFuncID])\n return state._classGridStyleInfo[state.thisareaFuncID][state.thisEditName];else\n\n return \"\";\n },\n getdicValueInfo: function getdicValueInfo(state) {\n return state._dicValueInfo[state.thisDictName];\n } },\n\n\n\n actions: {\n //{commit} 瑙f瀯锛孿n //univerifyInfo 鑷畾涔夊弬鏁癨n login: function login(_ref,\n\n\n univerifyInfo) {var commit = _ref.commit,state = _ref.state;\n return new Promise(function (resolve, reject) {\n univerifyInfo = univerifyInfo || {};\n univerifyInfo.server = univerifyInfo.server || '';\n univerifyInfo.uname = univerifyInfo.uname || '';\n univerifyInfo.pwd = univerifyInfo.pwd || '';\n // console.log(univerifyInfo);\n if (univerifyInfo.server.length == 0) {\n reject({ \"errMsg\": '鏈嶅姟鍣ㄥ湴鍧�笉鑳戒负绌�' });\n }\n if (univerifyInfo.uname.length < 2) {\n reject({ \"errMsg\": '璐﹀彿鏈�煭涓�2 涓瓧绗�' });\n }\n if (univerifyInfo.pwd.length < 1) {\n reject({ \"errMsg\": '瀵嗙爜鏈�煭涓�1涓瓧绗�' });\n }\n var openinfo = \"http://\" + univerifyInfo.server + \"/\"; //+\"/OrgWebS\"\n //璁剧疆鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�n commit(\"setUrl\", openinfo);\n\n // if (univerifyInfo.server.split(':').length < 2)\n // \tcgi = \"http://\" + univerifyInfo.server + \":5010\"; ///OrgWebS\n\n // setTimeout(_=>{\n // \tresolve(\"00000000000\")\n // },3000)\n // console.log(openinfo + \"PDA/SignIn\");\n uni.request({\n url: openinfo + \"PDA/SignIn\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res); \n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"login\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:154\");\n reject(err);\n } });\n\n });\n },\n\n areaFunc: function areaFunc(_ref2,\n\n\n univerifyInfo) {var commit = _ref2.commit,state = _ref2.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAArea\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"areaFunc\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n } });\n\n });\n },\n\n classAttrList: function classAttrList(_ref3,\n\n\n univerifyInfo) {var commit = _ref3.commit,state = _ref3.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAAttrList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:210\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"classAttrList\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n } });\n\n });\n },\n\n classGridStyleInfo: function classGridStyleInfo(_ref4,\n\n\n univerifyInfo) {var commit = _ref4.commit,state = _ref4.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAGridStyleGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:243\");\n var ret = res.data;\n if (ret.code == '00000') {\n // var data ={};\n // Vue.set(data,univerifyInfo.name,ret);\n commit(\"classGridStyleInfo\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n } });\n\n });\n },\n\n dicValueInfo: function dicValueInfo(_ref5,\n\n\n univerifyInfo) {var commit = _ref5.commit,state = _ref5.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDADicValueGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n state.thisDictName = univerifyInfo.dic_name;\n commit(\"dicValueInfo\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:289\");\n reject(err);\n } });\n\n });\n },\n\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(_ref6,\n\n\n univerifyInfo) {var commit = _ref6.commit,state = _ref6.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"PDA/PDADataObjRunCustomEvent\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:311\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"DataObjRunCustomEventInfo\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:321\");\n reject(err);\n } });\n\n });\n },\n\n querySelpsn: function querySelpsn(_ref7,\n\n\n univerifyInfo) {var commit = _ref7.commit,state = _ref7.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"selpsn/queryjson\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res);\n var ret = JSON.parse(res.data);\n if (ret.code == '00000') {\n commit(\"querySelpsn\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:353\");\n reject(err);\n } });\n\n });\n },\n\n ProjectGetAnalysisList: function ProjectGetAnalysisList(_ref8,\n\n\n univerifyInfo) {var commit = _ref8.commit,state = _ref8.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"bpm/ProjectGetAnalysisList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:375\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"ProjectGetAnalysisList\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:385\");\n reject(err);\n } });\n\n });\n },\n\n addclassattr: function addclassattr(_ref9,\n\n\n univerifyInfo) {var commit = _ref9.commit,state = _ref9.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"workspace/addclassattr\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:407\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"addclassattr\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:417\");\n reject(err);\n } });\n\n });\n } } });var _default =\n\n\n\n\nstore;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 13)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvaW5kZXguanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJtb2R1bGVzIiwiYXBwIiwic3RhdGUiLCJoYXNMb2dpbiIsImxvZ2luUHJvdmlkZXIiLCJhcmVhRnVuYyIsInRoaXNhcmVhRnVuY0lEIiwidGhpc0VkaXROYW1lIiwidGhpc0RpY3ROYW1lIiwiX2NsYXNzQXR0ckxpc3QiLCJfY2xhc3NHcmlkU3R5bGVJbmZvIiwiX2RpY1ZhbHVlSW5mbyIsIkRhdGFPYmpSdW5DdXN0b21FdmVudEluZm8iLCJxdWVyeVNlbHBzbiIsIlByb2plY3RHZXRBbmFseXNpc0xpc3QiLCJhZGRjbGFzc2F0dHIiLCJ1c2VybmFtZSIsInVzZXJwd2QiLCJ1cmwiLCJtdXRhdGlvbnMiLCJzZXRVcmwiLCJsb2dpbiIsInByb3ZpZGVyIiwicmV0Iiwic2V0YXJlYUZ1bmNpZCIsImlkIiwic2V0ZWRpdE5hbWUiLCJlZGl0TmFtZSIsInNldERpY3ROYW1lIiwiZGljdE5hbWUiLCJjbGFzc0F0dHJMaXN0Iiwic2V0IiwiY2xhc3NHcmlkU3R5bGVJbmZvIiwiZGF0YSIsImRpY1ZhbHVlSW5mbyIsImxvZ291dCIsImdldHRlcnMiLCJsb2dpbmlkIiwiZ2V0VXJsIiwiZ2V0Y2xhc3NBdHRyTGlzdCIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImdldGRpY1ZhbHVlSW5mbyIsImFjdGlvbnMiLCJ1bml2ZXJpZnlJbmZvIiwiY29tbWl0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXJ2ZXIiLCJ1bmFtZSIsInB3ZCIsImxlbmd0aCIsIm9wZW5pbmZvIiwidW5pIiwicmVxdWVzdCIsIm1ldGhvZCIsImRhdGFUeXBlIiwiaGVhZGVyIiwic3VjY2VzcyIsInJlcyIsImNvZGUiLCJtc2ciLCJmYWlsIiwiZXJyIiwiZGljX25hbWUiLCJKU09OIiwicGFyc2UiXSwibWFwcGluZ3MiOiJvSUFBQTtBQUNBOzs7QUFH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QyxrQkFBUSxFQUFDLE1BSkU7QUFLWEMsZ0JBQU0sRUFBRTtBQUNQLDRCQUFnQixtQ0FEVCxFQUxHOztBQVFYQyxpQkFBTyxFQUFFLGlCQUFDQyxHQUFELEVBQVM7QUFDakIseUJBQVlBLEdBQVo7QUFDQSxnQkFBTXBDLEdBQUcsR0FBR29DLEdBQUcsQ0FBQzFCLElBQWhCO0FBQ0EsZ0JBQUlWLEdBQUcsQ0FBQ3FDLElBQUosSUFBVSxPQUFkLEVBQXVCO0FBQ3RCaEIsb0JBQU0sQ0FBQyxjQUFELEVBQWdCckIsR0FBaEIsQ0FBTjtBQUNBdUIscUJBQU8sQ0FBQ3ZCLEdBQUQsQ0FBUDtBQUNBLGFBSEQsTUFHTztBQUNOd0Isb0JBQU0sQ0FBQyxFQUFDLFVBQVN4QixHQUFHLENBQUNzQyxHQUFkLEVBQUQsQ0FBTjtBQUNBO0FBQ0QsV0FqQlU7QUFrQlhDLGNBQUksRUFBRSxjQUFDQyxHQUFELEVBQVM7QUFDZCx5QkFBWUEsR0FBWjtBQUNBaEIsa0JBQU0sQ0FBQ2dCLEdBQUQsQ0FBTjtBQUNBLFdBckJVLEVBQVo7O0FBdUJBLE9BekJNLENBQVA7QUEwQkEsS0FoVU8sRUFoR21CLEVBQWYsQ0FBZCxDOzs7OztBQXFhZWpFLEsiLCJmaWxlIjoiNzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuaW1wb3J0IFZ1ZXggZnJvbSAndnVleCdcclxuVnVlLnVzZShWdWV4KVxyXG5cclxuaW1wb3J0IGFwcCBmcm9tICcuL21vZHVsZXMvYXBwJ1xyXG5jb25zdCBzdG9yZSA9IG5ldyBWdWV4LlN0b3JlKHtcclxuXHRtb2R1bGVzOntcclxuXHRcdGFwcCxcclxuXHR9LFxyXG5cdHN0YXRlOiB7XHJcblx0XHRoYXNMb2dpbjogZmFsc2UsXHJcblx0XHRsb2dpblByb3ZpZGVyOiBcIlwiLFxyXG5cdFx0YXJlYUZ1bmM6JycsXHJcblx0XHR0aGlzYXJlYUZ1bmNJRDonJyxcclxuXHRcdHRoaXNFZGl0TmFtZTonJyxcclxuXHRcdHRoaXNEaWN0TmFtZTonJyxcclxuXHRcdF9jbGFzc0F0dHJMaXN0Ont9LFxyXG5cdFx0X2NsYXNzR3JpZFN0eWxlSW5mbzp7fSxcclxuXHRcdF9kaWNWYWx1ZUluZm86e30sXHJcblx0XHREYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvOicnLFxyXG5cdFx0cXVlcnlTZWxwc246JycsXHJcblx0XHRQcm9qZWN0R2V0QW5hbHlzaXNMaXN0OicnLFxyXG5cdFx0YWRkY2xhc3NhdHRyOicnLFxyXG5cdFx0dXNlcm5hbWU6XCJzYVwiLFxyXG5cdFx0dXNlcnB3ZDpcIjAwMDBcIixcclxuXHRcdHVybDpcIjM5LjEwMC4yMjQuMjExXCIgLy8xOTIuMTY4LjEuMTg0OjUyMDAgMzYuMzMuMjQuOTQ6NTIwMFxyXG5cdH0sXHJcblx0bXV0YXRpb25zOiB7XHJcblx0XHRzZXRVcmwoc3RhdGUsIHVybCkge1xyXG5cdFx0XHRzdGF0ZS51cmwgPSB1cmw7XHJcblx0XHR9LFxyXG5cdFx0bG9naW4oc3RhdGUsIHByb3ZpZGVyKSB7XHJcblx0XHRcdHN0YXRlLmhhc0xvZ2luID0gdHJ1ZTtcclxuXHRcdFx0c3RhdGUubG9naW5Qcm92aWRlciA9IHByb3ZpZGVyO1xyXG5cdFx0fSxcclxuXHRcdGFyZWFGdW5jKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuYXJlYUZ1bmMgPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0c2V0YXJlYUZ1bmNpZChzdGF0ZSxpZCl7XHJcblx0XHRcdHN0YXRlLnRoaXNhcmVhRnVuY0lEPWlkO1xyXG5cdFx0fSxcclxuXHRcdHNldGVkaXROYW1lKHN0YXRlLGVkaXROYW1lKXtcclxuXHRcdFx0c3RhdGUudGhpc0VkaXROYW1lPWVkaXROYW1lO1xyXG5cdFx0fSxcclxuXHRcdHNldERpY3ROYW1lKHN0YXRlLGRpY3ROYW1lKXtcclxuXHRcdFx0c3RhdGUudGhpc0RpY3ROYW1lPWRpY3ROYW1lO1xyXG5cdFx0fSxcclxuXHRcdGNsYXNzQXR0ckxpc3Qoc3RhdGUsIHJldCkge1xyXG5cdFx0XHQvLyBzdGF0ZS5fY2xhc3NBdHRyTGlzdFtzdGF0ZS50aGlzYXJlYUZ1bmNJRF0gPSByZXQ7XHJcblx0XHRcdFZ1ZS5zZXQoc3RhdGUuX2NsYXNzQXR0ckxpc3Qsc3RhdGUudGhpc2FyZWFGdW5jSUQscmV0KTtcclxuXHRcdH0sXHJcblx0XHRjbGFzc0dyaWRTdHlsZUluZm8oc3RhdGUsIHJldCkge1xyXG5cdFx0XHQvLyBzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXSA9IHJldDtcclxuXHRcdFx0dmFyIGRhdGEgPSB7fTtcclxuXHRcdFx0aWYoc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF0pXHJcblx0XHRcdFx0ZGF0YSA9IHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdO1xyXG5cdFx0XHRWdWUuc2V0KGRhdGEsc3RhdGUudGhpc0VkaXROYW1lLHJldCk7XHJcblx0XHRcdFZ1ZS5zZXQoc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mbyxzdGF0ZS50aGlzYXJlYUZ1bmNJRCxkYXRhKTtcclxuXHRcdH0sXHJcblx0XHRkaWNWYWx1ZUluZm8oc3RhdGUsIHJldCkge1xyXG5cdFx0XHQvLyBzdGF0ZS5fZGljVmFsdWVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXSA9IHJldDtcclxuXHRcdFx0VnVlLnNldChzdGF0ZS5fZGljVmFsdWVJbmZvLHN0YXRlLnRoaXNEaWN0TmFtZSxyZXQpO1xyXG5cdFx0fSxcclxuXHRcdERhdGFPYmpSdW5DdXN0b21FdmVudEluZm8oc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5EYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvID0gcmV0O1xyXG5cdFx0fSxcclxuXHRcdHF1ZXJ5U2VscHNuKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUucXVlcnlTZWxwc24gPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0UHJvamVjdEdldEFuYWx5c2lzTGlzdChzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdHN0YXRlLlByb2plY3RHZXRBbmFseXNpc0xpc3QgPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0YWRkY2xhc3NhdHRyKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuYWRkY2xhc3NhdHRyID0gcmV0O1xyXG5cdFx0fSxcclxuXHRcdGxvZ291dChzdGF0ZSkge1xyXG5cdFx0XHRzdGF0ZS5oYXNMb2dpbiA9IGZhbHNlXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0Z2V0dGVyczoge1xyXG5cdFx0bG9naW5pZChzdGF0ZSkge1xyXG5cdFx0XHRyZXR1cm4gc3RhdGUubG9naW5Qcm92aWRlci5sb2dpbmlkXHJcblx0XHR9LFxyXG5cdFx0Z2V0VXJsKHN0YXRlKSB7XHJcblx0XHRcdHJldHVybiBzdGF0ZS51cmxcclxuXHRcdH0sXHJcblx0XHRnZXRjbGFzc0F0dHJMaXN0KHN0YXRlKXtcclxuXHRcdFx0cmV0dXJuIHN0YXRlLl9jbGFzc0F0dHJMaXN0W3N0YXRlLnRoaXNhcmVhRnVuY0lEXTtcclxuXHRcdH0sXHJcblx0XHRnZXRjbGFzc0dyaWRTdHlsZUluZm8oc3RhdGUpe1xyXG5cdFx0XHRpZihzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXSlcclxuXHRcdFx0XHRyZXR1cm4gc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF1bc3RhdGUudGhpc0VkaXROYW1lXTtcclxuXHRcdFx0ZWxzZSBcclxuXHRcdFx0XHRyZXR1cm4gXCJcIjtcclxuXHRcdH0sXHJcblx0XHRnZXRkaWNWYWx1ZUluZm8oc3RhdGUpe1xyXG5cdFx0XHRyZXR1cm4gc3RhdGUuX2RpY1ZhbHVlSW5mb1tzdGF0ZS50aGlzRGljdE5hbWVdO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRcclxuXHR9LFxyXG5cdGFjdGlvbnM6IHtcclxuXHRcdC8ve2NvbW1pdH0g6Kej5p6E77yMXHJcblx0XHQvL3VuaXZlcmlmeUluZm8g6Ieq5a6a5LmJ5Y+C5pWwXHJcblx0XHRsb2dpbjogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0dW5pdmVyaWZ5SW5mbyA9IHVuaXZlcmlmeUluZm8gfHwge307XHJcblx0XHRcdFx0dW5pdmVyaWZ5SW5mby5zZXJ2ZXIgPSB1bml2ZXJpZnlJbmZvLnNlcnZlciB8fCAnJztcclxuXHRcdFx0XHR1bml2ZXJpZnlJbmZvLnVuYW1lID0gdW5pdmVyaWZ5SW5mby51bmFtZSB8fCAnJztcclxuXHRcdFx0XHR1bml2ZXJpZnlJbmZvLnB3ZCA9IHVuaXZlcmlmeUluZm8ucHdkIHx8ICcnO1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHVuaXZlcmlmeUluZm8pO1xyXG5cdFx0XHRcdGlmICh1bml2ZXJpZnlJbmZvLnNlcnZlci5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOifmnI3liqHlmajlnLDlnYDkuI3og73kuLrnqbohJ30pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodW5pdmVyaWZ5SW5mby51bmFtZS5sZW5ndGggPCAyKSB7XHJcblx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6J+i0puWPt+acgOefreS4uiAyIOS4quWtl+espiEnfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh1bml2ZXJpZnlJbmZvLnB3ZC5sZW5ndGggPCAxKSB7XHJcblx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6J+WvhueggeacgOefreS4uiAx5Liq5a2X56ymISd9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmFyIG9wZW5pbmZvID0gXCJodHRwOi8vXCIgKyB1bml2ZXJpZnlJbmZvLnNlcnZlciArIFwiL1wiOyAvLytcIi9PcmdXZWJTXCJcclxuXHRcdFx0XHQvL+iuvue9ruWFqOWxgOWPguaVsO+8mnVybC3mnI3liqHlmajlnLDlnYBcclxuXHRcdFx0XHRjb21taXQoXCJzZXRVcmxcIixvcGVuaW5mbyk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gaWYgKHVuaXZlcmlmeUluZm8uc2VydmVyLnNwbGl0KCc6JykubGVuZ3RoIDwgMilcclxuXHRcdFx0XHQvLyBcdGNnaSA9IFwiaHR0cDovL1wiICsgdW5pdmVyaWZ5SW5mby5zZXJ2ZXIgKyBcIjo1MDEwXCI7IC8vL09yZ1dlYlNcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyBzZXRUaW1lb3V0KF89PntcclxuXHRcdFx0XHQvLyBcdHJlc29sdmUoXCIwMDAwMDAwMDAwMFwiKVxyXG5cdFx0XHRcdC8vIH0sMzAwMClcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhvcGVuaW5mbyArIFwiUERBL1NpZ25JblwiKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IG9wZW5pbmZvICsgXCJQREEvU2lnbkluXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0ICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzKTsgXHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImxvZ2luXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGFyZWFGdW5jOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHQgXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFBcmVhXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImFyZWFGdW5jXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGNsYXNzQXR0ckxpc3Q6IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBQXR0ckxpc3RcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiY2xhc3NBdHRyTGlzdFwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRjbGFzc0dyaWRTdHlsZUluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdCBcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQUdyaWRTdHlsZUdldEluZm9cIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdmFyIGRhdGEgPXt9O1xyXG5cdFx0XHRcdFx0XHRcdC8vIFZ1ZS5zZXQoZGF0YSx1bml2ZXJpZnlJbmZvLm5hbWUscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJjbGFzc0dyaWRTdHlsZUluZm9cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0ZGljVmFsdWVJbmZvOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHQgXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFEaWNWYWx1ZUdldEluZm9cIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0c3RhdGUudGhpc0RpY3ROYW1lID0gdW5pdmVyaWZ5SW5mby5kaWNfbmFtZVxyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImRpY1ZhbHVlSW5mb1wiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHREYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQURhdGFPYmpSdW5DdXN0b21FdmVudFwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdHF1ZXJ5U2VscHNuOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwic2VscHNuL3F1ZXJ5anNvblwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSBKU09OLnBhcnNlKHJlcy5kYXRhKTtcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwicXVlcnlTZWxwc25cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0UHJvamVjdEdldEFuYWx5c2lzTGlzdDogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcImJwbS9Qcm9qZWN0R2V0QW5hbHlzaXNMaXN0XCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhO1xyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJQcm9qZWN0R2V0QW5hbHlzaXNMaXN0XCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGFkZGNsYXNzYXR0cjogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIndvcmtzcGFjZS9hZGRjbGFzc2F0dHJcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImFkZGNsYXNzYXR0clwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBzdG9yZVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///78\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 74));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 79));\n\n\nvar _app = _interopRequireDefault(__webpack_require__(/*! ./modules/app */ 80));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n modules: {\n app: _app.default },\n\n state: {\n hasLogin: false,\n loginProvider: \"\",\n areaFunc: '',\n thisareaFuncID: '',\n thisEditName: '',\n thisDictName: '',\n _classAttrList: {},\n _classGridStyleInfo: {},\n _dicValueInfo: {},\n DataObjRunCustomEventInfo: '',\n querySelpsn: '',\n ProjectGetAnalysisList: '',\n addclassattr: '',\n username: \"sa\",\n userpwd: \"0000\",\n url: \"39.100.224.211\" //192.168.1.184:5200 36.33.24.94:5200\n },\n mutations: {\n setUrl: function setUrl(state, url) {\n state.url = url;\n },\n login: function login(state, provider) {\n state.hasLogin = true;\n state.loginProvider = provider;\n },\n areaFunc: function areaFunc(state, ret) {\n state.areaFunc = ret;\n },\n setareaFuncid: function setareaFuncid(state, id) {\n state.thisareaFuncID = id;\n },\n seteditName: function seteditName(state, editName) {\n state.thisEditName = editName;\n },\n setDictName: function setDictName(state, dictName) {\n state.thisDictName = dictName;\n },\n classAttrList: function classAttrList(state, ret) {\n // state._classAttrList[state.thisareaFuncID] = ret;\n _vue.default.set(state._classAttrList, state.thisareaFuncID, ret);\n },\n classGridStyleInfo: function classGridStyleInfo(state, ret) {\n // state._classGridStyleInfo[state.thisareaFuncID] = ret;\n var data = {};\n if (state._classGridStyleInfo[state.thisareaFuncID])\n data = state._classGridStyleInfo[state.thisareaFuncID];\n _vue.default.set(data, state.thisEditName, ret);\n _vue.default.set(state._classGridStyleInfo, state.thisareaFuncID, data);\n },\n dicValueInfo: function dicValueInfo(state, ret) {\n // state._dicValueInfo[state.thisareaFuncID] = ret;\n _vue.default.set(state._dicValueInfo, state.thisDictName, ret);\n },\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(state, ret) {\n state.DataObjRunCustomEventInfo = ret;\n },\n querySelpsn: function querySelpsn(state, ret) {\n state.querySelpsn = ret;\n },\n ProjectGetAnalysisList: function ProjectGetAnalysisList(state, ret) {\n state.ProjectGetAnalysisList = ret;\n },\n addclassattr: function addclassattr(state, ret) {\n state.addclassattr = ret;\n },\n logout: function logout(state) {\n state.hasLogin = false;\n } },\n\n getters: {\n loginid: function loginid(state) {\n return state.loginProvider.loginid;\n },\n getUrl: function getUrl(state) {\n return state.url;\n },\n getclassAttrList: function getclassAttrList(state) {\n return state._classAttrList[state.thisareaFuncID];\n },\n getclassGridStyleInfo: function getclassGridStyleInfo(state) {\n if (state._classGridStyleInfo[state.thisareaFuncID])\n return state._classGridStyleInfo[state.thisareaFuncID][state.thisEditName];else\n\n return \"\";\n },\n getdicValueInfo: function getdicValueInfo(state) {\n return state._dicValueInfo[state.thisDictName];\n } },\n\n\n\n actions: {\n //{commit} 瑙f瀯锛孿n //univerifyInfo 鑷畾涔夊弬鏁癨n login: function login(_ref,\n\n\n univerifyInfo) {var commit = _ref.commit,state = _ref.state;\n return new Promise(function (resolve, reject) {\n univerifyInfo = univerifyInfo || {};\n univerifyInfo.server = univerifyInfo.server || '';\n univerifyInfo.uname = univerifyInfo.uname || '';\n univerifyInfo.pwd = univerifyInfo.pwd || '';\n // console.log(univerifyInfo);\n if (univerifyInfo.server.length == 0) {\n reject({ \"errMsg\": '鏈嶅姟鍣ㄥ湴鍧�笉鑳戒负绌�' });\n }\n if (univerifyInfo.uname.length < 2) {\n reject({ \"errMsg\": '璐﹀彿鏈�煭涓�2 涓瓧绗�' });\n }\n if (univerifyInfo.pwd.length < 1) {\n reject({ \"errMsg\": '瀵嗙爜鏈�煭涓�1涓瓧绗�' });\n }\n var openinfo = \"http://\" + univerifyInfo.server + \"/\"; //+\"/OrgWebS\"\n //璁剧疆鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�n commit(\"setUrl\", openinfo);\n\n // if (univerifyInfo.server.split(':').length < 2)\n // \tcgi = \"http://\" + univerifyInfo.server + \":5010\"; ///OrgWebS\n\n // setTimeout(_=>{\n // \tresolve(\"00000000000\")\n // },3000)\n // console.log(openinfo + \"PDA/SignIn\");\n uni.request({\n url: openinfo + \"PDA/SignIn\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res); \n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"login\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:154\");\n reject(err);\n } });\n\n });\n },\n\n areaFunc: function areaFunc(_ref2,\n\n\n univerifyInfo) {var commit = _ref2.commit,state = _ref2.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAArea\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"areaFunc\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n } });\n\n });\n },\n\n classAttrList: function classAttrList(_ref3,\n\n\n univerifyInfo) {var commit = _ref3.commit,state = _ref3.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAAttrList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:210\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"classAttrList\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n } });\n\n });\n },\n\n classGridStyleInfo: function classGridStyleInfo(_ref4,\n\n\n univerifyInfo) {var commit = _ref4.commit,state = _ref4.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAGridStyleGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:243\");\n var ret = res.data;\n if (ret.code == '00000') {\n // var data ={};\n // Vue.set(data,univerifyInfo.name,ret);\n commit(\"classGridStyleInfo\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n } });\n\n });\n },\n\n dicValueInfo: function dicValueInfo(_ref5,\n\n\n univerifyInfo) {var commit = _ref5.commit,state = _ref5.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDADicValueGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n state.thisDictName = univerifyInfo.dic_name;\n commit(\"dicValueInfo\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:289\");\n reject(err);\n } });\n\n });\n },\n\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(_ref6,\n\n\n univerifyInfo) {var commit = _ref6.commit,state = _ref6.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"PDA/PDADataObjRunCustomEvent\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:311\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"DataObjRunCustomEventInfo\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:321\");\n reject(err);\n } });\n\n });\n },\n\n querySelpsn: function querySelpsn(_ref7,\n\n\n univerifyInfo) {var commit = _ref7.commit,state = _ref7.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"selpsn/queryjson\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n // console.log(res);\n var ret = JSON.parse(res.data);\n if (ret.code == '00000') {\n commit(\"querySelpsn\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:353\");\n reject(err);\n } });\n\n });\n },\n\n ProjectGetAnalysisList: function ProjectGetAnalysisList(_ref8,\n\n\n univerifyInfo) {var commit = _ref8.commit,state = _ref8.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"bpm/ProjectGetAnalysisList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:375\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"ProjectGetAnalysisList\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": ret.msg });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:385\");\n reject(err);\n } });\n\n });\n },\n\n addclassattr: function addclassattr(_ref9,\n\n\n univerifyInfo) {var commit = _ref9.commit,state = _ref9.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"workspace/addclassattr\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded' },\n\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:407\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"addclassattr\", ret);\n resolve(ret);\n } else {\n reject({ \"errMsg\": JSON.stringify(ret) });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:417\");\n reject(err);\n } });\n\n });\n } } });var _default =\n\n\n\n\nstore;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 13)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvaW5kZXguanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJtb2R1bGVzIiwiYXBwIiwic3RhdGUiLCJoYXNMb2dpbiIsImxvZ2luUHJvdmlkZXIiLCJhcmVhRnVuYyIsInRoaXNhcmVhRnVuY0lEIiwidGhpc0VkaXROYW1lIiwidGhpc0RpY3ROYW1lIiwiX2NsYXNzQXR0ckxpc3QiLCJfY2xhc3NHcmlkU3R5bGVJbmZvIiwiX2RpY1ZhbHVlSW5mbyIsIkRhdGFPYmpSdW5DdXN0b21FdmVudEluZm8iLCJxdWVyeVNlbHBzbiIsIlByb2plY3RHZXRBbmFseXNpc0xpc3QiLCJhZGRjbGFzc2F0dHIiLCJ1c2VybmFtZSIsInVzZXJwd2QiLCJ1cmwiLCJtdXRhdGlvbnMiLCJzZXRVcmwiLCJsb2dpbiIsInByb3ZpZGVyIiwicmV0Iiwic2V0YXJlYUZ1bmNpZCIsImlkIiwic2V0ZWRpdE5hbWUiLCJlZGl0TmFtZSIsInNldERpY3ROYW1lIiwiZGljdE5hbWUiLCJjbGFzc0F0dHJMaXN0Iiwic2V0IiwiY2xhc3NHcmlkU3R5bGVJbmZvIiwiZGF0YSIsImRpY1ZhbHVlSW5mbyIsImxvZ291dCIsImdldHRlcnMiLCJsb2dpbmlkIiwiZ2V0VXJsIiwiZ2V0Y2xhc3NBdHRyTGlzdCIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImdldGRpY1ZhbHVlSW5mbyIsImFjdGlvbnMiLCJ1bml2ZXJpZnlJbmZvIiwiY29tbWl0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXJ2ZXIiLCJ1bmFtZSIsInB3ZCIsImxlbmd0aCIsIm9wZW5pbmZvIiwidW5pIiwicmVxdWVzdCIsIm1ldGhvZCIsImRhdGFUeXBlIiwiaGVhZGVyIiwic3VjY2VzcyIsInJlcyIsImNvZGUiLCJtc2ciLCJmYWlsIiwiZXJyIiwiZGljX25hbWUiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiJvSUFB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QUUsTUFIRztBQUlYQyxrQkFBUSxFQUFDLE1BSkU7QUFLWEMsZ0JBQU0sRUFBRTtBQUNQLDRCQUFnQixtQ0FEVCxFQUxHOztBQVFYQyxpQkFBTyxFQUFFLGlCQUFDQyxHQUFELEVBQVM7QUFDakIseUJBQVlBLEdBQVo7QUFDQSxnQkFBTXBDLEdBQUcsR0FBR29DLEdBQUcsQ0FBQzFCLElBQWhCO0FBQ0EsZ0JBQUlWLEdBQUcsQ0FBQ3FDLElBQUosSUFBVSxPQUFkLEVBQXVCO0FBQ3RCaEIsb0JBQU0sQ0FBQyxjQUFELEVBQWdCckIsR0FBaEIsQ0FBTjtBQUNBdUIscUJBQU8sQ0FBQ3ZCLEdBQUQsQ0FBUDtBQUNBLGFBSEQsTUFHTztBQUNOd0Isb0JBQU0sQ0FBQyxFQUFDLFVBQVNrQixJQUFJLENBQUNFLFNBQUwsQ0FBZTVDLEdBQWYsQ0FBVixFQUFELENBQU47QUFDQTtBQUNELFdBakJVO0FBa0JYdUMsY0FBSSxFQUFFLGNBQUNDLEdBQUQsRUFBUztBQUNkLHlCQUFZQSxHQUFaO0FBQ0FoQixrQkFBTSxDQUFDZ0IsR0FBRCxDQUFOO0FBQ0EsV0FyQlUsRUFBWjs7QUF1QkEsT0F6Qk0sQ0FBUDtBQTBCQSxLQWhVTyxFQWhHbUIsRUFBZixDQUFkLEM7Ozs7O0FBcWFlakUsSyIsImZpbGUiOiI3OC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWdWUgZnJvbSAndnVlJ1xyXG5pbXBvcnQgVnVleCBmcm9tICd2dWV4J1xyXG5WdWUudXNlKFZ1ZXgpXHJcblxyXG5pbXBvcnQgYXBwIGZyb20gJy4vbW9kdWxlcy9hcHAnXHJcbmNvbnN0IHN0b3JlID0gbmV3IFZ1ZXguU3RvcmUoe1xyXG5cdG1vZHVsZXM6e1xyXG5cdFx0YXBwLFxyXG5cdH0sXHJcblx0c3RhdGU6IHtcclxuXHRcdGhhc0xvZ2luOiBmYWxzZSxcclxuXHRcdGxvZ2luUHJvdmlkZXI6IFwiXCIsXHJcblx0XHRhcmVhRnVuYzonJyxcclxuXHRcdHRoaXNhcmVhRnVuY0lEOicnLFxyXG5cdFx0dGhpc0VkaXROYW1lOicnLFxyXG5cdFx0dGhpc0RpY3ROYW1lOicnLFxyXG5cdFx0X2NsYXNzQXR0ckxpc3Q6e30sXHJcblx0XHRfY2xhc3NHcmlkU3R5bGVJbmZvOnt9LFxyXG5cdFx0X2RpY1ZhbHVlSW5mbzp7fSxcclxuXHRcdERhdGFPYmpSdW5DdXN0b21FdmVudEluZm86JycsXHJcblx0XHRxdWVyeVNlbHBzbjonJyxcclxuXHRcdFByb2plY3RHZXRBbmFseXNpc0xpc3Q6JycsXHJcblx0XHRhZGRjbGFzc2F0dHI6JycsXHJcblx0XHR1c2VybmFtZTpcInNhXCIsXHJcblx0XHR1c2VycHdkOlwiMDAwMFwiLFxyXG5cdFx0dXJsOlwiMzkuMTAwLjIyNC4yMTFcIiAvLzE5Mi4xNjguMS4xODQ6NTIwMCAzNi4zMy4yNC45NDo1MjAwXHJcblx0fSxcclxuXHRtdXRhdGlvbnM6IHtcclxuXHRcdHNldFVybChzdGF0ZSwgdXJsKSB7XHJcblx0XHRcdHN0YXRlLnVybCA9IHVybDtcclxuXHRcdH0sXHJcblx0XHRsb2dpbihzdGF0ZSwgcHJvdmlkZXIpIHtcclxuXHRcdFx0c3RhdGUuaGFzTG9naW4gPSB0cnVlO1xyXG5cdFx0XHRzdGF0ZS5sb2dpblByb3ZpZGVyID0gcHJvdmlkZXI7XHJcblx0XHR9LFxyXG5cdFx0YXJlYUZ1bmMoc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5hcmVhRnVuYyA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRzZXRhcmVhRnVuY2lkKHN0YXRlLGlkKXtcclxuXHRcdFx0c3RhdGUudGhpc2FyZWFGdW5jSUQ9aWQ7XHJcblx0XHR9LFxyXG5cdFx0c2V0ZWRpdE5hbWUoc3RhdGUsZWRpdE5hbWUpe1xyXG5cdFx0XHRzdGF0ZS50aGlzRWRpdE5hbWU9ZWRpdE5hbWU7XHJcblx0XHR9LFxyXG5cdFx0c2V0RGljdE5hbWUoc3RhdGUsZGljdE5hbWUpe1xyXG5cdFx0XHRzdGF0ZS50aGlzRGljdE5hbWU9ZGljdE5hbWU7XHJcblx0XHR9LFxyXG5cdFx0Y2xhc3NBdHRyTGlzdChzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdC8vIHN0YXRlLl9jbGFzc0F0dHJMaXN0W3N0YXRlLnRoaXNhcmVhRnVuY0lEXSA9IHJldDtcclxuXHRcdFx0VnVlLnNldChzdGF0ZS5fY2xhc3NBdHRyTGlzdCxzdGF0ZS50aGlzYXJlYUZ1bmNJRCxyZXQpO1xyXG5cdFx0fSxcclxuXHRcdGNsYXNzR3JpZFN0eWxlSW5mbyhzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdC8vIHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdID0gcmV0O1xyXG5cdFx0XHR2YXIgZGF0YSA9IHt9O1xyXG5cdFx0XHRpZihzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXSlcclxuXHRcdFx0XHRkYXRhID0gc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF07XHJcblx0XHRcdFZ1ZS5zZXQoZGF0YSxzdGF0ZS50aGlzRWRpdE5hbWUscmV0KTtcclxuXHRcdFx0VnVlLnNldChzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvLHN0YXRlLnRoaXNhcmVhRnVuY0lELGRhdGEpO1xyXG5cdFx0fSxcclxuXHRcdGRpY1ZhbHVlSW5mbyhzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdC8vIHN0YXRlLl9kaWNWYWx1ZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdID0gcmV0O1xyXG5cdFx0XHRWdWUuc2V0KHN0YXRlLl9kaWNWYWx1ZUluZm8sc3RhdGUudGhpc0RpY3ROYW1lLHJldCk7XHJcblx0XHR9LFxyXG5cdFx0RGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbyhzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdHN0YXRlLkRhdGFPYmpSdW5DdXN0b21FdmVudEluZm8gPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0cXVlcnlTZWxwc24oc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5xdWVyeVNlbHBzbiA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRQcm9qZWN0R2V0QW5hbHlzaXNMaXN0KHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuUHJvamVjdEdldEFuYWx5c2lzTGlzdCA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRhZGRjbGFzc2F0dHIoc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5hZGRjbGFzc2F0dHIgPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0bG9nb3V0KHN0YXRlKSB7XHJcblx0XHRcdHN0YXRlLmhhc0xvZ2luID0gZmFsc2VcclxuXHRcdH0sXHJcblx0fSxcclxuXHRnZXR0ZXJzOiB7XHJcblx0XHRsb2dpbmlkKHN0YXRlKSB7XHJcblx0XHRcdHJldHVybiBzdGF0ZS5sb2dpblByb3ZpZGVyLmxvZ2luaWRcclxuXHRcdH0sXHJcblx0XHRnZXRVcmwoc3RhdGUpIHtcclxuXHRcdFx0cmV0dXJuIHN0YXRlLnVybFxyXG5cdFx0fSxcclxuXHRcdGdldGNsYXNzQXR0ckxpc3Qoc3RhdGUpe1xyXG5cdFx0XHRyZXR1cm4gc3RhdGUuX2NsYXNzQXR0ckxpc3Rbc3RhdGUudGhpc2FyZWFGdW5jSURdO1xyXG5cdFx0fSxcclxuXHRcdGdldGNsYXNzR3JpZFN0eWxlSW5mbyhzdGF0ZSl7XHJcblx0XHRcdGlmKHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdKVxyXG5cdFx0XHRcdHJldHVybiBzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXVtzdGF0ZS50aGlzRWRpdE5hbWVdO1xyXG5cdFx0XHRlbHNlIFxyXG5cdFx0XHRcdHJldHVybiBcIlwiO1xyXG5cdFx0fSxcclxuXHRcdGdldGRpY1ZhbHVlSW5mbyhzdGF0ZSl7XHJcblx0XHRcdHJldHVybiBzdGF0ZS5fZGljVmFsdWVJbmZvW3N0YXRlLnRoaXNEaWN0TmFtZV07XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdFxyXG5cdH0sXHJcblx0YWN0aW9uczoge1xyXG5cdFx0Ly97Y29tbWl0fSDop6PmnoTvvIxcclxuXHRcdC8vdW5pdmVyaWZ5SW5mbyDoh6rlrprkuYnlj4LmlbBcclxuXHRcdGxvZ2luOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHR1bml2ZXJpZnlJbmZvID0gdW5pdmVyaWZ5SW5mbyB8fCB7fTtcclxuXHRcdFx0XHR1bml2ZXJpZnlJbmZvLnNlcnZlciA9IHVuaXZlcmlmeUluZm8uc2VydmVyIHx8ICcnO1xyXG5cdFx0XHRcdHVuaXZlcmlmeUluZm8udW5hbWUgPSB1bml2ZXJpZnlJbmZvLnVuYW1lIHx8ICcnO1xyXG5cdFx0XHRcdHVuaXZlcmlmeUluZm8ucHdkID0gdW5pdmVyaWZ5SW5mby5wd2QgfHwgJyc7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codW5pdmVyaWZ5SW5mbyk7XHJcblx0XHRcdFx0aWYgKHVuaXZlcmlmeUluZm8uc2VydmVyLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6J+acjeWKoeWZqOWcsOWdgOS4jeiDveS4uuepuiEnfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh1bml2ZXJpZnlJbmZvLnVuYW1lLmxlbmd0aCA8IDIpIHtcclxuXHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjon6LSm5Y+35pyA55+t5Li6IDIg5Liq5a2X56ymISd9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHVuaXZlcmlmeUluZm8ucHdkLmxlbmd0aCA8IDEpIHtcclxuXHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjon5a+G56CB5pyA55+t5Li6IDHkuKrlrZfnrKYhJ30pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR2YXIgb3BlbmluZm8gPSBcImh0dHA6Ly9cIiArIHVuaXZlcmlmeUluZm8uc2VydmVyICsgXCIvXCI7IC8vK1wiL09yZ1dlYlNcIlxyXG5cdFx0XHRcdC8v6K6+572u5YWo5bGA5Y+C5pWw77yadXJsLeacjeWKoeWZqOWcsOWdgFxyXG5cdFx0XHRcdGNvbW1pdChcInNldFVybFwiLG9wZW5pbmZvKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyBpZiAodW5pdmVyaWZ5SW5mby5zZXJ2ZXIuc3BsaXQoJzonKS5sZW5ndGggPCAyKVxyXG5cdFx0XHRcdC8vIFx0Y2dpID0gXCJodHRwOi8vXCIgKyB1bml2ZXJpZnlJbmZvLnNlcnZlciArIFwiOjUwMTBcIjsgLy8vT3JnV2ViU1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC8vIHNldFRpbWVvdXQoXz0+e1xyXG5cdFx0XHRcdC8vIFx0cmVzb2x2ZShcIjAwMDAwMDAwMDAwXCIpXHJcblx0XHRcdFx0Ly8gfSwzMDAwKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKG9wZW5pbmZvICsgXCJQREEvU2lnbkluXCIpO1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogb3BlbmluZm8gKyBcIlBEQS9TaWduSW5cIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHQgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMpOyBcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwibG9naW5cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0YXJlYUZ1bmM6IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdCBcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQUFyZWFcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiYXJlYUZ1bmNcIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0Y2xhc3NBdHRyTGlzdDogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFBdHRyTGlzdFwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJjbGFzc0F0dHJMaXN0XCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGNsYXNzR3JpZFN0eWxlSW5mbzogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0IFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBR3JpZFN0eWxlR2V0SW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyB2YXIgZGF0YSA9e307XHJcblx0XHRcdFx0XHRcdFx0Ly8gVnVlLnNldChkYXRhLHVuaXZlcmlmeUluZm8ubmFtZSxyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImNsYXNzR3JpZFN0eWxlSW5mb1wiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRkaWNWYWx1ZUluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdCBcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQURpY1ZhbHVlR2V0SW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRzdGF0ZS50aGlzRGljdE5hbWUgPSB1bml2ZXJpZnlJbmZvLmRpY19uYW1lXHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiZGljVmFsdWVJbmZvXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdERhdGFPYmpSdW5DdXN0b21FdmVudEluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBRGF0YU9ialJ1bkN1c3RvbUV2ZW50XCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcIkRhdGFPYmpSdW5DdXN0b21FdmVudEluZm9cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0cXVlcnlTZWxwc246IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJzZWxwc24vcXVlcnlqc29uXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IEpTT04ucGFyc2UocmVzLmRhdGEpO1xyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJxdWVyeVNlbHBzblwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRQcm9qZWN0R2V0QW5hbHlzaXNMaXN0OiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiYnBtL1Byb2plY3RHZXRBbmFseXNpc0xpc3RcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcIlByb2plY3RHZXRBbmFseXNpc0xpc3RcIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0YWRkY2xhc3NhdHRyOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwid29ya3NwYWNlL2FkZGNsYXNzYXR0clwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YTtcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiYWRkY2xhc3NhdHRyXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOkpTT04uc3RyaW5naWZ5KHJldCl9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxufSlcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHN0b3JlXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///78\n"); /***/ }), /* 79 */ -- Gitblit v1.9.1