@1money/component-ui 0.0.47 → 0.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/Table/core/useTableColumns.d.ts +1 -1
- package/es/components/Table/core/useTableColumns.js +13 -3
- package/es/components/Table/core/useTableExpand.d.ts +3 -1
- package/es/components/Table/core/useTableExpand.js +30 -5
- package/es/components/Table/core/useTableSetup.js +23 -3
- package/es/components/Table/features/ExpandTrigger.js +9 -2
- package/es/components/Table/interface.d.ts +4 -3
- package/es/components/Table/internal/kernel/FixedHolder/index.js +1 -2
- package/es/components/Table/internal/kernel/Table.d.ts +1 -1
- package/es/components/Table/internal/kernel/Table.js +2 -8
- package/es/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -2
- package/es/components/Table/internal/kernel/VirtualTable/index.js +1 -2
- package/es/components/Table/internal/kernel/constant.d.ts +1 -1
- package/es/components/Table/internal/kernel/constant.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useExpand.js +1 -2
- package/es/components/Table/internal/kernel/utils/offsetUtil.js +1 -2
- package/es/components/VirtualList/ScrollBar.js +1 -2
- package/es/index.css +1 -1
- package/lib/components/Table/core/useTableColumns.d.ts +1 -1
- package/lib/components/Table/core/useTableColumns.js +13 -3
- package/lib/components/Table/core/useTableExpand.d.ts +3 -1
- package/lib/components/Table/core/useTableExpand.js +30 -5
- package/lib/components/Table/core/useTableSetup.js +23 -3
- package/lib/components/Table/features/ExpandTrigger.js +9 -2
- package/lib/components/Table/interface.d.ts +4 -3
- package/lib/components/Table/internal/kernel/FixedHolder/index.js +1 -2
- package/lib/components/Table/internal/kernel/Table.d.ts +1 -1
- package/lib/components/Table/internal/kernel/Table.js +2 -8
- package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -2
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +1 -2
- package/lib/components/Table/internal/kernel/constant.d.ts +1 -1
- package/lib/components/Table/internal/kernel/constant.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useExpand.js +1 -2
- package/lib/components/Table/internal/kernel/utils/offsetUtil.js +1 -2
- package/lib/components/VirtualList/ScrollBar.js +1 -2
- package/lib/index.css +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +12 -0
- package/scripts/mcp-server/index.generated.json +8 -0
|
@@ -169,7 +169,6 @@ var FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
169
169
|
style: {
|
|
170
170
|
tableLayout: tableLayout,
|
|
171
171
|
minWidth: '100%',
|
|
172
|
-
// https://github.com/ant-design/ant-design/issues/54894
|
|
173
172
|
width: scrollX
|
|
174
173
|
},
|
|
175
174
|
children: [isColGroupEmpty ? colGroup : (0, _jsxRuntime.jsx)(_ColGroup["default"], {
|
|
@@ -190,4 +189,4 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
190
189
|
/** Return a table in div as fixed element which contains sticky info */
|
|
191
190
|
// export default responseImmutable(FixedHolder);
|
|
192
191
|
var _default = exports["default"] = /*#__PURE__*/React.memo(FixedHolder);
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvc3JjL2NvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfc2VsZWN0b3JDb250ZXh0IiwiX2Nsc3gyIiwiX3JlZiIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiUmVhY3QiLCJfQ29sR3JvdXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RhYmxlQ29udGV4dCIsIl91c2VSZW5kZXJUaW1lcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlQ29sdW1uV2lkdGgiLCJjb2xXaWR0aHMiLCJjb2x1bUNvdW50IiwidXNlTWVtbyIsImNsb25lQ29sdW1ucyIsInZhbCIsInVuZGVmaW5lZCIsImpvaW4iLCJGaXhlZEhvbGRlciIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRldlJlbmRlclRpbWVzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJub0RhdGEiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJjb2xHcm91cCIsInN0aWNreU9mZnNldHMiLCJkaXJlY3Rpb24iLCJmaXhIZWFkZXIiLCJzdGlja3lUb3BPZmZzZXQiLCJzdGlja3lCb3R0b21PZmZzZXQiLCJzdGlja3lDbGFzc05hbWUiLCJzY3JvbGxYIiwiX3Byb3BzJHRhYmxlTGF5b3V0IiwidGFibGVMYXlvdXQiLCJvblNjcm9sbCIsIm1heENvbnRlbnRTY3JvbGwiLCJjaGlsZHJlbiIsInJlc3RQcm9wcyIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIlRhYmxlQ29udGV4dCIsInByZWZpeENscyIsInNjcm9sbGJhclNpemUiLCJpc1N0aWNreSIsImdldENvbXBvbmVudCIsIlRhYmxlQ29tcG9uZW50IiwiY29tYmluYXRpb25TY3JvbGxCYXJTaXplIiwic2Nyb2xsUmVmIiwidXNlUmVmIiwic2V0U2Nyb2xsUmVmIiwidXNlQ2FsbGJhY2siLCJlbGVtZW50IiwiZmlsbFJlZiIsInVzZUVmZmVjdCIsIm9uV2hlZWwiLCJjdXJyZW50VGFyZ2V0IiwiZGVsdGFYIiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJtYXhTY3JvbGxXaWR0aCIsIm5leHRTY3JvbGwiLCJNYXRoIiwibWF4IiwibWluIiwicHJldmVudERlZmF1bHQiLCJzY3JvbGxFbGUiLCJjdXJyZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibGFzdENvbHVtbiIsIlNjcm9sbEJhckNvbHVtbiIsImZpeGVkIiwic2Nyb2xsYmFyIiwib25IZWFkZXJDZWxsIiwiY29uY2F0IiwiY29sdW1uc1dpdGhTY3JvbGxiYXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmxhdHRlbkNvbHVtbnNXaXRoU2Nyb2xsYmFyIiwiaGVhZGVyU3RpY2t5T2Zmc2V0cyIsInN0YXJ0IiwiZW5kIiwiYXNzaWduIiwibWFwIiwid2lkdGgiLCJtZXJnZWRDb2x1bW5XaWR0aCIsImlzQ29sR3JvdXBFbXB0eSIsIm5vV2lkdGgiLCJldmVyeSIsInciLCJfanN4Iiwib3ZlcmZsb3ciLCJ0b3AiLCJib3R0b20iLCJjbHN4IiwiX2RlZmluZVByb3BlcnR5MiIsIl9qc3hzIiwibWluV2lkdGgiLCJDb2xHcm91cCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1ZBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBK0IsSUFBQU0sS0FBQSxHQUFBRixNQUFBO0FBRS9CLElBQUFHLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQVIsT0FBQTtBQUVBLElBQUFVLGVBQUEsR0FBQUYsc0JBQUEsQ0FBQVIsT0FBQTtBQUFxRCxTQUFBVyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FB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LE1BQUE2RSxnQkFBQSxpQkFDdEJsRSxlQUFlLEVBQUcsQ0FBQyxDQUFDQSxlQUFlLENBQ3JDLENBQUM7SUFBQU0sUUFBQSxFQUVGLElBQUE2RCxnQkFBQSxFQUFDcEQsY0FBYyxFQUFBO01BQ2J6QixLQUFLLEVBQUU7UUFDTGEsV0FBVyxFQUFYQSxXQUFXO1FBQ1hpRSxRQUFRLEVBQUUsTUFBTTtRQUNoQjtRQUNBYixLQUFLLEVBQUV0RDtNRHJFTCxDQ3NFSDtNQUFBSyxRQUFBLEVBQUEsQ0FFQW1ELGVBQWUsR0FDZC9ELFFBQVEsR0FFUixJQUFBbUUsZUFBQSxFQUFDUSxvQkFBUSxFQUFBO1FBQ1AvRixTQUFTLEtBQUF3RSxNQUFBLEtBQUFFLG1CQUFBLGFBQU1RLGlCQUFpQixJQUFFeEMsd0JBQXdCLEVBQUM7UUFDM0R6QyxVQUFVLEVBQUVBLFVBQVUsR0FBRyxDQUFDO1FBQzFCaUIsT0FBTyxFQUFFeUQ7TUFBMkIsQ0FBQSxDQUV2QyxFQUNBM0MsUUFBUSxDQUFBakQsTUFBQSxDQUFBZ0csTUFBQSxDQUFBaEcsTUFBQSxDQUFBZ0csTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNKOUMsU0FBUyxDQUFBLEVBQUE7UUFDWlosYUFBYSxFQUFFdUQsbUJBQW1CO1FBQ2xDMUQsT0FBTyxFQUFFdUQsb0JBQW9CO1FBQzdCdEQsY0FBYyxFQUFFd0Q7TUFBMkIsQ0FBQSxDQUFBLENBQzNDO0lBQUEsQ0FBQTtFQUNhLENBQUEsQ0FDYjtBQUVWLENBQUMsQ0FBQztBQUVGLElBQUloRSxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUN6Q04sV0FBVyxDQUFDeUYsV0FBVyxHQUFHLGFBQWE7QUFDekM7QUFFQTtBQUNBO0FBQUEsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLDJCQUNlcEksS0FBSyxDQUFDcUksSUFBSSxDQUFDNUYsV0FBVyxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAnLi4vc2VsZWN0b3ItY29udGV4dCc7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29sR3JvdXAgZnJvbSAnLi4vQ29sR3JvdXAnO1xuaW1wb3J0IFRhYmxlQ29udGV4dCBmcm9tICcuLi9jb250ZXh0L1RhYmxlQ29udGV4dCc7XG5pbXBvcnQgZGV2UmVuZGVyVGltZXMgZnJvbSAnLi4vaG9va3MvdXNlUmVuZGVyVGltZXMnO1xuZnVuY3Rpb24gdXNlQ29sdW1uV2lkdGgoY29sV2lkdGhzLCBjb2x1bUNvdW50KSB7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBjbG9uZUNvbHVtbnMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bUNvdW50OyBpICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGNvbFdpZHRoc1tpXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNsb25lQ29sdW1uc1tpXSA9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9uZUNvbHVtbnM7XG4gICAgfSwgW2NvbFdpZHRocy5qb2luKCdfJyksIGNvbHVtQ291bnRdKTtcbn1cbmNvbnN0IEZpeGVkSG9sZGVyID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGRldlJlbmRlclRpbWVzKHByb3BzKTtcbiAgICB9XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBub0RhdGEsIGNvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBjb2xXaWR0aHMsIGNvbEdyb3VwLCBjb2x1bUNvdW50LCBzdGlja3lPZmZzZXRzLCBkaXJlY3Rpb24sIGZpeEhlYWRlciwgc3RpY2t5VG9wT2Zmc2V0LCBzdGlja3lCb3R0b21PZmZzZXQsIHN0aWNreUNsYXNzTmFtZSwgc2Nyb2xsWCwgdGFibGVMYXlvdXQgPSAnZml4ZWQnLCBvblNjcm9sbCwgbWF4Q29udGVudFNjcm9sbCwgY2hpbGRyZW4gfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwibm9EYXRhXCIsIFwiY29sdW1uc1wiLCBcImZsYXR0ZW5Db2x1bW5zXCIsIFwiY29sV2lkdGhzXCIsIFwiY29sR3JvdXBcIiwgXCJjb2x1bUNvdW50XCIsIFwic3RpY2t5T2Zmc2V0c1wiLCBcImRpcmVjdGlvblwiLCBcImZpeEhlYWRlclwiLCBcInN0aWNreVRvcE9mZnNldFwiLCBcInN0aWNreUJvdHRvbU9mZnNldFwiLCBcInN0aWNreUNsYXNzTmFtZVwiLCBcInNjcm9sbFhcIiwgXCJ0YWJsZUxheW91dFwiLCBcIm9uU2Nyb2xsXCIsIFwibWF4Q29udGVudFNjcm9sbFwiLCBcImNoaWxkcmVuXCJdKTtcbiAgICBjb25zdCB7IHByZWZpeENscywgc2Nyb2xsYmFyU2l6ZSwgaXNTdGlja3ksIGdldENvbXBvbmVudCB9ID0gdXNlQ29udGV4dChUYWJsZUNvbnRleHQsIFtcbiAgICAgICAgJ3ByZWZpeENscycsXG4gICAgICAgICdzY3JvbGxiYXJTaXplJyxcbiAgICAgICAgJ2lzU3RpY2t5JyxcbiAgICAgICAgJ2dldENvbXBvbmVudCcsXG4gICAgXSk7XG4gICAgY29uc3QgVGFibGVDb21wb25lbnQgPSBnZXRDb21wb25lbnQoWydoZWFkZXInLCAndGFibGUnXSwgJ3RhYmxlJyk7XG4gICAgY29uc3QgY29tYmluYXRpb25TY3JvbGxCYXJTaXplID0gaXNTdGlja3kgJiYgIWZpeEhlYWRlciA/IDAgOiBzY3JvbGxiYXJTaXplO1xuICAgIC8vIFBhc3Mgd2hlZWwgdG8gc2Nyb2xsIGV2ZW50XG4gICAgY29uc3Qgc2Nyb2xsUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNldFNjcm9sbFJlZiA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGZpbGxSZWYocmVmLCBlbGVtZW50KTtcbiAgICAgICAgZmlsbFJlZihzY3JvbGxSZWYsIGVsZW1lbnQpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBmdW5jdGlvbiBvbldoZWVsKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFRhcmdldCwgZGVsdGFYIH0gPSBlO1xuICAgICAgICAgICAgaWYgKGRlbHRhWCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSBjdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFNjcm9sbFdpZHRoID0gc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dFNjcm9sbCA9IHNjcm9sbExlZnQgKyBkZWx0YVg7XG4gICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dFNjcm9sbCA9IE1hdGgubWF4KC1tYXhTY3JvbGxXaWR0aCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1pbigwLCBuZXh0U2Nyb2xsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1pbihtYXhTY3JvbGxXaWR0aCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1heCgwLCBuZXh0U2Nyb2xsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25TY3JvbGwoe1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiBuZXh0U2Nyb2xsLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3JvbGxFbGUgPSBzY3JvbGxSZWYuY3VycmVudDtcbiAgICAgICAgc2Nyb2xsRWxlID09PSBudWxsIHx8IHNjcm9sbEVsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Nyb2xsRWxlLmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbEVsZSA9PT0gbnVsbCB8fCBzY3JvbGxFbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbEVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICAvLyBBZGQgc2Nyb2xsYmFyIGNvbHVtblxuICAgIGNvbnN0IGxhc3RDb2x1bW4gPSBmbGF0dGVuQ29sdW1uc1tmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBTY3JvbGxCYXJDb2x1bW4gPSB7XG4gICAgICAgIGZpeGVkOiBsYXN0Q29sdW1uID8gbGFzdENvbHVtbi5maXhlZCA6IG51bGwsXG4gICAgICAgIHNjcm9sbGJhcjogdHJ1ZSxcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoKSA9PiAoe1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWNlbGwtc2Nyb2xsYmFyYCxcbiAgICAgICAgfSksXG4gICAgfTtcbiAgICBjb25zdCBjb2x1bW5zV2l0aFNjcm9sbGJhciA9IHVzZU1lbW8oKCkgPT4gKGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSA/IFsuLi5jb2x1bW5zLCBTY3JvbGxCYXJDb2x1bW5dIDogY29sdW1ucyksIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemUsIGNvbHVtbnNdKTtcbiAgICBjb25zdCBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgPSB1c2VNZW1vKCgpID0+IChjb21iaW5hdGlvblNjcm9sbEJhclNpemUgPyBbLi4uZmxhdHRlbkNvbHVtbnMsIFNjcm9sbEJhckNvbHVtbl0gOiBmbGF0dGVuQ29sdW1ucyksIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemUsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBzdGlja3kgb2Zmc2V0c1xuICAgIGNvbnN0IGhlYWRlclN0aWNreU9mZnNldHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBzdGlja3lPZmZzZXRzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGlja3lPZmZzZXRzKSwgeyBcbiAgICAgICAgICAgIC8vIGxlZnQ6XG4gICAgICAgICAgICAvLyAgIGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyBbLi4ubGVmdC5tYXAod2lkdGggPT4gd2lkdGggKyBjb21iaW5hdGlvblNjcm9sbEJhclNpemUpLCAwXSA6IGxlZnQsXG4gICAgICAgICAgICAvLyByaWdodDpcbiAgICAgICAgICAgIC8vICAgZGlyZWN0aW9uID09PSAncnRsJyA/IHJpZ2h0IDogWy4uLnJpZ2h0Lm1hcCh3aWR0aCA9PiB3aWR0aCArIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSksIDBdLFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LCBlbmQ6IFsuLi5lbmQubWFwKHdpZHRoID0+IHdpZHRoICsgY29tYmluYXRpb25TY3JvbGxCYXJTaXplKSwgMF0sIGlzU3RpY2t5IH0pO1xuICAgIH0sIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemUsIHN0aWNreU9mZnNldHMsIGlzU3RpY2t5XSk7XG4gICAgY29uc3QgbWVyZ2VkQ29sdW1uV2lkdGggPSB1c2VDb2x1bW5XaWR0aChjb2xXaWR0aHMsIGNvbHVtQ291bnQpO1xuICAgIGNvbnN0IGlzQ29sR3JvdXBFbXB0eSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAvLyB1c2Ugb3JpZ2luYWwgQ29sR3JvdXAgaWYgbm8gZGF0YSBvciBubyBjYWxjdWxhdGVkIGNvbHVtbiB3aWR0aCwgb3RoZXJ3aXNlIHVzZSBjYWxjdWxhdGVkIGNvbHVtbiB3aWR0aFxuICAgICAgICAvLyBSZXR1cm4gb3JpZ2luYWwgY29sR3JvdXAgaWYgbm8gZGF0YSwgb3IgbWVyZ2VkQ29sdW1uV2lkdGggaXMgZW1wdHksIG9yIGFsbCB3aWR0aHMgYXJlIGZhbHN5XG4gICAgICAgIGNvbnN0IG5vV2lkdGggPSAhbWVyZ2VkQ29sdW1uV2lkdGggfHwgIW1lcmdlZENvbHVtbldpZHRoLmxlbmd0aCB8fCBtZXJnZWRDb2x1bW5XaWR0aC5ldmVyeSh3ID0+ICF3KTtcbiAgICAgICAgcmV0dXJuIG5vRGF0YSB8fCBub1dpZHRoO1xuICAgIH0sIFtub0RhdGEsIG1lcmdlZENvbHVtbldpZHRoXSk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IG92ZXJmbG93OiAnaGlkZGVuJyB9LCAoaXNTdGlja3kgPyB7IHRvcDogc3RpY2t5VG9wT2Zmc2V0LCBib3R0b206IHN0aWNreUJvdHRvbU9mZnNldCB9IDoge30pKSwgc3R5bGUpLCByZWY6IHNldFNjcm9sbFJlZiwgY2xhc3NOYW1lOiBjbHN4KGNsYXNzTmFtZSwge1xuICAgICAgICAgICAgW3N0aWNreUNsYXNzTmFtZV06ICEhc3RpY2t5Q2xhc3NOYW1lLFxuICAgICAgICB9KSwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCB7IHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgdGFibGVMYXlvdXQsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy81NDg5NFxuICAgICAgICAgICAgICAgIHdpZHRoOiBzY3JvbGxYLFxuICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtpc0NvbEdyb3VwRW1wdHkgPyAoY29sR3JvdXApIDogKF9qc3goQ29sR3JvdXAsIHsgY29sV2lkdGhzOiBbLi4ubWVyZ2VkQ29sdW1uV2lkdGgsIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZV0sIGNvbHVtQ291bnQ6IGNvbHVtQ291bnQgKyAxLCBjb2x1bW5zOiBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgfSkpLCBjaGlsZHJlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3RQcm9wcyksIHsgc3RpY2t5T2Zmc2V0czogaGVhZGVyU3RpY2t5T2Zmc2V0cywgY29sdW1uczogY29sdW1uc1dpdGhTY3JvbGxiYXIsIGZsYXR0ZW5Db2x1bW5zOiBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgfSkpXSB9KSB9KSk7XG59KTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgRml4ZWRIb2xkZXIuZGlzcGxheU5hbWUgPSAnRml4ZWRIb2xkZXInO1xufVxuLyoqIFJldHVybiBhIHRhYmxlIGluIGRpdiBhcyBmaXhlZCBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIHN0aWNreSBpbmZvICovXG4vLyBleHBvcnQgZGVmYXVsdCByZXNwb25zZUltbXV0YWJsZShGaXhlZEhvbGRlcik7XG5leHBvcnQgZGVmYXVsdCBSZWFjdC5tZW1vKEZpeGVkSG9sZGVyKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
192
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvc3JjL2NvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL0ZpeGVkSG9sZGVyL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfc2VsZWN0b3JDb250ZXh0IiwiX2Nsc3gyIiwiX3JlZiIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiUmVhY3QiLCJfQ29sR3JvdXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RhYmxlQ29udGV4dCIsIl91c2VSZW5kZXJUaW1lcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlQ29sdW1uV2lkdGgiLCJjb2xXaWR0aHMiLCJjb2x1bUNvdW50IiwidXNlTWVtbyIsImNsb25lQ29sdW1ucyIsInZhbCIsInVuZGVmaW5lZCIsImpvaW4iLCJGaXhlZEhvbGRlciIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRldlJlbmRlclRpbWVzIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJub0RhdGEiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJjb2xHcm91cCIsInN0aWNreU9mZnNldHMiLCJkaXJlY3Rpb24iLCJmaXhIZWFkZXIiLCJzdGlja3lUb3BPZmZzZXQiLCJzdGlja3lCb3R0b21PZmZzZXQiLCJzdGlja3lDbGFzc05hbWUiLCJzY3JvbGxYIiwiX3Byb3BzJHRhYmxlTGF5b3V0IiwidGFibGVMYXlvdXQiLCJvblNjcm9sbCIsIm1heENvbnRlbnRTY3JvbGwiLCJjaGlsZHJlbiIsInJlc3RQcm9wcyIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIlRhYmxlQ29udGV4dCIsInByZWZpeENscyIsInNjcm9sbGJhclNpemUiLCJpc1N0aWNreSIsImdldENvbXBvbmVudCIsIlRhYmxlQ29tcG9uZW50IiwiY29tYmluYXRpb25TY3JvbGxCYXJTaXplIiwic2Nyb2xsUmVmIiwidXNlUmVmIiwic2V0U2Nyb2xsUmVmIiwidXNlQ2FsbGJhY2siLCJlbGVtZW50IiwiZmlsbFJlZiIsInVzZUVmZmVjdCIsIm9uV2hlZWwiLCJjdXJyZW50VGFyZ2V0IiwiZGVsdGFYIiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJtYXhTY3JvbGxXaWR0aCIsIm5leHRTY3JvbGwiLCJNYXRoIiwibWF4IiwibWluIiwicHJldmVudERlZmF1bHQiLCJzY3JvbGxFbGUiLCJjdXJyZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibGFzdENvbHVtbiIsIlNjcm9sbEJhckNvbHVtbiIsImZpeGVkIiwic2Nyb2xsYmFyIiwib25IZWFkZXJDZWxsIiwiY29uY2F0IiwiY29sdW1uc1dpdGhTY3JvbGxiYXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmxhdHRlbkNvbHVtbnNXaXRoU2Nyb2xsYmFyIiwiaGVhZGVyU3RpY2t5T2Zmc2V0cyIsInN0YXJ0IiwiZW5kIiwiYXNzaWduIiwibWFwIiwid2lkdGgiLCJtZXJnZWRDb2x1bW5XaWR0aCIsImlzQ29sR3JvdXBFbXB0eSIsIm5vV2lkdGgiLCJldmVyeSIsInciLCJfanN4Iiwib3ZlcmZsb3ciLCJ0b3AiLCJib3R0b20iLCJjbHN4IiwiX2RlZmluZVByb3BlcnR5MiIsIl9qc3hzIiwibWluV2lkdGgiLCJDb2xHcm91cCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1ZBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBK0IsSUFBQU0sS0FBQSxHQUFBRixNQUFBO0FBRS9CLElBQUFHLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQVIsT0FBQTtBQUVBLElBQUFVLGVBQUEsR0FBQUYsc0JBQUEsQ0FBQVIsT0FBQTtBQUFxRCxTQUFBVyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FB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LE1BQUE2RSxnQkFBQSxpQkFDdEJsRSxlQUFlLEVBQUcsQ0FBQyxDQUFDQSxlQUFlLENBQ3JDLENBQUM7SUFBQU0sUUFBQSxFQUVGLElBQUE2RCxnQkFBQSxFQUFDcEQsY0FBYyxFQUFBO01BQ2J6QixLQUFLLEVBQUU7UUFDTGEsV0FBVyxFQUFYQSxXQUFXO1FBQ1hpRSxRQUFRLEVBQUUsTUFBTTtRQUNoQmIsS0FBSyxFQUFFdEQ7TURyRUwsQ0NzRUg7TUFBQUssUUFBQSxFQUFBLENBRUFtRCxlQUFlLEdBQ2QvRCxRQUFRLEdBRVIsSUFBQW1FLGVBQUEsRUFBQ1Esb0JBQVEsRUFBQTtRQUNQL0YsU0FBUyxLQUFBd0UsTUFBQSxLQUFBRSxtQkFBQSxhQUFNUSxpQkFBaUIsSUFBRXhDLHdCQUF3QixFQUFDO1FBQzNEekMsVUFBVSxFQUFFQSxVQUFVLEdBQUcsQ0FBQztRQUMxQmlCLE9BQU8sRUFBRXlEO01BQTJCLENBQUEsQ0FFdkMsRUFDQTNDLFFBQVEsQ0FBQWpELE1BQUEsQ0FBQWdHLE1BQUEsQ0FBQWhHLE1BQUEsQ0FBQWdHLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDSjlDLFNBQVMsQ0FBQSxFQUFBO1FBQ1paLGFBQWEsRUFBRXVELG1CQUFtQjtRQUNsQzFELE9BQU8sRUFBRXVELG9CQUFvQjtRQUM3QnRELGNBQWMsRUFBRXdEO01BQTJCLENBQUEsQ0FBQSxDQUMzQztJQUFBLENBQUE7RUFDYSxDQUFBLENBQ2I7QUFFVixDQUFDLENBQUM7QUFFRixJQUFJaEUsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7RUFDekNOLFdBQVcsQ0FBQ3lGLFdBQVcsR0FBRyxhQUFhO0FBQ3pDO0FBRUE7QUFDQTtBQUFBLElBQUFDLFFBQUEsR0FBQUMsT0FBQSwyQkFDZXBJLEtBQUssQ0FBQ3FJLElBQUksQ0FBQzVGLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC9GaXhlZEhvbGRlci9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJy4uL3NlbGVjdG9yLWNvbnRleHQnO1xuaW1wb3J0IHsgY2xzeCB9IGZyb20gJ2Nsc3gnO1xuaW1wb3J0IHsgZmlsbFJlZiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL3JlZic7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4uL0NvbEdyb3VwJztcbmltcG9ydCBUYWJsZUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IGRldlJlbmRlclRpbWVzIGZyb20gJy4uL2hvb2tzL3VzZVJlbmRlclRpbWVzJztcbmZ1bmN0aW9uIHVzZUNvbHVtbldpZHRoKGNvbFdpZHRocywgY29sdW1Db3VudCkge1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xvbmVDb2x1bW5zID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1Db3VudDsgaSArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBjb2xXaWR0aHNbaV07XG4gICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjbG9uZUNvbHVtbnNbaV0gPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xvbmVDb2x1bW5zO1xuICAgIH0sIFtjb2xXaWR0aHMuam9pbignXycpLCBjb2x1bUNvdW50XSk7XG59XG5jb25zdCBGaXhlZEhvbGRlciA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBkZXZSZW5kZXJUaW1lcyhwcm9wcyk7XG4gICAgfVxuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBzdHlsZSwgbm9EYXRhLCBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucywgY29sV2lkdGhzLCBjb2xHcm91cCwgY29sdW1Db3VudCwgc3RpY2t5T2Zmc2V0cywgZGlyZWN0aW9uLCBmaXhIZWFkZXIsIHN0aWNreVRvcE9mZnNldCwgc3RpY2t5Qm90dG9tT2Zmc2V0LCBzdGlja3lDbGFzc05hbWUsIHNjcm9sbFgsIHRhYmxlTGF5b3V0ID0gJ2ZpeGVkJywgb25TY3JvbGwsIG1heENvbnRlbnRTY3JvbGwsIGNoaWxkcmVuIH0gPSBwcm9wcywgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcIm5vRGF0YVwiLCBcImNvbHVtbnNcIiwgXCJmbGF0dGVuQ29sdW1uc1wiLCBcImNvbFdpZHRoc1wiLCBcImNvbEdyb3VwXCIsIFwiY29sdW1Db3VudFwiLCBcInN0aWNreU9mZnNldHNcIiwgXCJkaXJlY3Rpb25cIiwgXCJmaXhIZWFkZXJcIiwgXCJzdGlja3lUb3BPZmZzZXRcIiwgXCJzdGlja3lCb3R0b21PZmZzZXRcIiwgXCJzdGlja3lDbGFzc05hbWVcIiwgXCJzY3JvbGxYXCIsIFwidGFibGVMYXlvdXRcIiwgXCJvblNjcm9sbFwiLCBcIm1heENvbnRlbnRTY3JvbGxcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIHNjcm9sbGJhclNpemUsIGlzU3RpY2t5LCBnZXRDb21wb25lbnQgfSA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0LCBbXG4gICAgICAgICdwcmVmaXhDbHMnLFxuICAgICAgICAnc2Nyb2xsYmFyU2l6ZScsXG4gICAgICAgICdpc1N0aWNreScsXG4gICAgICAgICdnZXRDb21wb25lbnQnLFxuICAgIF0pO1xuICAgIGNvbnN0IFRhYmxlQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnaGVhZGVyJywgJ3RhYmxlJ10sICd0YWJsZScpO1xuICAgIGNvbnN0IGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSA9IGlzU3RpY2t5ICYmICFmaXhIZWFkZXIgPyAwIDogc2Nyb2xsYmFyU2l6ZTtcbiAgICAvLyBQYXNzIHdoZWVsIHRvIHNjcm9sbCBldmVudFxuICAgIGNvbnN0IHNjcm9sbFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZXRTY3JvbGxSZWYgPSBSZWFjdC51c2VDYWxsYmFjaygoZWxlbWVudCkgPT4ge1xuICAgICAgICBmaWxsUmVmKHJlZiwgZWxlbWVudCk7XG4gICAgICAgIGZpbGxSZWYoc2Nyb2xsUmVmLCBlbGVtZW50KTtcbiAgICB9LCBbXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZnVuY3Rpb24gb25XaGVlbChlKSB7XG4gICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIGRlbHRhWCB9ID0gZTtcbiAgICAgICAgICAgIGlmIChkZWx0YVgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbExlZnQsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhTY3JvbGxXaWR0aCA9IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgbGV0IG5leHRTY3JvbGwgPSBzY3JvbGxMZWZ0ICsgZGVsdGFYO1xuICAgICAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGwgPSBNYXRoLm1heCgtbWF4U2Nyb2xsV2lkdGgsIG5leHRTY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsID0gTWF0aC5taW4oMCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsID0gTWF0aC5taW4obWF4U2Nyb2xsV2lkdGgsIG5leHRTY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsID0gTWF0aC5tYXgoMCwgbmV4dFNjcm9sbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsKHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogbmV4dFNjcm9sbCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2Nyb2xsRWxlID0gc2Nyb2xsUmVmLmN1cnJlbnQ7XG4gICAgICAgIHNjcm9sbEVsZSA9PT0gbnVsbCB8fCBzY3JvbGxFbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbEVsZS5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzY3JvbGxFbGUgPT09IG51bGwgfHwgc2Nyb2xsRWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY3JvbGxFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBvbldoZWVsKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgLy8gQWRkIHNjcm9sbGJhciBjb2x1bW5cbiAgICBjb25zdCBsYXN0Q29sdW1uID0gZmxhdHRlbkNvbHVtbnNbZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgU2Nyb2xsQmFyQ29sdW1uID0ge1xuICAgICAgICBmaXhlZDogbGFzdENvbHVtbiA/IGxhc3RDb2x1bW4uZml4ZWQgOiBudWxsLFxuICAgICAgICBzY3JvbGxiYXI6IHRydWUsXG4gICAgICAgIG9uSGVhZGVyQ2VsbDogKCkgPT4gKHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1jZWxsLXNjcm9sbGJhcmAsXG4gICAgICAgIH0pLFxuICAgIH07XG4gICAgY29uc3QgY29sdW1uc1dpdGhTY3JvbGxiYXIgPSB1c2VNZW1vKCgpID0+IChjb21iaW5hdGlvblNjcm9sbEJhclNpemUgPyBbLi4uY29sdW1ucywgU2Nyb2xsQmFyQ29sdW1uXSA6IGNvbHVtbnMpLCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBjb2x1bW5zXSk7XG4gICAgY29uc3QgZmxhdHRlbkNvbHVtbnNXaXRoU2Nyb2xsYmFyID0gdXNlTWVtbygoKSA9PiAoY29tYmluYXRpb25TY3JvbGxCYXJTaXplID8gWy4uLmZsYXR0ZW5Db2x1bW5zLCBTY3JvbGxCYXJDb2x1bW5dIDogZmxhdHRlbkNvbHVtbnMpLCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBmbGF0dGVuQ29sdW1uc10pO1xuICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RpY2t5IG9mZnNldHNcbiAgICBjb25zdCBoZWFkZXJTdGlja3lPZmZzZXRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gc3RpY2t5T2Zmc2V0cztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3RpY2t5T2Zmc2V0cyksIHsgXG4gICAgICAgICAgICAvLyBsZWZ0OlxuICAgICAgICAgICAgLy8gICBkaXJlY3Rpb24gPT09ICdydGwnID8gWy4uLmxlZnQubWFwKHdpZHRoID0+IHdpZHRoICsgY29tYmluYXRpb25TY3JvbGxCYXJTaXplKSwgMF0gOiBsZWZ0LFxuICAgICAgICAgICAgLy8gcmlnaHQ6XG4gICAgICAgICAgICAvLyAgIGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyByaWdodCA6IFsuLi5yaWdodC5tYXAod2lkdGggPT4gd2lkdGggKyBjb21iaW5hdGlvblNjcm9sbEJhclNpemUpLCAwXSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCwgZW5kOiBbLi4uZW5kLm1hcCh3aWR0aCA9PiB3aWR0aCArIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSksIDBdLCBpc1N0aWNreSB9KTtcbiAgICB9LCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBzdGlja3lPZmZzZXRzLCBpc1N0aWNreV0pO1xuICAgIGNvbnN0IG1lcmdlZENvbHVtbldpZHRoID0gdXNlQ29sdW1uV2lkdGgoY29sV2lkdGhzLCBjb2x1bUNvdW50KTtcbiAgICBjb25zdCBpc0NvbEdyb3VwRW1wdHkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgLy8gdXNlIG9yaWdpbmFsIENvbEdyb3VwIGlmIG5vIGRhdGEgb3Igbm8gY2FsY3VsYXRlZCBjb2x1bW4gd2lkdGgsIG90aGVyd2lzZSB1c2UgY2FsY3VsYXRlZCBjb2x1bW4gd2lkdGhcbiAgICAgICAgLy8gUmV0dXJuIG9yaWdpbmFsIGNvbEdyb3VwIGlmIG5vIGRhdGEsIG9yIG1lcmdlZENvbHVtbldpZHRoIGlzIGVtcHR5LCBvciBhbGwgd2lkdGhzIGFyZSBmYWxzeVxuICAgICAgICBjb25zdCBub1dpZHRoID0gIW1lcmdlZENvbHVtbldpZHRoIHx8ICFtZXJnZWRDb2x1bW5XaWR0aC5sZW5ndGggfHwgbWVyZ2VkQ29sdW1uV2lkdGguZXZlcnkodyA9PiAhdyk7XG4gICAgICAgIHJldHVybiBub0RhdGEgfHwgbm9XaWR0aDtcbiAgICB9LCBbbm9EYXRhLCBtZXJnZWRDb2x1bW5XaWR0aF0pO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyBvdmVyZmxvdzogJ2hpZGRlbicgfSwgKGlzU3RpY2t5ID8geyB0b3A6IHN0aWNreVRvcE9mZnNldCwgYm90dG9tOiBzdGlja3lCb3R0b21PZmZzZXQgfSA6IHt9KSksIHN0eWxlKSwgcmVmOiBzZXRTY3JvbGxSZWYsIGNsYXNzTmFtZTogY2xzeChjbGFzc05hbWUsIHtcbiAgICAgICAgICAgIFtzdGlja3lDbGFzc05hbWVdOiAhIXN0aWNreUNsYXNzTmFtZSxcbiAgICAgICAgfSksIGNoaWxkcmVuOiBfanN4cyhUYWJsZUNvbXBvbmVudCwgeyBzdHlsZToge1xuICAgICAgICAgICAgICAgIHRhYmxlTGF5b3V0LFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHNjcm9sbFgsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogW2lzQ29sR3JvdXBFbXB0eSA/IChjb2xHcm91cCkgOiAoX2pzeChDb2xHcm91cCwgeyBjb2xXaWR0aHM6IFsuLi5tZXJnZWRDb2x1bW5XaWR0aCwgY29tYmluYXRpb25TY3JvbGxCYXJTaXplXSwgY29sdW1Db3VudDogY29sdW1Db3VudCArIDEsIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zV2l0aFNjcm9sbGJhciB9KSksIGNoaWxkcmVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdFByb3BzKSwgeyBzdGlja3lPZmZzZXRzOiBoZWFkZXJTdGlja3lPZmZzZXRzLCBjb2x1bW5zOiBjb2x1bW5zV2l0aFNjcm9sbGJhciwgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zV2l0aFNjcm9sbGJhciB9KSldIH0pIH0pKTtcbn0pO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBGaXhlZEhvbGRlci5kaXNwbGF5TmFtZSA9ICdGaXhlZEhvbGRlcic7XG59XG4vKiogUmV0dXJuIGEgdGFibGUgaW4gZGl2IGFzIGZpeGVkIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgc3RpY2t5IGluZm8gKi9cbi8vIGV4cG9ydCBkZWZhdWx0IHJlc3BvbnNlSW1tdXRhYmxlKEZpeGVkSG9sZGVyKTtcbmV4cG9ydCBkZWZhdWx0IFJlYWN0Lm1lbW8oRml4ZWRIb2xkZXIpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -30,7 +30,7 @@ import { FooterComponents } from './Footer';
|
|
|
30
30
|
import type { ColumnsType, ColumnType, DefaultRecordType, Direction, ExpandableConfig, GetComponentProps, GetRowKey, LegacyExpandableProps, PanelRender, Reference, RowClassName, TableComponents, TableLayout, TableSticky } from './interface';
|
|
31
31
|
import Column from './sugar/Column';
|
|
32
32
|
import ColumnGroup from './sugar/ColumnGroup';
|
|
33
|
-
export declare const DEFAULT_PREFIX = "
|
|
33
|
+
export declare const DEFAULT_PREFIX = "om-table";
|
|
34
34
|
export type SemanticName = 'section' | 'title' | 'footer' | 'content';
|
|
35
35
|
export type ComponentsSemantic = 'wrapper' | 'cell' | 'row';
|
|
36
36
|
export interface TableProps<RecordType = DefaultRecordType> extends Omit<LegacyExpandableProps<RecordType>, 'showExpandColumn'> {
|
|
@@ -41,7 +41,7 @@ var _reactUtil = require("../../../ResizeObserver/utils/reactUtil");
|
|
|
41
41
|
var _isEqual = _interopRequireDefault(require("./selector-context/isEqual"));
|
|
42
42
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
43
43
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
44
|
-
var DEFAULT_PREFIX = exports.DEFAULT_PREFIX = '
|
|
44
|
+
var DEFAULT_PREFIX = exports.DEFAULT_PREFIX = 'om-table';
|
|
45
45
|
// Used for conditions cache
|
|
46
46
|
var EMPTY_DATA = [];
|
|
47
47
|
// Used for customize scroll
|
|
@@ -141,7 +141,6 @@ var Table = function Table(tableProps, ref) {
|
|
|
141
141
|
columnTitle: expandableConfig.columnTitle,
|
|
142
142
|
expandedKeys: mergedExpandedKeys,
|
|
143
143
|
getRowKey: getRowKey,
|
|
144
|
-
// https://github.com/ant-design/ant-design/issues/23894
|
|
145
144
|
onTriggerExpand: onTriggerExpand,
|
|
146
145
|
expandIcon: mergedExpandIcon,
|
|
147
146
|
expandIconColumnIndex: expandableConfig.expandIconColumnIndex,
|
|
@@ -262,8 +261,6 @@ var Table = function Table(tableProps, ref) {
|
|
|
262
261
|
overflowX: 'auto'
|
|
263
262
|
};
|
|
264
263
|
// When no vertical scrollbar, should hide it
|
|
265
|
-
// https://github.com/ant-design/ant-design/pull/20705
|
|
266
|
-
// https://github.com/ant-design/ant-design/issues/21879
|
|
267
264
|
if (!fixHeader) {
|
|
268
265
|
scrollYStyle = {
|
|
269
266
|
overflowY: 'hidden'
|
|
@@ -297,7 +294,6 @@ var Table = function Table(tableProps, ref) {
|
|
|
297
294
|
} else if (target.scrollLeft !== scrollLeft) {
|
|
298
295
|
target.scrollLeft = scrollLeft;
|
|
299
296
|
// Delay to force scroll position if not sync
|
|
300
|
-
// ref: https://github.com/ant-design/ant-design/issues/37179
|
|
301
297
|
if (target.scrollLeft !== scrollLeft) {
|
|
302
298
|
setTimeout(function () {
|
|
303
299
|
target.scrollLeft = scrollLeft;
|
|
@@ -371,7 +367,6 @@ var Table = function Table(tableProps, ref) {
|
|
|
371
367
|
setComponentWidth(mergedWidth);
|
|
372
368
|
}
|
|
373
369
|
};
|
|
374
|
-
// fix https://github.com/ant-design/ant-design/issues/49279
|
|
375
370
|
(0, _hooks.useLayoutEffect)(function () {
|
|
376
371
|
if (horizonScroll) {
|
|
377
372
|
onFullTableResize();
|
|
@@ -432,7 +427,6 @@ var Table = function Table(tableProps, ref) {
|
|
|
432
427
|
if (tableLayout) {
|
|
433
428
|
return tableLayout;
|
|
434
429
|
}
|
|
435
|
-
// https://github.com/ant-design/ant-design/issues/25227
|
|
436
430
|
// When scroll.x is max-content, no need to fix table layout
|
|
437
431
|
// it's width should stretch out to fit content
|
|
438
432
|
if (fixColumn) {
|
|
@@ -698,4 +692,4 @@ ImmutableTable.Column = _Column["default"];
|
|
|
698
692
|
ImmutableTable.ColumnGroup = _ColumnGroup["default"];
|
|
699
693
|
ImmutableTable.Summary = _Footer.FooterComponents;
|
|
700
694
|
var _default = exports["default"] = ImmutableTable;
|
|
701
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9zcmMvY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9jbHN4MiIsIl9SZXNpemVPYnNlcnZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0U2Nyb2xsQmFyU2l6ZSIsIl9ob29rcyIsIl9waWNrQXR0cnMiLCJfZ2V0IiwiX3dhcm5pbmciLCJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0JvZHkiLCJfQ29sR3JvdXAiLCJfY29uc3RhbnQiLCJfVGFibGVDb250ZXh0IiwiX0ZpeGVkSG9sZGVyIiwiX0Zvb3RlciIsIl9TdW1tYXJ5IiwiX0hlYWRlciIsIl91c2VDb2x1bW5zMyIsIl91c2VFeHBhbmQzIiwiX3VzZUZpeGVkSW5mbyIsIl91c2VGcmFtZSIsIl91c2VIb3ZlcjMiLCJfdXNlU3RpY2t5MiIsIl91c2VTdGlja3lPZmZzZXRzIiwiX1BhbmVsIiwiX3N0aWNreVNjcm9sbEJhciIsIl9Db2x1bW4iLCJfQ29sdW1uR3JvdXAiLCJfdmFsdWVVdGlsIiwiX3JlYWN0VXRpbCIsIl9pc0VxdWFsIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiREVGQVVMVF9QUkVGSVgiLCJleHBvcnRzIiwiRU1QVFlfREFUQSIsIkVNUFRZX1NDUk9MTF9UQVJHRVQiLCJkZWZhdWx0RW1wdHkiLCJUYWJsZSIsInRhYmxlUHJvcHMiLCJyZWYiLCJfY2xzeCIsIl9hIiwiX2IiLCJwcm9wcyIsImFzc2lnbiIsInJvd0tleSIsInByZWZpeENscyIsImVtcHR5VGV4dCIsImNsYXNzTmFtZSIsInJvd0NsYXNzTmFtZSIsInN0eWxlIiwiY2xhc3NOYW1lcyIsInN0eWxlcyIsImRhdGEiLCJzY3JvbGwiLCJ0YWJsZUxheW91dCIsImRpcmVjdGlvbiIsInRpdGxlIiwiZm9vdGVyIiwic3VtbWFyeSIsImNhcHRpb24iLCJpZCIsInNob3dIZWFkZXIiLCJjb21wb25lbnRzIiwib25Sb3ciLCJvbkhlYWRlclJvdyIsIm1lYXN1cmVSb3dSZW5kZXIiLCJvblNjcm9sbCIsImludGVybmFsSG9va3MiLCJ0cmFuc2Zvcm1Db2x1bW5zIiwiaW50ZXJuYWxSZWZzIiwidGFpbG9yIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJzdGlja3kiLCJfcHJvcHMkcm93SG92ZXJhYmxlIiwicm93SG92ZXJhYmxlIiwibWVyZ2VkRGF0YSIsImhhc0RhdGEiLCJsZW5ndGgiLCJ1c2VJbnRlcm5hbEhvb2tzIiwiSU5URVJOQUxfSE9PS1MiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmb3JFYWNoIiwibmFtZSIsIndhcm5pbmciLCJ1bmRlZmluZWQiLCJjb25jYXQiLCJnZXRDb21wb25lbnQiLCJ1c2VDYWxsYmFjayIsInBhdGgiLCJkZWZhdWx0Q29tcG9uZW50IiwiZ2V0VmFsdWUiLCJnZXRSb3dLZXkiLCJ1c2VNZW1vIiwicmVjb3JkIiwia2V5IiwiY3VzdG9taXplU2Nyb2xsQm9keSIsIl91c2VIb3ZlciIsInVzZUhvdmVyIiwiX3VzZUhvdmVyMiIsIl9zbGljZWRUb0FycmF5MiIsInN0YXJ0Um93IiwiZW5kUm93Iiwib25Ib3ZlciIsIl91c2VFeHBhbmQiLCJ1c2VFeHBhbmQiLCJfdXNlRXhwYW5kMiIsImV4cGFuZGFibGVDb25maWciLCJleHBhbmRhYmxlVHlwZSIsIm1lcmdlZEV4cGFuZGVkS2V5cyIsIm1lcmdlZEV4cGFuZEljb24iLCJtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUiLCJvblRyaWdnZXJFeHBhbmQiLCJzY3JvbGxYIiwieCIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiX1JlYWN0JHVzZVN0YXRlMiIsImNvbXBvbmVudFdpZHRoIiwic2V0Q29tcG9uZW50V2lkdGgiLCJfdXNlQ29sdW1ucyIsInVzZUNvbHVtbnMiLCJleHBhbmRhYmxlIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJjb2x1bW5UaXRsZSIsImV4cGFuZGVkS2V5cyIsImV4cGFuZEljb24iLCJleHBhbmRJY29uQ29sdW1uSW5kZXgiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwiX3VzZUNvbHVtbnMyIiwiY29sdW1ucyIsImZsYXR0ZW5Db2x1bW5zIiwiZmxhdHRlblNjcm9sbFgiLCJtZXJnZWRTY3JvbGxYIiwiY29sdW1uQ29udGV4dCIsImZ1bGxUYWJsZVJlZiIsInVzZVJlZiIsInNjcm9sbEhlYWRlclJlZiIsInNjcm9sbEJvZHlSZWYiLCJzY3JvbGxCb2R5Q29udGFpbmVyUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsIm5hdGl2ZUVsZW1lbnQiLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJjb25maWciLCJIVE1MRWxlbWVudCIsImluZGV4IiwidG9wIiwib2Zmc2V0IiwidmFsaWROdW1iZXJWYWx1ZSIsIm1lcmdlZEtleSIsInRhcmdldEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwic2Nyb2xsSW50b1ZpZXciLCJlbGVtZW50VG9wIiwib2Zmc2V0VG9wIiwic2Nyb2xsU3VtbWFyeVJlZiIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0Iiwic2hhZG93U3RhcnQiLCJzZXRTaGFkb3dTdGFydCIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2Iiwic2hhZG93RW5kIiwic2V0U2hhZG93RW5kIiwiX1JlYWN0JHVzZVN0YXRlNyIsIk1hcCIsIl9SZWFjdCR1c2VTdGF0ZTgiLCJjb2xzV2lkdGhzIiwidXBkYXRlQ29sc1dpZHRocyIsImNvbHNLZXlzIiwiZ2V0Q29sdW1uc0tleSIsInB1cmVDb2xXaWR0aHMiLCJtYXAiLCJjb2x1bW5LZXkiLCJjb2xXaWR0aHMiLCJqb2luIiwic3RpY2t5T2Zmc2V0cyIsInVzZVN0aWNreU9mZnNldHMiLCJmaXhIZWFkZXIiLCJ2YWxpZGF0ZVZhbHVlIiwieSIsImhvcml6b25TY3JvbGwiLCJCb29sZWFuIiwiZml4ZWQiLCJmaXhDb2x1bW4iLCJzb21lIiwiX3JlZiIsInN0aWNreVJlZiIsIl91c2VTdGlja3kiLCJ1c2VTdGlja3kiLCJpc1N0aWNreSIsIm9mZnNldEhlYWRlciIsIm9mZnNldFN1bW1hcnkiLCJvZmZzZXRTY3JvbGwiLCJzdGlja3lDbGFzc05hbWUiLCJjb250YWluZXIiLCJzdW1tYXJ5Tm9kZSIsImZpeEZvb3RlciIsImlzVmFsaWRFbGVtZW50IiwidHlwZSIsIlN1bW1hcnkiLCJzY3JvbGxYU3R5bGUiLCJzY3JvbGxZU3R5bGUiLCJzY3JvbGxUYWJsZVN0eWxlIiwib3ZlcmZsb3dZIiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3dYIiwid2lkdGgiLCJtaW5XaWR0aCIsIm9uQ29sdW1uUmVzaXplIiwid2lkdGhzIiwibmV3V2lkdGhzIiwiX3VzZVRpbWVvdXRMb2NrIiwidXNlVGltZW91dExvY2siLCJfdXNlVGltZW91dExvY2syIiwic2V0U2Nyb2xsVGFyZ2V0IiwiZ2V0U2Nyb2xsVGFyZ2V0IiwiZm9yY2VTY3JvbGwiLCJzY3JvbGxMZWZ0IiwidGFyZ2V0Iiwic2V0VGltZW91dCIsIl9SZWFjdCR1c2VTdGF0ZTkiLCJfUmVhY3QkdXNlU3RhdGUxMCIsInNjcm9sbEluZm8iLCJzZXRTY3JvbGxJbmZvIiwib25JbnRlcm5hbFNjcm9sbCIsInVzZUV2ZW50IiwiX3JlZjIiLCJjdXJyZW50VGFyZ2V0IiwibWVyZ2VkU2Nyb2xsTGVmdCIsImNvbXBhcmVUYXJnZXQiLCJzZXRTY3JvbGxMZWZ0IiwibWVhc3VyZVRhcmdldCIsImFic1Njcm9sbFN0YXJ0IiwiTWF0aCIsImFicyIsIm9yaSIsIm5leHRTY3JvbGxJbmZvIiwiaXNFcXVhbCIsIm9uQm9keVNjcm9sbCIsInRyaWdnZXJPblNjcm9sbCIsImdldERPTSIsIm9uRnVsbFRhYmxlUmVzaXplIiwib2Zmc2V0V2lkdGgiLCJfYyIsImNoZWNrU2Nyb2xsQmFyVmlzaWJsZSIsIm1lcmdlZFdpZHRoIiwidXNlTGF5b3V0RWZmZWN0IiwibW91bnRlZCIsInVzZUVmZmVjdCIsIl9SZWFjdCR1c2VTdGF0ZTExIiwiX1JlYWN0JHVzZVN0YXRlMTIiLCJzY3JvbGxiYXJTaXplIiwic2V0U2Nyb2xsYmFyU2l6ZSIsIkVsZW1lbnQiLCJnZXRUYXJnZXRTY3JvbGxCYXJTaXplIiwiYm9keSIsInJlbmRlckZpeGVkSGVhZGVyVGFibGUiLCJmaXhlZEhvbGRlclBhc3NQcm9wcyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJfanN4IiwiSGVhZGVyIiwiRm9vdGVyIiwicmVuZGVyRml4ZWRGb290ZXJUYWJsZSIsIlRhYmxlQ29tcG9uZW50IiwibWVyZ2VkVGFibGVMYXlvdXQiLCJfcmVmMyIsImVsbGlwc2lzIiwiZ3JvdXBUYWJsZU5vZGUiLCJoZWFkZXJQcm9wcyIsImNvbHVtQ291bnQiLCJlbXB0eU5vZGUiLCJib2R5VGFibGUiLCJCb2R5IiwibWVhc3VyZUNvbHVtbldpZHRoIiwiYm9keUNvbEdyb3VwIiwiQ29sR3JvdXAiLCJfcmVmNCIsImNhcHRpb25FbGVtZW50IiwiZGF0YVByb3BzIiwicGlja0F0dHJzIiwiYXJpYVByb3BzIiwiYXJpYSIsImJvZHlDb250ZW50IiwiX3JlZjUiLCJjb2xXaWR0aCIsIk51bWJlciIsImlzTmFOIiwiZml4ZWRIb2xkZXJQcm9wcyIsIm5vRGF0YSIsIm1heENvbnRlbnRTY3JvbGwiLCJGaXhlZEhvbGRlciIsInN0aWNreVRvcE9mZnNldCIsImNvbEdyb3VwIiwic3RpY2t5Qm90dG9tT2Zmc2V0IiwiU3RpY2t5U2Nyb2xsQmFyIiwiY29udGVudCIsImNsc3giLCJ0YWJsZVN0eWxlIiwiZnVsbFRhYmxlIiwiX2RlZmluZVByb3BlcnR5MiIsIlBhbmVsIiwic2VjdGlvbiIsIlJlc2l6ZU9ic2VydmVyIiwib25SZXNpemUiLCJfcmVmNiIsImZpeGVkSW5mb0xpc3QiLCJ1c2VGaXhlZEluZm8iLCJUYWJsZUNvbnRleHRWYWx1ZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiZXhwYW5kUm93QnlDbGljayIsImV4cGFuZGVkUm93T2Zmc2V0IiwiaW5kZW50U2l6ZSIsImFsbENvbHVtbnNGaXhlZExlZnQiLCJldmVyeSIsImNvbCIsImhvdmVyU3RhcnRSb3ciLCJob3ZlckVuZFJvdyIsInJvd0V4cGFuZGFibGUiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJUYWJsZUNvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUmVmVGFibGUiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJnZW5UYWJsZSIsInNob3VsZFRyaWdnZXJSZW5kZXIiLCJtYWtlSW1tdXRhYmxlIiwiSW1tdXRhYmxlVGFibGUiLCJFWFBBTkRfQ09MVU1OIiwiQ29sdW1uIiwiQ29sdW1uR3JvdXAiLCJGb290ZXJDb21wb25lbnRzIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUM0QkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLElBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFXLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLFNBQUEsR0FBQVQsc0JBQUEs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LGVBQUEsRUFBQzRELHdCQUFZLENBQUNDLFFBQVEsRUFBQTtJQUFDQyxLQUFLLEVBQUVkLGlCQUFpQjtJQUFBakQsUUFBQSxFQUFHd0M7RUFBUyxDQUFBLENBQXlCO0FBQzdGLENBQUM7QUFNRCxJQUFNd0IsUUFBUSxnQkFBR3JWLEtBQUssQ0FBQ3NWLFVBQVUsQ0FBQ3JTLEtBQUssQ0FBd0I7QUFFL0QsSUFBSTRDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO0VBQ3pDc1AsUUFBUSxDQUFDRSxXQUFXLEdBQUcsT0FBTztBQUNoQztBQUVPLElBQU1DLFFBQVEsR0FBQTNTLE9BQUEsQ0FBQTJTLFFBQUEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxtQkFBdUQsRUFBSTtFQUNsRixPQUFPLElBQUFDLDJCQUFhLEVBQUNMLFFBQVEsRUFBRUksbUJBQW1CLENBQUM7QUFDckQsQ0FBQztBQUVELElBQU1FLGNBQWMsR0FBR0gsUUFBUSxDQUFBLENBQUU7QUFVaENHLGNBQXFDLENBQUNDLGFBQWEsR0FBR0EsdUJBQWE7QUFFbkVELGNBQXFDLENBQUMvUCxjQUFjLEdBQUdBLHdCQUFjO0FBRXJFK1AsY0FBcUMsQ0FBQ0UsTUFBTSxHQUFHQSxrQkFBTTtBQUVyREYsY0FBcUMsQ0FBQ0csV0FBVyxHQUFHQSx1QkFBVztBQUUvREgsY0FBcUMsQ0FBQ25JLE9BQU8sR0FBR3VJLHdCQUFnQjtBQUFDLElBQUFDLFFBQUEsR0FBQW5ULE9BQUEsY0FFbkQ4UyxjQUFvQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC9UYWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNsc3ggfSBmcm9tICdjbHN4JztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICcuLi8uLi8uLi9SZXNpemVPYnNlcnZlcic7XG5pbXBvcnQgeyBnZXRUYXJnZXRTY3JvbGxCYXJTaXplIH0gZnJvbSAnLi91dGlscy9nZXRTY3JvbGxCYXJTaXplJztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgYXMgdXNlRXZlbnQgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCBwaWNrQXR0cnMgZnJvbSAnLi91dGlscy9waWNrQXR0cnMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vdXRpbHMvZ2V0JztcbmltcG9ydCB3YXJuaW5nIGZyb20gJy4vdXRpbHMvd2FybmluZyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQm9keSBmcm9tICcuL0JvZHknO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4vQ29sR3JvdXAnO1xuaW1wb3J0IHsgRVhQQU5EX0NPTFVNTiwgSU5URVJOQUxfSE9PS1MgfSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCBUYWJsZUNvbnRleHQsIHsgbWFrZUltbXV0YWJsZSB9IGZyb20gJy4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEZpeGVkSG9sZGVyIGZyb20gJy4vRml4ZWRIb2xkZXInO1xuaW1wb3J0IEZvb3RlciwgeyBGb290ZXJDb21wb25lbnRzIH0gZnJvbSAnLi9Gb290ZXInO1xuaW1wb3J0IFN1bW1hcnkgZnJvbSAnLi9Gb290ZXIvU3VtbWFyeSc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyL0hlYWRlcic7XG5pbXBvcnQgdXNlQ29sdW1ucyBmcm9tICcuL2hvb2tzL3VzZUNvbHVtbnMnO1xuaW1wb3J0IHVzZUV4cGFuZCBmcm9tICcuL2hvb2tzL3VzZUV4cGFuZCc7XG5pbXBvcnQgdXNlRml4ZWRJbmZvIGZyb20gJy4vaG9va3MvdXNlRml4ZWRJbmZvJztcbmltcG9ydCB7IHVzZVRpbWVvdXRMb2NrIH0gZnJvbSAnLi9ob29rcy91c2VGcmFtZSc7XG5pbXBvcnQgdXNlSG92ZXIgZnJvbSAnLi9ob29rcy91c2VIb3Zlcic7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcbmltcG9ydCB1c2VTdGlja3lPZmZzZXRzIGZyb20gJy4vaG9va3MvdXNlU3RpY2t5T2Zmc2V0cyc7XG5pbXBvcnQgUGFuZWwgZnJvbSAnLi9QYW5lbCc7XG5pbXBvcnQgU3RpY2t5U2Nyb2xsQmFyIGZyb20gJy4vc3RpY2t5U2Nyb2xsQmFyJztcbmltcG9ydCBDb2x1bW4gZnJvbSAnLi9zdWdhci9Db2x1bW4nO1xuaW1wb3J0IENvbHVtbkdyb3VwIGZyb20gJy4vc3VnYXIvQ29sdW1uR3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSwgdmFsaWRhdGVWYWx1ZSwgdmFsaWROdW1iZXJWYWx1ZSB9IGZyb20gJy4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCB7IGdldERPTSB9IGZyb20gJy4uLy4uLy4uL1Jlc2l6ZU9ic2VydmVyL3V0aWxzL3JlYWN0VXRpbCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICcuL3NlbGVjdG9yLWNvbnRleHQvaXNFcXVhbCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BSRUZJWCA9ICdyYy10YWJsZSc7XG4vLyBVc2VkIGZvciBjb25kaXRpb25zIGNhY2hlXG5jb25zdCBFTVBUWV9EQVRBID0gW107XG4vLyBVc2VkIGZvciBjdXN0b21pemUgc2Nyb2xsXG5jb25zdCBFTVBUWV9TQ1JPTExfVEFSR0VUID0ge307XG5mdW5jdGlvbiBkZWZhdWx0RW1wdHkoKSB7XG4gICAgcmV0dXJuICdObyBEYXRhJztcbn1cbmNvbnN0IFRhYmxlID0gKHRhYmxlUHJvcHMsIHJlZikgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgcHJvcHMgPSBPYmplY3QuYXNzaWduKHsgcm93S2V5OiAna2V5JywgcHJlZml4Q2xzOiBERUZBVUxUX1BSRUZJWCwgZW1wdHlUZXh0OiBkZWZhdWx0RW1wdHkgfSwgdGFibGVQcm9wcyk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIGNsYXNzTmFtZSwgcm93Q2xhc3NOYW1lLCBzdHlsZSwgY2xhc3NOYW1lcywgc3R5bGVzLCBkYXRhLCByb3dLZXksIHNjcm9sbCwgdGFibGVMYXlvdXQsIGRpcmVjdGlvbiwgXG4gICAgLy8gQWRkaXRpb25hbCBQYXJ0XG4gICAgdGl0bGUsIGZvb3Rlciwgc3VtbWFyeSwgY2FwdGlvbiwgXG4gICAgLy8gQ3VzdG9taXplXG4gICAgaWQsIHNob3dIZWFkZXIsIGNvbXBvbmVudHMsIGVtcHR5VGV4dCwgb25Sb3csIG9uSGVhZGVyUm93LCBcbiAgICAvLyBNZWFzdXJlIFJvd1xuICAgIG1lYXN1cmVSb3dSZW5kZXIsIFxuICAgIC8vIEV2ZW50c1xuICAgIG9uU2Nyb2xsLCBcbiAgICAvLyBJbnRlcm5hbFxuICAgIGludGVybmFsSG9va3MsIHRyYW5zZm9ybUNvbHVtbnMsIGludGVybmFsUmVmcywgdGFpbG9yLCBnZXRDb250YWluZXJXaWR0aCwgc3RpY2t5LCByb3dIb3ZlcmFibGUgPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkRGF0YSA9IGRhdGEgfHwgRU1QVFlfREFUQTtcbiAgICBjb25zdCBoYXNEYXRhID0gISFtZXJnZWREYXRhLmxlbmd0aDtcbiAgICBjb25zdCB1c2VJbnRlcm5hbEhvb2tzID0gaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1M7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFdhcm5pbmcgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFtcbiAgICAgICAgICAgICdvblJvd0NsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0RvdWJsZUNsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0NvbnRleHRNZW51JyxcbiAgICAgICAgICAgICdvblJvd01vdXNlRW50ZXInLFxuICAgICAgICAgICAgJ29uUm93TW91c2VMZWF2ZScsXG4gICAgICAgIF0uZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgICAgIHdhcm5pbmcocHJvcHNbbmFtZV0gPT09IHVuZGVmaW5lZCwgYFxcYCR7bmFtZX1cXGAgaXMgcmVtb3ZlZCwgcGxlYXNlIHVzZSBcXGBvblJvd1xcYCBpbnN0ZWFkLmApO1xuICAgICAgICB9KTtcbiAgICAgICAgd2FybmluZyghKCdnZXRCb2R5V3JhcHBlcicgaW4gcHJvcHMpLCAnYGdldEJvZHlXcmFwcGVyYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGN1c3RvbSBgY29tcG9uZW50c2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ3VzdG9taXplID09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldENvbXBvbmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKChwYXRoLCBkZWZhdWx0Q29tcG9uZW50KSA9PiBnZXRWYWx1ZShjb21wb25lbnRzLCBwYXRoKSB8fCBkZWZhdWx0Q29tcG9uZW50LCBbY29tcG9uZW50c10pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHJvd0tleTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVjb3JkICYmIHJlY29yZFtyb3dLZXldO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKGtleSAhPT0gdW5kZWZpbmVkLCAnRWFjaCByZWNvcmQgaW4gdGFibGUgc2hvdWxkIGhhdmUgYSB1bmlxdWUgYGtleWAgcHJvcCwgb3Igc2V0IGByb3dLZXlgIHRvIGFuIHVuaXF1ZSBwcmltYXJ5IGtleS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH07XG4gICAgfSwgW3Jvd0tleV0pO1xuICAgIGNvbnN0IGN1c3RvbWl6ZVNjcm9sbEJvZHkgPSBnZXRDb21wb25lbnQoWydib2R5J10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gSG92ZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc3RhcnRSb3csIGVuZFJvdywgb25Ib3Zlcl0gPSB1c2VIb3ZlcigpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gRXhwYW5kID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbZXhwYW5kYWJsZUNvbmZpZywgZXhwYW5kYWJsZVR5cGUsIG1lcmdlZEV4cGFuZGVkS2V5cywgbWVyZ2VkRXhwYW5kSWNvbiwgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLCBvblRyaWdnZXJFeHBhbmQsXSA9IHVzZUV4cGFuZChwcm9wcywgbWVyZ2VkRGF0YSwgZ2V0Um93S2V5KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbHVtbiA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsWCA9IHNjcm9sbCA9PT0gbnVsbCB8fCBzY3JvbGwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbC54O1xuICAgIGNvbnN0IFtjb21wb25lbnRXaWR0aCwgc2V0Q29tcG9uZW50V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBmbGF0dGVuU2Nyb2xsWF0gPSB1c2VDb2x1bW5zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcm9wcyksIGV4cGFuZGFibGVDb25maWcpLCB7IGV4cGFuZGFibGU6ICEhZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlciwgY29sdW1uVGl0bGU6IGV4cGFuZGFibGVDb25maWcuY29sdW1uVGl0bGUsIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLCBnZXRSb3dLZXksXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIzODk0XG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCwgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbiwgZXhwYW5kSWNvbkNvbHVtbkluZGV4OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCwgZGlyZWN0aW9uLCBzY3JvbGxXaWR0aDogdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIHNjcm9sbFggPT09ICdudW1iZXInID8gc2Nyb2xsWCA6IG51bGwsIGNsaWVudFdpZHRoOiBjb21wb25lbnRXaWR0aCB9KSwgdXNlSW50ZXJuYWxIb29rcyA/IHRyYW5zZm9ybUNvbHVtbnMgOiBudWxsKTtcbiAgICBjb25zdCBtZXJnZWRTY3JvbGxYID0gZmxhdHRlblNjcm9sbFggIT09IG51bGwgJiYgZmxhdHRlblNjcm9sbFggIT09IHZvaWQgMCA/IGZsYXR0ZW5TY3JvbGxYIDogc2Nyb2xsWDtcbiAgICBjb25zdCBjb2x1bW5Db250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucyB9KSwgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGZ1bGxUYWJsZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxIZWFkZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsQm9keVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxCb2R5Q29udGFpbmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiBmdWxsVGFibGVSZWYuY3VycmVudCxcbiAgICAgICAgICAgIHNjcm9sbFRvOiBjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbEJvZHlSZWYuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5hdGl2ZSBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbmRleCwgdG9wLCBrZXksIG9mZnNldCB9ID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWROdW1iZXJWYWx1ZSh0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0b3AgbW9kZSwgb2Zmc2V0IGlzIGlnbm9yZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHsgdG9wIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkS2V5ID0ga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogZ2V0Um93S2V5KG1lcmdlZERhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtcm93LWtleT1cIiR7bWVyZ2VkS2V5fVwiXWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvZmZzZXQsIHVzZSBzY3JvbGxJbnRvVmlldyBmb3IgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIG9mZnNldCwgdXNlIGVsZW1lbnQncyBvZmZzZXRUb3AgKyBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvcCA9IHRhcmdldEVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxCb2R5UmVmLmN1cnJlbnQuc2Nyb2xsVG8oeyB0b3A6IGVsZW1lbnRUb3AgKyBvZmZzZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfYiA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjcm9sbFRvKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdG8gcHJveHlcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQm9keVJlZi5jdXJyZW50LnNjcm9sbFRvKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsU3VtbWFyeVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbc2hhZG93U3RhcnQsIHNldFNoYWRvd1N0YXJ0XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hhZG93RW5kLCBzZXRTaGFkb3dFbmRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb2xzV2lkdGhzLCB1cGRhdGVDb2xzV2lkdGhzXSA9IFJlYWN0LnVzZVN0YXRlKG5ldyBNYXAoKSk7XG4gICAgLy8gQ29udmVydCBtYXAgdG8gbnVtYmVyIHdpZHRoXG4gICAgY29uc3QgY29sc0tleXMgPSBnZXRDb2x1bW5zS2V5KGZsYXR0ZW5Db2x1bW5zKTtcbiAgICBjb25zdCBwdXJlQ29sV2lkdGhzID0gY29sc0tleXMubWFwKGNvbHVtbktleSA9PiBjb2xzV2lkdGhzLmdldChjb2x1bW5LZXkpKTtcbiAgICBjb25zdCBjb2xXaWR0aHMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHB1cmVDb2xXaWR0aHMsIFtwdXJlQ29sV2lkdGhzLmpvaW4oJ18nKV0pO1xuICAgIGNvbnN0IHN0aWNreU9mZnNldHMgPSB1c2VTdGlja3lPZmZzZXRzKGNvbFdpZHRocywgZmxhdHRlbkNvbHVtbnMpO1xuICAgIGNvbnN0IGZpeEhlYWRlciA9IHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKHNjcm9sbC55KTtcbiAgICBjb25zdCBob3Jpem9uU2Nyb2xsID0gKHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKG1lcmdlZFNjcm9sbFgpKSB8fCBCb29sZWFuKGV4cGFuZGFibGVDb25maWcuZml4ZWQpO1xuICAgIGNvbnN0IGZpeENvbHVtbiA9IGhvcml6b25TY3JvbGwgJiYgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBmaXhlZCB9KSA9PiBmaXhlZCk7XG4gICAgLy8gU3RpY2t5XG4gICAgY29uc3Qgc3RpY2t5UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHsgaXNTdGlja3ksIG9mZnNldEhlYWRlciwgb2Zmc2V0U3VtbWFyeSwgb2Zmc2V0U2Nyb2xsLCBzdGlja3lDbGFzc05hbWUsIGNvbnRhaW5lciB9ID0gdXNlU3RpY2t5KHN0aWNreSwgcHJlZml4Q2xzKTtcbiAgICAvLyBGb290ZXIgKEZpeCBmb290ZXIgbXVzdCBmaXhlZCBoZWFkZXIpXG4gICAgY29uc3Qgc3VtbWFyeU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHN1bW1hcnkgPT09IG51bGwgfHwgc3VtbWFyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VtbWFyeShtZXJnZWREYXRhKSwgW3N1bW1hcnksIG1lcmdlZERhdGFdKTtcbiAgICBjb25zdCBmaXhGb290ZXIgPSAoZml4SGVhZGVyIHx8IGlzU3RpY2t5KSAmJlxuICAgICAgICBSZWFjdC5pc1ZhbGlkRWxlbWVudChzdW1tYXJ5Tm9kZSkgJiZcbiAgICAgICAgc3VtbWFyeU5vZGUudHlwZSA9PT0gU3VtbWFyeSAmJlxuICAgICAgICBzdW1tYXJ5Tm9kZS5wcm9wcy5maXhlZDtcbiAgICAvLyBTY3JvbGxcbiAgICBsZXQgc2Nyb2xsWFN0eWxlO1xuICAgIGxldCBzY3JvbGxZU3R5bGU7XG4gICAgbGV0IHNjcm9sbFRhYmxlU3R5bGU7XG4gICAgaWYgKGZpeEhlYWRlcikge1xuICAgICAgICBzY3JvbGxZU3R5bGUgPSB7XG4gICAgICAgICAgICBvdmVyZmxvd1k6IGhhc0RhdGEgPyAnc2Nyb2xsJyA6ICdhdXRvJyxcbiAgICAgICAgICAgIG1heEhlaWdodDogc2Nyb2xsLnksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIHNjcm9sbFhTdHlsZSA9IHsgb3ZlcmZsb3dYOiAnYXV0bycgfTtcbiAgICAgICAgLy8gV2hlbiBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIsIHNob3VsZCBoaWRlIGl0XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vcHVsbC8yMDcwNVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMTg3OVxuICAgICAgICBpZiAoIWZpeEhlYWRlcikge1xuICAgICAgICAgICAgc2Nyb2xsWVN0eWxlID0geyBvdmVyZmxvd1k6ICdoaWRkZW4nIH07XG4gICAgICAgIH1cbiAgICAgICAgc2Nyb2xsVGFibGVTdHlsZSA9IHtcbiAgICAgICAgICAgIHdpZHRoOiBtZXJnZWRTY3JvbGxYID09PSB0cnVlID8gJ2F1dG8nIDogbWVyZ2VkU2Nyb2xsWCxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwJScsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG9uQ29sdW1uUmVzaXplID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbHVtbktleSwgd2lkdGgpID0+IHtcbiAgICAgICAgdXBkYXRlQ29sc1dpZHRocyh3aWR0aHMgPT4ge1xuICAgICAgICAgICAgaWYgKHdpZHRocy5nZXQoY29sdW1uS2V5KSAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdXaWR0aHMgPSBuZXcgTWFwKHdpZHRocyk7XG4gICAgICAgICAgICAgICAgbmV3V2lkdGhzLnNldChjb2x1bW5LZXksIHdpZHRoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3V2lkdGhzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpZHRocztcbiAgICAgICAgfSk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IFtzZXRTY3JvbGxUYXJnZXQsIGdldFNjcm9sbFRhcmdldF0gPSB1c2VUaW1lb3V0TG9jayhudWxsKTtcbiAgICBmdW5jdGlvbiBmb3JjZVNjcm9sbChzY3JvbGxMZWZ0LCB0YXJnZXQpIHtcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGFyZ2V0KHNjcm9sbExlZnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgICAgICAgICAvLyBEZWxheSB0byBmb3JjZSBzY3JvbGwgcG9zaXRpb24gaWYgbm90IHN5bmNcbiAgICAgICAgICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMzcxNzlcbiAgICAgICAgICAgIGlmICh0YXJnZXQuc2Nyb2xsTGVmdCAhPT0gc2Nyb2xsTGVmdCkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgW3Njcm9sbEluZm8sIHNldFNjcm9sbEluZm9dID0gUmVhY3QudXNlU3RhdGUoWzAsIDBdKTtcbiAgICBjb25zdCBvbkludGVybmFsU2Nyb2xsID0gdXNlRXZlbnQoKHsgY3VycmVudFRhcmdldCwgc2Nyb2xsTGVmdCB9KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgbWVyZ2VkU2Nyb2xsTGVmdCA9IHR5cGVvZiBzY3JvbGxMZWZ0ID09PSAnbnVtYmVyJyA/IHNjcm9sbExlZnQgOiBjdXJyZW50VGFyZ2V0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IGNvbXBhcmVUYXJnZXQgPSBjdXJyZW50VGFyZ2V0IHx8IEVNUFRZX1NDUk9MTF9UQVJHRVQ7XG4gICAgICAgIGlmICghZ2V0U2Nyb2xsVGFyZ2V0KCkgfHwgZ2V0U2Nyb2xsVGFyZ2V0KCkgPT09IGNvbXBhcmVUYXJnZXQpIHtcbiAgICAgICAgICAgIHNldFNjcm9sbFRhcmdldChjb21wYXJlVGFyZ2V0KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbEhlYWRlclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbEJvZHlSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBmb3JjZVNjcm9sbChtZXJnZWRTY3JvbGxMZWZ0LCBzY3JvbGxTdW1tYXJ5UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZXRTY3JvbGxMZWZ0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtZWFzdXJlVGFyZ2V0ID0gY3VycmVudFRhcmdldCB8fCBzY3JvbGxIZWFkZXJSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKG1lYXN1cmVUYXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFdpZHRoID0gXG4gICAgICAgICAgICAvLyBTaG91bGQgdXNlIG1lcmdlZFNjcm9sbFggaW4gdmlydHVhbCB0YWJsZSh1c2VJbnRlcm5hbEhvb2tzICYmIHRhaWxvciA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yICYmIHR5cGVvZiBtZXJnZWRTY3JvbGxYID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8gbWVyZ2VkU2Nyb2xsWFxuICAgICAgICAgICAgICAgIDogbWVhc3VyZVRhcmdldC5zY3JvbGxXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFdpZHRoID0gbWVhc3VyZVRhcmdldC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGFic1Njcm9sbFN0YXJ0ID0gTWF0aC5hYnMobWVyZ2VkU2Nyb2xsTGVmdCk7XG4gICAgICAgICAgICBzZXRTY3JvbGxJbmZvKG9yaSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbEluZm8gPSBbYWJzU2Nyb2xsU3RhcnQsIHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGhdO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0VxdWFsKG9yaSwgbmV4dFNjcm9sbEluZm8pID8gb3JpIDogbmV4dFNjcm9sbEluZm87XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHNwYWNlIHRvIHNjcm9sbFxuICAgICAgICAgICAgaWYgKHNjcm9sbFdpZHRoID09PSBjbGllbnRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHNldFNoYWRvd1N0YXJ0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBzZXRTaGFkb3dFbmQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFNoYWRvd1N0YXJ0KGFic1Njcm9sbFN0YXJ0ID4gMCk7XG4gICAgICAgICAgICBzZXRTaGFkb3dFbmQoYWJzU2Nyb2xsU3RhcnQgPCBzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoIC0gMSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvbkJvZHlTY3JvbGwgPSB1c2VFdmVudCgoZSkgPT4ge1xuICAgICAgICBvbkludGVybmFsU2Nyb2xsKGUpO1xuICAgICAgICBvblNjcm9sbCA9PT0gbnVsbCB8fCBvblNjcm9sbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TY3JvbGwoZSk7XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlck9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChob3Jpem9uU2Nyb2xsICYmIHNjcm9sbEJvZHlSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgb25JbnRlcm5hbFNjcm9sbCh7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhcmdldDogZ2V0RE9NKHNjcm9sbEJvZHlSZWYuY3VycmVudCksXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogKF9hID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoZmFsc2UpO1xuICAgICAgICAgICAgc2V0U2hhZG93RW5kKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25GdWxsVGFibGVSZXNpemUgPSAob2Zmc2V0V2lkdGgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIChfYSA9IHN0aWNreVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2hlY2tTY3JvbGxCYXJWaXNpYmxlKCk7XG4gICAgICAgIGxldCBtZXJnZWRXaWR0aCA9IChfYyA9IG9mZnNldFdpZHRoICE9PSBudWxsICYmIG9mZnNldFdpZHRoICE9PSB2b2lkIDAgPyBvZmZzZXRXaWR0aCA6IChfYiA9IGZ1bGxUYWJsZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgIGlmICh1c2VJbnRlcm5hbEhvb2tzICYmIGdldENvbnRhaW5lcldpZHRoICYmIGZ1bGxUYWJsZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBtZXJnZWRXaWR0aCA9IGdldENvbnRhaW5lcldpZHRoKGZ1bGxUYWJsZVJlZi5jdXJyZW50LCBtZXJnZWRXaWR0aCkgfHwgbWVyZ2VkV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lcmdlZFdpZHRoICE9PSBjb21wb25lbnRXaWR0aCkge1xuICAgICAgICAgICAgdHJpZ2dlck9uU2Nyb2xsKCk7XG4gICAgICAgICAgICBzZXRDb21wb25lbnRXaWR0aChtZXJnZWRXaWR0aCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIGZpeCBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy80OTI3OVxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgICAgICBvbkZ1bGxUYWJsZVJlc2l6ZSgpO1xuICAgICAgICB9XG4gICAgfSwgW2hvcml6b25TY3JvbGxdKTtcbiAgICAvLyBTeW5jIHNjcm9sbCBiYXIgd2hlbiBpbml0IG9yIGBob3Jpem9uU2Nyb2xsYCwgYGRhdGFgIGFuZCBgY29sdW1ucy5sZW5ndGhgIGNoYW5nZWRcbiAgICBjb25zdCBtb3VudGVkID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBvbkZ1bGxUYWJsZVJlc2l6ZSB3aWxsIGJlIHRyaWdnZXIgb25jZSB3aGVuIFJlc2l6ZU9ic2VydmVyIGlzIG1vdW50ZWRcbiAgICAgICAgLy8gVGhpcyB3aWxsIHJlZHVjZSBvbmUgZHVwbGljYXRlZCB0cmlnZ2VyT25TY3JvbGwgdGltZVxuICAgICAgICBpZiAobW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICB0cmlnZ2VyT25TY3JvbGwoKTtcbiAgICAgICAgfVxuICAgIH0sIFtob3Jpem9uU2Nyb2xsLCBkYXRhLCBjb2x1bW5zLmxlbmd0aF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIG1vdW50ZWQuY3VycmVudCA9IHRydWU7XG4gICAgfSwgW10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PSBFZmZlY3RzID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc2Nyb2xsYmFyU2l6ZSwgc2V0U2Nyb2xsYmFyU2l6ZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIXRhaWxvciB8fCAhdXNlSW50ZXJuYWxIb29rcykge1xuICAgICAgICAgICAgaWYgKHNjcm9sbEJvZHlSZWYuY3VycmVudCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBzZXRTY3JvbGxiYXJTaXplKGdldFRhcmdldFNjcm9sbEJhclNpemUoc2Nyb2xsQm9keVJlZi5jdXJyZW50KS53aWR0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRTY3JvbGxiYXJTaXplKGdldFRhcmdldFNjcm9sbEJhclNpemUoc2Nyb2xsQm9keUNvbnRhaW5lclJlZi5jdXJyZW50KS53aWR0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09IElOVEVSTkFMIEhPT0tTID09PT09PT09PT09PT09PT09PVxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh1c2VJbnRlcm5hbEhvb2tzICYmIGludGVybmFsUmVmcykge1xuICAgICAgICAgICAgaW50ZXJuYWxSZWZzLmJvZHkuY3VycmVudCA9IHNjcm9sbEJvZHlSZWYuY3VycmVudDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vID09ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PVxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUmVuZGVyOiBGdW5jID09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCByZW5kZXJGaXhlZEhlYWRlclRhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soZml4ZWRIb2xkZXJQYXNzUHJvcHMgPT4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW19qc3goSGVhZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclBhc3NQcm9wcykpLCBmaXhGb290ZXIgPT09ICd0b3AnICYmIF9qc3goRm9vdGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclBhc3NQcm9wcywgeyBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSksIFtmaXhGb290ZXIsIHN1bW1hcnlOb2RlXSk7XG4gICAgY29uc3QgcmVuZGVyRml4ZWRGb290ZXJUYWJsZSA9IFJlYWN0LnVzZUNhbGxiYWNrKGZpeGVkSG9sZGVyUGFzc1Byb3BzID0+IF9qc3goRm9vdGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclBhc3NQcm9wcywgeyBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpLCBbc3VtbWFyeU5vZGVdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09IFJlbmRlcjogTm9kZSA9PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgVGFibGVDb21wb25lbnQgPSBnZXRDb21wb25lbnQoWyd0YWJsZSddLCAndGFibGUnKTtcbiAgICAvLyBUYWJsZSBsYXlvdXRcbiAgICBjb25zdCBtZXJnZWRUYWJsZUxheW91dCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodGFibGVMYXlvdXQpIHtcbiAgICAgICAgICAgIHJldHVybiB0YWJsZUxheW91dDtcbiAgICAgICAgfVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yNTIyN1xuICAgICAgICAvLyBXaGVuIHNjcm9sbC54IGlzIG1heC1jb250ZW50LCBubyBuZWVkIHRvIGZpeCB0YWJsZSBsYXlvdXRcbiAgICAgICAgLy8gaXQncyB3aWR0aCBzaG91bGQgc3RyZXRjaCBvdXQgdG8gZml0IGNvbnRlbnRcbiAgICAgICAgaWYgKGZpeENvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZFNjcm9sbFggPT09ICdtYXgtY29udGVudCcgPyAnYXV0bycgOiAnZml4ZWQnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaXhIZWFkZXIgfHwgaXNTdGlja3kgfHwgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBlbGxpcHNpcyB9KSA9PiBlbGxpcHNpcykpIHtcbiAgICAgICAgICAgIHJldHVybiAnZml4ZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnYXV0byc7XG4gICAgfSwgW2ZpeEhlYWRlciwgZml4Q29sdW1uLCBmbGF0dGVuQ29sdW1ucywgdGFibGVMYXlvdXQsIGlzU3RpY2t5XSk7XG4gICAgbGV0IGdyb3VwVGFibGVOb2RlO1xuICAgIC8vIEhlYWRlciBwcm9wc1xuICAgIGNvbnN0IGhlYWRlclByb3BzID0ge1xuICAgICAgICBjb2xXaWR0aHMsXG4gICAgICAgIGNvbHVtQ291bnQ6IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aCxcbiAgICAgICAgc3RpY2t5T2Zmc2V0cyxcbiAgICAgICAgb25IZWFkZXJSb3csXG4gICAgICAgIGZpeEhlYWRlcixcbiAgICAgICAgc2Nyb2xsLFxuICAgIH07XG4gICAgLy8gRW1wdHlcbiAgICBjb25zdCBlbXB0eU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGhhc0RhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZW1wdHlUZXh0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gZW1wdHlUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVtcHR5VGV4dDtcbiAgICB9LCBbaGFzRGF0YSwgZW1wdHlUZXh0XSk7XG4gICAgLy8gQm9keVxuICAgIGNvbnN0IGJvZHlUYWJsZSA9IChfanN4KEJvZHksIHsgZGF0YTogbWVyZ2VkRGF0YSwgbWVhc3VyZUNvbHVtbldpZHRoOiBmaXhIZWFkZXIgfHwgaG9yaXpvblNjcm9sbCB8fCBpc1N0aWNreSB9KSk7XG4gICAgY29uc3QgYm9keUNvbEdyb3VwID0gKF9qc3goQ29sR3JvdXAsIHsgY29sV2lkdGhzOiBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGggfSkgPT4gd2lkdGgpLCBjb2x1bW5zOiBmbGF0dGVuQ29sdW1ucyB9KSk7XG4gICAgY29uc3QgY2FwdGlvbkVsZW1lbnQgPSBjYXB0aW9uICE9PSBudWxsICYmIGNhcHRpb24gIT09IHVuZGVmaW5lZCA/IChfanN4KFwiY2FwdGlvblwiLCB7IGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1jYXB0aW9uYCwgY2hpbGRyZW46IGNhcHRpb24gfSkpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRhdGFQcm9wcyA9IHBpY2tBdHRycyhwcm9wcywgeyBkYXRhOiB0cnVlIH0pO1xuICAgIGNvbnN0IGFyaWFQcm9wcyA9IHBpY2tBdHRycyhwcm9wcywgeyBhcmlhOiB0cnVlIH0pO1xuICAgIGlmIChmaXhIZWFkZXIgfHwgaXNTdGlja3kpIHtcbiAgICAgICAgLy8gPj4+Pj4+IEZpeGVkIEhlYWRlclxuICAgICAgICBsZXQgYm9keUNvbnRlbnQ7XG4gICAgICAgIGlmICh0eXBlb2YgY3VzdG9taXplU2Nyb2xsQm9keSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYm9keUNvbnRlbnQgPSBjdXN0b21pemVTY3JvbGxCb2R5KG1lcmdlZERhdGEsIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICAgICAgICAgIHJlZjogc2Nyb2xsQm9keVJlZixcbiAgICAgICAgICAgICAgICBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaGVhZGVyUHJvcHMuY29sV2lkdGhzID0gZmxhdHRlbkNvbHVtbnMubWFwKCh7IHdpZHRoIH0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sV2lkdGggPSBpbmRleCA9PT0gZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMSA/IHdpZHRoIC0gc2Nyb2xsYmFyU2l6ZSA6IHdpZHRoO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29sV2lkdGggPT09ICdudW1iZXInICYmICFOdW1iZXIuaXNOYU4oY29sV2lkdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xXaWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgd2FybmluZyhwcm9wcy5jb2x1bW5zLmxlbmd0aCA9PT0gMCwgJ1doZW4gdXNlIGBjb21wb25lbnRzLmJvZHlgIHdpdGggcmVuZGVyIHByb3BzLiBFYWNoIGNvbHVtbiBzaG91bGQgaGF2ZSBhIGZpeGVkIGB3aWR0aGAgdmFsdWUuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBib2R5Q29udGVudCA9IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsWFN0eWxlKSwgc2Nyb2xsWVN0eWxlKSwgb25TY3JvbGw6IG9uQm9keVNjcm9sbCwgcmVmOiBzY3JvbGxCb2R5UmVmLCBjbGFzc05hbWU6IGAke3ByZWZpeENsc30tYm9keWAsIGNoaWxkcmVuOiBfanN4cyhUYWJsZUNvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFRhYmxlU3R5bGUpLCB7IHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCB9KSB9LCBhcmlhUHJvcHMsIHsgY2hpbGRyZW46IFtjYXB0aW9uRWxlbWVudCwgYm9keUNvbEdyb3VwLCBib2R5VGFibGUsICFmaXhGb290ZXIgJiYgc3VtbWFyeU5vZGUgJiYgKF9qc3goRm9vdGVyLCB7IHN0aWNreU9mZnNldHM6IHN0aWNreU9mZnNldHMsIGZsYXR0ZW5Db2x1bW5zOiBmbGF0dGVuQ29sdW1ucywgY2hpbGRyZW46IHN1bW1hcnlOb2RlIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXhlZCBob2xkZXIgc2hhcmUgdGhlIHByb3BzXG4gICAgICAgIGNvbnN0IGZpeGVkSG9sZGVyUHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IG5vRGF0YTogIW1lcmdlZERhdGEubGVuZ3RoLCBtYXhDb250ZW50U2Nyb2xsOiBob3Jpem9uU2Nyb2xsICYmIG1lcmdlZFNjcm9sbFggPT09ICdtYXgtY29udGVudCcgfSwgaGVhZGVyUHJvcHMpLCBjb2x1bW5Db250ZXh0KSwgeyBkaXJlY3Rpb24sXG4gICAgICAgICAgICBzdGlja3lDbGFzc05hbWUsIHNjcm9sbFg6IG1lcmdlZFNjcm9sbFgsIHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCwgb25TY3JvbGw6IG9uSW50ZXJuYWxTY3JvbGwgfSk7XG4gICAgICAgIGdyb3VwVGFibGVOb2RlID0gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3Nob3dIZWFkZXIgIT09IGZhbHNlICYmIChfanN4KEZpeGVkSG9sZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclByb3BzLCB7IHN0aWNreVRvcE9mZnNldDogb2Zmc2V0SGVhZGVyLCBjbGFzc05hbWU6IGAke3ByZWZpeENsc30taGVhZGVyYCwgcmVmOiBzY3JvbGxIZWFkZXJSZWYsIGNvbEdyb3VwOiBib2R5Q29sR3JvdXAsIGNoaWxkcmVuOiByZW5kZXJGaXhlZEhlYWRlclRhYmxlIH0pKSksIGJvZHlDb250ZW50LCBmaXhGb290ZXIgJiYgZml4Rm9vdGVyICE9PSAndG9wJyAmJiAoX2pzeChGaXhlZEhvbGRlciwgT2JqZWN0LmFzc2lnbih7fSwgZml4ZWRIb2xkZXJQcm9wcywgeyBzdGlja3lCb3R0b21PZmZzZXQ6IG9mZnNldFN1bW1hcnksIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1zdW1tYXJ5YCwgcmVmOiBzY3JvbGxTdW1tYXJ5UmVmLCBjb2xHcm91cDogYm9keUNvbEdyb3VwLCBjaGlsZHJlbjogcmVuZGVyRml4ZWRGb290ZXJUYWJsZSB9KSkpLCBpc1N0aWNreSAmJiBzY3JvbGxCb2R5UmVmLmN1cnJlbnQgJiYgc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCAmJiAoX2pzeChTdGlja3lTY3JvbGxCYXIsIHsgcmVmOiBzdGlja3lSZWYsIG9mZnNldFNjcm9sbDogb2Zmc2V0U2Nyb2xsLCBzY3JvbGxCb2R5UmVmOiBzY3JvbGxCb2R5UmVmLCBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCwgY29udGFpbmVyOiBjb250YWluZXIsIGRpcmVjdGlvbjogZGlyZWN0aW9uIH0pKV0gfSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gPj4+Pj4+IFVuaXF1ZSB0YWJsZVxuICAgICAgICBncm91cFRhYmxlTm9kZSA9IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLCBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuY29udGVudCksIGNsYXNzTmFtZTogY2xzeChgJHtwcmVmaXhDbHN9LWNvbnRlbnRgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuY29udGVudCksIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLCByZWY6IHNjcm9sbEJvZHlSZWYsIGNoaWxkcmVuOiBfanN4cyhUYWJsZUNvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFRhYmxlU3R5bGUpLCB7IHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCB9KSB9LCBhcmlhUHJvcHMsIHsgY2hpbGRyZW46IFtjYXB0aW9uRWxlbWVudCwgYm9keUNvbEdyb3VwLCBzaG93SGVhZGVyICE9PSBmYWxzZSAmJiBfanN4KEhlYWRlciwgT2JqZWN0LmFzc2lnbih7fSwgaGVhZGVyUHJvcHMsIGNvbHVtbkNvbnRleHQpKSwgYm9keVRhYmxlLCBzdW1tYXJ5Tm9kZSAmJiAoX2pzeChGb290ZXIsIHsgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cywgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLCBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSkgfSkpO1xuICAgIH1cbiAgICBjb25zdCB0YWJsZVN0eWxlID0gT2JqZWN0LmFzc2lnbih7fSwgc3R5bGUpO1xuICAgIC8vIEFkZCBjc3MgdmFyIGZvciBzdGlja3kgaGVhZGVyIGB6SW5kZXhgIGNhbGNcbiAgICBpZiAoaXNTdGlja3kpIHtcbiAgICAgICAgdGFibGVTdHlsZVsnLS1jb2x1bW5zLWNvdW50J10gPSBmbGF0dGVuQ29sdW1ucy5sZW5ndGg7XG4gICAgfVxuICAgIGxldCBmdWxsVGFibGUgPSAoX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogY2xzeChwcmVmaXhDbHMsIGNsYXNzTmFtZSwge1xuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tcnRsYF06IGRpcmVjdGlvbiA9PT0gJ3J0bCcsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtc3RhcnQtc2hhZG93YF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtZW5kLXNoYWRvd2BdOiBob3Jpem9uU2Nyb2xsLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tZml4LXN0YXJ0LXNoYWRvdy1zaG93YF06IGhvcml6b25TY3JvbGwgJiYgc2hhZG93U3RhcnQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtZW5kLXNoYWRvdy1zaG93YF06IGhvcml6b25TY3JvbGwgJiYgc2hhZG93RW5kLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tbGF5b3V0LWZpeGVkYF06IHRhYmxlTGF5b3V0ID09PSAnZml4ZWQnLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tZml4ZWQtaGVhZGVyYF06IGZpeEhlYWRlcixcbiAgICAgICAgICAgIC8qKiBObyB1c2VkIGJ1dCBmb3IgY29tcGF0aWJsZSAqL1xuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tZml4ZWQtY29sdW1uYF06IGZpeENvbHVtbixcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LXNjcm9sbC1ob3Jpem9udGFsYF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1oYXMtZml4LXN0YXJ0YF06IChfYSA9IGZsYXR0ZW5Db2x1bW5zWzBdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZml4ZWQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1oYXMtZml4LWVuZGBdOiAoKF9iID0gZmxhdHRlbkNvbHVtbnNbZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5maXhlZCkgPT09ICdlbmQnLFxuICAgICAgICB9KSwgc3R5bGU6IHRhYmxlU3R5bGUsIGlkOiBpZCwgcmVmOiBmdWxsVGFibGVSZWYgfSwgZGF0YVByb3BzLCB7IGNoaWxkcmVuOiBbdGl0bGUgJiYgKF9qc3goUGFuZWwsIHsgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tdGl0bGVgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMudGl0bGUpLCBzdHlsZTogc3R5bGVzID09PSBudWxsIHx8IHN0eWxlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVzLnRpdGxlLCBjaGlsZHJlbjogdGl0bGUobWVyZ2VkRGF0YSkgfSkpLCBfanN4KFwiZGl2XCIsIHsgcmVmOiBzY3JvbGxCb2R5Q29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS1jb250YWluZXJgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuc2VjdGlvbiksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuc2VjdGlvbiwgY2hpbGRyZW46IGdyb3VwVGFibGVOb2RlIH0pLCBmb290ZXIgJiYgKF9qc3goUGFuZWwsIHsgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tZm9vdGVyYCwgY2xhc3NOYW1lcyA9PT0gbnVsbCB8fCBjbGFzc05hbWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjbGFzc05hbWVzLmZvb3RlciksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuZm9vdGVyLCBjaGlsZHJlbjogZm9vdGVyKG1lcmdlZERhdGEpIH0pKV0gfSkpKTtcbiAgICBpZiAoaG9yaXpvblNjcm9sbCkge1xuICAgICAgICBmdWxsVGFibGUgPSAoX2pzeChSZXNpemVPYnNlcnZlciwgeyBvblJlc2l6ZTogKHsgb2Zmc2V0V2lkdGggfSkgPT4gb25GdWxsVGFibGVSZXNpemUob2Zmc2V0V2lkdGgpLCBjaGlsZHJlbjogZnVsbFRhYmxlIH0pKTtcbiAgICB9XG4gICAgY29uc3QgZml4ZWRJbmZvTGlzdCA9IHVzZUZpeGVkSW5mbyhmbGF0dGVuQ29sdW1ucywgc3RpY2t5T2Zmc2V0cyk7XG4gICAgY29uc3QgVGFibGVDb250ZXh0VmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIC8vIFNjcm9sbFxuICAgICAgICBzY3JvbGxYOiBtZXJnZWRTY3JvbGxYLFxuICAgICAgICBzY3JvbGxJbmZvLFxuICAgICAgICBjbGFzc05hbWVzLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIC8vIFRhYmxlXG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGZpeGVkSW5mb0xpc3QsXG4gICAgICAgIGlzU3RpY2t5LFxuICAgICAgICBjb21wb25lbnRXaWR0aCxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBmaXhDb2x1bW4sXG4gICAgICAgIGhvcml6b25TY3JvbGwsXG4gICAgICAgIC8vIEJvZHlcbiAgICAgICAgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0LFxuICAgICAgICByb3dDbGFzc05hbWUsXG4gICAgICAgIGV4cGFuZGVkUm93Q2xhc3NOYW1lOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93Q2xhc3NOYW1lLFxuICAgICAgICBleHBhbmRJY29uOiBtZXJnZWRFeHBhbmRJY29uLFxuICAgICAgICBleHBhbmRhYmxlVHlwZSxcbiAgICAgICAgZXhwYW5kUm93QnlDbGljazogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRSb3dCeUNsaWNrLFxuICAgICAgICBleHBhbmRlZFJvd1JlbmRlcjogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlcixcbiAgICAgICAgZXhwYW5kZWRSb3dPZmZzZXQ6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dPZmZzZXQsXG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCxcbiAgICAgICAgZXhwYW5kSWNvbkNvbHVtbkluZGV4OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgICAgaW5kZW50U2l6ZTogZXhwYW5kYWJsZUNvbmZpZy5pbmRlbnRTaXplLFxuICAgICAgICBhbGxDb2x1bW5zRml4ZWRMZWZ0OiBmbGF0dGVuQ29sdW1ucy5ldmVyeShjb2wgPT4gY29sLmZpeGVkID09PSAnc3RhcnQnKSxcbiAgICAgICAgZW1wdHlOb2RlLFxuICAgICAgICAvLyBDb2x1bW5cbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgZmxhdHRlbkNvbHVtbnMsXG4gICAgICAgIG9uQ29sdW1uUmVzaXplLFxuICAgICAgICBjb2xXaWR0aHMsXG4gICAgICAgIC8vIFJvd1xuICAgICAgICBob3ZlclN0YXJ0Um93OiBzdGFydFJvdyxcbiAgICAgICAgaG92ZXJFbmRSb3c6IGVuZFJvdyxcbiAgICAgICAgb25Ib3ZlcixcbiAgICAgICAgcm93RXhwYW5kYWJsZTogZXhwYW5kYWJsZUNvbmZpZy5yb3dFeHBhbmRhYmxlLFxuICAgICAgICBvblJvdyxcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgICAgICBleHBhbmRlZEtleXM6IG1lcmdlZEV4cGFuZGVkS2V5cyxcbiAgICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lOiBtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgLy8gTWVhc3VyZSBSb3dcbiAgICAgICAgbWVhc3VyZVJvd1JlbmRlcixcbiAgICB9KSwgW1xuICAgICAgICAvLyBTY3JvbGxcbiAgICAgICAgbWVyZ2VkU2Nyb2xsWCxcbiAgICAgICAgc2Nyb2xsSW5mbyxcbiAgICAgICAgY2xhc3NOYW1lcyxcbiAgICAgICAgc3R5bGVzLFxuICAgICAgICAvLyBUYWJsZVxuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGdldENvbXBvbmVudCxcbiAgICAgICAgc2Nyb2xsYmFyU2l6ZSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBmaXhlZEluZm9MaXN0LFxuICAgICAgICBpc1N0aWNreSxcbiAgICAgICAgY29tcG9uZW50V2lkdGgsXG4gICAgICAgIGZpeEhlYWRlcixcbiAgICAgICAgZml4Q29sdW1uLFxuICAgICAgICBob3Jpem9uU2Nyb2xsLFxuICAgICAgICAvLyBCb2R5XG4gICAgICAgIG1lcmdlZFRhYmxlTGF5b3V0LFxuICAgICAgICByb3dDbGFzc05hbWUsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dDbGFzc05hbWUsXG4gICAgICAgIG1lcmdlZEV4cGFuZEljb24sXG4gICAgICAgIGV4cGFuZGFibGVUeXBlLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dSZW5kZXIsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dPZmZzZXQsXG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRJY29uQ29sdW1uSW5kZXgsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuaW5kZW50U2l6ZSxcbiAgICAgICAgZW1wdHlOb2RlLFxuICAgICAgICAvLyBDb2x1bW5cbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgZmxhdHRlbkNvbHVtbnMsXG4gICAgICAgIG9uQ29sdW1uUmVzaXplLFxuICAgICAgICBjb2xXaWR0aHMsXG4gICAgICAgIC8vIFJvd1xuICAgICAgICBzdGFydFJvdyxcbiAgICAgICAgZW5kUm93LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLnJvd0V4cGFuZGFibGUsXG4gICAgICAgIG9uUm93LFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgICAgIG1lcmdlZEV4cGFuZGVkS2V5cyxcbiAgICAgICAgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLFxuICAgICAgICByb3dIb3ZlcmFibGUsXG4gICAgICAgIG1lYXN1cmVSb3dSZW5kZXIsXG4gICAgXSk7XG4gICAgcmV0dXJuIF9qc3goVGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBUYWJsZUNvbnRleHRWYWx1ZSwgY2hpbGRyZW46IGZ1bGxUYWJsZSB9KTtcbn07XG5jb25zdCBSZWZUYWJsZSA9IFJlYWN0LmZvcndhcmRSZWYoVGFibGUpO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBSZWZUYWJsZS5kaXNwbGF5TmFtZSA9ICdUYWJsZSc7XG59XG5leHBvcnQgY29uc3QgZ2VuVGFibGUgPSAoc2hvdWxkVHJpZ2dlclJlbmRlcikgPT4ge1xuICAgIHJldHVybiBtYWtlSW1tdXRhYmxlKFJlZlRhYmxlLCBzaG91bGRUcmlnZ2VyUmVuZGVyKTtcbn07XG5jb25zdCBJbW11dGFibGVUYWJsZSA9IGdlblRhYmxlKCk7XG5JbW11dGFibGVUYWJsZS5FWFBBTkRfQ09MVU1OID0gRVhQQU5EX0NPTFVNTjtcbkltbXV0YWJsZVRhYmxlLklOVEVSTkFMX0hPT0tTID0gSU5URVJOQUxfSE9PS1M7XG5JbW11dGFibGVUYWJsZS5Db2x1bW4gPSBDb2x1bW47XG5JbW11dGFibGVUYWJsZS5Db2x1bW5Hcm91cCA9IENvbHVtbkdyb3VwO1xuSW1tdXRhYmxlVGFibGUuU3VtbWFyeSA9IEZvb3RlckNvbXBvbmVudHM7XG5leHBvcnQgZGVmYXVsdCBJbW11dGFibGVUYWJsZTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
695
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9zcmMvY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9jbHN4MiIsIl9SZXNpemVPYnNlcnZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0U2Nyb2xsQmFyU2l6ZSIsIl9ob29rcyIsIl9waWNrQXR0cnMiLCJfZ2V0IiwiX3dhcm5pbmciLCJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0JvZHkiLCJfQ29sR3JvdXAiLCJfY29uc3RhbnQiLCJfVGFibGVDb250ZXh0IiwiX0ZpeGVkSG9sZGVyIiwiX0Zvb3RlciIsIl9TdW1tYXJ5IiwiX0hlYWRlciIsIl91c2VDb2x1bW5zMyIsIl91c2VFeHBhbmQzIiwiX3VzZUZpeGVkSW5mbyIsIl91c2VGcmFtZSIsIl91c2VIb3ZlcjMiLCJfdXNlU3RpY2t5MiIsIl91c2VTdGlja3lPZmZzZXRzIiwiX1BhbmVsIiwiX3N0aWNreVNjcm9sbEJhciIsIl9Db2x1bW4iLCJfQ29sdW1uR3JvdXAiLCJfdmFsdWVVdGlsIiwiX3JlYWN0VXRpbCIsIl9pc0VxdWFsIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiREVGQVVMVF9QUkVGSVgiLCJleHBvcnRzIiwiRU1QVFlfREFUQSIsIkVNUFRZX1NDUk9MTF9UQVJHRVQiLCJkZWZhdWx0RW1wdHkiLCJUYWJsZSIsInRhYmxlUHJvcHMiLCJyZWYiLCJfY2xzeCIsIl9hIiwiX2IiLCJwcm9wcyIsImFzc2lnbiIsInJvd0tleSIsInByZWZpeENscyIsImVtcHR5VGV4dCIsImNsYXNzTmFtZSIsInJvd0NsYXNzTmFtZSIsInN0eWxlIiwiY2xhc3NOYW1lcyIsInN0eWxlcyIsImRhdGEiLCJzY3JvbGwiLCJ0YWJsZUxheW91dCIsImRpcmVjdGlvbiIsInRpdGxlIiwiZm9vdGVyIiwic3VtbWFyeSIsImNhcHRpb24iLCJpZCIsInNob3dIZWFkZXIiLCJjb21wb25lbnRzIiwib25Sb3ciLCJvbkhlYWRlclJvdyIsIm1lYXN1cmVSb3dSZW5kZXIiLCJvblNjcm9sbCIsImludGVybmFsSG9va3MiLCJ0cmFuc2Zvcm1Db2x1bW5zIiwiaW50ZXJuYWxSZWZzIiwidGFpbG9yIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJzdGlja3kiLCJfcHJvcHMkcm93SG92ZXJhYmxlIiwicm93SG92ZXJhYmxlIiwibWVyZ2VkRGF0YSIsImhhc0RhdGEiLCJsZW5ndGgiLCJ1c2VJbnRlcm5hbEhvb2tzIiwiSU5URVJOQUxfSE9PS1MiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmb3JFYWNoIiwibmFtZSIsIndhcm5pbmciLCJ1bmRlZmluZWQiLCJjb25jYXQiLCJnZXRDb21wb25lbnQiLCJ1c2VDYWxsYmFjayIsInBhdGgiLCJkZWZhdWx0Q29tcG9uZW50IiwiZ2V0VmFsdWUiLCJnZXRSb3dLZXkiLCJ1c2VNZW1vIiwicmVjb3JkIiwia2V5IiwiY3VzdG9taXplU2Nyb2xsQm9keSIsIl91c2VIb3ZlciIsInVzZUhvdmVyIiwiX3VzZUhvdmVyMiIsIl9zbGljZWRUb0FycmF5MiIsInN0YXJ0Um93IiwiZW5kUm93Iiwib25Ib3ZlciIsIl91c2VFeHBhbmQiLCJ1c2VFeHBhbmQiLCJfdXNlRXhwYW5kMiIsImV4cGFuZGFibGVDb25maWciLCJleHBhbmRhYmxlVHlwZSIsIm1lcmdlZEV4cGFuZGVkS2V5cyIsIm1lcmdlZEV4cGFuZEljb24iLCJtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUiLCJvblRyaWdnZXJFeHBhbmQiLCJzY3JvbGxYIiwieCIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiX1JlYWN0JHVzZVN0YXRlMiIsImNvbXBvbmVudFdpZHRoIiwic2V0Q29tcG9uZW50V2lkdGgiLCJfdXNlQ29sdW1ucyIsInVzZUNvbHVtbnMiLCJleHBhbmRhYmxlIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJjb2x1bW5UaXRsZSIsImV4cGFuZGVkS2V5cyIsImV4cGFuZEljb24iLCJleHBhbmRJY29uQ29sdW1uSW5kZXgiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwiX3VzZUNvbHVtbnMyIiwiY29sdW1ucyIsImZsYXR0ZW5Db2x1bW5zIiwiZmxhdHRlblNjcm9sbFgiLCJtZXJnZWRTY3JvbGxYIiwiY29sdW1uQ29udGV4dCIsImZ1bGxUYWJsZVJlZiIsInVzZVJlZiIsInNjcm9sbEhlYWRlclJlZiIsInNjcm9sbEJvZHlSZWYiLCJzY3JvbGxCb2R5Q29udGFpbmVyUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsIm5hdGl2ZUVsZW1lbnQiLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJjb25maWciLCJIVE1MRWxlbWVudCIsImluZGV4IiwidG9wIiwib2Zmc2V0IiwidmFsaWROdW1iZXJWYWx1ZSIsIm1lcmdlZEtleSIsInRhcmdldEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwic2Nyb2xsSW50b1ZpZXciLCJlbGVtZW50VG9wIiwib2Zmc2V0VG9wIiwic2Nyb2xsU3VtbWFyeVJlZiIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0Iiwic2hhZG93U3RhcnQiLCJzZXRTaGFkb3dTdGFydCIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2Iiwic2hhZG93RW5kIiwic2V0U2hhZG93RW5kIiwiX1JlYWN0JHVzZVN0YXRlNyIsIk1hcCIsIl9SZWFjdCR1c2VTdGF0ZTgiLCJjb2xzV2lkdGhzIiwidXBkYXRlQ29sc1dpZHRocyIsImNvbHNLZXlzIiwiZ2V0Q29sdW1uc0tleSIsInB1cmVDb2xXaWR0aHMiLCJtYXAiLCJjb2x1bW5LZXkiLCJjb2xXaWR0aHMiLCJqb2luIiwic3RpY2t5T2Zmc2V0cyIsInVzZVN0aWNreU9mZnNldHMiLCJmaXhIZWFkZXIiLCJ2YWxpZGF0ZVZhbHVlIiwieSIsImhvcml6b25TY3JvbGwiLCJCb29sZWFuIiwiZml4ZWQiLCJmaXhDb2x1bW4iLCJzb21lIiwiX3JlZiIsInN0aWNreVJlZiIsIl91c2VTdGlja3kiLCJ1c2VTdGlja3kiLCJpc1N0aWNreSIsIm9mZnNldEhlYWRlciIsIm9mZnNldFN1bW1hcnkiLCJvZmZzZXRTY3JvbGwiLCJzdGlja3lDbGFzc05hbWUiLCJjb250YWluZXIiLCJzdW1tYXJ5Tm9kZSIsImZpeEZvb3RlciIsImlzVmFsaWRFbGVtZW50IiwidHlwZSIsIlN1bW1hcnkiLCJzY3JvbGxYU3R5bGUiLCJzY3JvbGxZU3R5bGUiLCJzY3JvbGxUYWJsZVN0eWxlIiwib3ZlcmZsb3dZIiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3dYIiwid2lkdGgiLCJtaW5XaWR0aCIsIm9uQ29sdW1uUmVzaXplIiwid2lkdGhzIiwibmV3V2lkdGhzIiwiX3VzZVRpbWVvdXRMb2NrIiwidXNlVGltZW91dExvY2siLCJfdXNlVGltZW91dExvY2syIiwic2V0U2Nyb2xsVGFyZ2V0IiwiZ2V0U2Nyb2xsVGFyZ2V0IiwiZm9yY2VTY3JvbGwiLCJzY3JvbGxMZWZ0IiwidGFyZ2V0Iiwic2V0VGltZW91dCIsIl9SZWFjdCR1c2VTdGF0ZTkiLCJfUmVhY3QkdXNlU3RhdGUxMCIsInNjcm9sbEluZm8iLCJzZXRTY3JvbGxJbmZvIiwib25JbnRlcm5hbFNjcm9sbCIsInVzZUV2ZW50IiwiX3JlZjIiLCJjdXJyZW50VGFyZ2V0IiwibWVyZ2VkU2Nyb2xsTGVmdCIsImNvbXBhcmVUYXJnZXQiLCJzZXRTY3JvbGxMZWZ0IiwibWVhc3VyZVRhcmdldCIsImFic1Njcm9sbFN0YXJ0IiwiTWF0aCIsImFicyIsIm9yaSIsIm5leHRTY3JvbGxJbmZvIiwiaXNFcXVhbCIsIm9uQm9keVNjcm9sbCIsInRyaWdnZXJPblNjcm9sbCIsImdldERPTSIsIm9uRnVsbFRhYmxlUmVzaXplIiwib2Zmc2V0V2lkdGgiLCJfYyIsImNoZWNrU2Nyb2xsQmFyVmlzaWJsZSIsIm1lcmdlZFdpZHRoIiwidXNlTGF5b3V0RWZmZWN0IiwibW91bnRlZCIsInVzZUVmZmVjdCIsIl9SZWFjdCR1c2VTdGF0ZTExIiwiX1JlYWN0JHVzZVN0YXRlMTIiLCJzY3JvbGxiYXJTaXplIiwic2V0U2Nyb2xsYmFyU2l6ZSIsIkVsZW1lbnQiLCJnZXRUYXJnZXRTY3JvbGxCYXJTaXplIiwiYm9keSIsInJlbmRlckZpeGVkSGVhZGVyVGFibGUiLCJmaXhlZEhvbGRlclBhc3NQcm9wcyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJfanN4IiwiSGVhZGVyIiwiRm9vdGVyIiwicmVuZGVyRml4ZWRGb290ZXJUYWJsZSIsIlRhYmxlQ29tcG9uZW50IiwibWVyZ2VkVGFibGVMYXlvdXQiLCJfcmVmMyIsImVsbGlwc2lzIiwiZ3JvdXBUYWJsZU5vZGUiLCJoZWFkZXJQcm9wcyIsImNvbHVtQ291bnQiLCJlbXB0eU5vZGUiLCJib2R5VGFibGUiLCJCb2R5IiwibWVhc3VyZUNvbHVtbldpZHRoIiwiYm9keUNvbEdyb3VwIiwiQ29sR3JvdXAiLCJfcmVmNCIsImNhcHRpb25FbGVtZW50IiwiZGF0YVByb3BzIiwicGlja0F0dHJzIiwiYXJpYVByb3BzIiwiYXJpYSIsImJvZHlDb250ZW50IiwiX3JlZjUiLCJjb2xXaWR0aCIsIk51bWJlciIsImlzTmFOIiwiZml4ZWRIb2xkZXJQcm9wcyIsIm5vRGF0YSIsIm1heENvbnRlbnRTY3JvbGwiLCJGaXhlZEhvbGRlciIsInN0aWNreVRvcE9mZnNldCIsImNvbEdyb3VwIiwic3RpY2t5Qm90dG9tT2Zmc2V0IiwiU3RpY2t5U2Nyb2xsQmFyIiwiY29udGVudCIsImNsc3giLCJ0YWJsZVN0eWxlIiwiZnVsbFRhYmxlIiwiX2RlZmluZVByb3BlcnR5MiIsIlBhbmVsIiwic2VjdGlvbiIsIlJlc2l6ZU9ic2VydmVyIiwib25SZXNpemUiLCJfcmVmNiIsImZpeGVkSW5mb0xpc3QiLCJ1c2VGaXhlZEluZm8iLCJUYWJsZUNvbnRleHRWYWx1ZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiZXhwYW5kUm93QnlDbGljayIsImV4cGFuZGVkUm93T2Zmc2V0IiwiaW5kZW50U2l6ZSIsImFsbENvbHVtbnNGaXhlZExlZnQiLCJldmVyeSIsImNvbCIsImhvdmVyU3RhcnRSb3ciLCJob3ZlckVuZFJvdyIsInJvd0V4cGFuZGFibGUiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJUYWJsZUNvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUmVmVGFibGUiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJnZW5UYWJsZSIsInNob3VsZFRyaWdnZXJSZW5kZXIiLCJtYWtlSW1tdXRhYmxlIiwiSW1tdXRhYmxlVGFibGUiLCJFWFBBTkRfQ09MVU1OIiwiQ29sdW1uIiwiQ29sdW1uR3JvdXAiLCJGb290ZXJDb21wb25lbnRzIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUM0QkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLElBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFXLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLFNBQUEsR0FBQVQsc0JBQUEs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RUFBQTtJQUFDQyxLQUFLLEVBQUVkLGlCQUFpQjtJQUFBakQsUUFBQSxFQUFHd0M7RUFBUyxDQUFBLENBQXlCO0FBQzdGLENBQUM7QUFNRCxJQUFNd0IsUUFBUSxnQkFBR3JWLEtBQUssQ0FBQ3NWLFVBQVUsQ0FBQ3JTLEtBQUssQ0FBd0I7QUFFL0QsSUFBSTRDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO0VBQ3pDc1AsUUFBUSxDQUFDRSxXQUFXLEdBQUcsT0FBTztBQUNoQztBQUVPLElBQU1DLFFBQVEsR0FBQTNTLE9BQUEsQ0FBQTJTLFFBQUEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxtQkFBdUQsRUFBSTtFQUNsRixPQUFPLElBQUFDLDJCQUFhLEVBQUNMLFFBQVEsRUFBRUksbUJBQW1CLENBQUM7QUFDckQsQ0FBQztBQUVELElBQU1FLGNBQWMsR0FBR0gsUUFBUSxDQUFBLENBQUU7QUFVaENHLGNBQXFDLENBQUNDLGFBQWEsR0FBR0EsdUJBQWE7QUFFbkVELGNBQXFDLENBQUMvUCxjQUFjLEdBQUdBLHdCQUFjO0FBRXJFK1AsY0FBcUMsQ0FBQ0UsTUFBTSxHQUFHQSxrQkFBTTtBQUVyREYsY0FBcUMsQ0FBQ0csV0FBVyxHQUFHQSx1QkFBVztBQUUvREgsY0FBcUMsQ0FBQ25JLE9BQU8sR0FBR3VJLHdCQUFnQjtBQUFDLElBQUFDLFFBQUEsR0FBQW5ULE9BQUEsY0FFbkQ4UyxjQUFvQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC9UYWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNsc3ggfSBmcm9tICdjbHN4JztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICcuLi8uLi8uLi9SZXNpemVPYnNlcnZlcic7XG5pbXBvcnQgeyBnZXRUYXJnZXRTY3JvbGxCYXJTaXplIH0gZnJvbSAnLi91dGlscy9nZXRTY3JvbGxCYXJTaXplJztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgYXMgdXNlRXZlbnQgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCBwaWNrQXR0cnMgZnJvbSAnLi91dGlscy9waWNrQXR0cnMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vdXRpbHMvZ2V0JztcbmltcG9ydCB3YXJuaW5nIGZyb20gJy4vdXRpbHMvd2FybmluZyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQm9keSBmcm9tICcuL0JvZHknO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4vQ29sR3JvdXAnO1xuaW1wb3J0IHsgRVhQQU5EX0NPTFVNTiwgSU5URVJOQUxfSE9PS1MgfSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCBUYWJsZUNvbnRleHQsIHsgbWFrZUltbXV0YWJsZSB9IGZyb20gJy4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEZpeGVkSG9sZGVyIGZyb20gJy4vRml4ZWRIb2xkZXInO1xuaW1wb3J0IEZvb3RlciwgeyBGb290ZXJDb21wb25lbnRzIH0gZnJvbSAnLi9Gb290ZXInO1xuaW1wb3J0IFN1bW1hcnkgZnJvbSAnLi9Gb290ZXIvU3VtbWFyeSc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyL0hlYWRlcic7XG5pbXBvcnQgdXNlQ29sdW1ucyBmcm9tICcuL2hvb2tzL3VzZUNvbHVtbnMnO1xuaW1wb3J0IHVzZUV4cGFuZCBmcm9tICcuL2hvb2tzL3VzZUV4cGFuZCc7XG5pbXBvcnQgdXNlRml4ZWRJbmZvIGZyb20gJy4vaG9va3MvdXNlRml4ZWRJbmZvJztcbmltcG9ydCB7IHVzZVRpbWVvdXRMb2NrIH0gZnJvbSAnLi9ob29rcy91c2VGcmFtZSc7XG5pbXBvcnQgdXNlSG92ZXIgZnJvbSAnLi9ob29rcy91c2VIb3Zlcic7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcbmltcG9ydCB1c2VTdGlja3lPZmZzZXRzIGZyb20gJy4vaG9va3MvdXNlU3RpY2t5T2Zmc2V0cyc7XG5pbXBvcnQgUGFuZWwgZnJvbSAnLi9QYW5lbCc7XG5pbXBvcnQgU3RpY2t5U2Nyb2xsQmFyIGZyb20gJy4vc3RpY2t5U2Nyb2xsQmFyJztcbmltcG9ydCBDb2x1bW4gZnJvbSAnLi9zdWdhci9Db2x1bW4nO1xuaW1wb3J0IENvbHVtbkdyb3VwIGZyb20gJy4vc3VnYXIvQ29sdW1uR3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSwgdmFsaWRhdGVWYWx1ZSwgdmFsaWROdW1iZXJWYWx1ZSB9IGZyb20gJy4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCB7IGdldERPTSB9IGZyb20gJy4uLy4uLy4uL1Jlc2l6ZU9ic2VydmVyL3V0aWxzL3JlYWN0VXRpbCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICcuL3NlbGVjdG9yLWNvbnRleHQvaXNFcXVhbCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BSRUZJWCA9ICdvbS10YWJsZSc7XG4vLyBVc2VkIGZvciBjb25kaXRpb25zIGNhY2hlXG5jb25zdCBFTVBUWV9EQVRBID0gW107XG4vLyBVc2VkIGZvciBjdXN0b21pemUgc2Nyb2xsXG5jb25zdCBFTVBUWV9TQ1JPTExfVEFSR0VUID0ge307XG5mdW5jdGlvbiBkZWZhdWx0RW1wdHkoKSB7XG4gICAgcmV0dXJuICdObyBEYXRhJztcbn1cbmNvbnN0IFRhYmxlID0gKHRhYmxlUHJvcHMsIHJlZikgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgcHJvcHMgPSBPYmplY3QuYXNzaWduKHsgcm93S2V5OiAna2V5JywgcHJlZml4Q2xzOiBERUZBVUxUX1BSRUZJWCwgZW1wdHlUZXh0OiBkZWZhdWx0RW1wdHkgfSwgdGFibGVQcm9wcyk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIGNsYXNzTmFtZSwgcm93Q2xhc3NOYW1lLCBzdHlsZSwgY2xhc3NOYW1lcywgc3R5bGVzLCBkYXRhLCByb3dLZXksIHNjcm9sbCwgdGFibGVMYXlvdXQsIGRpcmVjdGlvbiwgXG4gICAgLy8gQWRkaXRpb25hbCBQYXJ0XG4gICAgdGl0bGUsIGZvb3Rlciwgc3VtbWFyeSwgY2FwdGlvbiwgXG4gICAgLy8gQ3VzdG9taXplXG4gICAgaWQsIHNob3dIZWFkZXIsIGNvbXBvbmVudHMsIGVtcHR5VGV4dCwgb25Sb3csIG9uSGVhZGVyUm93LCBcbiAgICAvLyBNZWFzdXJlIFJvd1xuICAgIG1lYXN1cmVSb3dSZW5kZXIsIFxuICAgIC8vIEV2ZW50c1xuICAgIG9uU2Nyb2xsLCBcbiAgICAvLyBJbnRlcm5hbFxuICAgIGludGVybmFsSG9va3MsIHRyYW5zZm9ybUNvbHVtbnMsIGludGVybmFsUmVmcywgdGFpbG9yLCBnZXRDb250YWluZXJXaWR0aCwgc3RpY2t5LCByb3dIb3ZlcmFibGUgPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkRGF0YSA9IGRhdGEgfHwgRU1QVFlfREFUQTtcbiAgICBjb25zdCBoYXNEYXRhID0gISFtZXJnZWREYXRhLmxlbmd0aDtcbiAgICBjb25zdCB1c2VJbnRlcm5hbEhvb2tzID0gaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1M7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFdhcm5pbmcgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFtcbiAgICAgICAgICAgICdvblJvd0NsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0RvdWJsZUNsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0NvbnRleHRNZW51JyxcbiAgICAgICAgICAgICdvblJvd01vdXNlRW50ZXInLFxuICAgICAgICAgICAgJ29uUm93TW91c2VMZWF2ZScsXG4gICAgICAgIF0uZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgICAgIHdhcm5pbmcocHJvcHNbbmFtZV0gPT09IHVuZGVmaW5lZCwgYFxcYCR7bmFtZX1cXGAgaXMgcmVtb3ZlZCwgcGxlYXNlIHVzZSBcXGBvblJvd1xcYCBpbnN0ZWFkLmApO1xuICAgICAgICB9KTtcbiAgICAgICAgd2FybmluZyghKCdnZXRCb2R5V3JhcHBlcicgaW4gcHJvcHMpLCAnYGdldEJvZHlXcmFwcGVyYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGN1c3RvbSBgY29tcG9uZW50c2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ3VzdG9taXplID09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldENvbXBvbmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKChwYXRoLCBkZWZhdWx0Q29tcG9uZW50KSA9PiBnZXRWYWx1ZShjb21wb25lbnRzLCBwYXRoKSB8fCBkZWZhdWx0Q29tcG9uZW50LCBbY29tcG9uZW50c10pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHJvd0tleTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVjb3JkICYmIHJlY29yZFtyb3dLZXldO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKGtleSAhPT0gdW5kZWZpbmVkLCAnRWFjaCByZWNvcmQgaW4gdGFibGUgc2hvdWxkIGhhdmUgYSB1bmlxdWUgYGtleWAgcHJvcCwgb3Igc2V0IGByb3dLZXlgIHRvIGFuIHVuaXF1ZSBwcmltYXJ5IGtleS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH07XG4gICAgfSwgW3Jvd0tleV0pO1xuICAgIGNvbnN0IGN1c3RvbWl6ZVNjcm9sbEJvZHkgPSBnZXRDb21wb25lbnQoWydib2R5J10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gSG92ZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc3RhcnRSb3csIGVuZFJvdywgb25Ib3Zlcl0gPSB1c2VIb3ZlcigpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gRXhwYW5kID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbZXhwYW5kYWJsZUNvbmZpZywgZXhwYW5kYWJsZVR5cGUsIG1lcmdlZEV4cGFuZGVkS2V5cywgbWVyZ2VkRXhwYW5kSWNvbiwgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLCBvblRyaWdnZXJFeHBhbmQsXSA9IHVzZUV4cGFuZChwcm9wcywgbWVyZ2VkRGF0YSwgZ2V0Um93S2V5KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbHVtbiA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsWCA9IHNjcm9sbCA9PT0gbnVsbCB8fCBzY3JvbGwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbC54O1xuICAgIGNvbnN0IFtjb21wb25lbnRXaWR0aCwgc2V0Q29tcG9uZW50V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBmbGF0dGVuU2Nyb2xsWF0gPSB1c2VDb2x1bW5zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcm9wcyksIGV4cGFuZGFibGVDb25maWcpLCB7IGV4cGFuZGFibGU6ICEhZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlciwgY29sdW1uVGl0bGU6IGV4cGFuZGFibGVDb25maWcuY29sdW1uVGl0bGUsIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLCBnZXRSb3dLZXksXG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCwgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbiwgZXhwYW5kSWNvbkNvbHVtbkluZGV4OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCwgZGlyZWN0aW9uLCBzY3JvbGxXaWR0aDogdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIHNjcm9sbFggPT09ICdudW1iZXInID8gc2Nyb2xsWCA6IG51bGwsIGNsaWVudFdpZHRoOiBjb21wb25lbnRXaWR0aCB9KSwgdXNlSW50ZXJuYWxIb29rcyA/IHRyYW5zZm9ybUNvbHVtbnMgOiBudWxsKTtcbiAgICBjb25zdCBtZXJnZWRTY3JvbGxYID0gZmxhdHRlblNjcm9sbFggIT09IG51bGwgJiYgZmxhdHRlblNjcm9sbFggIT09IHZvaWQgMCA/IGZsYXR0ZW5TY3JvbGxYIDogc2Nyb2xsWDtcbiAgICBjb25zdCBjb2x1bW5Db250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucyB9KSwgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGZ1bGxUYWJsZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxIZWFkZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsQm9keVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxCb2R5Q29udGFpbmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiBmdWxsVGFibGVSZWYuY3VycmVudCxcbiAgICAgICAgICAgIHNjcm9sbFRvOiBjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbEJvZHlSZWYuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5hdGl2ZSBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbmRleCwgdG9wLCBrZXksIG9mZnNldCB9ID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWROdW1iZXJWYWx1ZSh0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0b3AgbW9kZSwgb2Zmc2V0IGlzIGlnbm9yZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHsgdG9wIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkS2V5ID0ga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogZ2V0Um93S2V5KG1lcmdlZERhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtcm93LWtleT1cIiR7bWVyZ2VkS2V5fVwiXWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvZmZzZXQsIHVzZSBzY3JvbGxJbnRvVmlldyBmb3IgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIG9mZnNldCwgdXNlIGVsZW1lbnQncyBvZmZzZXRUb3AgKyBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvcCA9IHRhcmdldEVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxCb2R5UmVmLmN1cnJlbnQuc2Nyb2xsVG8oeyB0b3A6IGVsZW1lbnRUb3AgKyBvZmZzZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfYiA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjcm9sbFRvKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdG8gcHJveHlcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQm9keVJlZi5jdXJyZW50LnNjcm9sbFRvKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsU3VtbWFyeVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbc2hhZG93U3RhcnQsIHNldFNoYWRvd1N0YXJ0XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hhZG93RW5kLCBzZXRTaGFkb3dFbmRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb2xzV2lkdGhzLCB1cGRhdGVDb2xzV2lkdGhzXSA9IFJlYWN0LnVzZVN0YXRlKG5ldyBNYXAoKSk7XG4gICAgLy8gQ29udmVydCBtYXAgdG8gbnVtYmVyIHdpZHRoXG4gICAgY29uc3QgY29sc0tleXMgPSBnZXRDb2x1bW5zS2V5KGZsYXR0ZW5Db2x1bW5zKTtcbiAgICBjb25zdCBwdXJlQ29sV2lkdGhzID0gY29sc0tleXMubWFwKGNvbHVtbktleSA9PiBjb2xzV2lkdGhzLmdldChjb2x1bW5LZXkpKTtcbiAgICBjb25zdCBjb2xXaWR0aHMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHB1cmVDb2xXaWR0aHMsIFtwdXJlQ29sV2lkdGhzLmpvaW4oJ18nKV0pO1xuICAgIGNvbnN0IHN0aWNreU9mZnNldHMgPSB1c2VTdGlja3lPZmZzZXRzKGNvbFdpZHRocywgZmxhdHRlbkNvbHVtbnMpO1xuICAgIGNvbnN0IGZpeEhlYWRlciA9IHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKHNjcm9sbC55KTtcbiAgICBjb25zdCBob3Jpem9uU2Nyb2xsID0gKHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKG1lcmdlZFNjcm9sbFgpKSB8fCBCb29sZWFuKGV4cGFuZGFibGVDb25maWcuZml4ZWQpO1xuICAgIGNvbnN0IGZpeENvbHVtbiA9IGhvcml6b25TY3JvbGwgJiYgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBmaXhlZCB9KSA9PiBmaXhlZCk7XG4gICAgLy8gU3RpY2t5XG4gICAgY29uc3Qgc3RpY2t5UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHsgaXNTdGlja3ksIG9mZnNldEhlYWRlciwgb2Zmc2V0U3VtbWFyeSwgb2Zmc2V0U2Nyb2xsLCBzdGlja3lDbGFzc05hbWUsIGNvbnRhaW5lciB9ID0gdXNlU3RpY2t5KHN0aWNreSwgcHJlZml4Q2xzKTtcbiAgICAvLyBGb290ZXIgKEZpeCBmb290ZXIgbXVzdCBmaXhlZCBoZWFkZXIpXG4gICAgY29uc3Qgc3VtbWFyeU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHN1bW1hcnkgPT09IG51bGwgfHwgc3VtbWFyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VtbWFyeShtZXJnZWREYXRhKSwgW3N1bW1hcnksIG1lcmdlZERhdGFdKTtcbiAgICBjb25zdCBmaXhGb290ZXIgPSAoZml4SGVhZGVyIHx8IGlzU3RpY2t5KSAmJlxuICAgICAgICBSZWFjdC5pc1ZhbGlkRWxlbWVudChzdW1tYXJ5Tm9kZSkgJiZcbiAgICAgICAgc3VtbWFyeU5vZGUudHlwZSA9PT0gU3VtbWFyeSAmJlxuICAgICAgICBzdW1tYXJ5Tm9kZS5wcm9wcy5maXhlZDtcbiAgICAvLyBTY3JvbGxcbiAgICBsZXQgc2Nyb2xsWFN0eWxlO1xuICAgIGxldCBzY3JvbGxZU3R5bGU7XG4gICAgbGV0IHNjcm9sbFRhYmxlU3R5bGU7XG4gICAgaWYgKGZpeEhlYWRlcikge1xuICAgICAgICBzY3JvbGxZU3R5bGUgPSB7XG4gICAgICAgICAgICBvdmVyZmxvd1k6IGhhc0RhdGEgPyAnc2Nyb2xsJyA6ICdhdXRvJyxcbiAgICAgICAgICAgIG1heEhlaWdodDogc2Nyb2xsLnksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIHNjcm9sbFhTdHlsZSA9IHsgb3ZlcmZsb3dYOiAnYXV0bycgfTtcbiAgICAgICAgLy8gV2hlbiBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIsIHNob3VsZCBoaWRlIGl0XG4gICAgICAgIGlmICghZml4SGVhZGVyKSB7XG4gICAgICAgICAgICBzY3JvbGxZU3R5bGUgPSB7IG92ZXJmbG93WTogJ2hpZGRlbicgfTtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUYWJsZVN0eWxlID0ge1xuICAgICAgICAgICAgd2lkdGg6IG1lcmdlZFNjcm9sbFggPT09IHRydWUgPyAnYXV0bycgOiBtZXJnZWRTY3JvbGxYLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgb25Db2x1bW5SZXNpemUgPSBSZWFjdC51c2VDYWxsYmFjaygoY29sdW1uS2V5LCB3aWR0aCkgPT4ge1xuICAgICAgICB1cGRhdGVDb2xzV2lkdGhzKHdpZHRocyA9PiB7XG4gICAgICAgICAgICBpZiAod2lkdGhzLmdldChjb2x1bW5LZXkpICE9PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRocyA9IG5ldyBNYXAod2lkdGhzKTtcbiAgICAgICAgICAgICAgICBuZXdXaWR0aHMuc2V0KGNvbHVtbktleSwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdXaWR0aHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd2lkdGhzO1xuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgW3NldFNjcm9sbFRhcmdldCwgZ2V0U2Nyb2xsVGFyZ2V0XSA9IHVzZVRpbWVvdXRMb2NrKG51bGwpO1xuICAgIGZ1bmN0aW9uIGZvcmNlU2Nyb2xsKHNjcm9sbExlZnQsIHRhcmdldCkge1xuICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQoc2Nyb2xsTGVmdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGFyZ2V0LnNjcm9sbExlZnQgIT09IHNjcm9sbExlZnQpIHtcbiAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgIC8vIERlbGF5IHRvIGZvcmNlIHNjcm9sbCBwb3NpdGlvbiBpZiBub3Qgc3luY1xuICAgICAgICAgICAgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBbc2Nyb2xsSW5mbywgc2V0U2Nyb2xsSW5mb10gPSBSZWFjdC51c2VTdGF0ZShbMCwgMF0pO1xuICAgIGNvbnN0IG9uSW50ZXJuYWxTY3JvbGwgPSB1c2VFdmVudCgoeyBjdXJyZW50VGFyZ2V0LCBzY3JvbGxMZWZ0IH0pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBtZXJnZWRTY3JvbGxMZWZ0ID0gdHlwZW9mIHNjcm9sbExlZnQgPT09ICdudW1iZXInID8gc2Nyb2xsTGVmdCA6IGN1cnJlbnRUYXJnZXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3QgY29tcGFyZVRhcmdldCA9IGN1cnJlbnRUYXJnZXQgfHwgRU1QVFlfU0NST0xMX1RBUkdFVDtcbiAgICAgICAgaWYgKCFnZXRTY3JvbGxUYXJnZXQoKSB8fCBnZXRTY3JvbGxUYXJnZXQoKSA9PT0gY29tcGFyZVRhcmdldCkge1xuICAgICAgICAgICAgc2V0U2Nyb2xsVGFyZ2V0KGNvbXBhcmVUYXJnZXQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsSGVhZGVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsQm9keVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbFN1bW1hcnlSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBmb3JjZVNjcm9sbChtZXJnZWRTY3JvbGxMZWZ0LCAoX2EgPSBzdGlja3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldFNjcm9sbExlZnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lYXN1cmVUYXJnZXQgPSBjdXJyZW50VGFyZ2V0IHx8IHNjcm9sbEhlYWRlclJlZi5jdXJyZW50O1xuICAgICAgICBpZiAobWVhc3VyZVRhcmdldCkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsV2lkdGggPSBcbiAgICAgICAgICAgIC8vIFNob3VsZCB1c2UgbWVyZ2VkU2Nyb2xsWCBpbiB2aXJ0dWFsIHRhYmxlKHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yID09PSB0cnVlKVxuICAgICAgICAgICAgdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIG1lcmdlZFNjcm9sbFggPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBtZXJnZWRTY3JvbGxYXG4gICAgICAgICAgICAgICAgOiBtZWFzdXJlVGFyZ2V0LnNjcm9sbFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50V2lkdGggPSBtZWFzdXJlVGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgYWJzU2Nyb2xsU3RhcnQgPSBNYXRoLmFicyhtZXJnZWRTY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgIHNldFNjcm9sbEluZm8ob3JpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsSW5mbyA9IFthYnNTY3JvbGxTdGFydCwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWwob3JpLCBuZXh0U2Nyb2xsSW5mbykgPyBvcmkgOiBuZXh0U2Nyb2xsSW5mbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3BhY2UgdG8gc2Nyb2xsXG4gICAgICAgICAgICBpZiAoc2Nyb2xsV2lkdGggPT09IGNsaWVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHNldFNoYWRvd0VuZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoYWJzU2Nyb2xsU3RhcnQgPiAwKTtcbiAgICAgICAgICAgIHNldFNoYWRvd0VuZChhYnNTY3JvbGxTdGFydCA8IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGggLSAxKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uQm9keVNjcm9sbCA9IHVzZUV2ZW50KChlKSA9PiB7XG4gICAgICAgIG9uSW50ZXJuYWxTY3JvbGwoZSk7XG4gICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyT25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwgJiYgc2Nyb2xsQm9keVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBvbkludGVybmFsU2Nyb2xsKHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBnZXRET00oc2Nyb2xsQm9keVJlZi5jdXJyZW50KSxcbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiAoX2EgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRTaGFkb3dTdGFydChmYWxzZSk7XG4gICAgICAgICAgICBzZXRTaGFkb3dFbmQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbkZ1bGxUYWJsZVJlc2l6ZSA9IChvZmZzZXRXaWR0aCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jaGVja1Njcm9sbEJhclZpc2libGUoKTtcbiAgICAgICAgbGV0IG1lcmdlZFdpZHRoID0gKF9jID0gb2Zmc2V0V2lkdGggIT09IG51bGwgJiYgb2Zmc2V0V2lkdGggIT09IHZvaWQgMCA/IG9mZnNldFdpZHRoIDogKF9iID0gZnVsbFRhYmxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgZ2V0Q29udGFpbmVyV2lkdGggJiYgZnVsbFRhYmxlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lcmdlZFdpZHRoID0gZ2V0Q29udGFpbmVyV2lkdGgoZnVsbFRhYmxlUmVmLmN1cnJlbnQsIG1lcmdlZFdpZHRoKSB8fCBtZXJnZWRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkV2lkdGggIT09IGNvbXBvbmVudFdpZHRoKSB7XG4gICAgICAgICAgICB0cmlnZ2VyT25TY3JvbGwoKTtcbiAgICAgICAgICAgIHNldENvbXBvbmVudFdpZHRoKG1lcmdlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICAgICAgICAgIG9uRnVsbFRhYmxlUmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9LCBbaG9yaXpvblNjcm9sbF0pO1xuICAgIC8vIFN5bmMgc2Nyb2xsIGJhciB3aGVuIGluaXQgb3IgYGhvcml6b25TY3JvbGxgLCBgZGF0YWAgYW5kIGBjb2x1bW5zLmxlbmd0aGAgY2hhbmdlZFxuICAgIGNvbnN0IG1vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIG9uRnVsbFRhYmxlUmVzaXplIHdpbGwgYmUgdHJpZ2dlciBvbmNlIHdoZW4gUmVzaXplT2JzZXJ2ZXIgaXMgbW91bnRlZFxuICAgICAgICAvLyBUaGlzIHdpbGwgcmVkdWNlIG9uZSBkdXBsaWNhdGVkIHRyaWdnZXJPblNjcm9sbCB0aW1lXG4gICAgICAgIGlmIChtb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHRyaWdnZXJPblNjcm9sbCgpO1xuICAgICAgICB9XG4gICAgfSwgW2hvcml6b25TY3JvbGwsIGRhdGEsIGNvbHVtbnMubGVuZ3RoXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IEVmZmVjdHMgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IFtzY3JvbGxiYXJTaXplLCBzZXRTY3JvbGxiYXJTaXplXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdGFpbG9yIHx8ICF1c2VJbnRlcm5hbEhvb2tzKSB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5UmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5Q29udGFpbmVyUmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT0gSU5URVJOQUwgSE9PS1MgPT09PT09PT09PT09PT09PT09XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgaW50ZXJuYWxSZWZzKSB7XG4gICAgICAgICAgICBpbnRlcm5hbFJlZnMuYm9keS5jdXJyZW50ID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PSBSZW5kZXI6IEZ1bmMgPT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgPSBSZWFjdC51c2VDYWxsYmFjayhmaXhlZEhvbGRlclBhc3NQcm9wcyA9PiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChIZWFkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzKSksIGZpeEZvb3RlciA9PT0gJ3RvcCcgJiYgX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSwgW2ZpeEZvb3Rlciwgc3VtbWFyeU5vZGVdKTtcbiAgICBjb25zdCByZW5kZXJGaXhlZEZvb3RlclRhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soZml4ZWRIb2xkZXJQYXNzUHJvcHMgPT4gX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSksIFtzdW1tYXJ5Tm9kZV0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUmVuZGVyOiBOb2RlID09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBUYWJsZUNvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ3RhYmxlJ10sICd0YWJsZScpO1xuICAgIC8vIFRhYmxlIGxheW91dFxuICAgIGNvbnN0IG1lcmdlZFRhYmxlTGF5b3V0ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICh0YWJsZUxheW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYmxlTGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2Nyb2xsLnggaXMgbWF4LWNvbnRlbnQsIG5vIG5lZWQgdG8gZml4IHRhYmxlIGxheW91dFxuICAgICAgICAvLyBpdCdzIHdpZHRoIHNob3VsZCBzdHJldGNoIG91dCB0byBmaXQgY29udGVudFxuICAgICAgICBpZiAoZml4Q29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyA/ICdhdXRvJyA6ICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSB8fCBmbGF0dGVuQ29sdW1ucy5zb21lKCh7IGVsbGlwc2lzIH0pID0+IGVsbGlwc2lzKSkge1xuICAgICAgICAgICAgcmV0dXJuICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICB9LCBbZml4SGVhZGVyLCBmaXhDb2x1bW4sIGZsYXR0ZW5Db2x1bW5zLCB0YWJsZUxheW91dCwgaXNTdGlja3ldKTtcbiAgICBsZXQgZ3JvdXBUYWJsZU5vZGU7XG4gICAgLy8gSGVhZGVyIHByb3BzXG4gICAgY29uc3QgaGVhZGVyUHJvcHMgPSB7XG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgY29sdW1Db3VudDogZmxhdHRlbkNvbHVtbnMubGVuZ3RoLFxuICAgICAgICBzdGlja3lPZmZzZXRzLFxuICAgICAgICBvbkhlYWRlclJvdyxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBzY3JvbGwsXG4gICAgfTtcbiAgICAvLyBFbXB0eVxuICAgIGNvbnN0IGVtcHR5Tm9kZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoaGFzRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBlbXB0eVRleHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBlbXB0eVRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW1wdHlUZXh0O1xuICAgIH0sIFtoYXNEYXRhLCBlbXB0eVRleHRdKTtcbiAgICAvLyBCb2R5XG4gICAgY29uc3QgYm9keVRhYmxlID0gKF9qc3goQm9keSwgeyBkYXRhOiBtZXJnZWREYXRhLCBtZWFzdXJlQ29sdW1uV2lkdGg6IGZpeEhlYWRlciB8fCBob3Jpem9uU2Nyb2xsIHx8IGlzU3RpY2t5IH0pKTtcbiAgICBjb25zdCBib2R5Q29sR3JvdXAgPSAoX2pzeChDb2xHcm91cCwgeyBjb2xXaWR0aHM6IGZsYXR0ZW5Db2x1bW5zLm1hcCgoeyB3aWR0aCB9KSA9PiB3aWR0aCksIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zIH0pKTtcbiAgICBjb25zdCBjYXB0aW9uRWxlbWVudCA9IGNhcHRpb24gIT09IG51bGwgJiYgY2FwdGlvbiAhPT0gdW5kZWZpbmVkID8gKF9qc3goXCJjYXB0aW9uXCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWNhcHRpb25gLCBjaGlsZHJlbjogY2FwdGlvbiB9KSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGRhdGE6IHRydWUgfSk7XG4gICAgY29uc3QgYXJpYVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGFyaWE6IHRydWUgfSk7XG4gICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSkge1xuICAgICAgICAvLyA+Pj4+Pj4gRml4ZWQgSGVhZGVyXG4gICAgICAgIGxldCBib2R5Q29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXN0b21pemVTY3JvbGxCb2R5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBib2R5Q29udGVudCA9IGN1c3RvbWl6ZVNjcm9sbEJvZHkobWVyZ2VkRGF0YSwge1xuICAgICAgICAgICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgICAgICAgICAgcmVmOiBzY3JvbGxCb2R5UmVmLFxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBoZWFkZXJQcm9wcy5jb2xXaWR0aHMgPSBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGggfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xXaWR0aCA9IGluZGV4ID09PSBmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxID8gd2lkdGggLSBzY3JvbGxiYXJTaXplIDogd2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xXaWR0aCA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTihjb2xXaWR0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbFdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5nKHByb3BzLmNvbHVtbnMubGVuZ3RoID09PSAwLCAnV2hlbiB1c2UgYGNvbXBvbmVudHMuYm9keWAgd2l0aCByZW5kZXIgcHJvcHMuIEVhY2ggY29sdW1uIHNob3VsZCBoYXZlIGEgZml4ZWQgYHdpZHRoYCB2YWx1ZS4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJvZHlDb250ZW50ID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLCBvblNjcm9sbDogb25Cb2R5U2Nyb2xsLCByZWY6IHNjcm9sbEJvZHlSZWYsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1ib2R5YCwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIGJvZHlUYWJsZSwgIWZpeEZvb3RlciAmJiBzdW1tYXJ5Tm9kZSAmJiAoX2pzeChGb290ZXIsIHsgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cywgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLCBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSkgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZpeGVkIGhvbGRlciBzaGFyZSB0aGUgcHJvcHNcbiAgICAgICAgY29uc3QgZml4ZWRIb2xkZXJQcm9wcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgbm9EYXRhOiAhbWVyZ2VkRGF0YS5sZW5ndGgsIG1heENvbnRlbnRTY3JvbGw6IGhvcml6b25TY3JvbGwgJiYgbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyB9LCBoZWFkZXJQcm9wcyksIGNvbHVtbkNvbnRleHQpLCB7IGRpcmVjdGlvbixcbiAgICAgICAgICAgIHN0aWNreUNsYXNzTmFtZSwgc2Nyb2xsWDogbWVyZ2VkU2Nyb2xsWCwgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0LCBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCB9KTtcbiAgICAgICAgZ3JvdXBUYWJsZU5vZGUgPSAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc2hvd0hlYWRlciAhPT0gZmFsc2UgJiYgKF9qc3goRml4ZWRIb2xkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUHJvcHMsIHsgc3RpY2t5VG9wT2Zmc2V0OiBvZmZzZXRIZWFkZXIsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1oZWFkZXJgLCByZWY6IHNjcm9sbEhlYWRlclJlZiwgY29sR3JvdXA6IGJvZHlDb2xHcm91cCwgY2hpbGRyZW46IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgfSkpKSwgYm9keUNvbnRlbnQsIGZpeEZvb3RlciAmJiBmaXhGb290ZXIgIT09ICd0b3AnICYmIChfanN4KEZpeGVkSG9sZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclByb3BzLCB7IHN0aWNreUJvdHRvbU9mZnNldDogb2Zmc2V0U3VtbWFyeSwgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXN1bW1hcnlgLCByZWY6IHNjcm9sbFN1bW1hcnlSZWYsIGNvbEdyb3VwOiBib2R5Q29sR3JvdXAsIGNoaWxkcmVuOiByZW5kZXJGaXhlZEZvb3RlclRhYmxlIH0pKSksIGlzU3RpY2t5ICYmIHNjcm9sbEJvZHlSZWYuY3VycmVudCAmJiBzY3JvbGxCb2R5UmVmLmN1cnJlbnQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIChfanN4KFN0aWNreVNjcm9sbEJhciwgeyByZWY6IHN0aWNreVJlZiwgb2Zmc2V0U2Nyb2xsOiBvZmZzZXRTY3JvbGwsIHNjcm9sbEJvZHlSZWY6IHNjcm9sbEJvZHlSZWYsIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLCBjb250YWluZXI6IGNvbnRhaW5lciwgZGlyZWN0aW9uOiBkaXJlY3Rpb24gfSkpXSB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyA+Pj4+Pj4gVW5pcXVlIHRhYmxlXG4gICAgICAgIGdyb3VwVGFibGVOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFhTdHlsZSksIHNjcm9sbFlTdHlsZSksIHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5jb250ZW50KSwgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tY29udGVudGAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5jb250ZW50KSwgb25TY3JvbGw6IG9uSW50ZXJuYWxTY3JvbGwsIHJlZjogc2Nyb2xsQm9keVJlZiwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIHNob3dIZWFkZXIgIT09IGZhbHNlICYmIF9qc3goSGVhZGVyLCBPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJQcm9wcywgY29sdW1uQ29udGV4dCkpLCBib2R5VGFibGUsIHN1bW1hcnlOb2RlICYmIChfanN4KEZvb3RlciwgeyBzdGlja3lPZmZzZXRzOiBzdGlja3lPZmZzZXRzLCBmbGF0dGVuQ29sdW1uczogZmxhdHRlbkNvbHVtbnMsIGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSB9KSk7XG4gICAgfVxuICAgIGNvbnN0IHRhYmxlU3R5bGUgPSBPYmplY3QuYXNzaWduKHt9LCBzdHlsZSk7XG4gICAgLy8gQWRkIGNzcyB2YXIgZm9yIHN0aWNreSBoZWFkZXIgYHpJbmRleGAgY2FsY1xuICAgIGlmIChpc1N0aWNreSkge1xuICAgICAgICB0YWJsZVN0eWxlWyctLWNvbHVtbnMtY291bnQnXSA9IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aDtcbiAgICB9XG4gICAgbGV0IGZ1bGxUYWJsZSA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbHN4KHByZWZpeENscywgY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1ydGxgXTogZGlyZWN0aW9uID09PSAncnRsJyxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1zdGFydC1zaGFkb3dgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93YF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtc3RhcnQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dTdGFydCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dFbmQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1sYXlvdXQtZml4ZWRgXTogdGFibGVMYXlvdXQgPT09ICdmaXhlZCcsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1oZWFkZXJgXTogZml4SGVhZGVyLFxuICAgICAgICAgICAgLyoqIE5vIHVzZWQgYnV0IGZvciBjb21wYXRpYmxlICovXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1jb2x1bW5gXTogZml4Q29sdW1uLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tc2Nyb2xsLWhvcml6b250YWxgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtc3RhcnRgXTogKF9hID0gZmxhdHRlbkNvbHVtbnNbMF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maXhlZCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtZW5kYF06ICgoX2IgPSBmbGF0dGVuQ29sdW1uc1tmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZpeGVkKSA9PT0gJ2VuZCcsXG4gICAgICAgIH0pLCBzdHlsZTogdGFibGVTdHlsZSwgaWQ6IGlkLCByZWY6IGZ1bGxUYWJsZVJlZiB9LCBkYXRhUHJvcHMsIHsgY2hpbGRyZW46IFt0aXRsZSAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS10aXRsZWAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy50aXRsZSksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMudGl0bGUsIGNoaWxkcmVuOiB0aXRsZShtZXJnZWREYXRhKSB9KSksIF9qc3goXCJkaXZcIiwgeyByZWY6IHNjcm9sbEJvZHlDb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xzeChgJHtwcmVmaXhDbHN9LWNvbnRhaW5lcmAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5zZWN0aW9uKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5zZWN0aW9uLCBjaGlsZHJlbjogZ3JvdXBUYWJsZU5vZGUgfSksIGZvb3RlciAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS1mb290ZXJgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuZm9vdGVyKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5mb290ZXIsIGNoaWxkcmVuOiBmb290ZXIobWVyZ2VkRGF0YSkgfSkpXSB9KSkpO1xuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIGZ1bGxUYWJsZSA9IChfanN4KFJlc2l6ZU9ic2VydmVyLCB7IG9uUmVzaXplOiAoeyBvZmZzZXRXaWR0aCB9KSA9PiBvbkZ1bGxUYWJsZVJlc2l6ZShvZmZzZXRXaWR0aCksIGNoaWxkcmVuOiBmdWxsVGFibGUgfSkpO1xuICAgIH1cbiAgICBjb25zdCBmaXhlZEluZm9MaXN0ID0gdXNlRml4ZWRJbmZvKGZsYXR0ZW5Db2x1bW5zLCBzdGlja3lPZmZzZXRzKTtcbiAgICBjb25zdCBUYWJsZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgLy8gU2Nyb2xsXG4gICAgICAgIHNjcm9sbFg6IG1lcmdlZFNjcm9sbFgsXG4gICAgICAgIHNjcm9sbEluZm8sXG4gICAgICAgIGNsYXNzTmFtZXMsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgLy8gVGFibGVcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBnZXRDb21wb25lbnQsXG4gICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgZml4ZWRJbmZvTGlzdCxcbiAgICAgICAgaXNTdGlja3ksXG4gICAgICAgIGNvbXBvbmVudFdpZHRoLFxuICAgICAgICBmaXhIZWFkZXIsXG4gICAgICAgIGZpeENvbHVtbixcbiAgICAgICAgaG9yaXpvblNjcm9sbCxcbiAgICAgICAgLy8gQm9keVxuICAgICAgICB0YWJsZUxheW91dDogbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kZWRSb3dDbGFzc05hbWU6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dDbGFzc05hbWUsXG4gICAgICAgIGV4cGFuZEljb246IG1lcmdlZEV4cGFuZEljb24sXG4gICAgICAgIGV4cGFuZGFibGVUeXBlLFxuICAgICAgICBleHBhbmRSb3dCeUNsaWNrOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICAgIGV4cGFuZGVkUm93UmVuZGVyOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93UmVuZGVyLFxuICAgICAgICBleHBhbmRlZFJvd09mZnNldDogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRJY29uQ29sdW1uSW5kZXg6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgICBpbmRlbnRTaXplOiBleHBhbmRhYmxlQ29uZmlnLmluZGVudFNpemUsXG4gICAgICAgIGFsbENvbHVtbnNGaXhlZExlZnQ6IGZsYXR0ZW5Db2x1bW5zLmV2ZXJ5KGNvbCA9PiBjb2wuZml4ZWQgPT09ICdzdGFydCcpLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIGhvdmVyU3RhcnRSb3c6IHN0YXJ0Um93LFxuICAgICAgICBob3ZlckVuZFJvdzogZW5kUm93LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICByb3dFeHBhbmRhYmxlOiBleHBhbmRhYmxlQ29uZmlnLnJvd0V4cGFuZGFibGUsXG4gICAgICAgIG9uUm93LFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgICAgIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU6IG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSxcbiAgICAgICAgcm93SG92ZXJhYmxlLFxuICAgICAgICAvLyBNZWFzdXJlIFJvd1xuICAgICAgICBtZWFzdXJlUm93UmVuZGVyLFxuICAgIH0pLCBbXG4gICAgICAgIC8vIFNjcm9sbFxuICAgICAgICBtZXJnZWRTY3JvbGxYLFxuICAgICAgICBzY3JvbGxJbmZvLFxuICAgICAgICBjbGFzc05hbWVzLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIC8vIFRhYmxlXG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGZpeGVkSW5mb0xpc3QsXG4gICAgICAgIGlzU3RpY2t5LFxuICAgICAgICBjb21wb25lbnRXaWR0aCxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBmaXhDb2x1bW4sXG4gICAgICAgIGhvcml6b25TY3JvbGwsXG4gICAgICAgIC8vIEJvZHlcbiAgICAgICAgbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd0NsYXNzTmFtZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kSWNvbixcbiAgICAgICAgZXhwYW5kYWJsZVR5cGUsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kUm93QnlDbGljayxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlcixcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5pbmRlbnRTaXplLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIHN0YXJ0Um93LFxuICAgICAgICBlbmRSb3csXG4gICAgICAgIG9uSG92ZXIsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcucm93RXhwYW5kYWJsZSxcbiAgICAgICAgb25Sb3csXG4gICAgICAgIGdldFJvd0tleSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgbWVhc3VyZVJvd1JlbmRlcixcbiAgICBdKTtcbiAgICByZXR1cm4gX2pzeChUYWJsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IFRhYmxlQ29udGV4dFZhbHVlLCBjaGlsZHJlbjogZnVsbFRhYmxlIH0pO1xufTtcbmNvbnN0IFJlZlRhYmxlID0gUmVhY3QuZm9yd2FyZFJlZihUYWJsZSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlZlRhYmxlLmRpc3BsYXlOYW1lID0gJ1RhYmxlJztcbn1cbmV4cG9ydCBjb25zdCBnZW5UYWJsZSA9IChzaG91bGRUcmlnZ2VyUmVuZGVyKSA9PiB7XG4gICAgcmV0dXJuIG1ha2VJbW11dGFibGUoUmVmVGFibGUsIHNob3VsZFRyaWdnZXJSZW5kZXIpO1xufTtcbmNvbnN0IEltbXV0YWJsZVRhYmxlID0gZ2VuVGFibGUoKTtcbkltbXV0YWJsZVRhYmxlLkVYUEFORF9DT0xVTU4gPSBFWFBBTkRfQ09MVU1OO1xuSW1tdXRhYmxlVGFibGUuSU5URVJOQUxfSE9PS1MgPSBJTlRFUk5BTF9IT09LUztcbkltbXV0YWJsZVRhYmxlLkNvbHVtbiA9IENvbHVtbjtcbkltbXV0YWJsZVRhYmxlLkNvbHVtbkdyb3VwID0gQ29sdW1uR3JvdXA7XG5JbW11dGFibGVUYWJsZS5TdW1tYXJ5ID0gRm9vdGVyQ29tcG9uZW50cztcbmV4cG9ydCBkZWZhdWx0IEltbXV0YWJsZVRhYmxlOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|