@angular-generic-table/column-settings
Advanced tools
Comparing version 4.17.0 to 4.17.1
@@ -0,0 +0,0 @@ /** |
@@ -397,2 +397,2 @@ (function (global, factory) { | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvbHVtbi1zZXR0aW5ncy51bWQuanMubWFwIiwic291cmNlcyI6W251bGwsIm5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy9jb2x1bW4tc2V0dGluZ3MubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0geVtvcFswXSAmIDIgPyBcInJldHVyblwiIDogb3BbMF0gPyBcInRocm93XCIgOiBcIm5leHRcIl0pICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gWzAsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBleHBvcnRzKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmICghZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShwKSkgZXhwb3J0c1twXSA9IG1bcF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl0sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7ICB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpZiAob1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG4iLCJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRWaWV3Q2hpbGQsXG5cdFRlbXBsYXRlUmVmLFxuXHRFbGVtZW50UmVmLFxuXHRQaXBlLFxuXHRQaXBlVHJhbnNmb3JtLFxuXHRPbkluaXQsXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRIb3N0TGlzdGVuZXIsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0R2VuZXJpY1RhYmxlQ29tcG9uZW50LFxuXHRHdFJvdyxcblx0R3RDb25maWdTZXR0aW5nXG59IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcbmltcG9ydCB7IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzJztcblxuQFBpcGUoe1xuXHRuYW1lOiAnZ3RDb2x1bW4nXG59KVxuZXhwb3J0IGNsYXNzIEd0Q29sdW1uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXHQvLyBUT0RPOiBtb3ZlIHRvIGhlbHBlciBmdW5jdGlvbnNcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXG5cdHByaXZhdGUgZ2V0Q29sdW1uT3JkZXIoYTogYW55LCBiOiBhbnkpIHtcblx0XHRpZiAoYS5jb2x1bW5PcmRlciA8IGIuY29sdW1uT3JkZXIpIHtcblx0XHRcdHJldHVybiAtMTtcblx0XHR9XG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPiBiLmNvbHVtbk9yZGVyIHx8IHR5cGVvZiBhLmNvbHVtbk9yZGVyID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0LyoqIHJldHVybiBlbmFibGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxvY2tlZCBmb3IgZWRpdGluZyAqL1xuXHRwcml2YXRlIGdldEVuYWJsZWQoY29sdW1uOiBHdENvbmZpZ1NldHRpbmcpIHtcblx0XHRyZXR1cm4gY29sdW1uLmVuYWJsZWQgIT09IGZhbHNlICYmIGNvbHVtbi5sb2NrU2V0dGluZ3MgIT09IHRydWVcblx0XHRcdD8gY29sdW1uXG5cdFx0XHQ6IG51bGw7XG5cdH1cblxuXHR0cmFuc2Zvcm0oc2V0dGluZ3M6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4pOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+IHtcblx0XHRyZXR1cm4gc2V0dGluZ3MuZmlsdGVyKHRoaXMuZ2V0RW5hYmxlZCkuc29ydCh0aGlzLmdldENvbHVtbk9yZGVyKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdndC1jb2x1bW4tc2V0dGluZ3MnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkl0ZW0gbGV0LWNvbHVtbiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnlcIj57e2luZGV4fX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAoZGJsY2xpY2spPVwidG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW4pXCIgY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cInsnYmFkZ2Utc3VjY2Vzcyc6Y29sdW1uLnZpc2libGUgIT09IGZhbHNlLCAnYmFkZ2UtZGFuZ2VyJzpjb2x1bW4udmlzaWJsZSA9PT0gZmFsc2V9XCI+e3tnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtcGFuZWxcIiAgKm5nSWY9XCJhY3RpdmVcIiBbc3R5bGUucGFkZGluZy10b3BdPVwib2Zmc2V0XCIgW3N0eWxlLmhlaWdodF09XCInY2FsYygxMDAlIC0gJytvZmZzZXQrJyknXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAjZ3RDb2x1bW5TZXR0aW5nc0hlYWRlciBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWFkZXIgYm9yZGVyLWJvdHRvbS0wXCIgW25nQ2xhc3NdPVwiZ3RIZWFkZXJDbGFzc2VzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy10aXRsZVwiICpuZ0lmPVwiZ3RUZXh0cy50aXRsZVwiPnt7Z3RUZXh0cy50aXRsZX19PC9oNj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWhlbHAgZm9ybS10ZXh0IHRleHQtbXV0ZWRcIiAqbmdJZj1cImd0VGV4dHMuaGVscFwiPnt7Z3RUZXh0cy5oZWxwfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbS13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZ3RXcmFwcGVyQ2xhc3Nlc1wiIFtkcmFndWxhXT0nYmFnSWQnICBkYXRhLXZpc2libGU9XCJ0cnVlXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcraGVpZ2h0QWRqdXN0KycpJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWl0ZW0gcHItMCBwci1zbS00XCIgKm5nRm9yPVwibGV0IGkgPSBpbmRleDtsZXQgY29sdW1uIG9mIGdlbmVyaWNUYWJsZS5ndFNldHRpbmdzIHwgZ3RDb2x1bW5cIiBbYXR0ci5kYXRhLW9iamVjdC1rZXldPVwiY29sdW1uLm9iamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImd0Q29sdW1uSXRlbSA/IGd0Q29sdW1uSXRlbTpjb2x1bW5JdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNvbHVtbixpbmRleDogdGhpcy5yZW9yZGVyZWQgPyBjb2x1bW4uY29sdW1uT3JkZXIrMTppKzEsIG5hbWU6IChnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnKX1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Qtb3ZlcmxheVwiICpuZ0lmPVwiYWN0aXZlICYmIG92ZXJsYXlcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtIC0nK29mZnNldCsnKSdcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNnZW5lcmljVGFibGVFbGVtZW50IFtuZ0lmXT1cImdlbmVyaWNUYWJsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdGdldCBnZW5lcmljVGFibGUoKTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyaWNUYWJsZTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCBnZW5lcmljVGFibGUodmFsdWU6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxhbnksIGFueT4pIHtcblx0XHR0aGlzLl9nZW5lcmljVGFibGUgPSB2YWx1ZTtcblx0fVxuXG5cdEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZUVsZW1lbnQnKSBlbGVtZW50VmlldzogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XG5cdEBWaWV3Q2hpbGQoJ2d0Q29sdW1uU2V0dGluZ3NIZWFkZXInKSBndENvbHVtblNldHRpbmdzSGVhZGVyOiBFbGVtZW50UmVmO1xuXG5cdHByaXZhdGUgX2dlbmVyaWNUYWJsZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PEd0Um93LCBhbnk+O1xuXHRASW5wdXQoKVxuXHRndEhlYWRlckNsYXNzZXMgPSAncHgtMyBwdC0zIHBiLTIgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItYm90dG9tLTAgYWxlcnQtaW5mbyc7XG5cdEBJbnB1dCgpXG5cdGd0V3JhcHBlckNsYXNzZXMgPSAncHgtMyBwYi0zIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLXRvcC0wIGFsZXJ0LWluZm8nO1xuXHRASW5wdXQoKSBvdmVybGF5ID0gdHJ1ZTtcblx0QElucHV0KCkgZ3RDb2x1bW5JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblx0cHVibGljIGd0RGVmYXVsdFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB7XG5cdFx0dGl0bGU6ICdDb2x1bW5zJyxcblx0XHRoZWxwOiAnRG91YmxlIGNsaWNrIHRvIHRvZ2dsZSB2aXNpYmlsaXR5LCBkcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIuJ1xuXHR9O1xuXHRASW5wdXQoKSBndFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB0aGlzLmd0RGVmYXVsdFRleHRzO1xuXG5cdEBPdXRwdXQoKSBwdWJsaWMgZ3RFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXHRwdWJsaWMgYWN0aXZlID0gZmFsc2U7XG5cdHB1YmxpYyBvZmZzZXQ6IHN0cmluZztcblx0cHVibGljIGhlaWdodEFkanVzdDogc3RyaW5nO1xuXHRwdWJsaWMgcmVvcmRlcmVkID0gZmFsc2U7XG5cdHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDaGVjayBvZmZzZXQgaGVpZ2h0IG9uIHdpbmRvdyByZXNpemUuXG5cdCAqL1xuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXG5cdHB1YmxpYyBvblJlc2l6ZSgpIHtcblx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xuXHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxuXHRcdHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG5cdCkge1xuXHRcdGRyYWd1bGFTZXJ2aWNlLmRyb3Auc3Vic2NyaWJlKCh2YWx1ZTogQXJyYXk8YW55PikgPT4ge1xuXHRcdFx0aWYgKHZhbHVlWzBdID09PSB0aGlzLmJhZ0lkKSB7XG5cdFx0XHRcdHRoaXMuX29uRHJvcCh2YWx1ZS5zbGljZSgxKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmJhZ0lkID0gdGhpcy5nZW5lcmF0ZUlkKCk7XG5cdFx0Ly8gc2V0dXAgdGV4dHNcblx0XHR0aGlzLmd0VGV4dHMgPSA8R3RDb2x1bW5TZXR0aW5nc1RleHRzPnRoaXMuZXh0ZW5kKFxuXHRcdFx0dGhpcy5ndERlZmF1bHRUZXh0cyxcblx0XHRcdHRoaXMuZ3RUZXh0c1xuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogIEV4dGVuZCBvYmplY3QgZnVuY3Rpb24uXG5cdCAqL1xuXHRwcml2YXRlIGV4dGVuZCA9IGZ1bmN0aW9uKGE6IE9iamVjdCwgYjogT2JqZWN0KSB7XG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gYikge1xuXHRcdFx0aWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0XHRhW2tleV0gPSBiW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBUb2dnbGUgY29sdW1uIHNldHRpbmdzIHZpc2liaWxpdHkuXG5cdCAqL1xuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hY3RpdmUgPSAhdGhpcy5hY3RpdmU7XG5cblx0XHRpZiAodGhpcy5hY3RpdmUpIHtcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cblx0XHRcdC8vIGNoZWNrIGFuZCBhZGp1c3QgaGVpZ2h0IG9mZnNldFxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcblx0XHRcdH0sIDApO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHkuXG5cdCAqIEBwYXJhbSBjb2x1bW4gLSBjb2x1bW4gb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIHRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uOiBhbnkpIHtcblx0XHQvLyB0b2dnbGUgY29sdW1uIHZpc2liaWxpdHlcblx0XHRjb2x1bW4udmlzaWJsZSA9XG5cdFx0XHR0eXBlb2YgY29sdW1uLnZpc2libGUgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhY29sdW1uLnZpc2libGU7XG5cblx0XHQvLyByZWRyYXcgdGFibGVcblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XG5cblx0XHQvLyBlbWl0IGV2ZW50XG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi12aXNpYmlsaXR5LWNoYW5nZScsXG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRjb2x1bW46IHsgLi4uY29sdW1uIH0sXG5cdFx0XHRcdHNldHRpbmdzOiBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdXG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBjaGVjayBhbmQgcmVzZXQgb2Zmc2V0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9yZGVyIHRhYmxlIGJ5IG9iamVjdCBrZXkuXG5cdCAqIEBwYXJhbSBhcmdzIC0gbmFtZSBvZiBrZXkgdG8gc29ydCBvbi5cblx0ICovXG5cdHByaXZhdGUgX29uRHJvcChhcmdzOiBBcnJheTxhbnk+KSB7XG5cdFx0dGhpcy5yZW9yZGVyZWQgPSB0cnVlO1xuXHRcdGNvbnN0IFtlLCB0YXJnZXRdID0gYXJncztcblx0XHRjb25zdCBvcmRlciA9IHt9O1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRvcmRlclt0YXJnZXQuY2hpbGRyZW5baV0uZ2V0QXR0cmlidXRlKCdkYXRhLW9iamVjdC1rZXknKV0gPSBpO1xuXHRcdH1cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc1tpXS5jb2x1bW5PcmRlciA9XG5cdFx0XHRcdG9yZGVyW3RoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLm9iamVjdEtleV07XG5cdFx0fVxuXG5cdFx0Ly8gcmVzZXQgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgPSBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdO1xuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi1vcmRlci1jaGFuZ2UnLFxuXHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxuXHQgKi9cblx0cHJpdmF0ZSBfZ2V0VGFibGVIZWFkSGVpZ2h0KCk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09ICdUSEVBRCdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLm9mZnNldEhlaWdodCArICdweCdcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09XG5cdFx0XHRcdCdUSEVBRCdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkXG5cdFx0XHRcdFx0XHQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuICcwcHgnO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBoZWlnaHQgb2YgdGFibGUgaGVhZCBlbGVtZW50IGllLiBmaXJzdCByb3cgY29udGFpbmluZyB0YWJsZSBoZWFkZXJzLlxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXG5cdCAqL1xuXHRwcml2YXRlIF9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpOiBzdHJpbmcge1xuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5ndENvbHVtblNldHRpbmdzSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4Jztcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmV0dXJuICcwcHgnO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmb3IgZHJhZ3VsYSBpbnN0YW5jZSBpLmUuIGEgdW5pcXVlIGJhZyBuYW1lKi9cblx0LyogdHNsaW50OmRpc2FibGUgKi9cblx0cHJpdmF0ZSBnZW5lcmF0ZUlkKCkge1xuXHRcdGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cdFx0cmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xuXHRcdFx0Y29uc3QgciA9ICgoZCArIE1hdGgucmFuZG9tKCkgKiAxNikgJSAxNikgfCAwO1xuXHRcdFx0ZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcblx0XHRcdHJldHVybiAoYyA9PT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4OCkudG9TdHJpbmcoMTYpO1xuXHRcdH0pO1xuXHR9XG5cdC8qIHRzbGludDplbmFibGUgKi9cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0R3RDb2x1bW5QaXBlLFxuXHRHdENvbHVtblNldHRpbmdzQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyaWNUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuXG5ATmdNb2R1bGUoe1xuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBHZW5lcmljVGFibGVNb2R1bGUsIERyYWd1bGFNb2R1bGVdLFxuXHRkZWNsYXJhdGlvbnM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdLFxuXHRleHBvcnRzOiBbR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCwgR3RDb2x1bW5QaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nc01vZHVsZSB7fVxuIl0sIm5hbWVzIjpbIlBpcGUiLCJFdmVudEVtaXR0ZXIiLCJDb21wb25lbnQiLCJEcmFndWxhU2VydmljZSIsIkNoYW5nZURldGVjdG9yUmVmIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJPdXRwdXQiLCJIb3N0TGlzdGVuZXIiLCJOZ01vZHVsZSIsIkNvbW1vbk1vZHVsZSIsIkdlbmVyaWNUYWJsZU1vZHVsZSIsIkRyYWd1bGFNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7OztJQUFBOzs7Ozs7Ozs7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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvbHVtbi1zZXR0aW5ncy51bWQuanMubWFwIiwic291cmNlcyI6W251bGwsIm5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy9jb2x1bW4tc2V0dGluZ3MubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0geVtvcFswXSAmIDIgPyBcInJldHVyblwiIDogb3BbMF0gPyBcInRocm93XCIgOiBcIm5leHRcIl0pICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gWzAsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBleHBvcnRzKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmICghZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShwKSkgZXhwb3J0c1twXSA9IG1bcF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl0sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7ICB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpZiAob1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG4iLCJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRJbnB1dCxcclxuXHRWaWV3Q2hpbGQsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0RWxlbWVudFJlZixcclxuXHRQaXBlLFxyXG5cdFBpcGVUcmFuc2Zvcm0sXHJcblx0T25Jbml0LFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRPdXRwdXQsXHJcblx0RXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0R2VuZXJpY1RhYmxlQ29tcG9uZW50LFxyXG5cdEd0Um93LFxyXG5cdEd0Q29uZmlnU2V0dGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XHJcbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xyXG5pbXBvcnQgeyBHdENvbHVtblNldHRpbmdzVGV4dHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cyc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2d0Q29sdW1uJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblx0Ly8gVE9ETzogbW92ZSB0byBoZWxwZXIgZnVuY3Rpb25zXHJcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXHJcblx0cHJpdmF0ZSBnZXRDb2x1bW5PcmRlcihhOiBhbnksIGI6IGFueSkge1xyXG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPCBiLmNvbHVtbk9yZGVyKSB7XHJcblx0XHRcdHJldHVybiAtMTtcclxuXHRcdH1cclxuXHRcdGlmIChhLmNvbHVtbk9yZGVyID4gYi5jb2x1bW5PcmRlciB8fCB0eXBlb2YgYS5jb2x1bW5PcmRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0cmV0dXJuIDE7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gMDtcclxuXHR9XHJcblxyXG5cdC8qKiByZXR1cm4gZW5hYmxlZCBjb2x1bW5zIHRoYXQgYXJlIG5vdCBsb2NrZWQgZm9yIGVkaXRpbmcgKi9cclxuXHRwcml2YXRlIGdldEVuYWJsZWQoY29sdW1uOiBHdENvbmZpZ1NldHRpbmcpIHtcclxuXHRcdHJldHVybiBjb2x1bW4uZW5hYmxlZCAhPT0gZmFsc2UgJiYgY29sdW1uLmxvY2tTZXR0aW5ncyAhPT0gdHJ1ZVxyXG5cdFx0XHQ/IGNvbHVtblxyXG5cdFx0XHQ6IG51bGw7XHJcblx0fVxyXG5cclxuXHR0cmFuc2Zvcm0oc2V0dGluZ3M6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4pOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+IHtcclxuXHRcdHJldHVybiBzZXR0aW5ncy5maWx0ZXIodGhpcy5nZXRFbmFibGVkKS5zb3J0KHRoaXMuZ2V0Q29sdW1uT3JkZXIpO1xyXG5cdH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdndC1jb2x1bW4tc2V0dGluZ3MnLFxyXG5cdHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5JdGVtIGxldC1jb2x1bW4gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnlcIj57e2luZGV4fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIChkYmxjbGljayk9XCJ0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbilcIiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwieydiYWRnZS1zdWNjZXNzJzpjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UsICdiYWRnZS1kYW5nZXInOmNvbHVtbi52aXNpYmxlID09PSBmYWxzZX1cIj57e2dlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZSd9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1wYW5lbFwiICAqbmdJZj1cImFjdGl2ZVwiIFtzdHlsZS5wYWRkaW5nLXRvcF09XCJvZmZzZXRcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAnK29mZnNldCsnKSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgI2d0Q29sdW1uU2V0dGluZ3NIZWFkZXIgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVhZGVyIGJvcmRlci1ib3R0b20tMFwiIFtuZ0NsYXNzXT1cImd0SGVhZGVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy10aXRsZVwiICpuZ0lmPVwiZ3RUZXh0cy50aXRsZVwiPnt7Z3RUZXh0cy50aXRsZX19PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVscCBmb3JtLXRleHQgdGV4dC1tdXRlZFwiICpuZ0lmPVwiZ3RUZXh0cy5oZWxwXCI+e3tndFRleHRzLmhlbHB9fTwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbS13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZ3RXcmFwcGVyQ2xhc3Nlc1wiIFtkcmFndWxhXT0nYmFnSWQnICBkYXRhLXZpc2libGU9XCJ0cnVlXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcraGVpZ2h0QWRqdXN0KycpJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbSBwci0wIHByLXNtLTRcIiAqbmdGb3I9XCJsZXQgaSA9IGluZGV4O2xldCBjb2x1bW4gb2YgZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgfCBndENvbHVtblwiIFthdHRyLmRhdGEtb2JqZWN0LWtleV09XCJjb2x1bW4ub2JqZWN0S2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJndENvbHVtbkl0ZW0gPyBndENvbHVtbkl0ZW06Y29sdW1uSXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBjb2x1bW4saW5kZXg6IHRoaXMucmVvcmRlcmVkID8gY29sdW1uLmNvbHVtbk9yZGVyKzE6aSsxLCBuYW1lOiAoZ2VuZXJpY1RhYmxlLmd0RmllbGRzIHwgZ3RQcm9wZXJ0eTpjb2x1bW4ub2JqZWN0S2V5OiduYW1lJyl9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LW92ZXJsYXlcIiAqbmdJZj1cImFjdGl2ZSAmJiBvdmVybGF5XCIgKGNsaWNrKT1cInRvZ2dsZUNvbHVtblNldHRpbmdzKClcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAtJytvZmZzZXQrJyknXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyaWNUYWJsZUVsZW1lbnQgW25nSWZdPVwiZ2VuZXJpY1RhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHdENvbHVtblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRnZXQgZ2VuZXJpY1RhYmxlKCk6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxhbnksIGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyaWNUYWJsZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IGdlbmVyaWNUYWJsZSh2YWx1ZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55Pikge1xyXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlID0gdmFsdWU7XHJcblx0fVxyXG5cclxuXHRAVmlld0NoaWxkKCdnZW5lcmljVGFibGVFbGVtZW50JykgZWxlbWVudFZpZXc6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xyXG5cdEBWaWV3Q2hpbGQoJ2d0Q29sdW1uU2V0dGluZ3NIZWFkZXInKSBndENvbHVtblNldHRpbmdzSGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuXHRwcml2YXRlIF9nZW5lcmljVGFibGU6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxHdFJvdywgYW55PjtcclxuXHRASW5wdXQoKVxyXG5cdGd0SGVhZGVyQ2xhc3NlcyA9ICdweC0zIHB0LTMgcGItMiB0YWJsZS1ib3JkZXJlZCBib3JkZXItbGVmdC0wIGJvcmRlci1yaWdodC0wIGJvcmRlci1ib3R0b20tMCBhbGVydC1pbmZvJztcclxuXHRASW5wdXQoKVxyXG5cdGd0V3JhcHBlckNsYXNzZXMgPSAncHgtMyBwYi0zIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLXRvcC0wIGFsZXJ0LWluZm8nO1xyXG5cdEBJbnB1dCgpIG92ZXJsYXkgPSB0cnVlO1xyXG5cdEBJbnB1dCgpIGd0Q29sdW1uSXRlbTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblx0cHVibGljIGd0RGVmYXVsdFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB7XHJcblx0XHR0aXRsZTogJ0NvbHVtbnMnLFxyXG5cdFx0aGVscDogJ0RvdWJsZSBjbGljayB0byB0b2dnbGUgdmlzaWJpbGl0eSwgZHJhZyBhbmQgZHJvcCB0byByZW9yZGVyLidcclxuXHR9O1xyXG5cdEBJbnB1dCgpIGd0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHRoaXMuZ3REZWZhdWx0VGV4dHM7XHJcblxyXG5cdEBPdXRwdXQoKSBwdWJsaWMgZ3RFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0cHVibGljIGFjdGl2ZSA9IGZhbHNlO1xyXG5cdHB1YmxpYyBvZmZzZXQ6IHN0cmluZztcclxuXHRwdWJsaWMgaGVpZ2h0QWRqdXN0OiBzdHJpbmc7XHJcblx0cHVibGljIHJlb3JkZXJlZCA9IGZhbHNlO1xyXG5cdHB1YmxpYyBiYWdJZDogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBvZmZzZXQgaGVpZ2h0IG9uIHdpbmRvdyByZXNpemUuXHJcblx0ICovXHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFtdKVxyXG5cdHB1YmxpYyBvblJlc2l6ZSgpIHtcclxuXHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblx0XHR0aGlzLmhlaWdodEFkanVzdCA9IHRoaXMuX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk7XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdGRyYWd1bGFTZXJ2aWNlLmRyb3Auc3Vic2NyaWJlKCh2YWx1ZTogQXJyYXk8YW55PikgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWVbMF0gPT09IHRoaXMuYmFnSWQpIHtcclxuXHRcdFx0XHR0aGlzLl9vbkRyb3AodmFsdWUuc2xpY2UoMSkpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5iYWdJZCA9IHRoaXMuZ2VuZXJhdGVJZCgpO1xyXG5cdFx0Ly8gc2V0dXAgdGV4dHNcclxuXHRcdHRoaXMuZ3RUZXh0cyA9IDxHdENvbHVtblNldHRpbmdzVGV4dHM+dGhpcy5leHRlbmQoXHJcblx0XHRcdHRoaXMuZ3REZWZhdWx0VGV4dHMsXHJcblx0XHRcdHRoaXMuZ3RUZXh0c1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqICBFeHRlbmQgb2JqZWN0IGZ1bmN0aW9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgZXh0ZW5kID0gZnVuY3Rpb24oYTogT2JqZWN0LCBiOiBPYmplY3QpIHtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIGIpIHtcclxuXHRcdFx0aWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdGFba2V5XSA9IGJba2V5XTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGE7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlIGNvbHVtbiBzZXR0aW5ncyB2aXNpYmlsaXR5LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0b2dnbGVDb2x1bW5TZXR0aW5ncygpIHtcclxuXHRcdHRoaXMuYWN0aXZlID0gIXRoaXMuYWN0aXZlO1xyXG5cclxuXHRcdGlmICh0aGlzLmFjdGl2ZSkge1xyXG5cdFx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgYW5kIGFkanVzdCBoZWlnaHQgb2Zmc2V0XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcclxuXHRcdFx0fSwgMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHkuXHJcblx0ICogQHBhcmFtIGNvbHVtbiAtIGNvbHVtbiBvYmplY3QuXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uOiBhbnkpIHtcclxuXHRcdC8vIHRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eVxyXG5cdFx0Y29sdW1uLnZpc2libGUgPVxyXG5cdFx0XHR0eXBlb2YgY29sdW1uLnZpc2libGUgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhY29sdW1uLnZpc2libGU7XHJcblxyXG5cdFx0Ly8gcmVkcmF3IHRhYmxlXHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XHJcblxyXG5cdFx0Ly8gZW1pdCBldmVudFxyXG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xyXG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLXZpc2liaWxpdHktY2hhbmdlJyxcclxuXHRcdFx0dmFsdWU6IHtcclxuXHRcdFx0XHRjb2x1bW46IHsgLi4uY29sdW1uIH0sXHJcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gY2hlY2sgYW5kIHJlc2V0IG9mZnNldFxyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblx0XHR9LCAwKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE9yZGVyIHRhYmxlIGJ5IG9iamVjdCBrZXkuXHJcblx0ICogQHBhcmFtIGFyZ3MgLSBuYW1lIG9mIGtleSB0byBzb3J0IG9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX29uRHJvcChhcmdzOiBBcnJheTxhbnk+KSB7XHJcblx0XHR0aGlzLnJlb3JkZXJlZCA9IHRydWU7XHJcblx0XHRjb25zdCBbZSwgdGFyZ2V0XSA9IGFyZ3M7XHJcblx0XHRjb25zdCBvcmRlciA9IHt9O1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0b3JkZXJbdGFyZ2V0LmNoaWxkcmVuW2ldLmdldEF0dHJpYnV0ZSgnZGF0YS1vYmplY3Qta2V5JyldID0gaTtcclxuXHRcdH1cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0uY29sdW1uT3JkZXIgPVxyXG5cdFx0XHRcdG9yZGVyW3RoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLm9iamVjdEtleV07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gcmVzZXQgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncyA9IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc107XHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcclxuXHRcdHRoaXMuZ3RFdmVudC5lbWl0KHtcclxuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi1vcmRlci1jaGFuZ2UnLFxyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHNldHRpbmdzOiBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXHJcblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2dldFRhYmxlSGVhZEhlaWdodCgpOiBzdHJpbmcge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09ICdUSEVBRCdcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0cmV0dXJuIChcclxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09XHJcblx0XHRcdFx0J1RIRUFEJ1xyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHRcdC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZFxyXG5cdFx0XHRcdFx0XHQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXHJcblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5ndENvbHVtblNldHRpbmdzSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdHJldHVybiAnMHB4JztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmb3IgZHJhZ3VsYSBpbnN0YW5jZSBpLmUuIGEgdW5pcXVlIGJhZyBuYW1lKi9cclxuXHQvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG5cdHByaXZhdGUgZ2VuZXJhdGVJZCgpIHtcclxuXHRcdGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcblx0XHRyZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcblx0XHRcdGNvbnN0IHIgPSAoKGQgKyBNYXRoLnJhbmRvbSgpICogMTYpICUgMTYpIHwgMDtcclxuXHRcdFx0ZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcclxuXHRcdFx0cmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0LyogdHNsaW50OmVuYWJsZSAqL1xyXG59XHJcbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcblx0R3RDb2x1bW5QaXBlLFxyXG5cdEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMvZ3QtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XHJcbmltcG9ydCB7IERyYWd1bGFNb2R1bGUgfSBmcm9tICduZzItZHJhZ3VsYSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEdlbmVyaWNUYWJsZU1vZHVsZSwgRHJhZ3VsYU1vZHVsZV0sXHJcblx0ZGVjbGFyYXRpb25zOiBbR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCwgR3RDb2x1bW5QaXBlXSxcclxuXHRleHBvcnRzOiBbR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCwgR3RDb2x1bW5QaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ3NNb2R1bGUge31cclxuIl0sIm5hbWVzIjpbIlBpcGUiLCJFdmVudEVtaXR0ZXIiLCJDb21wb25lbnQiLCJEcmFndWxhU2VydmljZSIsIkNoYW5nZURldGVjdG9yUmVmIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJPdXRwdXQiLCJIb3N0TGlzdGVuZXIiLCJOZ01vZHVsZSIsIkNvbW1vbk1vZHVsZSIsIkdlbmVyaWNUYWJsZU1vZHVsZSIsIkRyYWd1bGFNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7OztJQUFBOzs7Ozs7Ozs7Ozs7OztBQWNBLElBWU8sSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQztRQUN0RCxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQztnQkFBRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEY7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUMsQ0FBQTtBQUVELG9CQTZFdUIsQ0FBQyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJO1lBQ0EsT0FBTyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSTtnQkFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5RTtRQUNELE9BQU8sS0FBSyxFQUFFO1lBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQUU7Z0JBQy9CO1lBQ0osSUFBSTtnQkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BEO29CQUNPO2dCQUFFLElBQUksQ0FBQztvQkFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFBRTtTQUNwQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztBQUVEO1FBQ0ksS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDOUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7UUN4R1EscUNBQWM7Ozs7OztzQkFBQyxDQUFNLEVBQUUsQ0FBTTtnQkFDcEMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7b0JBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtvQkFDMUUsT0FBTyxDQUFDLENBQUM7aUJBQ1Q7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7Ozs7Ozs7UUFJRixpQ0FBVTs7Ozs7c0JBQUMsTUFBdUI7Z0JBQ3pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxJQUFJO3NCQUM1RCxNQUFNO3NCQUNOLElBQUksQ0FBQzs7Ozs7O1FBR1QsZ0NBQVM7Ozs7WUFBVCxVQUFVLFFBQWdDO2dCQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDbEU7O29CQXpCREEsU0FBSSxTQUFDO3dCQUNMLElBQUksRUFBRSxVQUFVO3FCQUNoQjs7MkJBeEJEOzs7UUEwSEMsbUNBQ1MsZ0JBQ0E7WUFGVCxpQkFTQztZQVJRLG1CQUFjLEdBQWQsY0FBYztZQUNkLHNCQUFpQixHQUFqQixpQkFBaUI7bUNBOUJSLHVGQUF1RjtvQ0FFdEYsK0VBQStFOzJCQUMvRSxJQUFJO2tDQUV3QjtnQkFDOUMsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRSw4REFBOEQ7YUFDcEU7MkJBQ3lDLElBQUksQ0FBQyxjQUFjOzJCQUVmLElBQUlDLGlCQUFZLEVBQU87MEJBRXJELEtBQUs7NkJBR0YsS0FBSzs7OzswQkFtQ1AsVUFBUyxDQUFTLEVBQUUsQ0FBUztnQkFDN0MsS0FBSyxxQkFBTSxHQUFHLElBQUksQ0FBQyxFQUFFO29CQUNwQixJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQzFCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ2hCO2lCQUNEO2dCQUNELE9BQU8sQ0FBQyxDQUFDO2FBQ1Q7WUExQkEsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFpQjtnQkFDL0MsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSSxDQUFDLEtBQUssRUFBRTtvQkFDNUIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdCO2FBQ0QsQ0FBQyxDQUFDO1NBQ0g7UUFuREQsc0JBQUksbURBQVk7OztnQkFBaEI7Z0JBQ0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzFCOzs7OzBCQUdnQixLQUFzQztnQkFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Ozs7V0FKM0I7Ozs7O1FBbUNNLDRDQUFROzs7OztnQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDOzs7OztRQWMzRCw0Q0FBUTs7O1lBQVI7Z0JBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7O2dCQUUvQixJQUFJLENBQUMsT0FBTyxxQkFBMEIsSUFBSSxDQUFDLE1BQU0sQ0FDaEQsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FDWixDQUFBLENBQUM7YUFDRjs7Ozs7UUFpQk0sd0RBQW9COzs7Ozs7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUUzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7O29CQUd6QyxVQUFVLENBQUM7d0JBQ1YsS0FBSSxDQUFDLFlBQVksR0FBRyxLQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztxQkFDMUQsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDTjs7Ozs7OztRQU9LLDBEQUFzQjs7Ozs7c0JBQUMsTUFBVzs7O2dCQUV4QyxNQUFNLENBQUMsT0FBTztvQkFDYixPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssV0FBVyxHQUFHLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7O2dCQUdqRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDOztnQkFHNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLElBQUksRUFBRSw2QkFBNkI7b0JBQ25DLEtBQUssRUFBRTt3QkFDTixNQUFNLGVBQU8sTUFBTSxDQUFFO3dCQUNyQixRQUFRLFdBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7cUJBQzVDO2lCQUNELENBQUMsQ0FBQzs7Z0JBR0gsVUFBVSxDQUFDO29CQUNWLEtBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7aUJBQ3pDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7UUFPQywyQ0FBTzs7Ozs7c0JBQUMsSUFBZ0I7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QiwwQkFBTyxTQUFDLEVBQUUsY0FBTSxDQUFTO2dCQUN6QixxQkFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNqQixLQUFLLHFCQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNoRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDOUQ7Z0JBQ0QsS0FBSyxxQkFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7d0JBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDbkQ7O2dCQUdELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxZQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFFdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLElBQUksRUFBRSx3QkFBd0I7b0JBQzlCLEtBQUssRUFBRTt3QkFDTixRQUFRLFdBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7cUJBQzVDO2lCQUNELENBQUMsQ0FBQzs7Ozs7O1FBT0ksdURBQW1COzs7OztnQkFDMUIsSUFBSTtvQkFDSCxJQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7eUJBQzFELGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQ3hEO3dCQUNELFFBQ0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGtCQUFrQjs2QkFDMUQsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksRUFDeEQ7cUJBQ0Y7b0JBQ0QsSUFDQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO3lCQUMxRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPO3dCQUMvRCxPQUFPLEVBQ047d0JBQ0QsUUFDQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCOzZCQUMxRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUI7NkJBQ3JELFlBQVksR0FBRyxJQUFJLEVBQ3BCO3FCQUNGO29CQUNELE9BQU8sS0FBSyxDQUFDO2lCQUNiO2dCQUFDLHdCQUFPLEtBQUssRUFBRTtvQkFDZixPQUFPLEtBQUssQ0FBQztpQkFDYjs7Ozs7O1FBT00sa0VBQThCOzs7OztnQkFDckMsSUFBSTtvQkFDSCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztpQkFDckU7Z0JBQUMsd0JBQU8sS0FBSyxFQUFFO29CQUNmLE9BQU8sS0FBSyxDQUFDO2lCQUNiOzs7Ozs7UUFLTSw4Q0FBVTs7Ozs7Z0JBQ2pCLHFCQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBUyxDQUFDO29CQUN4RSxxQkFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzlDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDdkIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RCxDQUFDLENBQUM7OztvQkFwT0pDLGNBQVMsU0FBQzt3QkFDVixRQUFRLEVBQUUsb0JBQW9CO3dCQUM5QixRQUFRLEVBQUUsOHRFQXlCTjtxQkFDSjs7Ozs7O3dCQTNEUUMseUJBQWM7d0JBVnRCQyxzQkFBaUI7Ozs7cUNBMkVoQkMsVUFBSztvQ0FLTEMsY0FBUyxTQUFDLHFCQUFxQjsrQ0FDL0JBLGNBQVMsU0FBQyx3QkFBd0I7d0NBR2xDRCxVQUFLO3lDQUVMQSxVQUFLO2dDQUVMQSxVQUFLO3FDQUNMQSxVQUFLO2dDQUtMQSxVQUFLO2dDQUVMRSxXQUFNO2lDQVdOQyxpQkFBWSxTQUFDLGVBQWUsRUFBRSxFQUFFOzt3Q0FwSGxDOzs7Ozs7O0FDQUE7Ozs7b0JBU0NDLGFBQVEsU0FBQzt3QkFDVCxPQUFPLEVBQUUsQ0FBQ0MsbUJBQVksRUFBRUMseUJBQWtCLEVBQUVDLHdCQUFhLENBQUM7d0JBQzFELFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQzt3QkFDdkQsT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDO3FCQUNsRDs7bUNBYkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0= |
@@ -5,2 +5,8 @@ ## Release History | ||
## [4.17.1] - 2018-09-07 | ||
### Fixed | ||
* Event handling for inline edit #269 | ||
## [4.17.0] - 2018-07-15 | ||
@@ -7,0 +13,0 @@ |
export declare class ColumnSettingsModule { | ||
} |
@@ -0,0 +0,0 @@ import { TemplateRef, ElementRef, PipeTransform, OnInit, ChangeDetectorRef, EventEmitter } from '@angular/core'; |
@@ -0,0 +0,0 @@ /** |
@@ -29,2 +29,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29sdW1uLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNOLFlBQVksRUFDWix5QkFBeUIsRUFDekIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTzVDLE1BQU07OztZQUxMLFFBQVEsU0FBQztnQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDO2dCQUMxRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUM7Z0JBQ3ZELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQzthQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0R3RDb2x1bW5QaXBlLFxuXHRHdENvbHVtblNldHRpbmdzQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyaWNUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuXG5ATmdNb2R1bGUoe1xuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBHZW5lcmljVGFibGVNb2R1bGUsIERyYWd1bGFNb2R1bGVdLFxuXHRkZWNsYXJhdGlvbnM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdLFxuXHRleHBvcnRzOiBbR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCwgR3RDb2x1bW5QaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nc01vZHVsZSB7fVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29sdW1uLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNOLFlBQVksRUFDWix5QkFBeUIsRUFDekIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTzVDLE1BQU07OztZQUxMLFFBQVEsU0FBQztnQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDO2dCQUMxRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUM7Z0JBQ3ZELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQzthQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcblx0R3RDb2x1bW5QaXBlLFxyXG5cdEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMvZ3QtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XHJcbmltcG9ydCB7IERyYWd1bGFNb2R1bGUgfSBmcm9tICduZzItZHJhZ3VsYSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEdlbmVyaWNUYWJsZU1vZHVsZSwgRHJhZ3VsYU1vZHVsZV0sXHJcblx0ZGVjbGFyYXRpb25zOiBbR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCwgR3RDb2x1bW5QaXBlXSxcclxuXHRleHBvcnRzOiBbR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCwgR3RDb2x1bW5QaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ3NNb2R1bGUge31cclxuIl19 |
@@ -335,2 +335,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixJQUFJLEVBR0osaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixxQkFBcUIsRUFHckIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTTdDLE1BQU07Ozs7Ozs7SUFHRyxjQUFjLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDcEMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUMxRSxPQUFPLENBQUMsQ0FBQztTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUM7Ozs7Ozs7SUFJRixVQUFVLENBQUMsTUFBdUI7UUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLElBQUk7WUFDOUQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsSUFBSSxDQUFDOzs7Ozs7SUFHVCxTQUFTLENBQUMsUUFBZ0M7UUFDekMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJ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QixPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBUyxDQUFDO1lBQ3hFLHVCQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0RCxDQUFDLENBQUM7Ozs7WUFwT0osU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlCTjthQUNKOzs7OztZQTNEUSxjQUFjO1lBVnRCLGlCQUFpQjs7OzZCQTJFaEIsS0FBSzs0QkFLTCxTQUFTLFNBQUMscUJBQXFCO3VDQUMvQixTQUFTLFNBQUMsd0JBQXdCO2dDQUdsQyxLQUFLO2lDQUVMLEtBQUs7d0JBRUwsS0FBSzs2QkFDTCxLQUFLO3dCQUtMLEtBQUs7d0JBRUwsTUFBTTt5QkFXTixZQUFZLFNBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRWaWV3Q2hpbGQsXG5cdFRlbXBsYXRlUmVmLFxuXHRFbGVtZW50UmVmLFxuXHRQaXBlLFxuXHRQaXBlVHJhbnNmb3JtLFxuXHRPbkluaXQsXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRIb3N0TGlzdGVuZXIsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0R2VuZXJpY1RhYmxlQ29tcG9uZW50LFxuXHRHdFJvdyxcblx0R3RDb25maWdTZXR0aW5nXG59IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcbmltcG9ydCB7IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzJztcblxuQFBpcGUoe1xuXHRuYW1lOiAnZ3RDb2x1bW4nXG59KVxuZXhwb3J0IGNsYXNzIEd0Q29sdW1uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXHQvLyBUT0RPOiBtb3ZlIHRvIGhlbHBlciBmdW5jdGlvbnNcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXG5cdHByaXZhdGUgZ2V0Q29sdW1uT3JkZXIoYTogYW55LCBiOiBhbnkpIHtcblx0XHRpZiAoYS5jb2x1bW5PcmRlciA8IGIuY29sdW1uT3JkZXIpIHtcblx0XHRcdHJldHVybiAtMTtcblx0XHR9XG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPiBiLmNvbHVtbk9yZGVyIHx8IHR5cGVvZiBhLmNvbHVtbk9yZGVyID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0LyoqIHJldHVybiBlbmFibGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxvY2tlZCBmb3IgZWRpdGluZyAqL1xuXHRwcml2YXRlIGdldEVuYWJsZWQoY29sdW1uOiBHdENvbmZpZ1NldHRpbmcpIHtcblx0XHRyZXR1cm4gY29sdW1uLmVuYWJsZWQgIT09IGZhbHNlICYmIGNvbHVtbi5sb2NrU2V0dGluZ3MgIT09IHRydWVcblx0XHRcdD8gY29sdW1uXG5cdFx0XHQ6IG51bGw7XG5cdH1cblxuXHR0cmFuc2Zvcm0oc2V0dGluZ3M6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4pOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+IHtcblx0XHRyZXR1cm4gc2V0dGluZ3MuZmlsdGVyKHRoaXMuZ2V0RW5hYmxlZCkuc29ydCh0aGlzLmdldENvbHVtbk9yZGVyKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdndC1jb2x1bW4tc2V0dGluZ3MnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkl0ZW0gbGV0LWNvbHVtbiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnlcIj57e2luZGV4fX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAoZGJsY2xpY2spPVwidG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW4pXCIgY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cInsnYmFkZ2Utc3VjY2Vzcyc6Y29sdW1uLnZpc2libGUgIT09IGZhbHNlLCAnYmFkZ2UtZGFuZ2VyJzpjb2x1bW4udmlzaWJsZSA9PT0gZmFsc2V9XCI+e3tnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtcGFuZWxcIiAgKm5nSWY9XCJhY3RpdmVcIiBbc3R5bGUucGFkZGluZy10b3BdPVwib2Zmc2V0XCIgW3N0eWxlLmhlaWdodF09XCInY2FsYygxMDAlIC0gJytvZmZzZXQrJyknXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAjZ3RDb2x1bW5TZXR0aW5nc0hlYWRlciBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWFkZXIgYm9yZGVyLWJvdHRvbS0wXCIgW25nQ2xhc3NdPVwiZ3RIZWFkZXJDbGFzc2VzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy10aXRsZVwiICpuZ0lmPVwiZ3RUZXh0cy50aXRsZVwiPnt7Z3RUZXh0cy50aXRsZX19PC9oNj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWhlbHAgZm9ybS10ZXh0IHRleHQtbXV0ZWRcIiAqbmdJZj1cImd0VGV4dHMuaGVscFwiPnt7Z3RUZXh0cy5oZWxwfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbS13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZ3RXcmFwcGVyQ2xhc3Nlc1wiIFtkcmFndWxhXT0nYmFnSWQnICBkYXRhLXZpc2libGU9XCJ0cnVlXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcraGVpZ2h0QWRqdXN0KycpJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWl0ZW0gcHItMCBwci1zbS00XCIgKm5nRm9yPVwibGV0IGkgPSBpbmRleDtsZXQgY29sdW1uIG9mIGdlbmVyaWNUYWJsZS5ndFNldHRpbmdzIHwgZ3RDb2x1bW5cIiBbYXR0ci5kYXRhLW9iamVjdC1rZXldPVwiY29sdW1uLm9iamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImd0Q29sdW1uSXRlbSA/IGd0Q29sdW1uSXRlbTpjb2x1bW5JdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNvbHVtbixpbmRleDogdGhpcy5yZW9yZGVyZWQgPyBjb2x1bW4uY29sdW1uT3JkZXIrMTppKzEsIG5hbWU6IChnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnKX1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Qtb3ZlcmxheVwiICpuZ0lmPVwiYWN0aXZlICYmIG92ZXJsYXlcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtIC0nK29mZnNldCsnKSdcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNnZW5lcmljVGFibGVFbGVtZW50IFtuZ0lmXT1cImdlbmVyaWNUYWJsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdGdldCBnZW5lcmljVGFibGUoKTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyaWNUYWJsZTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCBnZW5lcmljVGFibGUodmFsdWU6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxhbnksIGFueT4pIHtcblx0XHR0aGlzLl9nZW5lcmljVGFibGUgPSB2YWx1ZTtcblx0fVxuXG5cdEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZUVsZW1lbnQnKSBlbGVtZW50VmlldzogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XG5cdEBWaWV3Q2hpbGQoJ2d0Q29sdW1uU2V0dGluZ3NIZWFkZXInKSBndENvbHVtblNldHRpbmdzSGVhZGVyOiBFbGVtZW50UmVmO1xuXG5cdHByaXZhdGUgX2dlbmVyaWNUYWJsZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PEd0Um93LCBhbnk+O1xuXHRASW5wdXQoKVxuXHRndEhlYWRlckNsYXNzZXMgPSAncHgtMyBwdC0zIHBiLTIgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItYm90dG9tLTAgYWxlcnQtaW5mbyc7XG5cdEBJbnB1dCgpXG5cdGd0V3JhcHBlckNsYXNzZXMgPSAncHgtMyBwYi0zIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLXRvcC0wIGFsZXJ0LWluZm8nO1xuXHRASW5wdXQoKSBvdmVybGF5ID0gdHJ1ZTtcblx0QElucHV0KCkgZ3RDb2x1bW5JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblx0cHVibGljIGd0RGVmYXVsdFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB7XG5cdFx0dGl0bGU6ICdDb2x1bW5zJyxcblx0XHRoZWxwOiAnRG91YmxlIGNsaWNrIHRvIHRvZ2dsZSB2aXNpYmlsaXR5LCBkcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIuJ1xuXHR9O1xuXHRASW5wdXQoKSBndFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB0aGlzLmd0RGVmYXVsdFRleHRzO1xuXG5cdEBPdXRwdXQoKSBwdWJsaWMgZ3RFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXHRwdWJsaWMgYWN0aXZlID0gZmFsc2U7XG5cdHB1YmxpYyBvZmZzZXQ6IHN0cmluZztcblx0cHVibGljIGhlaWdodEFkanVzdDogc3RyaW5nO1xuXHRwdWJsaWMgcmVvcmRlcmVkID0gZmFsc2U7XG5cdHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDaGVjayBvZmZzZXQgaGVpZ2h0IG9uIHdpbmRvdyByZXNpemUuXG5cdCAqL1xuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXG5cdHB1YmxpYyBvblJlc2l6ZSgpIHtcblx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xuXHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxuXHRcdHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG5cdCkge1xuXHRcdGRyYWd1bGFTZXJ2aWNlLmRyb3Auc3Vic2NyaWJlKCh2YWx1ZTogQXJyYXk8YW55PikgPT4ge1xuXHRcdFx0aWYgKHZhbHVlWzBdID09PSB0aGlzLmJhZ0lkKSB7XG5cdFx0XHRcdHRoaXMuX29uRHJvcCh2YWx1ZS5zbGljZSgxKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmJhZ0lkID0gdGhpcy5nZW5lcmF0ZUlkKCk7XG5cdFx0Ly8gc2V0dXAgdGV4dHNcblx0XHR0aGlzLmd0VGV4dHMgPSA8R3RDb2x1bW5TZXR0aW5nc1RleHRzPnRoaXMuZXh0ZW5kKFxuXHRcdFx0dGhpcy5ndERlZmF1bHRUZXh0cyxcblx0XHRcdHRoaXMuZ3RUZXh0c1xuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogIEV4dGVuZCBvYmplY3QgZnVuY3Rpb24uXG5cdCAqL1xuXHRwcml2YXRlIGV4dGVuZCA9IGZ1bmN0aW9uKGE6IE9iamVjdCwgYjogT2JqZWN0KSB7XG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gYikge1xuXHRcdFx0aWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0XHRhW2tleV0gPSBiW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBUb2dnbGUgY29sdW1uIHNldHRpbmdzIHZpc2liaWxpdHkuXG5cdCAqL1xuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hY3RpdmUgPSAhdGhpcy5hY3RpdmU7XG5cblx0XHRpZiAodGhpcy5hY3RpdmUpIHtcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cblx0XHRcdC8vIGNoZWNrIGFuZCBhZGp1c3QgaGVpZ2h0IG9mZnNldFxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcblx0XHRcdH0sIDApO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHkuXG5cdCAqIEBwYXJhbSBjb2x1bW4gLSBjb2x1bW4gb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIHRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uOiBhbnkpIHtcblx0XHQvLyB0b2dnbGUgY29sdW1uIHZpc2liaWxpdHlcblx0XHRjb2x1bW4udmlzaWJsZSA9XG5cdFx0XHR0eXBlb2YgY29sdW1uLnZpc2libGUgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhY29sdW1uLnZpc2libGU7XG5cblx0XHQvLyByZWRyYXcgdGFibGVcblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XG5cblx0XHQvLyBlbWl0IGV2ZW50XG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi12aXNpYmlsaXR5LWNoYW5nZScsXG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRjb2x1bW46IHsgLi4uY29sdW1uIH0sXG5cdFx0XHRcdHNldHRpbmdzOiBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdXG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBjaGVjayBhbmQgcmVzZXQgb2Zmc2V0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9yZGVyIHRhYmxlIGJ5IG9iamVjdCBrZXkuXG5cdCAqIEBwYXJhbSBhcmdzIC0gbmFtZSBvZiBrZXkgdG8gc29ydCBvbi5cblx0ICovXG5cdHByaXZhdGUgX29uRHJvcChhcmdzOiBBcnJheTxhbnk+KSB7XG5cdFx0dGhpcy5yZW9yZGVyZWQgPSB0cnVlO1xuXHRcdGNvbnN0IFtlLCB0YXJnZXRdID0gYXJncztcblx0XHRjb25zdCBvcmRlciA9IHt9O1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRvcmRlclt0YXJnZXQuY2hpbGRyZW5baV0uZ2V0QXR0cmlidXRlKCdkYXRhLW9iamVjdC1rZXknKV0gPSBpO1xuXHRcdH1cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc1tpXS5jb2x1bW5PcmRlciA9XG5cdFx0XHRcdG9yZGVyW3RoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLm9iamVjdEtleV07XG5cdFx0fVxuXG5cdFx0Ly8gcmVzZXQgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgPSBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdO1xuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi1vcmRlci1jaGFuZ2UnLFxuXHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxuXHQgKi9cblx0cHJpdmF0ZSBfZ2V0VGFibGVIZWFkSGVpZ2h0KCk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09ICdUSEVBRCdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLm9mZnNldEhlaWdodCArICdweCdcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09XG5cdFx0XHRcdCdUSEVBRCdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkXG5cdFx0XHRcdFx0XHQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuICcwcHgnO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBoZWlnaHQgb2YgdGFibGUgaGVhZCBlbGVtZW50IGllLiBmaXJzdCByb3cgY29udGFpbmluZyB0YWJsZSBoZWFkZXJzLlxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXG5cdCAqL1xuXHRwcml2YXRlIF9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpOiBzdHJpbmcge1xuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5ndENvbHVtblNldHRpbmdzSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4Jztcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmV0dXJuICcwcHgnO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmb3IgZHJhZ3VsYSBpbnN0YW5jZSBpLmUuIGEgdW5pcXVlIGJhZyBuYW1lKi9cblx0LyogdHNsaW50OmRpc2FibGUgKi9cblx0cHJpdmF0ZSBnZW5lcmF0ZUlkKCkge1xuXHRcdGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cdFx0cmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xuXHRcdFx0Y29uc3QgciA9ICgoZCArIE1hdGgucmFuZG9tKCkgKiAxNikgJSAxNikgfCAwO1xuXHRcdFx0ZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcblx0XHRcdHJldHVybiAoYyA9PT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4OCkudG9TdHJpbmcoMTYpO1xuXHRcdH0pO1xuXHR9XG5cdC8qIHRzbGludDplbmFibGUgKi9cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixJQUFJLEVBR0osaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixxQkFBcUIsRUFHckIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTTdDLE1BQU07Ozs7Ozs7SUFHRyxjQUFjLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDcEMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUMxRSxPQUFPLENBQUMsQ0FBQztTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUM7Ozs7Ozs7SUFJRixVQUFVLENBQUMsTUFBdUI7UUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLElBQUk7WUFDOUQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsSUFBSSxDQUFDOzs7Ozs7SUFHVCxTQUFTLENBQUMsUUFBZ0M7UUFDekMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJ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QixPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBUyxDQUFDO1lBQ3hFLHVCQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0RCxDQUFDLENBQUM7Ozs7WUFwT0osU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlCTjthQUNKOzs7OztZQTNEUSxjQUFjO1lBVnRCLGlCQUFpQjs7OzZCQTJFaEIsS0FBSzs0QkFLTCxTQUFTLFNBQUMscUJBQXFCO3VDQUMvQixTQUFTLFNBQUMsd0JBQXdCO2dDQUdsQyxLQUFLO2lDQUVMLEtBQUs7d0JBRUwsS0FBSzs2QkFDTCxLQUFLO3dCQUtMLEtBQUs7d0JBRUwsTUFBTTt5QkFXTixZQUFZLFNBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRJbnB1dCxcclxuXHRWaWV3Q2hpbGQsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0RWxlbWVudFJlZixcclxuXHRQaXBlLFxyXG5cdFBpcGVUcmFuc2Zvcm0sXHJcblx0T25Jbml0LFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRPdXRwdXQsXHJcblx0RXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0R2VuZXJpY1RhYmxlQ29tcG9uZW50LFxyXG5cdEd0Um93LFxyXG5cdEd0Q29uZmlnU2V0dGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XHJcbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xyXG5pbXBvcnQgeyBHdENvbHVtblNldHRpbmdzVGV4dHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cyc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2d0Q29sdW1uJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblx0Ly8gVE9ETzogbW92ZSB0byBoZWxwZXIgZnVuY3Rpb25zXHJcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXHJcblx0cHJpdmF0ZSBnZXRDb2x1bW5PcmRlcihhOiBhbnksIGI6IGFueSkge1xyXG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPCBiLmNvbHVtbk9yZGVyKSB7XHJcblx0XHRcdHJldHVybiAtMTtcclxuXHRcdH1cclxuXHRcdGlmIChhLmNvbHVtbk9yZGVyID4gYi5jb2x1bW5PcmRlciB8fCB0eXBlb2YgYS5jb2x1bW5PcmRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0cmV0dXJuIDE7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gMDtcclxuXHR9XHJcblxyXG5cdC8qKiByZXR1cm4gZW5hYmxlZCBjb2x1bW5zIHRoYXQgYXJlIG5vdCBsb2NrZWQgZm9yIGVkaXRpbmcgKi9cclxuXHRwcml2YXRlIGdldEVuYWJsZWQoY29sdW1uOiBHdENvbmZpZ1NldHRpbmcpIHtcclxuXHRcdHJldHVybiBjb2x1bW4uZW5hYmxlZCAhPT0gZmFsc2UgJiYgY29sdW1uLmxvY2tTZXR0aW5ncyAhPT0gdHJ1ZVxyXG5cdFx0XHQ/IGNvbHVtblxyXG5cdFx0XHQ6IG51bGw7XHJcblx0fVxyXG5cclxuXHR0cmFuc2Zvcm0oc2V0dGluZ3M6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4pOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+IHtcclxuXHRcdHJldHVybiBzZXR0aW5ncy5maWx0ZXIodGhpcy5nZXRFbmFibGVkKS5zb3J0KHRoaXMuZ2V0Q29sdW1uT3JkZXIpO1xyXG5cdH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdndC1jb2x1bW4tc2V0dGluZ3MnLFxyXG5cdHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5JdGVtIGxldC1jb2x1bW4gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnlcIj57e2luZGV4fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIChkYmxjbGljayk9XCJ0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbilcIiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwieydiYWRnZS1zdWNjZXNzJzpjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UsICdiYWRnZS1kYW5nZXInOmNvbHVtbi52aXNpYmxlID09PSBmYWxzZX1cIj57e2dlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZSd9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1wYW5lbFwiICAqbmdJZj1cImFjdGl2ZVwiIFtzdHlsZS5wYWRkaW5nLXRvcF09XCJvZmZzZXRcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAnK29mZnNldCsnKSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgI2d0Q29sdW1uU2V0dGluZ3NIZWFkZXIgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVhZGVyIGJvcmRlci1ib3R0b20tMFwiIFtuZ0NsYXNzXT1cImd0SGVhZGVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy10aXRsZVwiICpuZ0lmPVwiZ3RUZXh0cy50aXRsZVwiPnt7Z3RUZXh0cy50aXRsZX19PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVscCBmb3JtLXRleHQgdGV4dC1tdXRlZFwiICpuZ0lmPVwiZ3RUZXh0cy5oZWxwXCI+e3tndFRleHRzLmhlbHB9fTwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbS13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZ3RXcmFwcGVyQ2xhc3Nlc1wiIFtkcmFndWxhXT0nYmFnSWQnICBkYXRhLXZpc2libGU9XCJ0cnVlXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcraGVpZ2h0QWRqdXN0KycpJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbSBwci0wIHByLXNtLTRcIiAqbmdGb3I9XCJsZXQgaSA9IGluZGV4O2xldCBjb2x1bW4gb2YgZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgfCBndENvbHVtblwiIFthdHRyLmRhdGEtb2JqZWN0LWtleV09XCJjb2x1bW4ub2JqZWN0S2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJndENvbHVtbkl0ZW0gPyBndENvbHVtbkl0ZW06Y29sdW1uSXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBjb2x1bW4saW5kZXg6IHRoaXMucmVvcmRlcmVkID8gY29sdW1uLmNvbHVtbk9yZGVyKzE6aSsxLCBuYW1lOiAoZ2VuZXJpY1RhYmxlLmd0RmllbGRzIHwgZ3RQcm9wZXJ0eTpjb2x1bW4ub2JqZWN0S2V5OiduYW1lJyl9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LW92ZXJsYXlcIiAqbmdJZj1cImFjdGl2ZSAmJiBvdmVybGF5XCIgKGNsaWNrKT1cInRvZ2dsZUNvbHVtblNldHRpbmdzKClcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAtJytvZmZzZXQrJyknXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyaWNUYWJsZUVsZW1lbnQgW25nSWZdPVwiZ2VuZXJpY1RhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHdENvbHVtblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRnZXQgZ2VuZXJpY1RhYmxlKCk6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxhbnksIGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyaWNUYWJsZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IGdlbmVyaWNUYWJsZSh2YWx1ZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55Pikge1xyXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlID0gdmFsdWU7XHJcblx0fVxyXG5cclxuXHRAVmlld0NoaWxkKCdnZW5lcmljVGFibGVFbGVtZW50JykgZWxlbWVudFZpZXc6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xyXG5cdEBWaWV3Q2hpbGQoJ2d0Q29sdW1uU2V0dGluZ3NIZWFkZXInKSBndENvbHVtblNldHRpbmdzSGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuXHRwcml2YXRlIF9nZW5lcmljVGFibGU6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxHdFJvdywgYW55PjtcclxuXHRASW5wdXQoKVxyXG5cdGd0SGVhZGVyQ2xhc3NlcyA9ICdweC0zIHB0LTMgcGItMiB0YWJsZS1ib3JkZXJlZCBib3JkZXItbGVmdC0wIGJvcmRlci1yaWdodC0wIGJvcmRlci1ib3R0b20tMCBhbGVydC1pbmZvJztcclxuXHRASW5wdXQoKVxyXG5cdGd0V3JhcHBlckNsYXNzZXMgPSAncHgtMyBwYi0zIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLXRvcC0wIGFsZXJ0LWluZm8nO1xyXG5cdEBJbnB1dCgpIG92ZXJsYXkgPSB0cnVlO1xyXG5cdEBJbnB1dCgpIGd0Q29sdW1uSXRlbTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblx0cHVibGljIGd0RGVmYXVsdFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB7XHJcblx0XHR0aXRsZTogJ0NvbHVtbnMnLFxyXG5cdFx0aGVscDogJ0RvdWJsZSBjbGljayB0byB0b2dnbGUgdmlzaWJpbGl0eSwgZHJhZyBhbmQgZHJvcCB0byByZW9yZGVyLidcclxuXHR9O1xyXG5cdEBJbnB1dCgpIGd0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHRoaXMuZ3REZWZhdWx0VGV4dHM7XHJcblxyXG5cdEBPdXRwdXQoKSBwdWJsaWMgZ3RFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0cHVibGljIGFjdGl2ZSA9IGZhbHNlO1xyXG5cdHB1YmxpYyBvZmZzZXQ6IHN0cmluZztcclxuXHRwdWJsaWMgaGVpZ2h0QWRqdXN0OiBzdHJpbmc7XHJcblx0cHVibGljIHJlb3JkZXJlZCA9IGZhbHNlO1xyXG5cdHB1YmxpYyBiYWdJZDogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBvZmZzZXQgaGVpZ2h0IG9uIHdpbmRvdyByZXNpemUuXHJcblx0ICovXHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFtdKVxyXG5cdHB1YmxpYyBvblJlc2l6ZSgpIHtcclxuXHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblx0XHR0aGlzLmhlaWdodEFkanVzdCA9IHRoaXMuX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk7XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdGRyYWd1bGFTZXJ2aWNlLmRyb3Auc3Vic2NyaWJlKCh2YWx1ZTogQXJyYXk8YW55PikgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWVbMF0gPT09IHRoaXMuYmFnSWQpIHtcclxuXHRcdFx0XHR0aGlzLl9vbkRyb3AodmFsdWUuc2xpY2UoMSkpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5iYWdJZCA9IHRoaXMuZ2VuZXJhdGVJZCgpO1xyXG5cdFx0Ly8gc2V0dXAgdGV4dHNcclxuXHRcdHRoaXMuZ3RUZXh0cyA9IDxHdENvbHVtblNldHRpbmdzVGV4dHM+dGhpcy5leHRlbmQoXHJcblx0XHRcdHRoaXMuZ3REZWZhdWx0VGV4dHMsXHJcblx0XHRcdHRoaXMuZ3RUZXh0c1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqICBFeHRlbmQgb2JqZWN0IGZ1bmN0aW9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgZXh0ZW5kID0gZnVuY3Rpb24oYTogT2JqZWN0LCBiOiBPYmplY3QpIHtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIGIpIHtcclxuXHRcdFx0aWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdGFba2V5XSA9IGJba2V5XTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGE7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlIGNvbHVtbiBzZXR0aW5ncyB2aXNpYmlsaXR5LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0b2dnbGVDb2x1bW5TZXR0aW5ncygpIHtcclxuXHRcdHRoaXMuYWN0aXZlID0gIXRoaXMuYWN0aXZlO1xyXG5cclxuXHRcdGlmICh0aGlzLmFjdGl2ZSkge1xyXG5cdFx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgYW5kIGFkanVzdCBoZWlnaHQgb2Zmc2V0XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcclxuXHRcdFx0fSwgMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHkuXHJcblx0ICogQHBhcmFtIGNvbHVtbiAtIGNvbHVtbiBvYmplY3QuXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uOiBhbnkpIHtcclxuXHRcdC8vIHRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eVxyXG5cdFx0Y29sdW1uLnZpc2libGUgPVxyXG5cdFx0XHR0eXBlb2YgY29sdW1uLnZpc2libGUgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhY29sdW1uLnZpc2libGU7XHJcblxyXG5cdFx0Ly8gcmVkcmF3IHRhYmxlXHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XHJcblxyXG5cdFx0Ly8gZW1pdCBldmVudFxyXG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xyXG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLXZpc2liaWxpdHktY2hhbmdlJyxcclxuXHRcdFx0dmFsdWU6IHtcclxuXHRcdFx0XHRjb2x1bW46IHsgLi4uY29sdW1uIH0sXHJcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gY2hlY2sgYW5kIHJlc2V0IG9mZnNldFxyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblx0XHR9LCAwKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE9yZGVyIHRhYmxlIGJ5IG9iamVjdCBrZXkuXHJcblx0ICogQHBhcmFtIGFyZ3MgLSBuYW1lIG9mIGtleSB0byBzb3J0IG9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX29uRHJvcChhcmdzOiBBcnJheTxhbnk+KSB7XHJcblx0XHR0aGlzLnJlb3JkZXJlZCA9IHRydWU7XHJcblx0XHRjb25zdCBbZSwgdGFyZ2V0XSA9IGFyZ3M7XHJcblx0XHRjb25zdCBvcmRlciA9IHt9O1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0b3JkZXJbdGFyZ2V0LmNoaWxkcmVuW2ldLmdldEF0dHJpYnV0ZSgnZGF0YS1vYmplY3Qta2V5JyldID0gaTtcclxuXHRcdH1cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0uY29sdW1uT3JkZXIgPVxyXG5cdFx0XHRcdG9yZGVyW3RoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLm9iamVjdEtleV07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gcmVzZXQgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncyA9IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc107XHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcclxuXHRcdHRoaXMuZ3RFdmVudC5lbWl0KHtcclxuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi1vcmRlci1jaGFuZ2UnLFxyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHNldHRpbmdzOiBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXHJcblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2dldFRhYmxlSGVhZEhlaWdodCgpOiBzdHJpbmcge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09ICdUSEVBRCdcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0cmV0dXJuIChcclxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09XHJcblx0XHRcdFx0J1RIRUFEJ1xyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHRcdC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZFxyXG5cdFx0XHRcdFx0XHQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXHJcblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5ndENvbHVtblNldHRpbmdzSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdHJldHVybiAnMHB4JztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmb3IgZHJhZ3VsYSBpbnN0YW5jZSBpLmUuIGEgdW5pcXVlIGJhZyBuYW1lKi9cclxuXHQvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG5cdHByaXZhdGUgZ2VuZXJhdGVJZCgpIHtcclxuXHRcdGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcblx0XHRyZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcblx0XHRcdGNvbnN0IHIgPSAoKGQgKyBNYXRoLnJhbmRvbSgpICogMTYpICUgMTYpIHwgMDtcclxuXHRcdFx0ZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcclxuXHRcdFx0cmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0LyogdHNsaW50OmVuYWJsZSAqL1xyXG59XHJcbiJdfQ== |
@@ -7,2 +7,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbHVtblNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9jb2x1bW4tc2V0dGluZ3MubW9kdWxlJztcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbHVtblNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9jb2x1bW4tc2V0dGluZ3MubW9kdWxlJztcclxuIl19 |
@@ -16,2 +16,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvIiwic291cmNlcyI6WyJpbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHdENvbHVtblNldHRpbmdzVGV4dHMge1xuXHR0aXRsZTogc3RyaW5nO1xuXHRoZWxwOiBzdHJpbmc7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvIiwic291cmNlcyI6WyJpbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHdENvbHVtblNldHRpbmdzVGV4dHMge1xyXG5cdHRpdGxlOiBzdHJpbmc7XHJcblx0aGVscDogc3RyaW5nO1xyXG59XHJcbiJdfQ== |
@@ -0,0 +0,0 @@ /** |
@@ -33,2 +33,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29sdW1uLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNOLFlBQVksRUFDWix5QkFBeUIsRUFDekIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztnQkFFM0MsUUFBUSxTQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUM7b0JBQzFELFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQztvQkFDdkQsT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDO2lCQUNsRDs7K0JBYkQ7O1NBY2Esb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRHdENvbHVtblBpcGUsXG5cdEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL2d0LWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VuZXJpY1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcbmltcG9ydCB7IERyYWd1bGFNb2R1bGUgfSBmcm9tICduZzItZHJhZ3VsYSc7XG5cbkBOZ01vZHVsZSh7XG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEdlbmVyaWNUYWJsZU1vZHVsZSwgRHJhZ3VsYU1vZHVsZV0sXG5cdGRlY2xhcmF0aW9uczogW0d0Q29sdW1uU2V0dGluZ3NDb21wb25lbnQsIEd0Q29sdW1uUGlwZV0sXG5cdGV4cG9ydHM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmdzTW9kdWxlIHt9XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29sdW1uLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNOLFlBQVksRUFDWix5QkFBeUIsRUFDekIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztnQkFFM0MsUUFBUSxTQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUM7b0JBQzFELFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQztvQkFDdkQsT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDO2lCQUNsRDs7K0JBYkQ7O1NBY2Esb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuXHRHdENvbHVtblBpcGUsXHJcblx0R3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VuZXJpY1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ3VsYU1vZHVsZSB9IGZyb20gJ25nMi1kcmFndWxhJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgR2VuZXJpY1RhYmxlTW9kdWxlLCBEcmFndWxhTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdLFxyXG5cdGV4cG9ydHM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nc01vZHVsZSB7fVxyXG4iXX0= |
@@ -368,2 +368,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsSUFBSSxFQUdKLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04scUJBQXFCLEVBR3JCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7OztJQVNwQyxxQ0FBYzs7Ozs7O2NBQUMsQ0FBTSxFQUFFLENBQU07UUFDcEMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUMxRSxPQUFPLENBQUMsQ0FBQztTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUM7Ozs7Ozs7SUFJRixpQ0FBVTs7Ozs7Y0FBQyxNQUF1QjtRQUN6QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSTtZQUM5RCxDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxJQUFJLENBQUM7Ozs7OztJQUdULGdDQUFTOzs7O0lBQVQsVUFBVSxRQUFnQztRQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVB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O1FBQzdCLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDeEUscUJBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RELENBQUMsQ0FBQzs7O2dCQXBPSixTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLDh0RUF5Qk47aUJBQ0o7Ozs7O2dCQTNEUSxjQUFjO2dCQVZ0QixpQkFBaUI7OztpQ0EyRWhCLEtBQUs7Z0NBS0wsU0FBUyxTQUFDLHFCQUFxQjsyQ0FDL0IsU0FBUyxTQUFDLHdCQUF3QjtvQ0FHbEMsS0FBSztxQ0FFTCxLQUFLOzRCQUVMLEtBQUs7aUNBQ0wsS0FBSzs0QkFLTCxLQUFLOzRCQUVMLE1BQU07NkJBV04sWUFBWSxTQUFDLGVBQWUsRUFBRSxFQUFFOztvQ0FwSGxDOztTQStFYSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRWaWV3Q2hpbGQsXG5cdFRlbXBsYXRlUmVmLFxuXHRFbGVtZW50UmVmLFxuXHRQaXBlLFxuXHRQaXBlVHJhbnNmb3JtLFxuXHRPbkluaXQsXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRIb3N0TGlzdGVuZXIsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0R2VuZXJpY1RhYmxlQ29tcG9uZW50LFxuXHRHdFJvdyxcblx0R3RDb25maWdTZXR0aW5nXG59IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcbmltcG9ydCB7IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzJztcblxuQFBpcGUoe1xuXHRuYW1lOiAnZ3RDb2x1bW4nXG59KVxuZXhwb3J0IGNsYXNzIEd0Q29sdW1uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXHQvLyBUT0RPOiBtb3ZlIHRvIGhlbHBlciBmdW5jdGlvbnNcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXG5cdHByaXZhdGUgZ2V0Q29sdW1uT3JkZXIoYTogYW55LCBiOiBhbnkpIHtcblx0XHRpZiAoYS5jb2x1bW5PcmRlciA8IGIuY29sdW1uT3JkZXIpIHtcblx0XHRcdHJldHVybiAtMTtcblx0XHR9XG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPiBiLmNvbHVtbk9yZGVyIHx8IHR5cGVvZiBhLmNvbHVtbk9yZGVyID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0LyoqIHJldHVybiBlbmFibGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxvY2tlZCBmb3IgZWRpdGluZyAqL1xuXHRwcml2YXRlIGdldEVuYWJsZWQoY29sdW1uOiBHdENvbmZpZ1NldHRpbmcpIHtcblx0XHRyZXR1cm4gY29sdW1uLmVuYWJsZWQgIT09IGZhbHNlICYmIGNvbHVtbi5sb2NrU2V0dGluZ3MgIT09IHRydWVcblx0XHRcdD8gY29sdW1uXG5cdFx0XHQ6IG51bGw7XG5cdH1cblxuXHR0cmFuc2Zvcm0oc2V0dGluZ3M6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4pOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+IHtcblx0XHRyZXR1cm4gc2V0dGluZ3MuZmlsdGVyKHRoaXMuZ2V0RW5hYmxlZCkuc29ydCh0aGlzLmdldENvbHVtbk9yZGVyKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdndC1jb2x1bW4tc2V0dGluZ3MnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkl0ZW0gbGV0LWNvbHVtbiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnlcIj57e2luZGV4fX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAoZGJsY2xpY2spPVwidG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW4pXCIgY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cInsnYmFkZ2Utc3VjY2Vzcyc6Y29sdW1uLnZpc2libGUgIT09IGZhbHNlLCAnYmFkZ2UtZGFuZ2VyJzpjb2x1bW4udmlzaWJsZSA9PT0gZmFsc2V9XCI+e3tnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtcGFuZWxcIiAgKm5nSWY9XCJhY3RpdmVcIiBbc3R5bGUucGFkZGluZy10b3BdPVwib2Zmc2V0XCIgW3N0eWxlLmhlaWdodF09XCInY2FsYygxMDAlIC0gJytvZmZzZXQrJyknXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAjZ3RDb2x1bW5TZXR0aW5nc0hlYWRlciBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWFkZXIgYm9yZGVyLWJvdHRvbS0wXCIgW25nQ2xhc3NdPVwiZ3RIZWFkZXJDbGFzc2VzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy10aXRsZVwiICpuZ0lmPVwiZ3RUZXh0cy50aXRsZVwiPnt7Z3RUZXh0cy50aXRsZX19PC9oNj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWhlbHAgZm9ybS10ZXh0IHRleHQtbXV0ZWRcIiAqbmdJZj1cImd0VGV4dHMuaGVscFwiPnt7Z3RUZXh0cy5oZWxwfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbS13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZ3RXcmFwcGVyQ2xhc3Nlc1wiIFtkcmFndWxhXT0nYmFnSWQnICBkYXRhLXZpc2libGU9XCJ0cnVlXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcraGVpZ2h0QWRqdXN0KycpJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWl0ZW0gcHItMCBwci1zbS00XCIgKm5nRm9yPVwibGV0IGkgPSBpbmRleDtsZXQgY29sdW1uIG9mIGdlbmVyaWNUYWJsZS5ndFNldHRpbmdzIHwgZ3RDb2x1bW5cIiBbYXR0ci5kYXRhLW9iamVjdC1rZXldPVwiY29sdW1uLm9iamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImd0Q29sdW1uSXRlbSA/IGd0Q29sdW1uSXRlbTpjb2x1bW5JdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNvbHVtbixpbmRleDogdGhpcy5yZW9yZGVyZWQgPyBjb2x1bW4uY29sdW1uT3JkZXIrMTppKzEsIG5hbWU6IChnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnKX1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Qtb3ZlcmxheVwiICpuZ0lmPVwiYWN0aXZlICYmIG92ZXJsYXlcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtIC0nK29mZnNldCsnKSdcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNnZW5lcmljVGFibGVFbGVtZW50IFtuZ0lmXT1cImdlbmVyaWNUYWJsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdGdldCBnZW5lcmljVGFibGUoKTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyaWNUYWJsZTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCBnZW5lcmljVGFibGUodmFsdWU6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxhbnksIGFueT4pIHtcblx0XHR0aGlzLl9nZW5lcmljVGFibGUgPSB2YWx1ZTtcblx0fVxuXG5cdEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZUVsZW1lbnQnKSBlbGVtZW50VmlldzogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XG5cdEBWaWV3Q2hpbGQoJ2d0Q29sdW1uU2V0dGluZ3NIZWFkZXInKSBndENvbHVtblNldHRpbmdzSGVhZGVyOiBFbGVtZW50UmVmO1xuXG5cdHByaXZhdGUgX2dlbmVyaWNUYWJsZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PEd0Um93LCBhbnk+O1xuXHRASW5wdXQoKVxuXHRndEhlYWRlckNsYXNzZXMgPSAncHgtMyBwdC0zIHBiLTIgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItYm90dG9tLTAgYWxlcnQtaW5mbyc7XG5cdEBJbnB1dCgpXG5cdGd0V3JhcHBlckNsYXNzZXMgPSAncHgtMyBwYi0zIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLXRvcC0wIGFsZXJ0LWluZm8nO1xuXHRASW5wdXQoKSBvdmVybGF5ID0gdHJ1ZTtcblx0QElucHV0KCkgZ3RDb2x1bW5JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblx0cHVibGljIGd0RGVmYXVsdFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB7XG5cdFx0dGl0bGU6ICdDb2x1bW5zJyxcblx0XHRoZWxwOiAnRG91YmxlIGNsaWNrIHRvIHRvZ2dsZSB2aXNpYmlsaXR5LCBkcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIuJ1xuXHR9O1xuXHRASW5wdXQoKSBndFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB0aGlzLmd0RGVmYXVsdFRleHRzO1xuXG5cdEBPdXRwdXQoKSBwdWJsaWMgZ3RFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXHRwdWJsaWMgYWN0aXZlID0gZmFsc2U7XG5cdHB1YmxpYyBvZmZzZXQ6IHN0cmluZztcblx0cHVibGljIGhlaWdodEFkanVzdDogc3RyaW5nO1xuXHRwdWJsaWMgcmVvcmRlcmVkID0gZmFsc2U7XG5cdHB1YmxpYyBiYWdJZDogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDaGVjayBvZmZzZXQgaGVpZ2h0IG9uIHdpbmRvdyByZXNpemUuXG5cdCAqL1xuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXG5cdHB1YmxpYyBvblJlc2l6ZSgpIHtcblx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xuXHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxuXHRcdHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG5cdCkge1xuXHRcdGRyYWd1bGFTZXJ2aWNlLmRyb3Auc3Vic2NyaWJlKCh2YWx1ZTogQXJyYXk8YW55PikgPT4ge1xuXHRcdFx0aWYgKHZhbHVlWzBdID09PSB0aGlzLmJhZ0lkKSB7XG5cdFx0XHRcdHRoaXMuX29uRHJvcCh2YWx1ZS5zbGljZSgxKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmJhZ0lkID0gdGhpcy5nZW5lcmF0ZUlkKCk7XG5cdFx0Ly8gc2V0dXAgdGV4dHNcblx0XHR0aGlzLmd0VGV4dHMgPSA8R3RDb2x1bW5TZXR0aW5nc1RleHRzPnRoaXMuZXh0ZW5kKFxuXHRcdFx0dGhpcy5ndERlZmF1bHRUZXh0cyxcblx0XHRcdHRoaXMuZ3RUZXh0c1xuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogIEV4dGVuZCBvYmplY3QgZnVuY3Rpb24uXG5cdCAqL1xuXHRwcml2YXRlIGV4dGVuZCA9IGZ1bmN0aW9uKGE6IE9iamVjdCwgYjogT2JqZWN0KSB7XG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gYikge1xuXHRcdFx0aWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0XHRhW2tleV0gPSBiW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBUb2dnbGUgY29sdW1uIHNldHRpbmdzIHZpc2liaWxpdHkuXG5cdCAqL1xuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hY3RpdmUgPSAhdGhpcy5hY3RpdmU7XG5cblx0XHRpZiAodGhpcy5hY3RpdmUpIHtcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cblx0XHRcdC8vIGNoZWNrIGFuZCBhZGp1c3QgaGVpZ2h0IG9mZnNldFxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcblx0XHRcdH0sIDApO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHkuXG5cdCAqIEBwYXJhbSBjb2x1bW4gLSBjb2x1bW4gb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIHRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uOiBhbnkpIHtcblx0XHQvLyB0b2dnbGUgY29sdW1uIHZpc2liaWxpdHlcblx0XHRjb2x1bW4udmlzaWJsZSA9XG5cdFx0XHR0eXBlb2YgY29sdW1uLnZpc2libGUgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhY29sdW1uLnZpc2libGU7XG5cblx0XHQvLyByZWRyYXcgdGFibGVcblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XG5cblx0XHQvLyBlbWl0IGV2ZW50XG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi12aXNpYmlsaXR5LWNoYW5nZScsXG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRjb2x1bW46IHsgLi4uY29sdW1uIH0sXG5cdFx0XHRcdHNldHRpbmdzOiBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdXG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBjaGVjayBhbmQgcmVzZXQgb2Zmc2V0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9yZGVyIHRhYmxlIGJ5IG9iamVjdCBrZXkuXG5cdCAqIEBwYXJhbSBhcmdzIC0gbmFtZSBvZiBrZXkgdG8gc29ydCBvbi5cblx0ICovXG5cdHByaXZhdGUgX29uRHJvcChhcmdzOiBBcnJheTxhbnk+KSB7XG5cdFx0dGhpcy5yZW9yZGVyZWQgPSB0cnVlO1xuXHRcdGNvbnN0IFtlLCB0YXJnZXRdID0gYXJncztcblx0XHRjb25zdCBvcmRlciA9IHt9O1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRvcmRlclt0YXJnZXQuY2hpbGRyZW5baV0uZ2V0QXR0cmlidXRlKCdkYXRhLW9iamVjdC1rZXknKV0gPSBpO1xuXHRcdH1cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc1tpXS5jb2x1bW5PcmRlciA9XG5cdFx0XHRcdG9yZGVyW3RoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLm9iamVjdEtleV07XG5cdFx0fVxuXG5cdFx0Ly8gcmVzZXQgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgPSBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdO1xuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi1vcmRlci1jaGFuZ2UnLFxuXHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxuXHQgKi9cblx0cHJpdmF0ZSBfZ2V0VGFibGVIZWFkSGVpZ2h0KCk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09ICdUSEVBRCdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLm9mZnNldEhlaWdodCArICdweCdcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09XG5cdFx0XHRcdCdUSEVBRCdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkXG5cdFx0XHRcdFx0XHQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuICcwcHgnO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBoZWlnaHQgb2YgdGFibGUgaGVhZCBlbGVtZW50IGllLiBmaXJzdCByb3cgY29udGFpbmluZyB0YWJsZSBoZWFkZXJzLlxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXG5cdCAqL1xuXHRwcml2YXRlIF9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpOiBzdHJpbmcge1xuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5ndENvbHVtblNldHRpbmdzSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4Jztcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmV0dXJuICcwcHgnO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmb3IgZHJhZ3VsYSBpbnN0YW5jZSBpLmUuIGEgdW5pcXVlIGJhZyBuYW1lKi9cblx0LyogdHNsaW50OmRpc2FibGUgKi9cblx0cHJpdmF0ZSBnZW5lcmF0ZUlkKCkge1xuXHRcdGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cdFx0cmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xuXHRcdFx0Y29uc3QgciA9ICgoZCArIE1hdGgucmFuZG9tKCkgKiAxNikgJSAxNikgfCAwO1xuXHRcdFx0ZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcblx0XHRcdHJldHVybiAoYyA9PT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4OCkudG9TdHJpbmcoMTYpO1xuXHRcdH0pO1xuXHR9XG5cdC8qIHRzbGludDplbmFibGUgKi9cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29sdW1uLXNldHRpbmdzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsSUFBSSxFQUdKLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04scUJBQXFCLEVBR3JCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7OztJQVNwQyxxQ0FBYzs7Ozs7O2NBQUMsQ0FBTSxFQUFFLENBQU07UUFDcEMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUMxRSxPQUFPLENBQUMsQ0FBQztTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUM7Ozs7Ozs7SUFJRixpQ0FBVTs7Ozs7Y0FBQyxNQUF1QjtRQUN6QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSTtZQUM5RCxDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxJQUFJLENBQUM7Ozs7OztJQUdULGdDQUFTOzs7O0lBQVQsVUFBVSxRQUFnQztRQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDbEU7O2dCQXpCRCxJQUFJLFNBQUM7b0JBQ0wsSUFBSSxFQUFFLFVBQVU7aUJBQ2hCOzt1QkF4QkQ7O1NBeUJhLFlBQVk7Ozs7Ozs7Ozs7O0lBaUd4QixtQ0FDUyxnQkFDQTtRQUZULGlCQVNDO1FBUlEsbUJBQWMsR0FBZCxjQUFjO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQjsrQkE5QlIsdUZBQXVGO2dDQUV0RiwrRUFBK0U7dUJBQy9FLElBQUk7OEJBRXdCO1lBQzlDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSw4REFBOEQ7U0FDcEU7dUJBQ3lDLElBQUksQ0FBQyxjQUFjO3VCQUVmLElBQUksWUFBWSxFQUFPO3NCQUVyRCxLQUFLO3lCQUdGLEtBQUs7Ozs7c0JBbUNQLFVBQVMsQ0FBUyxFQUFFLENBQVM7WUFDN0MsS0FBSyxxQkFBTSxHQUFHLElBQUksQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2hCO2FBQ0Q7WUFDRCxPQUFPLENBQUMsQ0FBQztTQUNUO1FBMUJBLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQUMsS0FBaUI7WUFDL0MsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSSxDQUFDLEtBQUssRUFBRTtnQkFDNUIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0I7U0FDRCxDQUFDLENBQUM7S0FDSDtJQW5ERCxzQkFBSSxtREFBWTs7OztRQUFoQjtZQUNDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUMxQjs7Ozs7a0JBR2dCLEtBQXNDO1lBQ3RELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDOzs7O09BSjNCOzs7OztJQW1DTSw0Q0FBUTs7Ozs7UUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7Ozs7O0lBYzNELDRDQUFROzs7SUFBUjtRQUNDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDOztRQUUvQixJQUFJLENBQUMsT0FBTyxxQkFBMEIsSUFBSSxDQUFDLE1BQU0sQ0FDaEQsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FDWixDQUFBLENBQUM7S0FDRjs7Ozs7SUFpQk0sd0RBQW9COzs7Ozs7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7O1lBR3pDLFVBQVUsQ0FBQztnQkFDVixLQUFJLENBQUMsWUFBWSxHQUFHLEtBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQzFELEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDTjs7Ozs7OztJQU9LLDBEQUFzQjs7Ozs7Y0FBQyxNQUFXOzs7UUFFeEMsTUFBTSxDQUFDLE9BQU87WUFDYixPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzs7UUFHakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs7UUFHNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDakIsSUFBSSxFQUFFLDZCQUE2QjtZQUNuQyxLQUFLLEVBQUU7Z0JBQ04sTUFBTSx1QkFBTyxNQUFNLENBQUU7Z0JBQ3JCLFFBQVEsbUJBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7YUFDNUM7U0FDRCxDQUFDLENBQUM7O1FBR0gsVUFBVSxDQUFDO1lBQ1YsS0FBSSxDQUFDLE1BQU0sR0FBRyxLQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUN6QyxFQUFFLENBQUMsQ0FBQyxDQUFDOzs7Ozs7O0lBT0MsMkNBQU87Ozs7O2NBQUMsSUFBZ0I7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsa0NBQU8sU0FBQyxFQUFFLGNBQU0sQ0FBUztRQUN6QixxQkFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUsscUJBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUQ7UUFDRCxLQUFLLHFCQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO2dCQUMzQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbkQ7O1FBR0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLG9CQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDakIsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixLQUFLLEVBQUU7Z0JBQ04sUUFBUSxtQkFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQzthQUM1QztTQUNELENBQUMsQ0FBQzs7Ozs7O0lBT0ksdURBQW1COzs7OztRQUMxQixJQUFJO1lBQ0gsSUFDQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO2lCQUMxRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUN4RDtnQkFDRCxPQUFPLENBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGtCQUFrQjtxQkFDMUQsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FDekQsQ0FBQzthQUNGO1lBQ0QsSUFDQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO2lCQUMxRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPO2dCQUMvRCxPQUFPLEVBQ047Z0JBQ0QsT0FBTyxDQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7cUJBQzFELGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQjtxQkFDckQsWUFBWSxHQUFHLElBQUksQ0FDckIsQ0FBQzthQUNGO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDYjtRQUFDLHdCQUFPLEtBQUssRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2I7Ozs7OztJQU9NLGtFQUE4Qjs7Ozs7UUFDckMsSUFBSTtZQUNILE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ3JFO1FBQUMsd0JBQU8sS0FBSyxFQUFFO1lBQ2YsT0FBTyxLQUFLLENBQUM7U0FDYjs7Ozs7O0lBS00sOENBQVU7Ozs7O1FBQ2pCLHFCQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDeEUscUJBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RELENBQUMsQ0FBQzs7O2dCQXBPSixTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLDh0RUF5Qk47aUJBQ0o7Ozs7O2dCQTNEUSxjQUFjO2dCQVZ0QixpQkFBaUI7OztpQ0EyRWhCLEtBQUs7Z0NBS0wsU0FBUyxTQUFDLHFCQUFxQjsyQ0FDL0IsU0FBUyxTQUFDLHdCQUF3QjtvQ0FHbEMsS0FBSztxQ0FFTCxLQUFLOzRCQUVMLEtBQUs7aUNBQ0wsS0FBSzs0QkFLTCxLQUFLOzRCQUVMLE1BQU07NkJBV04sWUFBWSxTQUFDLGVBQWUsRUFBRSxFQUFFOztvQ0FwSGxDOztTQStFYSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRJbnB1dCxcclxuXHRWaWV3Q2hpbGQsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0RWxlbWVudFJlZixcclxuXHRQaXBlLFxyXG5cdFBpcGVUcmFuc2Zvcm0sXHJcblx0T25Jbml0LFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRPdXRwdXQsXHJcblx0RXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0R2VuZXJpY1RhYmxlQ29tcG9uZW50LFxyXG5cdEd0Um93LFxyXG5cdEd0Q29uZmlnU2V0dGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyLWdlbmVyaWMtdGFibGUvY29yZSc7XHJcbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xyXG5pbXBvcnQgeyBHdENvbHVtblNldHRpbmdzVGV4dHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cyc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2d0Q29sdW1uJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblx0Ly8gVE9ETzogbW92ZSB0byBoZWxwZXIgZnVuY3Rpb25zXHJcblx0LyoqIFNvcnQgYnkgY29sdW1uIG9yZGVyICovXHJcblx0cHJpdmF0ZSBnZXRDb2x1bW5PcmRlcihhOiBhbnksIGI6IGFueSkge1xyXG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPCBiLmNvbHVtbk9yZGVyKSB7XHJcblx0XHRcdHJldHVybiAtMTtcclxuXHRcdH1cclxuXHRcdGlmIChhLmNvbHVtbk9yZGVyID4gYi5jb2x1bW5PcmRlciB8fCB0eXBlb2YgYS5jb2x1bW5PcmRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0cmV0dXJuIDE7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gMDtcclxuXHR9XHJcblxyXG5cdC8qKiByZXR1cm4gZW5hYmxlZCBjb2x1bW5zIHRoYXQgYXJlIG5vdCBsb2NrZWQgZm9yIGVkaXRpbmcgKi9cclxuXHRwcml2YXRlIGdldEVuYWJsZWQoY29sdW1uOiBHdENvbmZpZ1NldHRpbmcpIHtcclxuXHRcdHJldHVybiBjb2x1bW4uZW5hYmxlZCAhPT0gZmFsc2UgJiYgY29sdW1uLmxvY2tTZXR0aW5ncyAhPT0gdHJ1ZVxyXG5cdFx0XHQ/IGNvbHVtblxyXG5cdFx0XHQ6IG51bGw7XHJcblx0fVxyXG5cclxuXHR0cmFuc2Zvcm0oc2V0dGluZ3M6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4pOiBBcnJheTxHdENvbmZpZ1NldHRpbmc+IHtcclxuXHRcdHJldHVybiBzZXR0aW5ncy5maWx0ZXIodGhpcy5nZXRFbmFibGVkKS5zb3J0KHRoaXMuZ2V0Q29sdW1uT3JkZXIpO1xyXG5cdH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdndC1jb2x1bW4tc2V0dGluZ3MnLFxyXG5cdHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5JdGVtIGxldC1jb2x1bW4gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnlcIj57e2luZGV4fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIChkYmxjbGljayk9XCJ0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbilcIiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwieydiYWRnZS1zdWNjZXNzJzpjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UsICdiYWRnZS1kYW5nZXInOmNvbHVtbi52aXNpYmxlID09PSBmYWxzZX1cIj57e2dlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZSd9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1wYW5lbFwiICAqbmdJZj1cImFjdGl2ZVwiIFtzdHlsZS5wYWRkaW5nLXRvcF09XCJvZmZzZXRcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAnK29mZnNldCsnKSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgI2d0Q29sdW1uU2V0dGluZ3NIZWFkZXIgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVhZGVyIGJvcmRlci1ib3R0b20tMFwiIFtuZ0NsYXNzXT1cImd0SGVhZGVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy10aXRsZVwiICpuZ0lmPVwiZ3RUZXh0cy50aXRsZVwiPnt7Z3RUZXh0cy50aXRsZX19PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVscCBmb3JtLXRleHQgdGV4dC1tdXRlZFwiICpuZ0lmPVwiZ3RUZXh0cy5oZWxwXCI+e3tndFRleHRzLmhlbHB9fTwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbS13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZ3RXcmFwcGVyQ2xhc3Nlc1wiIFtkcmFndWxhXT0nYmFnSWQnICBkYXRhLXZpc2libGU9XCJ0cnVlXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcraGVpZ2h0QWRqdXN0KycpJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbSBwci0wIHByLXNtLTRcIiAqbmdGb3I9XCJsZXQgaSA9IGluZGV4O2xldCBjb2x1bW4gb2YgZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgfCBndENvbHVtblwiIFthdHRyLmRhdGEtb2JqZWN0LWtleV09XCJjb2x1bW4ub2JqZWN0S2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJndENvbHVtbkl0ZW0gPyBndENvbHVtbkl0ZW06Y29sdW1uSXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBjb2x1bW4saW5kZXg6IHRoaXMucmVvcmRlcmVkID8gY29sdW1uLmNvbHVtbk9yZGVyKzE6aSsxLCBuYW1lOiAoZ2VuZXJpY1RhYmxlLmd0RmllbGRzIHwgZ3RQcm9wZXJ0eTpjb2x1bW4ub2JqZWN0S2V5OiduYW1lJyl9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LW92ZXJsYXlcIiAqbmdJZj1cImFjdGl2ZSAmJiBvdmVybGF5XCIgKGNsaWNrKT1cInRvZ2dsZUNvbHVtblNldHRpbmdzKClcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAtJytvZmZzZXQrJyknXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyaWNUYWJsZUVsZW1lbnQgW25nSWZdPVwiZ2VuZXJpY1RhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHdENvbHVtblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRnZXQgZ2VuZXJpY1RhYmxlKCk6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxhbnksIGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyaWNUYWJsZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IGdlbmVyaWNUYWJsZSh2YWx1ZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55Pikge1xyXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlID0gdmFsdWU7XHJcblx0fVxyXG5cclxuXHRAVmlld0NoaWxkKCdnZW5lcmljVGFibGVFbGVtZW50JykgZWxlbWVudFZpZXc6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xyXG5cdEBWaWV3Q2hpbGQoJ2d0Q29sdW1uU2V0dGluZ3NIZWFkZXInKSBndENvbHVtblNldHRpbmdzSGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuXHRwcml2YXRlIF9nZW5lcmljVGFibGU6IEdlbmVyaWNUYWJsZUNvbXBvbmVudDxHdFJvdywgYW55PjtcclxuXHRASW5wdXQoKVxyXG5cdGd0SGVhZGVyQ2xhc3NlcyA9ICdweC0zIHB0LTMgcGItMiB0YWJsZS1ib3JkZXJlZCBib3JkZXItbGVmdC0wIGJvcmRlci1yaWdodC0wIGJvcmRlci1ib3R0b20tMCBhbGVydC1pbmZvJztcclxuXHRASW5wdXQoKVxyXG5cdGd0V3JhcHBlckNsYXNzZXMgPSAncHgtMyBwYi0zIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLXRvcC0wIGFsZXJ0LWluZm8nO1xyXG5cdEBJbnB1dCgpIG92ZXJsYXkgPSB0cnVlO1xyXG5cdEBJbnB1dCgpIGd0Q29sdW1uSXRlbTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblx0cHVibGljIGd0RGVmYXVsdFRleHRzOiBHdENvbHVtblNldHRpbmdzVGV4dHMgPSB7XHJcblx0XHR0aXRsZTogJ0NvbHVtbnMnLFxyXG5cdFx0aGVscDogJ0RvdWJsZSBjbGljayB0byB0b2dnbGUgdmlzaWJpbGl0eSwgZHJhZyBhbmQgZHJvcCB0byByZW9yZGVyLidcclxuXHR9O1xyXG5cdEBJbnB1dCgpIGd0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHRoaXMuZ3REZWZhdWx0VGV4dHM7XHJcblxyXG5cdEBPdXRwdXQoKSBwdWJsaWMgZ3RFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0cHVibGljIGFjdGl2ZSA9IGZhbHNlO1xyXG5cdHB1YmxpYyBvZmZzZXQ6IHN0cmluZztcclxuXHRwdWJsaWMgaGVpZ2h0QWRqdXN0OiBzdHJpbmc7XHJcblx0cHVibGljIHJlb3JkZXJlZCA9IGZhbHNlO1xyXG5cdHB1YmxpYyBiYWdJZDogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBvZmZzZXQgaGVpZ2h0IG9uIHdpbmRvdyByZXNpemUuXHJcblx0ICovXHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFtdKVxyXG5cdHB1YmxpYyBvblJlc2l6ZSgpIHtcclxuXHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblx0XHR0aGlzLmhlaWdodEFkanVzdCA9IHRoaXMuX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk7XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdGRyYWd1bGFTZXJ2aWNlLmRyb3Auc3Vic2NyaWJlKCh2YWx1ZTogQXJyYXk8YW55PikgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWVbMF0gPT09IHRoaXMuYmFnSWQpIHtcclxuXHRcdFx0XHR0aGlzLl9vbkRyb3AodmFsdWUuc2xpY2UoMSkpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5iYWdJZCA9IHRoaXMuZ2VuZXJhdGVJZCgpO1xyXG5cdFx0Ly8gc2V0dXAgdGV4dHNcclxuXHRcdHRoaXMuZ3RUZXh0cyA9IDxHdENvbHVtblNldHRpbmdzVGV4dHM+dGhpcy5leHRlbmQoXHJcblx0XHRcdHRoaXMuZ3REZWZhdWx0VGV4dHMsXHJcblx0XHRcdHRoaXMuZ3RUZXh0c1xyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqICBFeHRlbmQgb2JqZWN0IGZ1bmN0aW9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgZXh0ZW5kID0gZnVuY3Rpb24oYTogT2JqZWN0LCBiOiBPYmplY3QpIHtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIGIpIHtcclxuXHRcdFx0aWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdGFba2V5XSA9IGJba2V5XTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGE7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlIGNvbHVtbiBzZXR0aW5ncyB2aXNpYmlsaXR5LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0b2dnbGVDb2x1bW5TZXR0aW5ncygpIHtcclxuXHRcdHRoaXMuYWN0aXZlID0gIXRoaXMuYWN0aXZlO1xyXG5cclxuXHRcdGlmICh0aGlzLmFjdGl2ZSkge1xyXG5cdFx0XHR0aGlzLm9mZnNldCA9IHRoaXMuX2dldFRhYmxlSGVhZEhlaWdodCgpO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgYW5kIGFkanVzdCBoZWlnaHQgb2Zmc2V0XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcclxuXHRcdFx0fSwgMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHkuXHJcblx0ICogQHBhcmFtIGNvbHVtbiAtIGNvbHVtbiBvYmplY3QuXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uOiBhbnkpIHtcclxuXHRcdC8vIHRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eVxyXG5cdFx0Y29sdW1uLnZpc2libGUgPVxyXG5cdFx0XHR0eXBlb2YgY29sdW1uLnZpc2libGUgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhY29sdW1uLnZpc2libGU7XHJcblxyXG5cdFx0Ly8gcmVkcmF3IHRhYmxlXHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUucmVkcmF3KCk7XHJcblxyXG5cdFx0Ly8gZW1pdCBldmVudFxyXG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xyXG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLXZpc2liaWxpdHktY2hhbmdlJyxcclxuXHRcdFx0dmFsdWU6IHtcclxuXHRcdFx0XHRjb2x1bW46IHsgLi4uY29sdW1uIH0sXHJcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gY2hlY2sgYW5kIHJlc2V0IG9mZnNldFxyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblx0XHR9LCAwKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE9yZGVyIHRhYmxlIGJ5IG9iamVjdCBrZXkuXHJcblx0ICogQHBhcmFtIGFyZ3MgLSBuYW1lIG9mIGtleSB0byBzb3J0IG9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX29uRHJvcChhcmdzOiBBcnJheTxhbnk+KSB7XHJcblx0XHR0aGlzLnJlb3JkZXJlZCA9IHRydWU7XHJcblx0XHRjb25zdCBbZSwgdGFyZ2V0XSA9IGFyZ3M7XHJcblx0XHRjb25zdCBvcmRlciA9IHt9O1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0b3JkZXJbdGFyZ2V0LmNoaWxkcmVuW2ldLmdldEF0dHJpYnV0ZSgnZGF0YS1vYmplY3Qta2V5JyldID0gaTtcclxuXHRcdH1cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0uY29sdW1uT3JkZXIgPVxyXG5cdFx0XHRcdG9yZGVyW3RoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLm9iamVjdEtleV07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gcmVzZXQgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncyA9IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc107XHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcclxuXHRcdHRoaXMuZ3RFdmVudC5lbWl0KHtcclxuXHRcdFx0bmFtZTogJ2d0LWNvbHVtbi1vcmRlci1jaGFuZ2UnLFxyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHNldHRpbmdzOiBbLi4udGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NdXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXHJcblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2dldFRhYmxlSGVhZEhlaWdodCgpOiBzdHJpbmcge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09ICdUSEVBRCdcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0cmV0dXJuIChcclxuXHRcdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdHRoaXMuZWxlbWVudFZpZXcuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xyXG5cdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUgPT09XHJcblx0XHRcdFx0J1RIRUFEJ1xyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHRcdC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZFxyXG5cdFx0XHRcdFx0XHQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXHJcblx0ICogQHJldHVybnMgb2Zmc2V0IGhlaWdodCBmb3IgdGFibGUgaGVhZGVyIGluIHB4LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5ndENvbHVtblNldHRpbmdzSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdHJldHVybiAnMHB4JztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBnZW5lcmF0ZSBhIHVuaXF1ZSBpZCBmb3IgZHJhZ3VsYSBpbnN0YW5jZSBpLmUuIGEgdW5pcXVlIGJhZyBuYW1lKi9cclxuXHQvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG5cdHByaXZhdGUgZ2VuZXJhdGVJZCgpIHtcclxuXHRcdGxldCBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcblx0XHRyZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcblx0XHRcdGNvbnN0IHIgPSAoKGQgKyBNYXRoLnJhbmRvbSgpICogMTYpICUgMTYpIHwgMDtcclxuXHRcdFx0ZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcclxuXHRcdFx0cmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0LyogdHNsaW50OmVuYWJsZSAqL1xyXG59XHJcbiJdfQ== |
@@ -7,2 +7,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbHVtblNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9jb2x1bW4tc2V0dGluZ3MubW9kdWxlJztcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbHVtblNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9jb2x1bW4tc2V0dGluZ3MubW9kdWxlJztcclxuIl19 |
@@ -16,2 +16,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvIiwic291cmNlcyI6WyJpbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHdENvbHVtblNldHRpbmdzVGV4dHMge1xuXHR0aXRsZTogc3RyaW5nO1xuXHRoZWxwOiBzdHJpbmc7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvIiwic291cmNlcyI6WyJpbnRlcmZhY2VzL2d0LWNvbHVtbi1zZXR0aW5ncy10ZXh0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHdENvbHVtblNldHRpbmdzVGV4dHMge1xyXG5cdHRpdGxlOiBzdHJpbmc7XHJcblx0aGVscDogc3RyaW5nO1xyXG59XHJcbiJdfQ== |
@@ -304,2 +304,2 @@ import { Component, Input, ViewChild, Pipe, ChangeDetectorRef, HostListener, Output, EventEmitter, NgModule } from '@angular/core'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvbHVtbi1zZXR0aW5ncy5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy9jb2x1bW4tc2V0dGluZ3MubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdFZpZXdDaGlsZCxcblx0VGVtcGxhdGVSZWYsXG5cdEVsZW1lbnRSZWYsXG5cdFBpcGUsXG5cdFBpcGVUcmFuc2Zvcm0sXG5cdE9uSW5pdCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdEhvc3RMaXN0ZW5lcixcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRHZW5lcmljVGFibGVDb21wb25lbnQsXG5cdEd0Um93LFxuXHRHdENvbmZpZ1NldHRpbmdcbn0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgR3RDb2x1bW5TZXR0aW5nc1RleHRzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ndC1jb2x1bW4tc2V0dGluZ3MtdGV4dHMnO1xuXG5AUGlwZSh7XG5cdG5hbWU6ICdndENvbHVtbidcbn0pXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cdC8vIFRPRE86IG1vdmUgdG8gaGVscGVyIGZ1bmN0aW9uc1xuXHQvKiogU29ydCBieSBjb2x1bW4gb3JkZXIgKi9cblx0cHJpdmF0ZSBnZXRDb2x1bW5PcmRlcihhOiBhbnksIGI6IGFueSkge1xuXHRcdGlmIChhLmNvbHVtbk9yZGVyIDwgYi5jb2x1bW5PcmRlcikge1xuXHRcdFx0cmV0dXJuIC0xO1xuXHRcdH1cblx0XHRpZiAoYS5jb2x1bW5PcmRlciA+IGIuY29sdW1uT3JkZXIgfHwgdHlwZW9mIGEuY29sdW1uT3JkZXIgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRyZXR1cm4gMTtcblx0XHR9XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHQvKiogcmV0dXJuIGVuYWJsZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgbG9ja2VkIGZvciBlZGl0aW5nICovXG5cdHByaXZhdGUgZ2V0RW5hYmxlZChjb2x1bW46IEd0Q29uZmlnU2V0dGluZykge1xuXHRcdHJldHVybiBjb2x1bW4uZW5hYmxlZCAhPT0gZmFsc2UgJiYgY29sdW1uLmxvY2tTZXR0aW5ncyAhPT0gdHJ1ZVxuXHRcdFx0PyBjb2x1bW5cblx0XHRcdDogbnVsbDtcblx0fVxuXG5cdHRyYW5zZm9ybShzZXR0aW5nczogQXJyYXk8R3RDb25maWdTZXR0aW5nPik6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4ge1xuXHRcdHJldHVybiBzZXR0aW5ncy5maWx0ZXIodGhpcy5nZXRFbmFibGVkKS5zb3J0KHRoaXMuZ2V0Q29sdW1uT3JkZXIpO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2d0LWNvbHVtbi1zZXR0aW5ncycsXG5cdHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sdW1uSXRlbSBsZXQtY29sdW1uIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXNlY29uZGFyeVwiPnt7aW5kZXh9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIChkYmxjbGljayk9XCJ0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbilcIiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwieydiYWRnZS1zdWNjZXNzJzpjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UsICdiYWRnZS1kYW5nZXInOmNvbHVtbi52aXNpYmxlID09PSBmYWxzZX1cIj57e2dlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZSd9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5nc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1wYW5lbFwiICAqbmdJZj1cImFjdGl2ZVwiIFtzdHlsZS5wYWRkaW5nLXRvcF09XCJvZmZzZXRcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAnK29mZnNldCsnKSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNndENvbHVtblNldHRpbmdzSGVhZGVyIGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWhlYWRlciBib3JkZXItYm90dG9tLTBcIiBbbmdDbGFzc109XCJndEhlYWRlckNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJ0b2dnbGVDb2x1bW5TZXR0aW5ncygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLXRpdGxlXCIgKm5nSWY9XCJndFRleHRzLnRpdGxlXCI+e3tndFRleHRzLnRpdGxlfX08L2g2PlxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVscCBmb3JtLXRleHQgdGV4dC1tdXRlZFwiICpuZ0lmPVwiZ3RUZXh0cy5oZWxwXCI+e3tndFRleHRzLmhlbHB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1pdGVtLXdyYXBwZXJcIiBbbmdDbGFzc109XCJndFdyYXBwZXJDbGFzc2VzXCIgW2RyYWd1bGFdPSdiYWdJZCcgIGRhdGEtdmlzaWJsZT1cInRydWVcIiBbc3R5bGUubWF4LWhlaWdodF09XCInY2FsYygxMDAlIC0gJytoZWlnaHRBZGp1c3QrJyknXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbSBwci0wIHByLXNtLTRcIiAqbmdGb3I9XCJsZXQgaSA9IGluZGV4O2xldCBjb2x1bW4gb2YgZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgfCBndENvbHVtblwiIFthdHRyLmRhdGEtb2JqZWN0LWtleV09XCJjb2x1bW4ub2JqZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ3RDb2x1bW5JdGVtID8gZ3RDb2x1bW5JdGVtOmNvbHVtbkl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY29sdW1uLGluZGV4OiB0aGlzLnJlb3JkZXJlZCA/IGNvbHVtbi5jb2x1bW5PcmRlcisxOmkrMSwgbmFtZTogKGdlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZScpfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1vdmVybGF5XCIgKm5nSWY9XCJhY3RpdmUgJiYgb3ZlcmxheVwiIChjbGljayk9XCJ0b2dnbGVDb2x1bW5TZXR0aW5ncygpXCIgW3N0eWxlLmhlaWdodF09XCInY2FsYygxMDAlIC0gLScrb2Zmc2V0KycpJ1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyaWNUYWJsZUVsZW1lbnQgW25nSWZdPVwiZ2VuZXJpY1RhYmxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBHdENvbHVtblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0Z2V0IGdlbmVyaWNUYWJsZSgpOiBHZW5lcmljVGFibGVDb21wb25lbnQ8YW55LCBhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5fZ2VuZXJpY1RhYmxlO1xuXHR9XG5cblx0QElucHV0KClcblx0c2V0IGdlbmVyaWNUYWJsZSh2YWx1ZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55Pikge1xuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZSA9IHZhbHVlO1xuXHR9XG5cblx0QFZpZXdDaGlsZCgnZ2VuZXJpY1RhYmxlRWxlbWVudCcpIGVsZW1lbnRWaWV3OiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblx0QFZpZXdDaGlsZCgnZ3RDb2x1bW5TZXR0aW5nc0hlYWRlcicpIGd0Q29sdW1uU2V0dGluZ3NIZWFkZXI6IEVsZW1lbnRSZWY7XG5cblx0cHJpdmF0ZSBfZ2VuZXJpY1RhYmxlOiBHZW5lcmljVGFibGVDb21wb25lbnQ8R3RSb3csIGFueT47XG5cdEBJbnB1dCgpXG5cdGd0SGVhZGVyQ2xhc3NlcyA9ICdweC0zIHB0LTMgcGItMiB0YWJsZS1ib3JkZXJlZCBib3JkZXItbGVmdC0wIGJvcmRlci1yaWdodC0wIGJvcmRlci1ib3R0b20tMCBhbGVydC1pbmZvJztcblx0QElucHV0KClcblx0Z3RXcmFwcGVyQ2xhc3NlcyA9ICdweC0zIHBiLTMgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItdG9wLTAgYWxlcnQtaW5mbyc7XG5cdEBJbnB1dCgpIG92ZXJsYXkgPSB0cnVlO1xuXHRASW5wdXQoKSBndENvbHVtbkl0ZW06IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuXHRwdWJsaWMgZ3REZWZhdWx0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHtcblx0XHR0aXRsZTogJ0NvbHVtbnMnLFxuXHRcdGhlbHA6ICdEb3VibGUgY2xpY2sgdG8gdG9nZ2xlIHZpc2liaWxpdHksIGRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlci4nXG5cdH07XG5cdEBJbnB1dCgpIGd0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHRoaXMuZ3REZWZhdWx0VGV4dHM7XG5cblx0QE91dHB1dCgpIHB1YmxpYyBndEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG5cdHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcblx0cHVibGljIG9mZnNldDogc3RyaW5nO1xuXHRwdWJsaWMgaGVpZ2h0QWRqdXN0OiBzdHJpbmc7XG5cdHB1YmxpYyByZW9yZGVyZWQgPSBmYWxzZTtcblx0cHVibGljIGJhZ0lkOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENoZWNrIG9mZnNldCBoZWlnaHQgb24gd2luZG93IHJlc2l6ZS5cblx0ICovXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcblx0cHVibGljIG9uUmVzaXplKCkge1xuXHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cdFx0dGhpcy5oZWlnaHRBZGp1c3QgPSB0aGlzLl9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UsXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcblx0KSB7XG5cdFx0ZHJhZ3VsYVNlcnZpY2UuZHJvcC5zdWJzY3JpYmUoKHZhbHVlOiBBcnJheTxhbnk+KSA9PiB7XG5cdFx0XHRpZiAodmFsdWVbMF0gPT09IHRoaXMuYmFnSWQpIHtcblx0XHRcdFx0dGhpcy5fb25Ecm9wKHZhbHVlLnNsaWNlKDEpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuYmFnSWQgPSB0aGlzLmdlbmVyYXRlSWQoKTtcblx0XHQvLyBzZXR1cCB0ZXh0c1xuXHRcdHRoaXMuZ3RUZXh0cyA9IDxHdENvbHVtblNldHRpbmdzVGV4dHM+dGhpcy5leHRlbmQoXG5cdFx0XHR0aGlzLmd0RGVmYXVsdFRleHRzLFxuXHRcdFx0dGhpcy5ndFRleHRzXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiAgRXh0ZW5kIG9iamVjdCBmdW5jdGlvbi5cblx0ICovXG5cdHByaXZhdGUgZXh0ZW5kID0gZnVuY3Rpb24oYTogT2JqZWN0LCBiOiBPYmplY3QpIHtcblx0XHRmb3IgKGNvbnN0IGtleSBpbiBiKSB7XG5cdFx0XHRpZiAoYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG5cdFx0XHRcdGFba2V5XSA9IGJba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGE7XG5cdH07XG5cblx0LyoqXG5cdCAqIFRvZ2dsZSBjb2x1bW4gc2V0dGluZ3MgdmlzaWJpbGl0eS5cblx0ICovXG5cdHB1YmxpYyB0b2dnbGVDb2x1bW5TZXR0aW5ncygpIHtcblx0XHR0aGlzLmFjdGl2ZSA9ICF0aGlzLmFjdGl2ZTtcblxuXHRcdGlmICh0aGlzLmFjdGl2ZSkge1xuXHRcdFx0dGhpcy5vZmZzZXQgPSB0aGlzLl9nZXRUYWJsZUhlYWRIZWlnaHQoKTtcblxuXHRcdFx0Ly8gY2hlY2sgYW5kIGFkanVzdCBoZWlnaHQgb2Zmc2V0XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5oZWlnaHRBZGp1c3QgPSB0aGlzLl9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpO1xuXHRcdFx0fSwgMCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eS5cblx0ICogQHBhcmFtIGNvbHVtbiAtIGNvbHVtbiBvYmplY3QuXG5cdCAqL1xuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW46IGFueSkge1xuXHRcdC8vIHRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eVxuXHRcdGNvbHVtbi52aXNpYmxlID1cblx0XHRcdHR5cGVvZiBjb2x1bW4udmlzaWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyBmYWxzZSA6ICFjb2x1bW4udmlzaWJsZTtcblxuXHRcdC8vIHJlZHJhdyB0YWJsZVxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcblxuXHRcdC8vIGVtaXQgZXZlbnRcblx0XHR0aGlzLmd0RXZlbnQuZW1pdCh7XG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLXZpc2liaWxpdHktY2hhbmdlJyxcblx0XHRcdHZhbHVlOiB7XG5cdFx0XHRcdGNvbHVtbjogeyAuLi5jb2x1bW4gfSxcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdC8vIGNoZWNrIGFuZCByZXNldCBvZmZzZXRcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cdFx0fSwgMCk7XG5cdH1cblxuXHQvKipcblx0ICogT3JkZXIgdGFibGUgYnkgb2JqZWN0IGtleS5cblx0ICogQHBhcmFtIGFyZ3MgLSBuYW1lIG9mIGtleSB0byBzb3J0IG9uLlxuXHQgKi9cblx0cHJpdmF0ZSBfb25Ecm9wKGFyZ3M6IEFycmF5PGFueT4pIHtcblx0XHR0aGlzLnJlb3JkZXJlZCA9IHRydWU7XG5cdFx0Y29uc3QgW2UsIHRhcmdldF0gPSBhcmdzO1xuXHRcdGNvbnN0IG9yZGVyID0ge307XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdG9yZGVyW3RhcmdldC5jaGlsZHJlbltpXS5nZXRBdHRyaWJ1dGUoJ2RhdGEtb2JqZWN0LWtleScpXSA9IGk7XG5cdFx0fVxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLmNvbHVtbk9yZGVyID1cblx0XHRcdFx0b3JkZXJbdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0ub2JqZWN0S2V5XTtcblx0XHR9XG5cblx0XHQvLyByZXNldCBhcnJheSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cblx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncyA9IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc107XG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcblx0XHR0aGlzLmd0RXZlbnQuZW1pdCh7XG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLW9yZGVyLWNoYW5nZScsXG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRzZXR0aW5nczogWy4uLnRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzXVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBoZWlnaHQgb2YgdGFibGUgaGVhZCBlbGVtZW50IGllLiBmaXJzdCByb3cgY29udGFpbmluZyB0YWJsZSBoZWFkZXJzLlxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXG5cdCAqL1xuXHRwcml2YXRlIF9nZXRUYWJsZUhlYWRIZWlnaHQoKTogc3RyaW5nIHtcblx0XHR0cnkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmVsZW1lbnRWaWV3LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT0gJ1RIRUFEJ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmVsZW1lbnRWaWV3LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT1cblx0XHRcdFx0J1RIRUFEJ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGRcblx0XHRcdFx0XHRcdC5vZmZzZXRIZWlnaHQgKyAncHgnXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdHJldHVybiAnMHB4Jztcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXG5cdCAqIEByZXR1cm5zIG9mZnNldCBoZWlnaHQgZm9yIHRhYmxlIGhlYWRlciBpbiBweC5cblx0ICovXG5cdHByaXZhdGUgX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiB0aGlzLmd0Q29sdW1uU2V0dGluZ3NIZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fVxuXHR9XG5cblx0LyoqIGdlbmVyYXRlIGEgdW5pcXVlIGlkIGZvciBkcmFndWxhIGluc3RhbmNlIGkuZS4gYSB1bmlxdWUgYmFnIG5hbWUqL1xuXHQvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuXHRwcml2YXRlIGdlbmVyYXRlSWQoKSB7XG5cdFx0bGV0IGQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblx0XHRyZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XG5cdFx0XHRjb25zdCByID0gKChkICsgTWF0aC5yYW5kb20oKSAqIDE2KSAlIDE2KSB8IDA7XG5cdFx0XHRkID0gTWF0aC5mbG9vcihkIC8gMTYpO1xuXHRcdFx0cmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XG5cdFx0fSk7XG5cdH1cblx0LyogdHNsaW50OmVuYWJsZSAqL1xufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRHdENvbHVtblBpcGUsXG5cdEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL2d0LWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VuZXJpY1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcbmltcG9ydCB7IERyYWd1bGFNb2R1bGUgfSBmcm9tICduZzItZHJhZ3VsYSc7XG5cbkBOZ01vZHVsZSh7XG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEdlbmVyaWNUYWJsZU1vZHVsZSwgRHJhZ3VsYU1vZHVsZV0sXG5cdGRlY2xhcmF0aW9uczogW0d0Q29sdW1uU2V0dGluZ3NDb21wb25lbnQsIEd0Q29sdW1uUGlwZV0sXG5cdGV4cG9ydHM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmdzTW9kdWxlIHt9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7SUE0QlMsY0FBYyxDQUFDLENBQU0sRUFBRSxDQUFNO1FBQ3BDLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7WUFDMUUsT0FBTyxDQUFDLENBQUM7U0FDVDtRQUNELE9BQU8sQ0FBQyxDQUFDOzs7Ozs7O0lBSUYsVUFBVSxDQUFDLE1BQXVCO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxJQUFJO2NBQzVELE1BQU07Y0FDTixJQUFJLENBQUM7Ozs7OztJQUdULFNBQVMsQ0FBQyxRQUFnQztRQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDbEU7OztZQXpCRCxJQUFJLFNBQUM7Z0JBQ0wsSUFBSSxFQUFFLFVBQVU7YUFDaEI7Ozs7Ozs7SUFrR0EsWUFDUyxnQkFDQTtRQURBLG1CQUFjLEdBQWQsY0FBYztRQUNkLHNCQUFpQixHQUFqQixpQkFBaUI7K0JBOUJSLHVGQUF1RjtnQ0FFdEYsK0VBQStFO3VCQUMvRSxJQUFJOzhCQUV3QjtZQUM5QyxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsOERBQThEO1NBQ3BFO3VCQUN5QyxJQUFJLENBQUMsY0FBYzt1QkFFZixJQUFJLFlBQVksRUFBTztzQkFFckQsS0FBSzt5QkFHRixLQUFLOzs7O3NCQW1DUCxVQUFTLENBQVMsRUFBRSxDQUFTO1lBQzdDLEtBQUssdUJBQU0sR0FBRyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNoQjthQUNEO1lBQ0QsT0FBTyxDQUFDLENBQUM7U0FDVDtRQTFCQSxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWlCO1lBQy9DLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1NBQ0QsQ0FBQyxDQUFDO0tBQ0g7Ozs7SUFuREQsSUFBSSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0tBQzFCOzs7OztRQUdHLFlBQVksQ0FBQyxLQUFzQztRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzs7Ozs7O0lBK0JyQixRQUFRO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDOzs7OztJQWMzRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7O1FBRS9CLElBQUksQ0FBQyxPQUFPLHFCQUEwQixJQUFJLENBQUMsTUFBTSxDQUNoRCxJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsT0FBTyxDQUNaLENBQUEsQ0FBQztLQUNGOzs7OztJQWlCTSxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7O1lBR3pDLFVBQVUsQ0FBQztnQkFDVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQzFELEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDTjs7Ozs7OztJQU9LLHNCQUFzQixDQUFDLE1BQVc7O1FBRXhDLE1BQU0sQ0FBQyxPQUFPO1lBQ2IsT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFdBQVcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDOztRQUdqRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDOztRQUc1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNqQixJQUFJLEVBQUUsNkJBQTZCO1lBQ25DLEtBQUssRUFBRTtnQkFDTixNQUFNLG9CQUFPLE1BQU0sQ0FBRTtnQkFDckIsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQzthQUM1QztTQUNELENBQUMsQ0FBQzs7UUFHSCxVQUFVLENBQUM7WUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQ3pDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7SUFPQyxPQUFPLENBQUMsSUFBZ0I7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekIsdUJBQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixLQUFLLHFCQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlEO1FBQ0QsS0FBSyxxQkFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztnQkFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ25EOztRQUdELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2pCLElBQUksRUFBRSx3QkFBd0I7WUFDOUIsS0FBSyxFQUFFO2dCQUNOLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7YUFDNUM7U0FDRCxDQUFDLENBQUM7Ozs7OztJQU9JLG1CQUFtQjtRQUMxQixJQUFJO1lBQ0gsSUFDQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO2lCQUMxRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUN4RDtnQkFDRCxRQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7cUJBQzFELGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxJQUFJLEVBQ3hEO2FBQ0Y7WUFDRCxJQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7aUJBQzFELGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE9BQU87Z0JBQy9ELE9BQU8sRUFDTjtnQkFDRCxRQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7cUJBQzFELGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQjtxQkFDckQsWUFBWSxHQUFHLElBQUksRUFDcEI7YUFDRjtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFBQyx3QkFBTyxLQUFLLEVBQUU7WUFDZixPQUFPLEtBQUssQ0FBQztTQUNiOzs7Ozs7SUFPTSw4QkFBOEI7UUFDckMsSUFBSTtZQUNILE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ3JFO1FBQUMsd0JBQU8sS0FBSyxFQUFFO1lBQ2YsT0FBTyxLQUFLLENBQUM7U0FDYjs7Ozs7O0lBS00sVUFBVTtRQUNqQixxQkFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QixPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBUyxDQUFDO1lBQ3hFLHVCQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RELENBQUMsQ0FBQzs7OztZQXBPSixTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUJOO2FBQ0o7Ozs7O1lBM0RRLGNBQWM7WUFWdEIsaUJBQWlCOzs7NkJBMkVoQixLQUFLOzRCQUtMLFNBQVMsU0FBQyxxQkFBcUI7dUNBQy9CLFNBQVMsU0FBQyx3QkFBd0I7Z0NBR2xDLEtBQUs7aUNBRUwsS0FBSzt3QkFFTCxLQUFLOzZCQUNMLEtBQUs7d0JBS0wsS0FBSzt3QkFFTCxNQUFNO3lCQVdOLFlBQVksU0FBQyxlQUFlLEVBQUUsRUFBRTs7Ozs7OztBQ3BIbEM7OztZQVNDLFFBQVEsU0FBQztnQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDO2dCQUMxRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUM7Z0JBQ3ZELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQzthQUNsRDs7Ozs7Ozs7Ozs7Ozs7OyJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvbHVtbi1zZXR0aW5ncy5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy9jb2x1bW4tc2V0dGluZ3MubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdElucHV0LFxyXG5cdFZpZXdDaGlsZCxcclxuXHRUZW1wbGF0ZVJlZixcclxuXHRFbGVtZW50UmVmLFxyXG5cdFBpcGUsXHJcblx0UGlwZVRyYW5zZm9ybSxcclxuXHRPbkluaXQsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0SG9zdExpc3RlbmVyLFxyXG5cdE91dHB1dCxcclxuXHRFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRHZW5lcmljVGFibGVDb21wb25lbnQsXHJcblx0R3RSb3csXHJcblx0R3RDb25maWdTZXR0aW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ3VsYVNlcnZpY2UgfSBmcm9tICduZzItZHJhZ3VsYSc7XHJcbmltcG9ydCB7IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzJztcclxuXHJcbkBQaXBlKHtcclxuXHRuYW1lOiAnZ3RDb2x1bW4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHdENvbHVtblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHQvLyBUT0RPOiBtb3ZlIHRvIGhlbHBlciBmdW5jdGlvbnNcclxuXHQvKiogU29ydCBieSBjb2x1bW4gb3JkZXIgKi9cclxuXHRwcml2YXRlIGdldENvbHVtbk9yZGVyKGE6IGFueSwgYjogYW55KSB7XHJcblx0XHRpZiAoYS5jb2x1bW5PcmRlciA8IGIuY29sdW1uT3JkZXIpIHtcclxuXHRcdFx0cmV0dXJuIC0xO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPiBiLmNvbHVtbk9yZGVyIHx8IHR5cGVvZiBhLmNvbHVtbk9yZGVyID09PSAndW5kZWZpbmVkJykge1xyXG5cdFx0XHRyZXR1cm4gMTtcclxuXHRcdH1cclxuXHRcdHJldHVybiAwO1xyXG5cdH1cclxuXHJcblx0LyoqIHJldHVybiBlbmFibGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxvY2tlZCBmb3IgZWRpdGluZyAqL1xyXG5cdHByaXZhdGUgZ2V0RW5hYmxlZChjb2x1bW46IEd0Q29uZmlnU2V0dGluZykge1xyXG5cdFx0cmV0dXJuIGNvbHVtbi5lbmFibGVkICE9PSBmYWxzZSAmJiBjb2x1bW4ubG9ja1NldHRpbmdzICE9PSB0cnVlXHJcblx0XHRcdD8gY29sdW1uXHJcblx0XHRcdDogbnVsbDtcclxuXHR9XHJcblxyXG5cdHRyYW5zZm9ybShzZXR0aW5nczogQXJyYXk8R3RDb25maWdTZXR0aW5nPik6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4ge1xyXG5cdFx0cmV0dXJuIHNldHRpbmdzLmZpbHRlcih0aGlzLmdldEVuYWJsZWQpLnNvcnQodGhpcy5nZXRDb2x1bW5PcmRlcik7XHJcblx0fVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2d0LWNvbHVtbi1zZXR0aW5ncycsXHJcblx0dGVtcGxhdGU6IGBcclxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkl0ZW0gbGV0LWNvbHVtbiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXNlY29uZGFyeVwiPnt7aW5kZXh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKGRibGNsaWNrKT1cInRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uKVwiIGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJ7J2JhZGdlLXN1Y2Nlc3MnOmNvbHVtbi52aXNpYmxlICE9PSBmYWxzZSwgJ2JhZGdlLWRhbmdlcic6Y29sdW1uLnZpc2libGUgPT09IGZhbHNlfVwiPnt7Z2VuZXJpY1RhYmxlLmd0RmllbGRzIHwgZ3RQcm9wZXJ0eTpjb2x1bW4ub2JqZWN0S2V5OiduYW1lJ319PC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5nc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLXBhbmVsXCIgICpuZ0lmPVwiYWN0aXZlXCIgW3N0eWxlLnBhZGRpbmctdG9wXT1cIm9mZnNldFwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcrb2Zmc2V0KycpJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAjZ3RDb2x1bW5TZXR0aW5nc0hlYWRlciBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWFkZXIgYm9yZGVyLWJvdHRvbS0wXCIgW25nQ2xhc3NdPVwiZ3RIZWFkZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJ0b2dnbGVDb2x1bW5TZXR0aW5ncygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLXRpdGxlXCIgKm5nSWY9XCJndFRleHRzLnRpdGxlXCI+e3tndFRleHRzLnRpdGxlfX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWxwIGZvcm0tdGV4dCB0ZXh0LW11dGVkXCIgKm5nSWY9XCJndFRleHRzLmhlbHBcIj57e2d0VGV4dHMuaGVscH19PC9zbWFsbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1pdGVtLXdyYXBwZXJcIiBbbmdDbGFzc109XCJndFdyYXBwZXJDbGFzc2VzXCIgW2RyYWd1bGFdPSdiYWdJZCcgIGRhdGEtdmlzaWJsZT1cInRydWVcIiBbc3R5bGUubWF4LWhlaWdodF09XCInY2FsYygxMDAlIC0gJytoZWlnaHRBZGp1c3QrJyknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1pdGVtIHByLTAgcHItc20tNFwiICpuZ0Zvcj1cImxldCBpID0gaW5kZXg7bGV0IGNvbHVtbiBvZiBnZW5lcmljVGFibGUuZ3RTZXR0aW5ncyB8IGd0Q29sdW1uXCIgW2F0dHIuZGF0YS1vYmplY3Qta2V5XT1cImNvbHVtbi5vYmplY3RLZXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImd0Q29sdW1uSXRlbSA/IGd0Q29sdW1uSXRlbTpjb2x1bW5JdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNvbHVtbixpbmRleDogdGhpcy5yZW9yZGVyZWQgPyBjb2x1bW4uY29sdW1uT3JkZXIrMTppKzEsIG5hbWU6IChnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnKX1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Qtb3ZlcmxheVwiICpuZ0lmPVwiYWN0aXZlICYmIG92ZXJsYXlcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtIC0nK29mZnNldCsnKSdcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJpY1RhYmxlRWxlbWVudCBbbmdJZl09XCJnZW5lcmljVGFibGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdGdldCBnZW5lcmljVGFibGUoKTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZ2VuZXJpY1RhYmxlO1xyXG5cdH1cclxuXHJcblx0QElucHV0KClcclxuXHRzZXQgZ2VuZXJpY1RhYmxlKHZhbHVlOiBHZW5lcmljVGFibGVDb21wb25lbnQ8YW55LCBhbnk+KSB7XHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZUVsZW1lbnQnKSBlbGVtZW50VmlldzogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblx0QFZpZXdDaGlsZCgnZ3RDb2x1bW5TZXR0aW5nc0hlYWRlcicpIGd0Q29sdW1uU2V0dGluZ3NIZWFkZXI6IEVsZW1lbnRSZWY7XHJcblxyXG5cdHByaXZhdGUgX2dlbmVyaWNUYWJsZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PEd0Um93LCBhbnk+O1xyXG5cdEBJbnB1dCgpXHJcblx0Z3RIZWFkZXJDbGFzc2VzID0gJ3B4LTMgcHQtMyBwYi0yIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLWJvdHRvbS0wIGFsZXJ0LWluZm8nO1xyXG5cdEBJbnB1dCgpXHJcblx0Z3RXcmFwcGVyQ2xhc3NlcyA9ICdweC0zIHBiLTMgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItdG9wLTAgYWxlcnQtaW5mbyc7XHJcblx0QElucHV0KCkgb3ZlcmxheSA9IHRydWU7XHJcblx0QElucHV0KCkgZ3RDb2x1bW5JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcclxuXHRwdWJsaWMgZ3REZWZhdWx0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHtcclxuXHRcdHRpdGxlOiAnQ29sdW1ucycsXHJcblx0XHRoZWxwOiAnRG91YmxlIGNsaWNrIHRvIHRvZ2dsZSB2aXNpYmlsaXR5LCBkcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIuJ1xyXG5cdH07XHJcblx0QElucHV0KCkgZ3RUZXh0czogR3RDb2x1bW5TZXR0aW5nc1RleHRzID0gdGhpcy5ndERlZmF1bHRUZXh0cztcclxuXHJcblx0QE91dHB1dCgpIHB1YmxpYyBndEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHRwdWJsaWMgYWN0aXZlID0gZmFsc2U7XHJcblx0cHVibGljIG9mZnNldDogc3RyaW5nO1xyXG5cdHB1YmxpYyBoZWlnaHRBZGp1c3Q6IHN0cmluZztcclxuXHRwdWJsaWMgcmVvcmRlcmVkID0gZmFsc2U7XHJcblx0cHVibGljIGJhZ0lkOiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrIG9mZnNldCBoZWlnaHQgb24gd2luZG93IHJlc2l6ZS5cclxuXHQgKi9cclxuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXHJcblx0cHVibGljIG9uUmVzaXplKCkge1xyXG5cdFx0dGhpcy5vZmZzZXQgPSB0aGlzLl9nZXRUYWJsZUhlYWRIZWlnaHQoKTtcclxuXHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge1xyXG5cdFx0ZHJhZ3VsYVNlcnZpY2UuZHJvcC5zdWJzY3JpYmUoKHZhbHVlOiBBcnJheTxhbnk+KSA9PiB7XHJcblx0XHRcdGlmICh2YWx1ZVswXSA9PT0gdGhpcy5iYWdJZCkge1xyXG5cdFx0XHRcdHRoaXMuX29uRHJvcCh2YWx1ZS5zbGljZSgxKSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmJhZ0lkID0gdGhpcy5nZW5lcmF0ZUlkKCk7XHJcblx0XHQvLyBzZXR1cCB0ZXh0c1xyXG5cdFx0dGhpcy5ndFRleHRzID0gPEd0Q29sdW1uU2V0dGluZ3NUZXh0cz50aGlzLmV4dGVuZChcclxuXHRcdFx0dGhpcy5ndERlZmF1bHRUZXh0cyxcclxuXHRcdFx0dGhpcy5ndFRleHRzXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogIEV4dGVuZCBvYmplY3QgZnVuY3Rpb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBleHRlbmQgPSBmdW5jdGlvbihhOiBPYmplY3QsIGI6IE9iamVjdCkge1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gYikge1xyXG5cdFx0XHRpZiAoYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcblx0XHRcdFx0YVtrZXldID0gYltrZXldO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBUb2dnbGUgY29sdW1uIHNldHRpbmdzIHZpc2liaWxpdHkuXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZUNvbHVtblNldHRpbmdzKCkge1xyXG5cdFx0dGhpcy5hY3RpdmUgPSAhdGhpcy5hY3RpdmU7XHJcblxyXG5cdFx0aWYgKHRoaXMuYWN0aXZlKSB7XHJcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBhbmQgYWRqdXN0IGhlaWdodCBvZmZzZXRcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5oZWlnaHRBZGp1c3QgPSB0aGlzLl9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpO1xyXG5cdFx0XHR9LCAwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eS5cclxuXHQgKiBAcGFyYW0gY29sdW1uIC0gY29sdW1uIG9iamVjdC5cclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW46IGFueSkge1xyXG5cdFx0Ly8gdG9nZ2xlIGNvbHVtbiB2aXNpYmlsaXR5XHJcblx0XHRjb2x1bW4udmlzaWJsZSA9XHJcblx0XHRcdHR5cGVvZiBjb2x1bW4udmlzaWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyBmYWxzZSA6ICFjb2x1bW4udmlzaWJsZTtcclxuXHJcblx0XHQvLyByZWRyYXcgdGFibGVcclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcclxuXHJcblx0XHQvLyBlbWl0IGV2ZW50XHJcblx0XHR0aGlzLmd0RXZlbnQuZW1pdCh7XHJcblx0XHRcdG5hbWU6ICdndC1jb2x1bW4tdmlzaWJpbGl0eS1jaGFuZ2UnLFxyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdGNvbHVtbjogeyAuLi5jb2x1bW4gfSxcclxuXHRcdFx0XHRzZXR0aW5nczogWy4uLnRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzXVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyBjaGVjayBhbmQgcmVzZXQgb2Zmc2V0XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5vZmZzZXQgPSB0aGlzLl9nZXRUYWJsZUhlYWRIZWlnaHQoKTtcclxuXHRcdH0sIDApO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogT3JkZXIgdGFibGUgYnkgb2JqZWN0IGtleS5cclxuXHQgKiBAcGFyYW0gYXJncyAtIG5hbWUgb2Yga2V5IHRvIHNvcnQgb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfb25Ecm9wKGFyZ3M6IEFycmF5PGFueT4pIHtcclxuXHRcdHRoaXMucmVvcmRlcmVkID0gdHJ1ZTtcclxuXHRcdGNvbnN0IFtlLCB0YXJnZXRdID0gYXJncztcclxuXHRcdGNvbnN0IG9yZGVyID0ge307XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRvcmRlclt0YXJnZXQuY2hpbGRyZW5baV0uZ2V0QXR0cmlidXRlKCdkYXRhLW9iamVjdC1rZXknKV0gPSBpO1xyXG5cdFx0fVxyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc1tpXS5jb2x1bW5PcmRlciA9XHJcblx0XHRcdFx0b3JkZXJbdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0ub2JqZWN0S2V5XTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyByZXNldCBhcnJheSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzID0gWy4uLnRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzXTtcclxuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcblxyXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLnJlZHJhdygpO1xyXG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xyXG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLW9yZGVyLWNoYW5nZScsXHJcblx0XHRcdHZhbHVlOiB7XHJcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cclxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfZ2V0VGFibGVIZWFkSGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT0gJ1RIRUFEJ1xyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHRcdC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRIZWlnaHQgKyAncHgnXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT1cclxuXHRcdFx0XHQnVEhFQUQnXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0XHR0aGlzLmVsZW1lbnRWaWV3LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcclxuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkXHJcblx0XHRcdFx0XHRcdC5vZmZzZXRIZWlnaHQgKyAncHgnXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gJzBweCc7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRyZXR1cm4gJzBweCc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cclxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTogc3RyaW5nIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmd0Q29sdW1uU2V0dGluZ3NIZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGdlbmVyYXRlIGEgdW5pcXVlIGlkIGZvciBkcmFndWxhIGluc3RhbmNlIGkuZS4gYSB1bmlxdWUgYmFnIG5hbWUqL1xyXG5cdC8qIHRzbGludDpkaXNhYmxlICovXHJcblx0cHJpdmF0ZSBnZW5lcmF0ZUlkKCkge1xyXG5cdFx0bGV0IGQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHRcdHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcclxuXHRcdFx0Y29uc3QgciA9ICgoZCArIE1hdGgucmFuZG9tKCkgKiAxNikgJSAxNikgfCAwO1xyXG5cdFx0XHRkID0gTWF0aC5mbG9vcihkIC8gMTYpO1xyXG5cdFx0XHRyZXR1cm4gKGMgPT09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDgpLnRvU3RyaW5nKDE2KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKiB0c2xpbnQ6ZW5hYmxlICovXHJcbn1cclxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuXHRHdENvbHVtblBpcGUsXHJcblx0R3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VuZXJpY1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ3VsYU1vZHVsZSB9IGZyb20gJ25nMi1kcmFndWxhJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgR2VuZXJpY1RhYmxlTW9kdWxlLCBEcmFndWxhTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdLFxyXG5cdGV4cG9ydHM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdXHJcbn0pXHJcbmV4cG9y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 |
@@ -338,2 +338,2 @@ import { __assign, __spread, __read } from 'tslib'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvbHVtbi1zZXR0aW5ncy5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy9jb2x1bW4tc2V0dGluZ3MubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdFZpZXdDaGlsZCxcblx0VGVtcGxhdGVSZWYsXG5cdEVsZW1lbnRSZWYsXG5cdFBpcGUsXG5cdFBpcGVUcmFuc2Zvcm0sXG5cdE9uSW5pdCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdEhvc3RMaXN0ZW5lcixcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRHZW5lcmljVGFibGVDb21wb25lbnQsXG5cdEd0Um93LFxuXHRHdENvbmZpZ1NldHRpbmdcbn0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgR3RDb2x1bW5TZXR0aW5nc1RleHRzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ndC1jb2x1bW4tc2V0dGluZ3MtdGV4dHMnO1xuXG5AUGlwZSh7XG5cdG5hbWU6ICdndENvbHVtbidcbn0pXG5leHBvcnQgY2xhc3MgR3RDb2x1bW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cdC8vIFRPRE86IG1vdmUgdG8gaGVscGVyIGZ1bmN0aW9uc1xuXHQvKiogU29ydCBieSBjb2x1bW4gb3JkZXIgKi9cblx0cHJpdmF0ZSBnZXRDb2x1bW5PcmRlcihhOiBhbnksIGI6IGFueSkge1xuXHRcdGlmIChhLmNvbHVtbk9yZGVyIDwgYi5jb2x1bW5PcmRlcikge1xuXHRcdFx0cmV0dXJuIC0xO1xuXHRcdH1cblx0XHRpZiAoYS5jb2x1bW5PcmRlciA+IGIuY29sdW1uT3JkZXIgfHwgdHlwZW9mIGEuY29sdW1uT3JkZXIgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRyZXR1cm4gMTtcblx0XHR9XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHQvKiogcmV0dXJuIGVuYWJsZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgbG9ja2VkIGZvciBlZGl0aW5nICovXG5cdHByaXZhdGUgZ2V0RW5hYmxlZChjb2x1bW46IEd0Q29uZmlnU2V0dGluZykge1xuXHRcdHJldHVybiBjb2x1bW4uZW5hYmxlZCAhPT0gZmFsc2UgJiYgY29sdW1uLmxvY2tTZXR0aW5ncyAhPT0gdHJ1ZVxuXHRcdFx0PyBjb2x1bW5cblx0XHRcdDogbnVsbDtcblx0fVxuXG5cdHRyYW5zZm9ybShzZXR0aW5nczogQXJyYXk8R3RDb25maWdTZXR0aW5nPik6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4ge1xuXHRcdHJldHVybiBzZXR0aW5ncy5maWx0ZXIodGhpcy5nZXRFbmFibGVkKS5zb3J0KHRoaXMuZ2V0Q29sdW1uT3JkZXIpO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2d0LWNvbHVtbi1zZXR0aW5ncycsXG5cdHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sdW1uSXRlbSBsZXQtY29sdW1uIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXNlY29uZGFyeVwiPnt7aW5kZXh9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIChkYmxjbGljayk9XCJ0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbilcIiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwieydiYWRnZS1zdWNjZXNzJzpjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UsICdiYWRnZS1kYW5nZXInOmNvbHVtbi52aXNpYmxlID09PSBmYWxzZX1cIj57e2dlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZSd9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5nc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1wYW5lbFwiICAqbmdJZj1cImFjdGl2ZVwiIFtzdHlsZS5wYWRkaW5nLXRvcF09XCJvZmZzZXRcIiBbc3R5bGUuaGVpZ2h0XT1cIidjYWxjKDEwMCUgLSAnK29mZnNldCsnKSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNndENvbHVtblNldHRpbmdzSGVhZGVyIGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLWhlYWRlciBib3JkZXItYm90dG9tLTBcIiBbbmdDbGFzc109XCJndEhlYWRlckNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJ0b2dnbGVDb2x1bW5TZXR0aW5ncygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLXRpdGxlXCIgKm5nSWY9XCJndFRleHRzLnRpdGxlXCI+e3tndFRleHRzLnRpdGxlfX08L2g2PlxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaGVscCBmb3JtLXRleHQgdGV4dC1tdXRlZFwiICpuZ0lmPVwiZ3RUZXh0cy5oZWxwXCI+e3tndFRleHRzLmhlbHB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1pdGVtLXdyYXBwZXJcIiBbbmdDbGFzc109XCJndFdyYXBwZXJDbGFzc2VzXCIgW2RyYWd1bGFdPSdiYWdJZCcgIGRhdGEtdmlzaWJsZT1cInRydWVcIiBbc3R5bGUubWF4LWhlaWdodF09XCInY2FsYygxMDAlIC0gJytoZWlnaHRBZGp1c3QrJyknXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1jb2x1bW4tc2V0dGluZ3MtaXRlbSBwci0wIHByLXNtLTRcIiAqbmdGb3I9XCJsZXQgaSA9IGluZGV4O2xldCBjb2x1bW4gb2YgZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MgfCBndENvbHVtblwiIFthdHRyLmRhdGEtb2JqZWN0LWtleV09XCJjb2x1bW4ub2JqZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ3RDb2x1bW5JdGVtID8gZ3RDb2x1bW5JdGVtOmNvbHVtbkl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY29sdW1uLGluZGV4OiB0aGlzLnJlb3JkZXJlZCA/IGNvbHVtbi5jb2x1bW5PcmRlcisxOmkrMSwgbmFtZTogKGdlbmVyaWNUYWJsZS5ndEZpZWxkcyB8IGd0UHJvcGVydHk6Y29sdW1uLm9iamVjdEtleTonbmFtZScpfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJndC1vdmVybGF5XCIgKm5nSWY9XCJhY3RpdmUgJiYgb3ZlcmxheVwiIChjbGljayk9XCJ0b2dnbGVDb2x1bW5TZXR0aW5ncygpXCIgW3N0eWxlLmhlaWdodF09XCInY2FsYygxMDAlIC0gLScrb2Zmc2V0KycpJ1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyaWNUYWJsZUVsZW1lbnQgW25nSWZdPVwiZ2VuZXJpY1RhYmxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBHdENvbHVtblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0Z2V0IGdlbmVyaWNUYWJsZSgpOiBHZW5lcmljVGFibGVDb21wb25lbnQ8YW55LCBhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5fZ2VuZXJpY1RhYmxlO1xuXHR9XG5cblx0QElucHV0KClcblx0c2V0IGdlbmVyaWNUYWJsZSh2YWx1ZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55Pikge1xuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZSA9IHZhbHVlO1xuXHR9XG5cblx0QFZpZXdDaGlsZCgnZ2VuZXJpY1RhYmxlRWxlbWVudCcpIGVsZW1lbnRWaWV3OiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblx0QFZpZXdDaGlsZCgnZ3RDb2x1bW5TZXR0aW5nc0hlYWRlcicpIGd0Q29sdW1uU2V0dGluZ3NIZWFkZXI6IEVsZW1lbnRSZWY7XG5cblx0cHJpdmF0ZSBfZ2VuZXJpY1RhYmxlOiBHZW5lcmljVGFibGVDb21wb25lbnQ8R3RSb3csIGFueT47XG5cdEBJbnB1dCgpXG5cdGd0SGVhZGVyQ2xhc3NlcyA9ICdweC0zIHB0LTMgcGItMiB0YWJsZS1ib3JkZXJlZCBib3JkZXItbGVmdC0wIGJvcmRlci1yaWdodC0wIGJvcmRlci1ib3R0b20tMCBhbGVydC1pbmZvJztcblx0QElucHV0KClcblx0Z3RXcmFwcGVyQ2xhc3NlcyA9ICdweC0zIHBiLTMgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItdG9wLTAgYWxlcnQtaW5mbyc7XG5cdEBJbnB1dCgpIG92ZXJsYXkgPSB0cnVlO1xuXHRASW5wdXQoKSBndENvbHVtbkl0ZW06IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuXHRwdWJsaWMgZ3REZWZhdWx0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHtcblx0XHR0aXRsZTogJ0NvbHVtbnMnLFxuXHRcdGhlbHA6ICdEb3VibGUgY2xpY2sgdG8gdG9nZ2xlIHZpc2liaWxpdHksIGRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlci4nXG5cdH07XG5cdEBJbnB1dCgpIGd0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHRoaXMuZ3REZWZhdWx0VGV4dHM7XG5cblx0QE91dHB1dCgpIHB1YmxpYyBndEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG5cdHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcblx0cHVibGljIG9mZnNldDogc3RyaW5nO1xuXHRwdWJsaWMgaGVpZ2h0QWRqdXN0OiBzdHJpbmc7XG5cdHB1YmxpYyByZW9yZGVyZWQgPSBmYWxzZTtcblx0cHVibGljIGJhZ0lkOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENoZWNrIG9mZnNldCBoZWlnaHQgb24gd2luZG93IHJlc2l6ZS5cblx0ICovXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcblx0cHVibGljIG9uUmVzaXplKCkge1xuXHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cdFx0dGhpcy5oZWlnaHRBZGp1c3QgPSB0aGlzLl9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UsXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcblx0KSB7XG5cdFx0ZHJhZ3VsYVNlcnZpY2UuZHJvcC5zdWJzY3JpYmUoKHZhbHVlOiBBcnJheTxhbnk+KSA9PiB7XG5cdFx0XHRpZiAodmFsdWVbMF0gPT09IHRoaXMuYmFnSWQpIHtcblx0XHRcdFx0dGhpcy5fb25Ecm9wKHZhbHVlLnNsaWNlKDEpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuYmFnSWQgPSB0aGlzLmdlbmVyYXRlSWQoKTtcblx0XHQvLyBzZXR1cCB0ZXh0c1xuXHRcdHRoaXMuZ3RUZXh0cyA9IDxHdENvbHVtblNldHRpbmdzVGV4dHM+dGhpcy5leHRlbmQoXG5cdFx0XHR0aGlzLmd0RGVmYXVsdFRleHRzLFxuXHRcdFx0dGhpcy5ndFRleHRzXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiAgRXh0ZW5kIG9iamVjdCBmdW5jdGlvbi5cblx0ICovXG5cdHByaXZhdGUgZXh0ZW5kID0gZnVuY3Rpb24oYTogT2JqZWN0LCBiOiBPYmplY3QpIHtcblx0XHRmb3IgKGNvbnN0IGtleSBpbiBiKSB7XG5cdFx0XHRpZiAoYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG5cdFx0XHRcdGFba2V5XSA9IGJba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGE7XG5cdH07XG5cblx0LyoqXG5cdCAqIFRvZ2dsZSBjb2x1bW4gc2V0dGluZ3MgdmlzaWJpbGl0eS5cblx0ICovXG5cdHB1YmxpYyB0b2dnbGVDb2x1bW5TZXR0aW5ncygpIHtcblx0XHR0aGlzLmFjdGl2ZSA9ICF0aGlzLmFjdGl2ZTtcblxuXHRcdGlmICh0aGlzLmFjdGl2ZSkge1xuXHRcdFx0dGhpcy5vZmZzZXQgPSB0aGlzLl9nZXRUYWJsZUhlYWRIZWlnaHQoKTtcblxuXHRcdFx0Ly8gY2hlY2sgYW5kIGFkanVzdCBoZWlnaHQgb2Zmc2V0XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5oZWlnaHRBZGp1c3QgPSB0aGlzLl9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpO1xuXHRcdFx0fSwgMCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eS5cblx0ICogQHBhcmFtIGNvbHVtbiAtIGNvbHVtbiBvYmplY3QuXG5cdCAqL1xuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW46IGFueSkge1xuXHRcdC8vIHRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eVxuXHRcdGNvbHVtbi52aXNpYmxlID1cblx0XHRcdHR5cGVvZiBjb2x1bW4udmlzaWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyBmYWxzZSA6ICFjb2x1bW4udmlzaWJsZTtcblxuXHRcdC8vIHJlZHJhdyB0YWJsZVxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcblxuXHRcdC8vIGVtaXQgZXZlbnRcblx0XHR0aGlzLmd0RXZlbnQuZW1pdCh7XG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLXZpc2liaWxpdHktY2hhbmdlJyxcblx0XHRcdHZhbHVlOiB7XG5cdFx0XHRcdGNvbHVtbjogeyAuLi5jb2x1bW4gfSxcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdC8vIGNoZWNrIGFuZCByZXNldCBvZmZzZXRcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XG5cdFx0fSwgMCk7XG5cdH1cblxuXHQvKipcblx0ICogT3JkZXIgdGFibGUgYnkgb2JqZWN0IGtleS5cblx0ICogQHBhcmFtIGFyZ3MgLSBuYW1lIG9mIGtleSB0byBzb3J0IG9uLlxuXHQgKi9cblx0cHJpdmF0ZSBfb25Ecm9wKGFyZ3M6IEFycmF5PGFueT4pIHtcblx0XHR0aGlzLnJlb3JkZXJlZCA9IHRydWU7XG5cdFx0Y29uc3QgW2UsIHRhcmdldF0gPSBhcmdzO1xuXHRcdGNvbnN0IG9yZGVyID0ge307XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdG9yZGVyW3RhcmdldC5jaGlsZHJlbltpXS5nZXRBdHRyaWJ1dGUoJ2RhdGEtb2JqZWN0LWtleScpXSA9IGk7XG5cdFx0fVxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzW2ldLmNvbHVtbk9yZGVyID1cblx0XHRcdFx0b3JkZXJbdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0ub2JqZWN0S2V5XTtcblx0XHR9XG5cblx0XHQvLyByZXNldCBhcnJheSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cblx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncyA9IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc107XG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcblx0XHR0aGlzLmd0RXZlbnQuZW1pdCh7XG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLW9yZGVyLWNoYW5nZScsXG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRzZXR0aW5nczogWy4uLnRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzXVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBoZWlnaHQgb2YgdGFibGUgaGVhZCBlbGVtZW50IGllLiBmaXJzdCByb3cgY29udGFpbmluZyB0YWJsZSBoZWFkZXJzLlxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXG5cdCAqL1xuXHRwcml2YXRlIF9nZXRUYWJsZUhlYWRIZWlnaHQoKTogc3RyaW5nIHtcblx0XHR0cnkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmVsZW1lbnRWaWV3LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT0gJ1RIRUFEJ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0SGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmVsZW1lbnRWaWV3LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT1cblx0XHRcdFx0J1RIRUFEJ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXG5cdFx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGRcblx0XHRcdFx0XHRcdC5vZmZzZXRIZWlnaHQgKyAncHgnXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdHJldHVybiAnMHB4Jztcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGhlaWdodCBvZiB0YWJsZSBoZWFkIGVsZW1lbnQgaWUuIGZpcnN0IHJvdyBjb250YWluaW5nIHRhYmxlIGhlYWRlcnMuXG5cdCAqIEByZXR1cm5zIG9mZnNldCBoZWlnaHQgZm9yIHRhYmxlIGhlYWRlciBpbiBweC5cblx0ICovXG5cdHByaXZhdGUgX2dldENvbHVtblNldHRpbmdzSGVhZGVySGVpZ2h0KCk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiB0aGlzLmd0Q29sdW1uU2V0dGluZ3NIZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZXR1cm4gJzBweCc7XG5cdFx0fVxuXHR9XG5cblx0LyoqIGdlbmVyYXRlIGEgdW5pcXVlIGlkIGZvciBkcmFndWxhIGluc3RhbmNlIGkuZS4gYSB1bmlxdWUgYmFnIG5hbWUqL1xuXHQvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuXHRwcml2YXRlIGdlbmVyYXRlSWQoKSB7XG5cdFx0bGV0IGQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblx0XHRyZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XG5cdFx0XHRjb25zdCByID0gKChkICsgTWF0aC5yYW5kb20oKSAqIDE2KSAlIDE2KSB8IDA7XG5cdFx0XHRkID0gTWF0aC5mbG9vcihkIC8gMTYpO1xuXHRcdFx0cmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XG5cdFx0fSk7XG5cdH1cblx0LyogdHNsaW50OmVuYWJsZSAqL1xufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRHdENvbHVtblBpcGUsXG5cdEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL2d0LWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VuZXJpY1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcbmltcG9ydCB7IERyYWd1bGFNb2R1bGUgfSBmcm9tICduZzItZHJhZ3VsYSc7XG5cbkBOZ01vZHVsZSh7XG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEdlbmVyaWNUYWJsZU1vZHVsZSwgRHJhZ3VsYU1vZHVsZV0sXG5cdGRlY2xhcmF0aW9uczogW0d0Q29sdW1uU2V0dGluZ3NDb21wb25lbnQsIEd0Q29sdW1uUGlwZV0sXG5cdGV4cG9ydHM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmdzTW9kdWxlIHt9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTRCUyxxQ0FBYzs7Ozs7O2NBQUMsQ0FBTSxFQUFFLENBQU07UUFDcEMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUMxRSxPQUFPLENBQUMsQ0FBQztTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUM7Ozs7Ozs7SUFJRixpQ0FBVTs7Ozs7Y0FBQyxNQUF1QjtRQUN6QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSTtjQUM1RCxNQUFNO2NBQ04sSUFBSSxDQUFDOzs7Ozs7SUFHVCxnQ0FBUzs7OztJQUFULFVBQVUsUUFBZ0M7UUFDekMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ2xFOztnQkF6QkQs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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1nZW5lcmljLXRhYmxlLWNvbHVtbi1zZXR0aW5ncy5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb2x1bW4tc2V0dGluZ3MvY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvbHVtbi1zZXR0aW5ncy9jb2x1bW4tc2V0dGluZ3MubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdElucHV0LFxyXG5cdFZpZXdDaGlsZCxcclxuXHRUZW1wbGF0ZVJlZixcclxuXHRFbGVtZW50UmVmLFxyXG5cdFBpcGUsXHJcblx0UGlwZVRyYW5zZm9ybSxcclxuXHRPbkluaXQsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0SG9zdExpc3RlbmVyLFxyXG5cdE91dHB1dCxcclxuXHRFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRHZW5lcmljVGFibGVDb21wb25lbnQsXHJcblx0R3RSb3csXHJcblx0R3RDb25maWdTZXR0aW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ3VsYVNlcnZpY2UgfSBmcm9tICduZzItZHJhZ3VsYSc7XHJcbmltcG9ydCB7IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtY29sdW1uLXNldHRpbmdzLXRleHRzJztcclxuXHJcbkBQaXBlKHtcclxuXHRuYW1lOiAnZ3RDb2x1bW4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHdENvbHVtblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHQvLyBUT0RPOiBtb3ZlIHRvIGhlbHBlciBmdW5jdGlvbnNcclxuXHQvKiogU29ydCBieSBjb2x1bW4gb3JkZXIgKi9cclxuXHRwcml2YXRlIGdldENvbHVtbk9yZGVyKGE6IGFueSwgYjogYW55KSB7XHJcblx0XHRpZiAoYS5jb2x1bW5PcmRlciA8IGIuY29sdW1uT3JkZXIpIHtcclxuXHRcdFx0cmV0dXJuIC0xO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGEuY29sdW1uT3JkZXIgPiBiLmNvbHVtbk9yZGVyIHx8IHR5cGVvZiBhLmNvbHVtbk9yZGVyID09PSAndW5kZWZpbmVkJykge1xyXG5cdFx0XHRyZXR1cm4gMTtcclxuXHRcdH1cclxuXHRcdHJldHVybiAwO1xyXG5cdH1cclxuXHJcblx0LyoqIHJldHVybiBlbmFibGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxvY2tlZCBmb3IgZWRpdGluZyAqL1xyXG5cdHByaXZhdGUgZ2V0RW5hYmxlZChjb2x1bW46IEd0Q29uZmlnU2V0dGluZykge1xyXG5cdFx0cmV0dXJuIGNvbHVtbi5lbmFibGVkICE9PSBmYWxzZSAmJiBjb2x1bW4ubG9ja1NldHRpbmdzICE9PSB0cnVlXHJcblx0XHRcdD8gY29sdW1uXHJcblx0XHRcdDogbnVsbDtcclxuXHR9XHJcblxyXG5cdHRyYW5zZm9ybShzZXR0aW5nczogQXJyYXk8R3RDb25maWdTZXR0aW5nPik6IEFycmF5PEd0Q29uZmlnU2V0dGluZz4ge1xyXG5cdFx0cmV0dXJuIHNldHRpbmdzLmZpbHRlcih0aGlzLmdldEVuYWJsZWQpLnNvcnQodGhpcy5nZXRDb2x1bW5PcmRlcik7XHJcblx0fVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2d0LWNvbHVtbi1zZXR0aW5ncycsXHJcblx0dGVtcGxhdGU6IGBcclxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkl0ZW0gbGV0LWNvbHVtbiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXNlY29uZGFyeVwiPnt7aW5kZXh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKGRibGNsaWNrKT1cInRvZ2dsZUNvbHVtblZpc2liaWxpdHkoY29sdW1uKVwiIGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJ7J2JhZGdlLXN1Y2Nlc3MnOmNvbHVtbi52aXNpYmxlICE9PSBmYWxzZSwgJ2JhZGdlLWRhbmdlcic6Y29sdW1uLnZpc2libGUgPT09IGZhbHNlfVwiPnt7Z2VuZXJpY1RhYmxlLmd0RmllbGRzIHwgZ3RQcm9wZXJ0eTpjb2x1bW4ub2JqZWN0S2V5OiduYW1lJ319PC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5nc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLXBhbmVsXCIgICpuZ0lmPVwiYWN0aXZlXCIgW3N0eWxlLnBhZGRpbmctdG9wXT1cIm9mZnNldFwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtICcrb2Zmc2V0KycpJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAjZ3RDb2x1bW5TZXR0aW5nc0hlYWRlciBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWFkZXIgYm9yZGVyLWJvdHRvbS0wXCIgW25nQ2xhc3NdPVwiZ3RIZWFkZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJ0b2dnbGVDb2x1bW5TZXR0aW5ncygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiZ3QtY29sdW1uLXNldHRpbmdzLXRpdGxlXCIgKm5nSWY9XCJndFRleHRzLnRpdGxlXCI+e3tndFRleHRzLnRpdGxlfX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1oZWxwIGZvcm0tdGV4dCB0ZXh0LW11dGVkXCIgKm5nSWY9XCJndFRleHRzLmhlbHBcIj57e2d0VGV4dHMuaGVscH19PC9zbWFsbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1pdGVtLXdyYXBwZXJcIiBbbmdDbGFzc109XCJndFdyYXBwZXJDbGFzc2VzXCIgW2RyYWd1bGFdPSdiYWdJZCcgIGRhdGEtdmlzaWJsZT1cInRydWVcIiBbc3R5bGUubWF4LWhlaWdodF09XCInY2FsYygxMDAlIC0gJytoZWlnaHRBZGp1c3QrJyknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImd0LWNvbHVtbi1zZXR0aW5ncy1pdGVtIHByLTAgcHItc20tNFwiICpuZ0Zvcj1cImxldCBpID0gaW5kZXg7bGV0IGNvbHVtbiBvZiBnZW5lcmljVGFibGUuZ3RTZXR0aW5ncyB8IGd0Q29sdW1uXCIgW2F0dHIuZGF0YS1vYmplY3Qta2V5XT1cImNvbHVtbi5vYmplY3RLZXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImd0Q29sdW1uSXRlbSA/IGd0Q29sdW1uSXRlbTpjb2x1bW5JdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNvbHVtbixpbmRleDogdGhpcy5yZW9yZGVyZWQgPyBjb2x1bW4uY29sdW1uT3JkZXIrMTppKzEsIG5hbWU6IChnZW5lcmljVGFibGUuZ3RGaWVsZHMgfCBndFByb3BlcnR5OmNvbHVtbi5vYmplY3RLZXk6J25hbWUnKX1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Qtb3ZlcmxheVwiICpuZ0lmPVwiYWN0aXZlICYmIG92ZXJsYXlcIiAoY2xpY2spPVwidG9nZ2xlQ29sdW1uU2V0dGluZ3MoKVwiIFtzdHlsZS5oZWlnaHRdPVwiJ2NhbGMoMTAwJSAtIC0nK29mZnNldCsnKSdcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJpY1RhYmxlRWxlbWVudCBbbmdJZl09XCJnZW5lcmljVGFibGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIEd0Q29sdW1uU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdGdldCBnZW5lcmljVGFibGUoKTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PGFueSwgYW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZ2VuZXJpY1RhYmxlO1xyXG5cdH1cclxuXHJcblx0QElucHV0KClcclxuXHRzZXQgZ2VuZXJpY1RhYmxlKHZhbHVlOiBHZW5lcmljVGFibGVDb21wb25lbnQ8YW55LCBhbnk+KSB7XHJcblx0XHR0aGlzLl9nZW5lcmljVGFibGUgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZUVsZW1lbnQnKSBlbGVtZW50VmlldzogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblx0QFZpZXdDaGlsZCgnZ3RDb2x1bW5TZXR0aW5nc0hlYWRlcicpIGd0Q29sdW1uU2V0dGluZ3NIZWFkZXI6IEVsZW1lbnRSZWY7XHJcblxyXG5cdHByaXZhdGUgX2dlbmVyaWNUYWJsZTogR2VuZXJpY1RhYmxlQ29tcG9uZW50PEd0Um93LCBhbnk+O1xyXG5cdEBJbnB1dCgpXHJcblx0Z3RIZWFkZXJDbGFzc2VzID0gJ3B4LTMgcHQtMyBwYi0yIHRhYmxlLWJvcmRlcmVkIGJvcmRlci1sZWZ0LTAgYm9yZGVyLXJpZ2h0LTAgYm9yZGVyLWJvdHRvbS0wIGFsZXJ0LWluZm8nO1xyXG5cdEBJbnB1dCgpXHJcblx0Z3RXcmFwcGVyQ2xhc3NlcyA9ICdweC0zIHBiLTMgdGFibGUtYm9yZGVyZWQgYm9yZGVyLWxlZnQtMCBib3JkZXItcmlnaHQtMCBib3JkZXItdG9wLTAgYWxlcnQtaW5mbyc7XHJcblx0QElucHV0KCkgb3ZlcmxheSA9IHRydWU7XHJcblx0QElucHV0KCkgZ3RDb2x1bW5JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcclxuXHRwdWJsaWMgZ3REZWZhdWx0VGV4dHM6IEd0Q29sdW1uU2V0dGluZ3NUZXh0cyA9IHtcclxuXHRcdHRpdGxlOiAnQ29sdW1ucycsXHJcblx0XHRoZWxwOiAnRG91YmxlIGNsaWNrIHRvIHRvZ2dsZSB2aXNpYmlsaXR5LCBkcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIuJ1xyXG5cdH07XHJcblx0QElucHV0KCkgZ3RUZXh0czogR3RDb2x1bW5TZXR0aW5nc1RleHRzID0gdGhpcy5ndERlZmF1bHRUZXh0cztcclxuXHJcblx0QE91dHB1dCgpIHB1YmxpYyBndEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHRwdWJsaWMgYWN0aXZlID0gZmFsc2U7XHJcblx0cHVibGljIG9mZnNldDogc3RyaW5nO1xyXG5cdHB1YmxpYyBoZWlnaHRBZGp1c3Q6IHN0cmluZztcclxuXHRwdWJsaWMgcmVvcmRlcmVkID0gZmFsc2U7XHJcblx0cHVibGljIGJhZ0lkOiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrIG9mZnNldCBoZWlnaHQgb24gd2luZG93IHJlc2l6ZS5cclxuXHQgKi9cclxuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXHJcblx0cHVibGljIG9uUmVzaXplKCkge1xyXG5cdFx0dGhpcy5vZmZzZXQgPSB0aGlzLl9nZXRUYWJsZUhlYWRIZWlnaHQoKTtcclxuXHRcdHRoaXMuaGVpZ2h0QWRqdXN0ID0gdGhpcy5fZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge1xyXG5cdFx0ZHJhZ3VsYVNlcnZpY2UuZHJvcC5zdWJzY3JpYmUoKHZhbHVlOiBBcnJheTxhbnk+KSA9PiB7XHJcblx0XHRcdGlmICh2YWx1ZVswXSA9PT0gdGhpcy5iYWdJZCkge1xyXG5cdFx0XHRcdHRoaXMuX29uRHJvcCh2YWx1ZS5zbGljZSgxKSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmJhZ0lkID0gdGhpcy5nZW5lcmF0ZUlkKCk7XHJcblx0XHQvLyBzZXR1cCB0ZXh0c1xyXG5cdFx0dGhpcy5ndFRleHRzID0gPEd0Q29sdW1uU2V0dGluZ3NUZXh0cz50aGlzLmV4dGVuZChcclxuXHRcdFx0dGhpcy5ndERlZmF1bHRUZXh0cyxcclxuXHRcdFx0dGhpcy5ndFRleHRzXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogIEV4dGVuZCBvYmplY3QgZnVuY3Rpb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBleHRlbmQgPSBmdW5jdGlvbihhOiBPYmplY3QsIGI6IE9iamVjdCkge1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gYikge1xyXG5cdFx0XHRpZiAoYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcblx0XHRcdFx0YVtrZXldID0gYltrZXldO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBUb2dnbGUgY29sdW1uIHNldHRpbmdzIHZpc2liaWxpdHkuXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZUNvbHVtblNldHRpbmdzKCkge1xyXG5cdFx0dGhpcy5hY3RpdmUgPSAhdGhpcy5hY3RpdmU7XHJcblxyXG5cdFx0aWYgKHRoaXMuYWN0aXZlKSB7XHJcblx0XHRcdHRoaXMub2Zmc2V0ID0gdGhpcy5fZ2V0VGFibGVIZWFkSGVpZ2h0KCk7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBhbmQgYWRqdXN0IGhlaWdodCBvZmZzZXRcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5oZWlnaHRBZGp1c3QgPSB0aGlzLl9nZXRDb2x1bW5TZXR0aW5nc0hlYWRlckhlaWdodCgpO1xyXG5cdFx0XHR9LCAwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRvZ2dsZSBjb2x1bW4gdmlzaWJpbGl0eS5cclxuXHQgKiBAcGFyYW0gY29sdW1uIC0gY29sdW1uIG9iamVjdC5cclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW46IGFueSkge1xyXG5cdFx0Ly8gdG9nZ2xlIGNvbHVtbiB2aXNpYmlsaXR5XHJcblx0XHRjb2x1bW4udmlzaWJsZSA9XHJcblx0XHRcdHR5cGVvZiBjb2x1bW4udmlzaWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyBmYWxzZSA6ICFjb2x1bW4udmlzaWJsZTtcclxuXHJcblx0XHQvLyByZWRyYXcgdGFibGVcclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5yZWRyYXcoKTtcclxuXHJcblx0XHQvLyBlbWl0IGV2ZW50XHJcblx0XHR0aGlzLmd0RXZlbnQuZW1pdCh7XHJcblx0XHRcdG5hbWU6ICdndC1jb2x1bW4tdmlzaWJpbGl0eS1jaGFuZ2UnLFxyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdGNvbHVtbjogeyAuLi5jb2x1bW4gfSxcclxuXHRcdFx0XHRzZXR0aW5nczogWy4uLnRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzXVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyBjaGVjayBhbmQgcmVzZXQgb2Zmc2V0XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5vZmZzZXQgPSB0aGlzLl9nZXRUYWJsZUhlYWRIZWlnaHQoKTtcclxuXHRcdH0sIDApO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogT3JkZXIgdGFibGUgYnkgb2JqZWN0IGtleS5cclxuXHQgKiBAcGFyYW0gYXJncyAtIG5hbWUgb2Yga2V5IHRvIHNvcnQgb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfb25Ecm9wKGFyZ3M6IEFycmF5PGFueT4pIHtcclxuXHRcdHRoaXMucmVvcmRlcmVkID0gdHJ1ZTtcclxuXHRcdGNvbnN0IFtlLCB0YXJnZXRdID0gYXJncztcclxuXHRcdGNvbnN0IG9yZGVyID0ge307XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRvcmRlclt0YXJnZXQuY2hpbGRyZW5baV0uZ2V0QXR0cmlidXRlKCdkYXRhLW9iamVjdC1rZXknKV0gPSBpO1xyXG5cdFx0fVxyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5ncy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHR0aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc1tpXS5jb2x1bW5PcmRlciA9XHJcblx0XHRcdFx0b3JkZXJbdGhpcy5fZ2VuZXJpY1RhYmxlLmd0U2V0dGluZ3NbaV0ub2JqZWN0S2V5XTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyByZXNldCBhcnJheSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cclxuXHRcdHRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzID0gWy4uLnRoaXMuX2dlbmVyaWNUYWJsZS5ndFNldHRpbmdzXTtcclxuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcblxyXG5cdFx0dGhpcy5fZ2VuZXJpY1RhYmxlLnJlZHJhdygpO1xyXG5cdFx0dGhpcy5ndEV2ZW50LmVtaXQoe1xyXG5cdFx0XHRuYW1lOiAnZ3QtY29sdW1uLW9yZGVyLWNoYW5nZScsXHJcblx0XHRcdHZhbHVlOiB7XHJcblx0XHRcdFx0c2V0dGluZ3M6IFsuLi50aGlzLl9nZW5lcmljVGFibGUuZ3RTZXR0aW5nc11cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cclxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfZ2V0VGFibGVIZWFkSGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT0gJ1RIRUFEJ1xyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHRcdC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRIZWlnaHQgKyAncHgnXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0dGhpcy5lbGVtZW50Vmlldy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nXHJcblx0XHRcdFx0XHQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSA9PT1cclxuXHRcdFx0XHQnVEhFQUQnXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0XHR0aGlzLmVsZW1lbnRWaWV3LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcclxuXHRcdFx0XHRcdFx0LmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkXHJcblx0XHRcdFx0XHRcdC5vZmZzZXRIZWlnaHQgKyAncHgnXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gJzBweCc7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRyZXR1cm4gJzBweCc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgaGVpZ2h0IG9mIHRhYmxlIGhlYWQgZWxlbWVudCBpZS4gZmlyc3Qgcm93IGNvbnRhaW5pbmcgdGFibGUgaGVhZGVycy5cclxuXHQgKiBAcmV0dXJucyBvZmZzZXQgaGVpZ2h0IGZvciB0YWJsZSBoZWFkZXIgaW4gcHguXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfZ2V0Q29sdW1uU2V0dGluZ3NIZWFkZXJIZWlnaHQoKTogc3RyaW5nIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmd0Q29sdW1uU2V0dGluZ3NIZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuICcwcHgnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGdlbmVyYXRlIGEgdW5pcXVlIGlkIGZvciBkcmFndWxhIGluc3RhbmNlIGkuZS4gYSB1bmlxdWUgYmFnIG5hbWUqL1xyXG5cdC8qIHRzbGludDpkaXNhYmxlICovXHJcblx0cHJpdmF0ZSBnZW5lcmF0ZUlkKCkge1xyXG5cdFx0bGV0IGQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHRcdHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcclxuXHRcdFx0Y29uc3QgciA9ICgoZCArIE1hdGgucmFuZG9tKCkgKiAxNikgJSAxNikgfCAwO1xyXG5cdFx0XHRkID0gTWF0aC5mbG9vcihkIC8gMTYpO1xyXG5cdFx0XHRyZXR1cm4gKGMgPT09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDgpLnRvU3RyaW5nKDE2KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKiB0c2xpbnQ6ZW5hYmxlICovXHJcbn1cclxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuXHRHdENvbHVtblBpcGUsXHJcblx0R3RDb2x1bW5TZXR0aW5nc0NvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9ndC1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VuZXJpY1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItZ2VuZXJpYy10YWJsZS9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ3VsYU1vZHVsZSB9IGZyb20gJ25nMi1kcmFndWxhJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgR2VuZXJpY1RhYmxlTW9kdWxlLCBEcmFndWxhTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdLFxyXG5cdGV4cG9ydHM6IFtHdENvbHVtblNldHRpbmdzQ29tcG9uZW50LCBHdENvbHVtblBpcGVdXHJcbn0pXHJcbmV4cG9y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 |
export { ColumnSettingsModule } from './column-settings.module'; |
@@ -0,0 +0,0 @@ export interface GtColumnSettingsTexts { |
{ | ||
"name": "@angular-generic-table/column-settings", | ||
"version": "4.17.0", | ||
"version": "4.17.1", | ||
"description": "angular-generic-table extension that makes it easy to toggle column visibility and reoder columns.", | ||
@@ -5,0 +5,0 @@ "main": "bundles/angular-generic-table-column-settings.umd.js", |
@@ -0,0 +0,0 @@ # angular-generic-table |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
328479