mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-22 21:14:42 +00:00
2 lines
91 KiB
JavaScript
Vendored
2 lines
91 KiB
JavaScript
Vendored
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{"1nld":function(n,t,a){var e=a("krgs");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},"2Sb1":function(n,t,a){"use strict";var e={name:"PageHeader",props:["title","canBack"],components:{ChevronLeftIcon:a("CjXH").g}},i=(a("JOXf"),a("KHd+")),r=Object(i.a)(e,(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("div",{staticClass:"page-header"},[n.canBack?a("div",{staticClass:"go-back",on:{click:function(t){return n.$router.back()}}},[a("chevron-left-icon",{attrs:{size:"17"}})],1):n._e(),n._v(" "),a("div",{staticClass:"content"},[a("h1",{staticClass:"title"},[n._v(n._s(n.title))])])])}),[],!1,null,"9fd0a424",null);t.a=r.exports},"3eeM":function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,".page-header[data-v-9fd0a424] {\n display: flex;\n align-items: center;\n background: white;\n z-index: 9;\n width: 100%;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n.page-header .title[data-v-9fd0a424] {\n font-size: 1.125em;\n font-weight: 700;\n color: #1B2539;\n}\n.page-header .go-back[data-v-9fd0a424] {\n margin-right: 10px;\n cursor: pointer;\n}\n.page-header .go-back svg[data-v-9fd0a424] {\n vertical-align: middle;\n margin-top: -4px;\n}\n@media only screen and (max-width: 960px) {\n.page-header .title[data-v-9fd0a424] {\n font-size: 1.125em;\n}\n}\n@media only screen and (max-width: 690px) {\n.page-header[data-v-9fd0a424] {\n display: none;\n}\n}\n@media (prefers-color-scheme: dark) {\n.page-header[data-v-9fd0a424] {\n background: #131414;\n}\n.page-header .title[data-v-9fd0a424] {\n color: #bec6cf;\n}\n.page-header .icon path[data-v-9fd0a424] {\n fill: #00BC7E;\n}\n}\n",""])},"3sV/":function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,".page-tab-group[data-v-445d3e0e] {\n margin-bottom: 65px;\n}\n",""])},"5hN9":function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,"",""])},"8N1S":function(n,t,a){var e=a("3sV/");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},"9sCX":function(n,t,a){"use strict";var e=a("8N1S");a.n(e).a},BfOa:function(n,t,a){var e=a("5hN9");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},JOXf:function(n,t,a){"use strict";var e=a("nr4+");a.n(e).a},TJPC:function(n,t,a){"use strict";a.d(t,"a",(function(){return r}));function e(n){return null==n}function i(n){return Array.isArray(n)&&0===n.length}var r={validate:function(n,t){var a=(void 0===t?{allowFalse:!0}:t).allowFalse,r={valid:!1,required:!0};return e(n)||i(n)?r:!1!==n||a?(r.valid=!!String(n).trim().length,r):r},params:[{name:"allowFalse",default:!0}],computesRequired:!0}},WP52:function(n,t,a){"use strict";var e=a("fLvH");a.n(e).a},aXwl:function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,".theme-label[data-v-214ff764] {\n font-size: 0.875em;\n color: #00BC7E;\n font-weight: 600;\n display: block;\n margin-bottom: 20px;\n}\n",""])},bmCq:function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,".form-label[data-v-c8899810] {\n display: flex;\n align-items: center;\n margin-bottom: 30px;\n}\n.form-label .icon[data-v-c8899810] {\n margin-right: 10px;\n}\n.form-label .icon path[data-v-c8899810] {\n color: inherit;\n}\n.form-label .label[data-v-c8899810] {\n font-size: 1.125em;\n font-weight: 700;\n}\n@media (prefers-color-scheme: dark) {\n.form-label .label[data-v-c8899810] {\n color: #bec6cf;\n}\n}\n",""])},coWe:function(n,t,a){var e=a("aXwl");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},eZ9V:function(n,t,a){"use strict";var e={name:"FormLabel",components:{Edit2Icon:a("CjXH").r}},i=(a("WP52"),a("KHd+")),r=Object(i.a)(e,(function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"form-label"},[t("edit-2-icon",{staticClass:"icon text-theme",attrs:{size:"22"}}),this._v(" "),t("b",{staticClass:"label"},[this._t("default")],2)],1)}),[],!1,null,"c8899810",null);t.a=r.exports},fLvH:function(n,t,a){var e=a("bmCq");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},gahf:function(n,t,a){"use strict";var e={name:"PageTabGroup"},i=(a("9sCX"),a("KHd+")),r=Object(i.a)(e,(function(){var n=this.$createElement;return(this._self._c||n)("div",{staticClass:"page-tab-group"},[this._t("default")],2)}),[],!1,null,"445d3e0e",null);t.a=r.exports},hJ7W:function(n,t,a){"use strict";var e=a("BfOa");a.n(e).a},krgs:function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,"#loading-bar-spinner.spinner[data-v-1df66002] {\n left: 50%;\n margin-left: -20px;\n top: 50%;\n margin-top: -20px;\n position: absolute;\n z-index: 19 !important;\n -webkit-animation: loading-bar-spinner-data-v-1df66002 400ms linear infinite;\n animation: loading-bar-spinner-data-v-1df66002 400ms linear infinite;\n}\n#loading-bar-spinner.spinner .spinner-icon[data-v-1df66002] {\n width: 40px;\n height: 40px;\n border: solid 4px transparent;\n border-radius: 50%;\n}\n@-webkit-keyframes loading-bar-spinner-data-v-1df66002 {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n@keyframes loading-bar-spinner-data-v-1df66002 {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n",""])},"nr4+":function(n,t,a){var e=a("3eeM");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},owoR:function(n,t,a){"use strict";var e={name:"TextLabel"},i=(a("wSxI"),a("KHd+")),r=Object(i.a)(e,(function(){var n=this.$createElement;return(this._self._c||n)("b",{staticClass:"theme-label"},[this._t("default")],2)}),[],!1,null,"214ff764",null);t.a=r.exports},qefO:function(n,t,a){"use strict";var e={name:"PageTab",props:["isLoading"],components:{Spinner:a("zTYo").a}},i=(a("hJ7W"),a("KHd+")),r=Object(i.a)(e,(function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"page-tab"},[t("div",{directives:[{name:"show",rawName:"v-show",value:this.isLoading,expression:"isLoading"}],attrs:{id:"loader"}},[t("Spinner")],1),this._v(" "),this._t("default")],2)}),[],!1,null,"71034d34",null);t.a=r.exports},ts7n:function(n,t,a){"use strict";var e=a("1nld");a.n(e).a},wSxI:function(n,t,a){"use strict";var e=a("coWe");a.n(e).a},zTYo:function(n,t,a){"use strict";var e={name:"Spinner"},i=(a("ts7n"),a("KHd+")),r=Object(i.a)(e,(function(){var n=this.$createElement;this._self._c;return this._m(0)}),[function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"spinner",attrs:{id:"loading-bar-spinner"}},[t("div",{staticClass:"spinner-icon border-top-theme border-left-theme"})])}],!1,null,"1df66002",null);t.a=r.exports}}]);
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9GaWxlc1ZpZXcvU3Bpbm5lci52dWU/ODhjYSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvUGFnZUhlYWRlci52dWU/NWVjOSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvUGFnZUhlYWRlci52dWU/NGIxNyIsIndlYnBhY2s6Ly8vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL1BhZ2VIZWFkZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9QYWdlSGVhZGVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvUGFnZUhlYWRlci52dWU/YmY3YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvTGF5b3V0L1BhZ2VUYWJHcm91cC52dWU/YmZkYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvTGF5b3V0L1BhZ2VUYWIudnVlP2FiNGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL0xheW91dC9QYWdlVGFiR3JvdXAudnVlP2NiOTIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL0xheW91dC9QYWdlVGFiR3JvdXAudnVlPzgyYjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL0xheW91dC9QYWdlVGFiLnZ1ZT9kMTYyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9QYWdlSGVhZGVyLnZ1ZT9lYmM1Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy92ZWUtdmFsaWRhdGUvZGlzdC9ydWxlcy5qcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvRm9ybXMvRm9ybUxhYmVsLnZ1ZT8wOTgwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9UaGVtZUxhYmVsLnZ1ZT8zZmNmIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9Gb3Jtcy9Gb3JtTGFiZWwudnVlPzVkYjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL1RoZW1lTGFiZWwudnVlP2IyYTIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL0Zvcm1zL0Zvcm1MYWJlbC52dWU/ODYyOCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvRm9ybXMvRm9ybUxhYmVsLnZ1ZT9mZmQ5Iiwid2VicGFjazovLy9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvRm9ybXMvRm9ybUxhYmVsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvRm9ybXMvRm9ybUxhYmVsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvRm9ybXMvRm9ybUxhYmVsLnZ1ZT8yY2YxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9MYXlvdXQvUGFnZVRhYkdyb3VwLnZ1ZT8yZmNhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9MYXlvdXQvUGFnZVRhYkdyb3VwLnZ1ZT85YThmIiwid2VicGFjazovLy9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvTGF5b3V0L1BhZ2VUYWJHcm91cC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL0xheW91dC9QYWdlVGFiR3JvdXAudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9MYXlvdXQvUGFnZVRhYi52dWU/OTJlNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9GaWxlc1ZpZXcvU3Bpbm5lci52dWU/NDA1MyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvUGFnZUhlYWRlci52dWU/M2UyNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvVGhlbWVMYWJlbC52dWU/OWM2YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvVGhlbWVMYWJlbC52dWU/ZDZkZSIsIndlYnBhY2s6Ly8vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL1RoZW1lTGFiZWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9UaGVtZUxhYmVsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvTGF5b3V0L1BhZ2VUYWIudnVlPzAyNDEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL0xheW91dC9QYWdlVGFiLnZ1ZT80ZDVlIiwid2VicGFjazovLy9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9PdGhlcnMvTGF5b3V0L1BhZ2VUYWIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL090aGVycy9MYXlvdXQvUGFnZVRhYi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvRmlsZXNWaWV3L1NwaW5uZXIudnVlPzA2NzIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvT3RoZXJzL1RoZW1lTGFiZWwudnVlPzQyZGMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvRmlsZXNWaWV3L1NwaW5uZXIudnVlPzQwMWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvRmlsZXNWaWV3L1NwaW5uZXIudnVlPzMzYzciLCJ3ZWJwYWNrOi8vL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL0ZpbGVzVmlldy9TcGlubmVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9GaWxlc1ZpZXcvU3Bpbm5lci52dWUiXSwibmFtZXMiOlsiY29udGVudCIsIm1vZHVsZSIsImkiLCJvcHRpb25zIiwidHJhbnNmb3JtIiwidW5kZWZpbmVkIiwibG9jYWxzIiwiZXhwb3J0cyIsImNvbXBvbmVudCIsIl92bSIsInRoaXMiLCJfaCIsIiRjcmVhdGVFbGVtZW50IiwiX2MiLCJfc2VsZiIsInN0YXRpY0NsYXNzIiwib24iLCIkZXZlbnQiLCIkcm91dGVyIiwiYmFjayIsImF0dHJzIiwiX2UiLCJfdiIsIl9zIiwidGl0bGUiLCJwdXNoIiwiaXNOdWxsT3JVbmRlZmluZWQiLCJ2YWx1ZSIsImlzRW1wdHlBcnJheSIsImFyciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInJlcXVpcmVkIiwidmFsaWRhdGUiLCJfYSIsImFsbG93RmFsc2UiLCJyZXN1bHQiLCJ2YWxpZCIsIlN0cmluZyIsInRyaW0iLCJwYXJhbXMiLCJuYW1lIiwiZGVmYXVsdCIsImNvbXB1dGVzUmVxdWlyZWQiLCJfdCIsImRpcmVjdGl2ZXMiLCJyYXdOYW1lIiwiZXhwcmVzc2lvbiIsIl9tIl0sIm1hcHBpbmdzIjoiZ0ZBQ0EsSUFBSUEsRUFBVSxFQUFRLFFBRUEsaUJBQVpBLElBQXNCQSxFQUFVLENBQUMsQ0FBQ0MsRUFBT0MsRUFBSUYsRUFBUyxNQU9oRSxJQUFJRyxFQUFVLENBQUMsS0FBTSxFQUVyQixlQVBJQyxFQVFKLGdCQUFxQkMsR0FFUixFQUFRLE9BQVIsQ0FBbUVMLEVBQVNHLEdBRXRGSCxFQUFRTSxTQUFRTCxFQUFPTSxRQUFVUCxFQUFRTSxTLG9DQ2pCNUMsSUNBZ04sRUNjaE4s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YSxJQUFpQkcsRUFBVEQsS0FBZ0JFLGVBQWhCRixLQUEwQ0ksTUFBTUQsR0FBTyxPQUF2REgsS0FBa0V1QyxHQUFHLEtBQ2pGLENBQUMsV0FBYSxJQUFpQnRDLEVBQVRELEtBQWdCRSxlQUFtQkMsRUFBbkNILEtBQTBDSSxNQUFNRCxJQUFJRixFQUFHLE9BQU9FLEVBQUcsTUFBTSxDQUFDRSxZQUFZLFVBQVVLLE1BQU0sQ0FBQyxHQUFLLHdCQUF3QixDQUFDUCxFQUFHLE1BQU0sQ0FBQ0UsWUFBWSx5REdXbk0sRUFDQSxLQUNBLFdBQ0EsTUFJYSxJQUFBUCxFIiwiZmlsZSI6ImNodW5rcy9wcm9maWxlfmNodW5rcy9zZXR0aW5ncy1wYXNzd29yZC5qcz9pZD0zMWE5YWVhMDA1Y2RmNDM3ZTRmNiIsInNvdXJjZXNDb250ZW50IjpbIlxudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NwaW5uZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWRmNjYwMDImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IHVuZGVmaW5lZDtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TcGlubmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFkZjY2MDAyJnNjb3BlZD10cnVlJmxhbmc9c2NzcyZcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NwaW5uZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWRmNjYwMDImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInBhZ2UtaGVhZGVyXCJ9LFsoX3ZtLmNhbkJhY2spP19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImdvLWJhY2tcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS4kcm91dGVyLmJhY2soKX19fSxbX2MoJ2NoZXZyb24tbGVmdC1pY29uJyx7YXR0cnM6e1wic2l6ZVwiOlwiMTdcIn19KV0sMSk6X3ZtLl9lKCksX3ZtLl92KFwiIFwiKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjb250ZW50XCJ9LFtfYygnaDEnLHtzdGF0aWNDbGFzczpcInRpdGxlXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS50aXRsZSkpXSldKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9yZWYtLTQtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9yZWYtLTQtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ28tYmFja1wiIHYtaWY9XCJjYW5CYWNrXCIgQGNsaWNrPVwiJHJvdXRlci5iYWNrKClcIj5cbiAgICAgICAgICAgIDxjaGV2cm9uLWxlZnQtaWNvbiBzaXplPVwiMTdcIj48L2NoZXZyb24tbGVmdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzcz1cInRpdGxlXCI+e3sgdGl0bGUgfX08L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG4gICAgaW1wb3J0IHsgQ2hldnJvbkxlZnRJY29uIH0gZnJvbSAndnVlLWZlYXRoZXItaWNvbnMnXG5cbiAgICBleHBvcnQgZGVmYXVsdCB7XG4gICAgICAgIG5hbWU6ICdQYWdlSGVhZGVyJyxcbiAgICAgICAgcHJvcHM6IFtcbiAgICAgICAgICAgICd0aXRsZScsICdjYW5CYWNrJ1xuICAgICAgICBdLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICBDaGV2cm9uTGVmdEljb25cbiAgICAgICAgfSxcbiAgICB9XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuICAgIEBpbXBvcnQgJ0Bhc3NldHMvdnVlZmlsZW1hbmFnZXIvX3ZhcmlhYmxlcyc7XG4gICAgQGltcG9ydCAnQGFzc2V0cy92dWVmaWxlbWFuYWdlci9fbWl4aW5zJztcblxuICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICB6LWluZGV4OiA5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICR0ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmdvLWJhY2sge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcblxuICAgICAgICAucGFnZS1oZWFkZXIge1xuXG4gICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY5MHB4KSB7XG4gICAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuXG4gICAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFya19tb2RlX2JhY2tncm91bmQ7XG5cbiAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX21vZGVfdGV4dF9wcmltYXJ5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaWNvbiBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkdGhlbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG48L3N0eWxlPlxuIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9QYWdlSGVhZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD05ZmQwYTQyNCZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QYWdlSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGFnZUhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vUGFnZUhlYWRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD05ZmQwYTQyNCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjlmZDBhNDI0XCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIucGFnZS1oZWFkZXJbZGF0YS12LTlmZDBhNDI0XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgei1pbmRleDogOTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xcbiAgcG9zaXRpb246IHN0aWNreTtcXG4gIHRvcDogMDtcXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcbi5wYWdlLWhlYWRlciAudGl0bGVbZGF0YS12LTlmZDBhNDI0XSB7XFxuICBmb250LXNpemU6IDEuMTI1ZW07XFxuICBmb250LXdlaWdodDogNzAwO1xcbiAgY29sb3I6ICMxQjI1Mzk7XFxufVxcbi5wYWdlLWhlYWRlciAuZ28tYmFja1tkYXRhLXYtOWZkMGE0MjRdIHtcXG4gIG1hcmdpbi1yaWdodDogMTBweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnBhZ2UtaGVhZGVyIC5nby1iYWNrIHN2Z1tkYXRhLXYtOWZkMGE0MjRdIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBtYXJnaW4tdG9wOiAtNHB4O1xcbn1cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XFxuLnBhZ2UtaGVhZGVyIC50aXRsZVtkYXRhLXYtOWZkMGE0MjRdIHtcXG4gICAgZm9udC1zaXplOiAxLjEyNWVtO1xcbn1cXG59XFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OTBweCkge1xcbi5wYWdlLWhlYWRlcltkYXRhLXYtOWZkMGE0MjRdIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxufVxcbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcXG4ucGFnZS1oZWFkZXJbZGF0YS12LTlmZDBhNDI0XSB7XFxuICAgIGJhY2tncm91bmQ6ICMxMzE0MTQ7XFxufVxcbi5wYWdlLWhlYWRlciAudGl0bGVbZGF0YS12LTlmZDBhNDI0XSB7XFxuICAgIGNvbG9yOiAjYmVjNmNmO1xcbn1cXG4ucGFnZS1oZWFkZXIgLmljb24gcGF0aFtkYXRhLXYtOWZkMGE0MjRdIHtcXG4gICAgZmlsbDogIzAwQkM3RTtcXG59XFxufVxcblwiLCBcIlwiXSk7XG5cbi8vIGV4cG9ydHNcbiIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoZmFsc2UpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiLnBhZ2UtdGFiLWdyb3VwW2RhdGEtdi00NDVkM2UwZV0ge1xcbiAgbWFyZ2luLWJvdHRvbTogNjVweDtcXG59XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCJcIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG4iLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDQ1ZDNlMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IHVuZGVmaW5lZDtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDQ1ZDNlMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGFnZVRhYkdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQ0NWQzZTBlJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDQ1ZDNlMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDQ1ZDNlMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGFnZVRhYi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MTAzNGQzNCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIpO1xuXG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcblxudmFyIHRyYW5zZm9ybTtcbnZhciBpbnNlcnRJbnRvO1xuXG5cblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxuXG5vcHRpb25zLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxub3B0aW9ucy5pbnNlcnRJbnRvID0gdW5kZWZpbmVkO1xuXG52YXIgdXBkYXRlID0gcmVxdWlyZShcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuXG5pZihtb2R1bGUuaG90KSB7XG5cdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VUYWIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzEwMzRkMzQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGFnZVRhYi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MTAzNGQzNCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGFnZUhlYWRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD05ZmQwYTQyNCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VIZWFkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWZkMGE0MjQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIiwiLyoqXG4gICogdmVlLXZhbGlkYXRlIHYzLjMuOVxuICAqIChjKSAyMDIwIEFiZGVscmFobWFuIEF3YWRcbiAgKiBAbGljZW5zZSBNSVRcbiAgKi9cbi8qKlxyXG4gKiBTb21lIEFscGhhIFJlZ2V4IGhlbHBlcnMuXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc28vdmFsaWRhdG9yLmpzL2Jsb2IvbWFzdGVyL3NyYy9saWIvYWxwaGEuanNcclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIG5vLW1pc2xlYWRpbmctY2hhcmFjdGVyLWNsYXNzICovXHJcbnZhciBhbHBoYSA9IHtcclxuICAgIGVuOiAvXltBLVpdKiQvaSxcclxuICAgIGNzOiAvXltBLVrDgcSMxI7DicSaw43Fh8OTxZjFoMWkw5rFrsOdxb1dKiQvaSxcclxuICAgIGRhOiAvXltBLVrDhsOYw4VdKiQvaSxcclxuICAgIGRlOiAvXltBLVrDhMOWw5zDn10qJC9pLFxyXG4gICAgZXM6IC9eW0EtWsOBw4nDjcORw5PDmsOcXSokL2ksXHJcbiAgICBmYTogL15b2KHYotij2KTYpdim2KfYqNip2KrYq9is2K3Yrtiv2LDYsdiy2LPYtNi12LbYt9i42LnYutmB2YLZg9mE2YXZhtmH2YjZidmK2YvZjNmN2Y7Zj9mQ2ZHZktmw2b7amNqv2obaqduMXSokLyxcclxuICAgIGZyOiAvXltBLVrDgMOCw4bDh8OJw4jDisOLw4/DjsOUxZLDmcObw5zFuF0qJC9pLFxyXG4gICAgaXQ6IC9eW0EtWlxceEMwLVxceEZGXSokL2ksXHJcbiAgICBsdDogL15bQS1axITEjMSYxJbErsWgxbLFqsW9XSokL2ksXHJcbiAgICBubDogL15bQS1aw4nDi8OPw5PDlsOcXSokL2ksXHJcbiAgICBodTogL15bQS1aw4HDicONw5PDlsWQw5rDnMWwXSokL2ksXHJcbiAgICBwbDogL15bQS1axITEhsSYxZrFgcWDw5PFu8W5XSokL2ksXHJcbiAgICBwdDogL15bQS1aw4PDgcOAw4LDh8OJw4rDjcOVw5PDlMOaw5xdKiQvaSxcclxuICAgIHJvOiAvXltBLVrEgsOCw47FnsWiXSokL2ksXHJcbiAgICBydTogL15b0JAt0K/QgV0qJC9pLFxyXG4gICAgc2s6IC9eW0EtWsOBw4TEjMSOw4nDjcS5xL3Fh8OTxZTFoMWkw5rDncW9XSokL2ksXHJcbiAgICBzcjogL15bQS1axIzEhsW9xaDEkF0qJC9pLFxyXG4gICAgc3Y6IC9eW0EtWsOFw4TDll0qJC9pLFxyXG4gICAgdHI6IC9eW0EtWsOHxJ7EsMSxw5bFnsOcXSokL2ksXHJcbiAgICB1azogL15b0JAt0KnQrNCu0K/QhNCG0IfSkF0qJC9pLFxyXG4gICAgYXI6IC9eW9ih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22LfYuNi52LrZgdmC2YPZhNmF2YbZh9mI2YnZitmL2YzZjdmO2Y/ZkNmR2ZLZsF0qJC8sXHJcbiAgICBhejogL15bQS1aw4fGj8SexLDEscOWxZ7DnF0qJC9pLFxyXG4gICAgZWw6IC9eW86RLc+OXSokL2lcclxufTtcclxudmFyIGFscGhhU3BhY2VzID0ge1xyXG4gICAgZW46IC9eW0EtWlxcc10qJC9pLFxyXG4gICAgY3M6IC9eW0EtWsOBxIzEjsOJxJrDjcWHw5PFmMWgxaTDmsWuw53FvVxcc10qJC9pLFxyXG4gICAgZGE6IC9eW0EtWsOGw5jDhVxcc10qJC9pLFxyXG4gICAgZGU6IC9eW0EtWsOEw5bDnMOfXFxzXSokL2ksXHJcbiAgICBlczogL15bQS1aw4HDicONw5HDk8Oaw5xcXHNdKiQvaSxcclxuICAgIGZhOiAvXlvYodii2KPYpNil2KbYp9io2KnYqtir2KzYrdiu2K/YsNix2LLYs9i02LXYtti32LjYudi62YHZgtmD2YTZhdmG2YfZiNmJ2YrZi9mM2Y3ZjtmP2ZDZkdmS2bDZvtqY2q/ahtqp24xdKiQvLFxyXG4gICAgZnI6IC9eW0EtWsOAw4LDhsOHw4nDiMOKw4vDj8OOw5TFksOZw5vDnMW4XFxzXSokL2ksXHJcbiAgICBpdDogL15bQS1aXFx4QzAtXFx4RkZcXHNdKiQvaSxcclxuICAgIGx0OiAvXltBLVrEhMSMxJjElsSuxaDFssWqxb1cXHNdKiQvaSxcclxuICAgIG5sOiAvXltBLVrDicOLw4/Dk8OWw5xcXHNdKiQvaSxcclxuICAgIGh1OiAvXltBLVrDgcOJw43Dk8OWxZDDmsOcxbBcXHNdKiQvaSxcclxuICAgIHBsOiAvXltBLVrEhMSGxJjFmsWBxYPDk8W7xblcXHNdKiQvaSxcclxuICAgIHB0OiAvXltBLVrDg8OBw4DDgsOHw4nDisONw5XDk8OUw5rDnFxcc10qJC9pLFxyXG4gICAgcm86IC9eW0EtWsSCw4LDjsWexaJcXHNdKiQvaSxcclxuICAgIHJ1OiAvXlvQkC3Qr9CBXFxzXSokL2ksXHJcbiAgICBzazogL15bQS1aw4HDhMSMxI7DicONxLnEvcWHw5PFlMWgxaTDmsOdxb1cXHNdKiQvaSxcclxuICAgIHNyOiAvXltBLVrEjMSGxb3FoMSQXFxzXSokL2ksXHJcbiAgICBzdjogL15bQS1aw4XDhMOWXFxzXSokL2ksXHJcbiAgICB0cjogL15bQS1aw4fEnsSwxLHDlsWew5xcXHNdKiQvaSxcclxuICAgIHVrOiAvXlvQkC3QqdCs0K7Qr9CE0IbQh9KQXFxzXSokL2ksXHJcbiAgICBhcjogL15b2KHYotij2KTYpdim2KfYqNip2KrYq9is2K3Yrtiv2LDYsdiy2LPYtNi12LbYt9i42LnYutmB2YLZg9mE2YXZhtmH2YjZidmK2YvZjNmN2Y7Zj9mQ2ZHZktmwXFxzXSokLyxcclxuICAgIGF6OiAvXltBLVrDh8aPxJ7EsMSxw5bFnsOcXFxzXSokL2ksXHJcbiAgICBlbDogL15bzpEtz45cXHNdKiQvaVxyXG59O1xyXG52YXIgYWxwaGFudW1lcmljID0ge1xyXG4gICAgZW46IC9eWzAtOUEtWl0qJC9pLFxyXG4gICAgY3M6IC9eWzAtOUEtWsOBxIzEjsOJxJrDjcWHw5PFmMWgxaTDmsWuw53FvV0qJC9pLFxyXG4gICAgZGE6IC9eWzAtOUEtWsOGw5jDhV0kL2ksXHJcbiAgICBkZTogL15bMC05QS1aw4TDlsOcw59dKiQvaSxcclxuICAgIGVzOiAvXlswLTlBLVrDgcOJw43DkcOTw5rDnF0qJC9pLFxyXG4gICAgZmE6IC9eW9ih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22LfYuNi52LrZgdmC2YPZhNmF2YbZh9mI2YnZitmL2YzZjdmO2Y/ZkNmR2ZLZsNm+2pjar9qG2qnbjF0qJC8sXHJcbiAgICBmcjogL15bMC05QS1aw4DDgsOGw4fDicOIw4rDi8OPw47DlMWSw5nDm8OcxbhdKiQvaSxcclxuICAgIGl0OiAvXlswLTlBLVpcXHhDMC1cXHhGRl0qJC9pLFxyXG4gICAgbHQ6IC9eWzAtOUEtWsSExIzEmMSWxK7FoMWyxarFvV0qJC9pLFxyXG4gICAgaHU6IC9eWzAtOUEtWsOBw4nDjcOTw5bFkMOaw5zFsF0qJC9pLFxyXG4gICAgbmw6IC9eWzAtOUEtWsOJw4vDj8OTw5bDnF0qJC9pLFxyXG4gICAgcGw6IC9eWzAtOUEtWsSExIbEmMWaxYHFg8OTxbvFuV0qJC9pLFxyXG4gICAgcHQ6IC9eWzAtOUEtWsODw4HDgMOCw4fDicOKw43DlcOTw5TDmsOcXSokL2ksXHJcbiAgICBybzogL15bMC05QS1axILDgsOOxZ7Fol0qJC9pLFxyXG4gICAgcnU6IC9eWzAtOdCQLdCv0IFdKiQvaSxcclxuICAgIHNrOiAvXlswLTlBLVrDgcOExIzEjsOJw43EucS9xYfDk8WUxaDFpMOaw53FvV0qJC9pLFxyXG4gICAgc3I6IC9eWzAtOUEtWsSMxIbFvcWgxJBdKiQvaSxcclxuICAgIHN2OiAvXlswLTlBLVrDhcOEw5ZdKiQvaSxcclxuICAgIHRyOiAvXlswLTlBLVrDh8SexLDEscOWxZ7DnF0qJC9pLFxyXG4gICAgdWs6IC9eWzAtOdCQLdCp0KzQrtCv0ITQhtCH0pBdKiQvaSxcclxuICAgIGFyOiAvXlvZoNmh2aLZo9mk2aXZptmn2ajZqTAtOdih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22LfYuNi52LrZgdmC2YPZhNmF2YbZh9mI2YnZitmL2YzZjdmO2Y/ZkNmR2ZLZsF0qJC8sXHJcbiAgICBhejogL15bMC05QS1aw4fGj8SexLDEscOWxZ7DnF0qJC9pLFxyXG4gICAgZWw6IC9eWzAtOc6RLc+OXSokL2lcclxufTtcclxudmFyIGFscGhhRGFzaCA9IHtcclxuICAgIGVuOiAvXlswLTlBLVpfLV0qJC9pLFxyXG4gICAgY3M6IC9eWzAtOUEtWsOBxIzEjsOJxJrDjcWHw5PFmMWgxaTDmsWuw53FvV8tXSokL2ksXHJcbiAgICBkYTogL15bMC05QS1aw4bDmMOFXy1dKiQvaSxcclxuICAgIGRlOiAvXlswLTlBLVrDhMOWw5zDn18tXSokL2ksXHJcbiAgICBlczogL15bMC05QS1aw4HDicONw5HDk8Oaw5xfLV0qJC9pLFxyXG4gICAgZmE6IC9eW9ih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22LfYuNi52LrZgdmC2YPZhNmF2YbZh9mI2YnZitmL2YzZjdmO2Y/ZkNmR2ZLZsNm+2pjar9qG2qnbjF0qJC8sXHJcbiAgICBmcjogL15bMC05QS1aw4DDgsOGw4fDicOIw4rDi8OPw47DlMWSw5nDm8OcxbhfLV0qJC9pLFxyXG4gICAgaXQ6IC9eWzAtOUEtWlxceEMwLVxceEZGXy1dKiQvaSxcclxuICAgIGx0OiAvXlswLTlBLVrEhMSMxJjElsSuxaDFssWqxb1fLV0qJC9pLFxyXG4gICAgbmw6IC9eWzAtOUEtWsOJw4vDj8OTw5bDnF8tXSokL2ksXHJcbiAgICBodTogL15bMC05QS1aw4HDicONw5PDlsWQw5rDnMWwXy1dKiQvaSxcclxuICAgIHBsOiAvXlswLTlBLVrEhMSGxJjFmsWBxYPDk8W7xblfLV0qJC9pLFxyXG4gICAgcHQ6IC9eWzAtOUEtWsODw4HDgMOCw4fDicOKw43DlcOTw5TDmsOcXy1dKiQvaSxcclxuICAgIHJvOiAvXlswLTlBLVrEgsOCw47FnsWiXy1dKiQvaSxcclxuICAgIHJ1OiAvXlswLTnQkC3Qr9CBXy1dKiQvaSxcclxuICAgIHNrOiAvXlswLTlBLVrDgcOExIzEjsOJw43EucS9xYfDk8WUxaDFpMOaw53FvV8tXSokL2ksXHJcbiAgICBzcjogL15bMC05QS1axIzEhsW9xaDEkF8tXSokL2ksXHJcbiAgICBzdjogL15bMC05QS1aw4XDhMOWXy1dKiQvaSxcclxuICAgIHRyOiAvXlswLTlBLVrDh8SexLDEscOWxZ7DnF8tXSokL2ksXHJcbiAgICB1azogL15bMC050JAt0KnQrNCu0K/QhNCG0IfSkF8tXSokL2ksXHJcbiAgICBhcjogL15b2aDZodmi2aPZpNml2abZp9mo2akwLTnYodii2KPYpNil2KbYp9io2KnYqtir2KzYrdiu2K/YsNix2LLYs9i02LXYtti32LjYudi62YHZgtmD2YTZhdmG2YfZiNmJ2YrZi9mM2Y3ZjtmP2ZDZkdmS2bBfLV0qJC8sXHJcbiAgICBhejogL15bMC05QS1aw4fGj8SexLDEscOWxZ7DnF8tXSokL2ksXHJcbiAgICBlbDogL15bMC05zpEtz45fLV0qJC9pXHJcbn07XG5cbnZhciB2YWxpZGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSwgX2EpIHtcclxuICAgIHZhciBfYiA9IChfYSA9PT0gdm9pZCAwID8ge30gOiBfYSkubG9jYWxlLCBsb2NhbGUgPSBfYiA9PT0gdm9pZCAwID8gJycgOiBfYjtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5ldmVyeShmdW5jdGlvbiAodmFsKSB7IHJldHVybiB2YWxpZGF0ZSh2YWwsIHsgbG9jYWxlOiBsb2NhbGUgfSk7IH0pO1xyXG4gICAgfVxyXG4gICAgLy8gTWF0Y2ggYXQgbGVhc3Qgb25lIGxvY2FsZS5cclxuICAgIGlmICghbG9jYWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGFscGhhKS5zb21lKGZ1bmN0aW9uIChsb2MpIHsgcmV0dXJuIGFscGhhW2xvY10udGVzdCh2YWx1ZSk7IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChhbHBoYVtsb2NhbGVdIHx8IGFscGhhLmVuKS50ZXN0KHZhbHVlKTtcclxufTtcclxudmFyIHBhcmFtcyA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnbG9jYWxlJ1xyXG4gICAgfVxyXG5dO1xyXG52YXIgYWxwaGEkMSA9IHtcclxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZSxcclxuICAgIHBhcmFtczogcGFyYW1zXHJcbn07XG5cbnZhciB2YWxpZGF0ZSQxID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIF9iID0gKF9hID09PSB2b2lkIDAgPyB7fSA6IF9hKS5sb2NhbGUsIGxvY2FsZSA9IF9iID09PSB2b2lkIDAgPyAnJyA6IF9iO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbGlkYXRlJDEodmFsLCB7IGxvY2FsZTogbG9jYWxlIH0pOyB9KTtcclxuICAgIH1cclxuICAgIC8vIE1hdGNoIGF0IGxlYXN0IG9uZSBsb2NhbGUuXHJcbiAgICBpZiAoIWxvY2FsZSkge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhhbHBoYURhc2gpLnNvbWUoZnVuY3Rpb24gKGxvYykgeyByZXR1cm4gYWxwaGFEYXNoW2xvY10udGVzdCh2YWx1ZSk7IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChhbHBoYURhc2hbbG9jYWxlXSB8fCBhbHBoYURhc2guZW4pLnRlc3QodmFsdWUpO1xyXG59O1xyXG52YXIgcGFyYW1zJDEgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ2xvY2FsZSdcclxuICAgIH1cclxuXTtcclxudmFyIGFscGhhX2Rhc2ggPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkMSxcclxuICAgIHBhcmFtczogcGFyYW1zJDFcclxufTtcblxudmFyIHZhbGlkYXRlJDIgPSBmdW5jdGlvbiAodmFsdWUsIF9hKSB7XHJcbiAgICB2YXIgX2IgPSAoX2EgPT09IHZvaWQgMCA/IHt9IDogX2EpLmxvY2FsZSwgbG9jYWxlID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUuZXZlcnkoZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gdmFsaWRhdGUkMih2YWwsIHsgbG9jYWxlOiBsb2NhbGUgfSk7IH0pO1xyXG4gICAgfVxyXG4gICAgLy8gTWF0Y2ggYXQgbGVhc3Qgb25lIGxvY2FsZS5cclxuICAgIGlmICghbG9jYWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGFscGhhbnVtZXJpYykuc29tZShmdW5jdGlvbiAobG9jKSB7IHJldHVybiBhbHBoYW51bWVyaWNbbG9jXS50ZXN0KHZhbHVlKTsgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKGFscGhhbnVtZXJpY1tsb2NhbGVdIHx8IGFscGhhbnVtZXJpYy5lbikudGVzdCh2YWx1ZSk7XHJcbn07XHJcbnZhciBwYXJhbXMkMiA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnbG9jYWxlJ1xyXG4gICAgfVxyXG5dO1xyXG52YXIgYWxwaGFfbnVtID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJDIsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyQyXHJcbn07XG5cbnZhciB2YWxpZGF0ZSQzID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIF9iID0gKF9hID09PSB2b2lkIDAgPyB7fSA6IF9hKS5sb2NhbGUsIGxvY2FsZSA9IF9iID09PSB2b2lkIDAgPyAnJyA6IF9iO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbGlkYXRlJDModmFsLCB7IGxvY2FsZTogbG9jYWxlIH0pOyB9KTtcclxuICAgIH1cclxuICAgIC8vIE1hdGNoIGF0IGxlYXN0IG9uZSBsb2NhbGUuXHJcbiAgICBpZiAoIWxvY2FsZSkge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhhbHBoYVNwYWNlcykuc29tZShmdW5jdGlvbiAobG9jKSB7IHJldHVybiBhbHBoYVNwYWNlc1tsb2NdLnRlc3QodmFsdWUpOyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiAoYWxwaGFTcGFjZXNbbG9jYWxlXSB8fCBhbHBoYVNwYWNlcy5lbikudGVzdCh2YWx1ZSk7XHJcbn07XHJcbnZhciBwYXJhbXMkMyA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnbG9jYWxlJ1xyXG4gICAgfVxyXG5dO1xyXG52YXIgYWxwaGFfc3BhY2VzID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJDMsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyQzXHJcbn07XG5cbnZhciB2YWxpZGF0ZSQ0ID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIF9iID0gX2EgPT09IHZvaWQgMCA/IHt9IDogX2EsIG1pbiA9IF9iLm1pbiwgbWF4ID0gX2IubWF4O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuICEhdmFsaWRhdGUkNCh2YWwsIHsgbWluOiBtaW4sIG1heDogbWF4IH0pOyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBOdW1iZXIobWluKSA8PSB2YWx1ZSAmJiBOdW1iZXIobWF4KSA+PSB2YWx1ZTtcclxufTtcclxudmFyIHBhcmFtcyQ0ID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdtaW4nXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdtYXgnXHJcbiAgICB9XHJcbl07XHJcbnZhciBiZXR3ZWVuID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJDQsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyQ0XHJcbn07XG5cbnZhciB2YWxpZGF0ZSQ1ID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIHRhcmdldCA9IF9hLnRhcmdldDtcclxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpID09PSBTdHJpbmcodGFyZ2V0KTtcclxufTtcclxudmFyIHBhcmFtcyQ1ID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICd0YXJnZXQnLFxyXG4gICAgICAgIGlzVGFyZ2V0OiB0cnVlXHJcbiAgICB9XHJcbl07XHJcbnZhciBjb25maXJtZWQgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkNSxcclxuICAgIHBhcmFtczogcGFyYW1zJDVcclxufTtcblxudmFyIHZhbGlkYXRlJDYgPSBmdW5jdGlvbiAodmFsdWUsIF9hKSB7XHJcbiAgICB2YXIgbGVuZ3RoID0gX2EubGVuZ3RoO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbGlkYXRlJDYodmFsLCB7IGxlbmd0aDogbGVuZ3RoIH0pOyB9KTtcclxuICAgIH1cclxuICAgIHZhciBzdHJWYWwgPSBTdHJpbmcodmFsdWUpO1xyXG4gICAgcmV0dXJuIC9eWzAtOV0qJC8udGVzdChzdHJWYWwpICYmIHN0clZhbC5sZW5ndGggPT09IGxlbmd0aDtcclxufTtcclxudmFyIHBhcmFtcyQ2ID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdsZW5ndGgnLFxyXG4gICAgICAgIGNhc3Q6IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbl07XHJcbnZhciBkaWdpdHMgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkNixcclxuICAgIHBhcmFtczogcGFyYW1zJDZcclxufTtcblxudmFyIHZhbGlkYXRlSW1hZ2UgPSBmdW5jdGlvbiAoZmlsZSwgd2lkdGgsIGhlaWdodCkge1xyXG4gICAgdmFyIFVSTCA9IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTDtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xyXG4gICAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgIGltYWdlLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZXNvbHZlKGZhbHNlKTsgfTtcclxuICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZXNvbHZlKGltYWdlLndpZHRoID09PSB3aWR0aCAmJiBpbWFnZS5oZWlnaHQgPT09IGhlaWdodCk7IH07XHJcbiAgICAgICAgaW1hZ2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuICAgIH0pO1xyXG59O1xyXG52YXIgdmFsaWRhdGUkNyA9IGZ1bmN0aW9uIChmaWxlcywgX2EpIHtcclxuICAgIHZhciB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICB2YXIgbGlzdCA9IFtdO1xyXG4gICAgZmlsZXMgPSBBcnJheS5pc0FycmF5KGZpbGVzKSA/IGZpbGVzIDogW2ZpbGVzXTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAvLyBpZiBmaWxlIGlzIG5vdCBhbiBpbWFnZSwgcmVqZWN0LlxyXG4gICAgICAgIGlmICghL1xcLihqcGd8c3ZnfGpwZWd8cG5nfGJtcHxnaWYpJC9pLnRlc3QoZmlsZXNbaV0ubmFtZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpc3QucHVzaChmaWxlc1tpXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwobGlzdC5tYXAoZnVuY3Rpb24gKGZpbGUpIHsgcmV0dXJuIHZhbGlkYXRlSW1hZ2UoZmlsZSwgd2lkdGgsIGhlaWdodCk7IH0pKS50aGVuKGZ1bmN0aW9uICh2YWx1ZXMpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWVzLmV2ZXJ5KGZ1bmN0aW9uICh2KSB7IHJldHVybiB2OyB9KTtcclxuICAgIH0pO1xyXG59O1xyXG52YXIgcGFyYW1zJDcgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ3dpZHRoJyxcclxuICAgICAgICBjYXN0OiBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnaGVpZ2h0JyxcclxuICAgICAgICBjYXN0OiBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5dO1xyXG52YXIgZGltZW5zaW9ucyA9IHtcclxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZSQ3LFxyXG4gICAgcGFyYW1zOiBwYXJhbXMkN1xyXG59O1xuXG52YXIgdmFsaWRhdGUkOCA9IGZ1bmN0aW9uICh2YWx1ZSwgX2EpIHtcclxuICAgIHZhciBtdWx0aXBsZSA9IChfYSA9PT0gdm9pZCAwID8ge30gOiBfYSkubXVsdGlwbGU7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIHZhciByZSA9IC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC87XHJcbiAgICBpZiAobXVsdGlwbGUgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXHJcbiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKGVtYWlsU3RyKSB7IHJldHVybiBlbWFpbFN0ci50cmltKCk7IH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHJlLnRlc3QoU3RyaW5nKHZhbCkpOyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZS50ZXN0KFN0cmluZyh2YWx1ZSkpO1xyXG59O1xyXG52YXIgcGFyYW1zJDggPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ211bHRpcGxlJyxcclxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfVxyXG5dO1xyXG52YXIgZW1haWwgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkOCxcclxuICAgIHBhcmFtczogcGFyYW1zJDhcclxufTtcblxuZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpIHtcclxuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xyXG59XHJcbmZ1bmN0aW9uIGlzRW1wdHlBcnJheShhcnIpIHtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGFycikgJiYgYXJyLmxlbmd0aCA9PT0gMDtcclxufVxyXG5mdW5jdGlvbiBpc0NhbGxhYmxlKGZuKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nO1xyXG59XG5cbmZ1bmN0aW9uIGluY2x1ZGVzKGNvbGxlY3Rpb24sIGl0ZW0pIHtcclxuICAgIHJldHVybiBjb2xsZWN0aW9uLmluZGV4T2YoaXRlbSkgIT09IC0xO1xyXG59XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBhbiBhcnJheS1saWtlIG9iamVjdCB0byBhcnJheSwgcHJvdmlkZXMgYSBzaW1wbGUgcG9seWZpbGwgZm9yIEFycmF5LmZyb21cclxuICovXHJcbmZ1bmN0aW9uIHRvQXJyYXkoYXJyYXlMaWtlKSB7XHJcbiAgICBpZiAoaXNDYWxsYWJsZShBcnJheS5mcm9tKSkge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGFycmF5TGlrZSk7XHJcbiAgICB9XHJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gICAgcmV0dXJuIF9jb3B5QXJyYXkoYXJyYXlMaWtlKTtcclxufVxyXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG5mdW5jdGlvbiBfY29weUFycmF5KGFycmF5TGlrZSkge1xyXG4gICAgdmFyIGFycmF5ID0gW107XHJcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXlMaWtlLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJheS5wdXNoKGFycmF5TGlrZVtpXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbn1cblxudmFyIHZhbGlkYXRlJDkgPSBmdW5jdGlvbiAodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5ldmVyeShmdW5jdGlvbiAodmFsKSB7IHJldHVybiB2YWxpZGF0ZSQ5KHZhbCwgb3B0aW9ucyk7IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvQXJyYXkob3B0aW9ucykuc29tZShmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICAgIHJldHVybiBpdGVtID09IHZhbHVlO1xyXG4gICAgfSk7XHJcbn07XHJcbnZhciBvbmVPZiA9IHtcclxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZSQ5XHJcbn07XG5cbnZhciB2YWxpZGF0ZSRhID0gZnVuY3Rpb24gKHZhbHVlLCBhcmdzKSB7XHJcbiAgICByZXR1cm4gIXZhbGlkYXRlJDkodmFsdWUsIGFyZ3MpO1xyXG59O1xyXG52YXIgZXhjbHVkZWQgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkYVxyXG59O1xuXG52YXIgdmFsaWRhdGUkYiA9IGZ1bmN0aW9uIChmaWxlcywgZXh0ZW5zaW9ucykge1xyXG4gICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChcIi4oXCIgKyBleHRlbnNpb25zLmpvaW4oJ3wnKSArIFwiKSRcIiwgJ2knKTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbGVzKSkge1xyXG4gICAgICAgIHJldHVybiBmaWxlcy5ldmVyeShmdW5jdGlvbiAoZmlsZSkgeyByZXR1cm4gcmVnZXgudGVzdChmaWxlLm5hbWUpOyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZWdleC50ZXN0KGZpbGVzLm5hbWUpO1xyXG59O1xyXG52YXIgZXh0ID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJGJcclxufTtcblxudmFyIHZhbGlkYXRlJGMgPSBmdW5jdGlvbiAoZmlsZXMpIHtcclxuICAgIHZhciByZWdleCA9IC9cXC4oanBnfHN2Z3xqcGVnfHBuZ3xibXB8Z2lmfHdlYnApJC9pO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsZXMpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVzLmV2ZXJ5KGZ1bmN0aW9uIChmaWxlKSB7IHJldHVybiByZWdleC50ZXN0KGZpbGUubmFtZSk7IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QoZmlsZXMubmFtZSk7XHJcbn07XHJcbnZhciBpbWFnZSA9IHtcclxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZSRjXHJcbn07XG5cbnZhciB2YWxpZGF0ZSRkID0gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUuZXZlcnkoZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gL14tP1swLTldKyQvLnRlc3QoU3RyaW5nKHZhbCkpOyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiAvXi0/WzAtOV0rJC8udGVzdChTdHJpbmcodmFsdWUpKTtcclxufTtcclxudmFyIGludGVnZXIgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkZFxyXG59O1xuXG52YXIgdmFsaWRhdGUkZSA9IGZ1bmN0aW9uICh2YWx1ZSwgX2EpIHtcclxuICAgIHZhciBvdGhlciA9IF9hLm90aGVyO1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSBvdGhlcjtcclxufTtcclxudmFyIHBhcmFtcyQ5ID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdvdGhlcidcclxuICAgIH1cclxuXTtcclxudmFyIGlzID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJGUsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyQ5XHJcbn07XG5cbnZhciB2YWxpZGF0ZSRmID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIG90aGVyID0gX2Eub3RoZXI7XHJcbiAgICByZXR1cm4gdmFsdWUgIT09IG90aGVyO1xyXG59O1xyXG52YXIgcGFyYW1zJGEgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ290aGVyJ1xyXG4gICAgfVxyXG5dO1xyXG52YXIgaXNfbm90ID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJGYsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyRhXHJcbn07XG5cbnZhciB2YWxpZGF0ZSRnID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIGxlbmd0aCA9IF9hLmxlbmd0aDtcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmICghdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0b0FycmF5KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPT09IGxlbmd0aDtcclxufTtcclxudmFyIHBhcmFtcyRiID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdsZW5ndGgnLFxyXG4gICAgICAgIGNhc3Q6IGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gTnVtYmVyKHZhbHVlKTsgfVxyXG4gICAgfVxyXG5dO1xyXG52YXIgbGVuZ3RoID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJGcsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyRiXHJcbn07XG5cbnZhciB2YWxpZGF0ZSRoID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIGxlbmd0aCA9IF9hLmxlbmd0aDtcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gbGVuZ3RoID49IDA7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUuZXZlcnkoZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gdmFsaWRhdGUkaCh2YWwsIHsgbGVuZ3RoOiBsZW5ndGggfSk7IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkubGVuZ3RoIDw9IGxlbmd0aDtcclxufTtcclxudmFyIHBhcmFtcyRjID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdsZW5ndGgnLFxyXG4gICAgICAgIGNhc3Q6IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbl07XHJcbnZhciBtYXggPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkaCxcclxuICAgIHBhcmFtczogcGFyYW1zJGNcclxufTtcblxudmFyIHZhbGlkYXRlJGkgPSBmdW5jdGlvbiAodmFsdWUsIF9hKSB7XHJcbiAgICB2YXIgbWF4ID0gX2EubWF4O1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoID4gMCAmJiB2YWx1ZS5ldmVyeShmdW5jdGlvbiAodmFsKSB7IHJldHVybiB2YWxpZGF0ZSRpKHZhbCwgeyBtYXg6IG1heCB9KTsgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gTnVtYmVyKHZhbHVlKSA8PSBtYXg7XHJcbn07XHJcbnZhciBwYXJhbXMkZCA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnbWF4JyxcclxuICAgICAgICBjYXN0OiBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5dO1xyXG52YXIgbWF4X3ZhbHVlID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJGksXHJcbiAgICBwYXJhbXM6IHBhcmFtcyRkXHJcbn07XG5cbnZhciB2YWxpZGF0ZSRqID0gZnVuY3Rpb24gKGZpbGVzLCBtaW1lcykge1xyXG4gICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChtaW1lcy5qb2luKCd8JykucmVwbGFjZSgnKicsICcuKycpICsgXCIkXCIsICdpJyk7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWxlcykpIHtcclxuICAgICAgICByZXR1cm4gZmlsZXMuZXZlcnkoZnVuY3Rpb24gKGZpbGUpIHsgcmV0dXJuIHJlZ2V4LnRlc3QoZmlsZS50eXBlKTsgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVnZXgudGVzdChmaWxlcy50eXBlKTtcclxufTtcclxudmFyIG1pbWVzID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJGpcclxufTtcblxudmFyIHZhbGlkYXRlJGsgPSBmdW5jdGlvbiAodmFsdWUsIF9hKSB7XHJcbiAgICB2YXIgbGVuZ3RoID0gX2EubGVuZ3RoO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5ldmVyeShmdW5jdGlvbiAodmFsKSB7IHJldHVybiB2YWxpZGF0ZSRrKHZhbCwgeyBsZW5ndGg6IGxlbmd0aCB9KTsgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKS5sZW5ndGggPj0gbGVuZ3RoO1xyXG59O1xyXG52YXIgcGFyYW1zJGUgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ2xlbmd0aCcsXHJcbiAgICAgICAgY2FzdDogZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXTtcclxudmFyIG1pbiA9IHtcclxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZSRrLFxyXG4gICAgcGFyYW1zOiBwYXJhbXMkZVxyXG59O1xuXG52YXIgdmFsaWRhdGUkbCA9IGZ1bmN0aW9uICh2YWx1ZSwgX2EpIHtcclxuICAgIHZhciBtaW4gPSBfYS5taW47XHJcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpIHx8IHZhbHVlID09PSAnJykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwICYmIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbGlkYXRlJGwodmFsLCB7IG1pbjogbWluIH0pOyB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBOdW1iZXIodmFsdWUpID49IG1pbjtcclxufTtcclxudmFyIHBhcmFtcyRmID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdtaW4nLFxyXG4gICAgICAgIGNhc3Q6IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbl07XHJcbnZhciBtaW5fdmFsdWUgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkbCxcclxuICAgIHBhcmFtczogcGFyYW1zJGZcclxufTtcblxudmFyIGFyID0gL15b2aDZodmi2aPZpNml2abZp9mo2aldKyQvO1xyXG52YXIgZW4gPSAvXlswLTldKyQvO1xyXG52YXIgdmFsaWRhdGUkbSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgdmFyIHRlc3RWYWx1ZSA9IGZ1bmN0aW9uICh2YWwpIHtcclxuICAgICAgICB2YXIgc3RyVmFsdWUgPSBTdHJpbmcodmFsKTtcclxuICAgICAgICByZXR1cm4gZW4udGVzdChzdHJWYWx1ZSkgfHwgYXIudGVzdChzdHJWYWx1ZSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KHRlc3RWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVzdFZhbHVlKHZhbHVlKTtcclxufTtcclxudmFyIG51bWVyaWMgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkbVxyXG59O1xuXG52YXIgdmFsaWRhdGUkbiA9IGZ1bmN0aW9uICh2YWx1ZSwgX2EpIHtcclxuICAgIHZhciByZWdleCA9IF9hLnJlZ2V4O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbGlkYXRlJG4odmFsLCB7IHJlZ2V4OiByZWdleCB9KTsgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVnZXgudGVzdChTdHJpbmcodmFsdWUpKTtcclxufTtcclxudmFyIHBhcmFtcyRnID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdyZWdleCcsXHJcbiAgICAgICAgY2FzdDogZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXTtcclxudmFyIHJlZ2V4ID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJG4sXHJcbiAgICBwYXJhbXM6IHBhcmFtcyRnXHJcbn07XG5cbnZhciB2YWxpZGF0ZSRvID0gZnVuY3Rpb24gKHZhbHVlLCBfYSkge1xyXG4gICAgdmFyIGFsbG93RmFsc2UgPSAoX2EgPT09IHZvaWQgMCA/IHsgYWxsb3dGYWxzZTogdHJ1ZSB9IDogX2EpLmFsbG93RmFsc2U7XHJcbiAgICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgICAgIHZhbGlkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgfHwgaXNFbXB0eUFycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICAvLyBpbmNhc2UgYSBmaWVsZCBjb25zaWRlcnMgYGZhbHNlYCBhcyBhbiBlbXB0eSB2YWx1ZSBsaWtlIGNoZWNrYm94ZXMuXHJcbiAgICBpZiAodmFsdWUgPT09IGZhbHNlICYmICFhbGxvd0ZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJlc3VsdC52YWxpZCA9ICEhU3RyaW5nKHZhbHVlKS50cmltKCkubGVuZ3RoO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufTtcclxudmFyIGNvbXB1dGVzUmVxdWlyZWQgPSB0cnVlO1xyXG52YXIgcGFyYW1zJGggPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ2FsbG93RmFsc2UnLFxyXG4gICAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH1cclxuXTtcclxudmFyIHJlcXVpcmVkID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJG8sXHJcbiAgICBwYXJhbXM6IHBhcmFtcyRoLFxyXG4gICAgY29tcHV0ZXNSZXF1aXJlZDogY29tcHV0ZXNSZXF1aXJlZFxyXG59O1xuXG52YXIgdGVzdEVtcHR5ID0gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gaXNFbXB0eUFycmF5KHZhbHVlKSB8fCBpbmNsdWRlcyhbZmFsc2UsIG51bGwsIHVuZGVmaW5lZF0sIHZhbHVlKSB8fCAhU3RyaW5nKHZhbHVlKS50cmltKCkubGVuZ3RoO1xyXG59O1xyXG52YXIgdmFsaWRhdGUkcCA9IGZ1bmN0aW9uICh2YWx1ZSwgX2EpIHtcclxuICAgIHZhciB0YXJnZXQgPSBfYS50YXJnZXQsIHZhbHVlcyA9IF9hLnZhbHVlcztcclxuICAgIHZhciByZXF1aXJlZDtcclxuICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCkge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZXMpICYmIHR5cGVvZiB2YWx1ZXMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHZhbHVlcyA9IFt2YWx1ZXNdO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICByZXF1aXJlZCA9IHZhbHVlcy5zb21lKGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIHZhbCA9PSBTdHJpbmcodGFyZ2V0KS50cmltKCk7IH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmVxdWlyZWQgPSAhdGVzdEVtcHR5KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXJlcXVpcmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdmFsaWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHZhbGlkOiAhdGVzdEVtcHR5KHZhbHVlKSxcclxuICAgICAgICByZXF1aXJlZDogcmVxdWlyZWRcclxuICAgIH07XHJcbn07XHJcbnZhciBwYXJhbXMkaSA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAndGFyZ2V0JyxcclxuICAgICAgICBpc1RhcmdldDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAndmFsdWVzJ1xyXG4gICAgfVxyXG5dO1xyXG52YXIgY29tcHV0ZXNSZXF1aXJlZCQxID0gdHJ1ZTtcclxudmFyIHJlcXVpcmVkX2lmID0ge1xyXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlJHAsXHJcbiAgICBwYXJhbXM6IHBhcmFtcyRpLFxyXG4gICAgY29tcHV0ZXNSZXF1aXJlZDogY29tcHV0ZXNSZXF1aXJlZCQxXHJcbn07XG5cbnZhciB2YWxpZGF0ZSRxID0gZnVuY3Rpb24gKGZpbGVzLCBfYSkge1xyXG4gICAgdmFyIHNpemUgPSBfYS5zaXplO1xyXG4gICAgaWYgKGlzTmFOKHNpemUpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdmFyIG5TaXplID0gc2l6ZSAqIDEwMjQ7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsZXMpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVzLnNpemUgPD0gblNpemU7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbGVzW2ldLnNpemUgPiBuU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn07XHJcbnZhciBwYXJhbXMkaiA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnc2l6ZScsXHJcbiAgICAgICAgY2FzdDogZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXTtcclxudmFyIHNpemUgPSB7XHJcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGUkcSxcclxuICAgIHBhcmFtczogcGFyYW1zJGpcclxufTtcblxuZXhwb3J0IHsgYWxwaGEkMSBhcyBhbHBoYSwgYWxwaGFfZGFzaCwgYWxwaGFfbnVtLCBhbHBoYV9zcGFjZXMsIGJldHdlZW4sIGNvbmZpcm1lZCwgZGlnaXRzLCBkaW1lbnNpb25zLCBlbWFpbCwgZXhjbHVkZWQsIGV4dCwgaW1hZ2UsIGludGVnZXIsIGlzLCBpc19ub3QsIGxlbmd0aCwgbWF4LCBtYXhfdmFsdWUsIG1pbWVzLCBtaW4sIG1pbl92YWx1ZSwgbnVtZXJpYywgb25lT2YsIHJlZ2V4LCByZXF1aXJlZCwgcmVxdWlyZWRfaWYsIHNpemUgfTtcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0Zvcm1MYWJlbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1jODg5OTgxMCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0Zvcm1MYWJlbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1jODg5OTgxMCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiLCJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKGZhbHNlKTtcbi8vIGltcG9ydHNcblxuXG4vLyBtb2R1bGVcbmV4cG9ydHMucHVzaChbbW9kdWxlLmlkLCBcIi50aGVtZS1sYWJlbFtkYXRhLXYtMjE0ZmY3NjRdIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcXG4gIGNvbG9yOiAjMDBCQzdFO1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIuZm9ybS1sYWJlbFtkYXRhLXYtYzg4OTk4MTBdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcXG59XFxuLmZvcm0tbGFiZWwgLmljb25bZGF0YS12LWM4ODk5ODEwXSB7XFxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XFxufVxcbi5mb3JtLWxhYmVsIC5pY29uIHBhdGhbZGF0YS12LWM4ODk5ODEwXSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmZvcm0tbGFiZWwgLmxhYmVsW2RhdGEtdi1jODg5OTgxMF0ge1xcbiAgZm9udC1zaXplOiAxLjEyNWVtO1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xcbi5mb3JtLWxhYmVsIC5sYWJlbFtkYXRhLXYtYzg4OTk4MTBdIHtcXG4gICAgY29sb3I6ICNiZWM2Y2Y7XFxufVxcbn1cXG5cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG4iLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9UaGVtZUxhYmVsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIxNGZmNzY0Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSB1bmRlZmluZWQ7XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vVGhlbWVMYWJlbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yMTRmZjc2NCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uKCkge1xuXHRcdHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9UaGVtZUxhYmVsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIxNGZmNzY0Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJmb3JtLWxhYmVsXCJ9LFtfYygnZWRpdC0yLWljb24nLHtzdGF0aWNDbGFzczpcImljb24gdGV4dC10aGVtZVwiLGF0dHJzOntcInNpemVcIjpcIjIyXCJ9fSksX3ZtLl92KFwiIFwiKSxfYygnYicse3N0YXRpY0NsYXNzOlwibGFiZWxcIn0sW192bS5fdChcImRlZmF1bHRcIildLDIpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/cmVmLS00LTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9Gb3JtTGFiZWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9yZWYtLTQtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0Zvcm1MYWJlbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cbiAgICAgICAgPGVkaXQtMi1pY29uIHNpemU9XCIyMlwiIGNsYXNzPVwiaWNvbiB0ZXh0LXRoZW1lXCIgLz5cbiAgICAgICAgPGIgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2I+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICAgIGltcG9ydCB7IEVkaXQySWNvbiB9IGZyb20gJ3Z1ZS1mZWF0aGVyLWljb25zJ1xuXG4gICAgZXhwb3J0IGRlZmF1bHQge1xuICAgICAgICBuYW1lOiAnRm9ybUxhYmVsJyxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgRWRpdDJJY29uXG4gICAgICAgIH1cbiAgICB9XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuICAgIEBpbXBvcnQgJ0Bhc3NldHMvdnVlZmlsZW1hbmFnZXIvX3ZhcmlhYmxlcyc7XG4gICAgQGltcG9ydCAnQGFzc2V0cy92dWVmaWxlbWFuYWdlci9fbWl4aW5zJztcblxuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAuZm9ybS1sYWJlbCB7XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX21vZGVfdGV4dF9wcmltYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG48L3N0eWxlPlxuIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9Gb3JtTGFiZWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWM4ODk5ODEwJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Zvcm1MYWJlbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Zvcm1MYWJlbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vRm9ybUxhYmVsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWM4ODk5ODEwJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiYzg4OTk4MTBcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9Gb3JtTGFiZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Yzg4OTk4MTAmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IHVuZGVmaW5lZDtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9Gb3JtTGFiZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Yzg4OTk4MTAmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRm9ybUxhYmVsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWM4ODk5ODEwJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJwYWdlLXRhYi1ncm91cFwifSxbX3ZtLl90KFwiZGVmYXVsdFwiKV0sMil9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tNC0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGFnZVRhYkdyb3VwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/cmVmLS00LTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiR3JvdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdlLXRhYi1ncm91cFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgbmFtZTogJ1BhZ2VUYWJHcm91cCcsXG4gICAgfVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cbiAgICBAaW1wb3J0ICdAYXNzZXRzL3Z1ZWZpbGVtYW5hZ2VyL192YXJpYWJsZXMnO1xuICAgIEBpbXBvcnQgJ0Bhc3NldHMvdnVlZmlsZW1hbmFnZXIvX21peGlucyc7XG5cbiAgICAucGFnZS10YWItZ3JvdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgIH1cbjwvc3R5bGU+XG4iLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL1BhZ2VUYWJHcm91cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQ1ZDNlMGUmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGFnZVRhYkdyb3VwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGFnZVRhYkdyb3VwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9QYWdlVGFiR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDQ1ZDNlMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI0NDVkM2UwZVwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VUYWIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzEwMzRkMzQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTcxMDM0ZDM0Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoZmFsc2UpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiI2xvYWRpbmctYmFyLXNwaW5uZXIuc3Bpbm5lcltkYXRhLXYtMWRmNjYwMDJdIHtcXG4gIGxlZnQ6IDUwJTtcXG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcXG4gIHRvcDogNTAlO1xcbiAgbWFyZ2luLXRvcDogLTIwcHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAxOSAhaW1wb3J0YW50O1xcbiAgLXdlYmtpdC1hbmltYXRpb246IGxvYWRpbmctYmFyLXNwaW5uZXItZGF0YS12LTFkZjY2MDAyIDQwMG1zIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nLWJhci1zcGlubmVyLWRhdGEtdi0xZGY2NjAwMiA0MDBtcyBsaW5lYXIgaW5maW5pdGU7XFxufVxcbiNsb2FkaW5nLWJhci1zcGlubmVyLnNwaW5uZXIgLnNwaW5uZXItaWNvbltkYXRhLXYtMWRmNjYwMDJdIHtcXG4gIHdpZHRoOiA0MHB4O1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgYm9yZGVyOiBzb2xpZCA0cHggdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nLWJhci1zcGlubmVyLWRhdGEtdi0xZGY2NjAwMiB7XFxuMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG59XFxuMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxufVxcbn1cXG5Aa2V5ZnJhbWVzIGxvYWRpbmctYmFyLXNwaW5uZXItZGF0YS12LTFkZjY2MDAyIHtcXG4wJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbn1cXG4xMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG59XFxufVxcblwiLCBcIlwiXSk7XG5cbi8vIGV4cG9ydHNcbiIsIlxudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VIZWFkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWZkMGE0MjQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IHVuZGVmaW5lZDtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tNy0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS03LTMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlSGVhZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTlmZDBhNDI0Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VIZWFkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWZkMGE0MjQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdiJyx7c3RhdGljQ2xhc3M6XCJ0aGVtZS1sYWJlbFwifSxbX3ZtLl90KFwiZGVmYXVsdFwiKV0sMil9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tNC0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vVGhlbWVMYWJlbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tNC0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vVGhlbWVMYWJlbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCI8dGVtcGxhdGU+XG4gICAgPGIgY2xhc3M9XCJ0aGVtZS1sYWJlbFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgPC9iPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbiAgICBleHBvcnQgZGVmYXVsdCB7XG4gICAgICAgIG5hbWU6ICdUZXh0TGFiZWwnLFxuICAgIH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG4gICAgQGltcG9ydCAnQGFzc2V0cy92dWVmaWxlbWFuYWdlci9fdmFyaWFibGVzJztcbiAgICBAaW1wb3J0ICdAYXNzZXRzL3Z1ZWZpbGVtYW5hZ2VyL19taXhpbnMnO1xuXG4gICAgLnRoZW1lLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE0KTtcbiAgICAgICAgY29sb3I6ICR0aGVtZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuPC9zdHlsZT5cbiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vVGhlbWVMYWJlbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjE0ZmY3NjQmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGhlbWVMYWJlbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RoZW1lTGFiZWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1RoZW1lTGFiZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjE0ZmY3NjQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIyMTRmZjc2NFwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInBhZ2UtdGFiXCJ9LFtfYygnZGl2Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uaXNMb2FkaW5nKSxleHByZXNzaW9uOlwiaXNMb2FkaW5nXCJ9XSxhdHRyczp7XCJpZFwiOlwibG9hZGVyXCJ9fSxbX2MoJ1NwaW5uZXInKV0sMSksX3ZtLl92KFwiIFwiKSxfdm0uX3QoXCJkZWZhdWx0XCIpXSwyKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/cmVmLS00LTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/cmVmLS00LTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QYWdlVGFiLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwicGFnZS10YWJcIj5cbiAgICAgICAgPGRpdiBpZD1cImxvYWRlclwiIHYtc2hvdz1cImlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgPFNwaW5uZXI+PC9TcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNsb3Qgdi1zaG93PVwiISBpc0xvYWRpbmdcIj48L3Nsb3Q+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICAgIGltcG9ydCBTcGlubmVyIGZyb20gJ0AvY29tcG9uZW50cy9GaWxlc1ZpZXcvU3Bpbm5lcidcblxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgbmFtZTogJ1BhZ2VUYWInLFxuICAgICAgICBwcm9wczogWydpc0xvYWRpbmcnXSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgU3Bpbm5lcixcbiAgICAgICAgfSxcbiAgICB9XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuICAgIEBpbXBvcnQgJ0Bhc3NldHMvdnVlZmlsZW1hbmFnZXIvX3ZhcmlhYmxlcyc7XG4gICAgQGltcG9ydCAnQGFzc2V0cy92dWVmaWxlbWFuYWdlci9fbWl4aW5zJztcbjwvc3R5bGU+IiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9QYWdlVGFiLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03MTAzNGQzNCZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QYWdlVGFiLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGFnZVRhYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vUGFnZVRhYi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MTAzNGQzNCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjcxMDM0ZDM0XCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU3Bpbm5lci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xZGY2NjAwMiZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NwaW5uZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWRmNjYwMDImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTctMiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tNy0zIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vVGhlbWVMYWJlbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yMTRmZjc2NCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS03LTIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTctMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1RoZW1lTGFiZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjE0ZmY3NjQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX3ZtLl9tKDApfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNwaW5uZXJcIixhdHRyczp7XCJpZFwiOlwibG9hZGluZy1iYXItc3Bpbm5lclwifX0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNwaW5uZXItaWNvbiBib3JkZXItdG9wLXRoZW1lIGJvcmRlci1sZWZ0LXRoZW1lXCJ9KV0pfV1cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tNC0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU3Bpbm5lci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tNC0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU3Bpbm5lci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBpZD1cImxvYWRpbmctYmFyLXNwaW5uZXJcIiBjbGFzcz1cInNwaW5uZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItaWNvbiBib3JkZXItdG9wLXRoZW1lIGJvcmRlci1sZWZ0LXRoZW1lXCI+PC9kaXY+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgbmFtZTogJ1NwaW5uZXInXG4gICAgfVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cbiAgICBAaW1wb3J0ICdAYXNzZXRzL3Z1ZWZpbGVtYW5hZ2VyL192YXJpYWJsZXMnO1xuICAgIEBpbXBvcnQgJ0Bhc3NldHMvdnVlZmlsZW1hbmFnZXIvX21peGlucyc7XG5cbiAgICAjbG9hZGluZy1iYXItc3Bpbm5lci5zcGlubmVyIHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxOSAhaW1wb3J0YW50O1xuICAgICAgICBhbmltYXRpb246IGxvYWRpbmctYmFyLXNwaW5uZXIgNDAwbXMgbGluZWFyIGluZmluaXRlO1xuICAgIH1cblxuICAgICNsb2FkaW5nLWJhci1zcGlubmVyLnNwaW5uZXIgLnNwaW5uZXItaWNvbiB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgNHB4IHRyYW5zcGFyZW50O1xuICAgICAgICAvL2JvcmRlci10b3AtY29sb3I6ICR0aGVtZSAhaW1wb3J0YW50O1xuICAgICAgICAvL2JvcmRlci1sZWZ0LWNvbG9yOiAkdGhlbWUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbG9hZGluZy1iYXItc3Bpbm5lciB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbjwvc3R5bGU+XG4iLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL1NwaW5uZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFkZjY2MDAyJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NwaW5uZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TcGlubmVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9TcGlubmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFkZjY2MDAyJnNjb3BlZD10cnVlJmxhbmc9c2NzcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMWRmNjYwMDJcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9
|