@1money/component-ui 0.1.24-alpha.2 → 0.1.25-alpha.0
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/business/Select/Asset/AssetSelect.js +5 -2
- package/es/business/Select/Asset/interface.d.ts +6 -0
- package/es/components/Select/Select.js +4 -4
- package/es/components/Select/SelectCustom.js +4 -4
- package/es/components/Select/interface.d.ts +24 -2
- package/es/components/Select/style/Select.css +1 -0
- package/es/components/Select/useSelectShell.d.ts +2 -1
- package/es/components/Select/useSelectShell.js +45 -10
- package/es/index.css +1 -1
- package/lib/business/Select/Asset/AssetSelect.js +5 -2
- package/lib/business/Select/Asset/interface.d.ts +6 -0
- package/lib/components/Select/Select.js +4 -4
- package/lib/components/Select/SelectCustom.js +4 -4
- package/lib/components/Select/interface.d.ts +24 -2
- package/lib/components/Select/style/Select.css +1 -0
- package/lib/components/Select/useSelectShell.d.ts +2 -1
- package/lib/components/Select/useSelectShell.js +45 -10
- package/lib/index.css +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +24 -0
- package/scripts/mcp-server/index.generated.json +25 -1
|
@@ -61,7 +61,9 @@ var AssetSelectBase = function AssetSelectBase(_a) {
|
|
|
61
61
|
emptyContent = _a.emptyContent,
|
|
62
62
|
onSearchChange = _a.onSearchChange,
|
|
63
63
|
panelClassName = _a.panelClassName,
|
|
64
|
-
|
|
64
|
+
_a$listMaxHeight = _a.listMaxHeight,
|
|
65
|
+
listMaxHeight = _a$listMaxHeight === void 0 ? 'auto' : _a$listMaxHeight,
|
|
66
|
+
rest = __rest(_a, ["options", "className", "labelClassName", "label", "name", "placeholder", "searchable", "filterInputAutoFocus", "strong", "showBalance", "emptyContent", "onSearchChange", "panelClassName", "listMaxHeight"]);
|
|
65
67
|
var locale = useLocale('AssetSelect');
|
|
66
68
|
var groupsLocale = useLocale('AssetGroups');
|
|
67
69
|
var label = labelProp !== null && labelProp !== void 0 ? labelProp : locale.label;
|
|
@@ -94,6 +96,7 @@ var AssetSelectBase = function AssetSelectBase(_a) {
|
|
|
94
96
|
return groups;
|
|
95
97
|
}, [options.fiat, options.stablecoins, options.digitalAssets, groupsLocale]);
|
|
96
98
|
return _jsx(Select, Object.assign({}, rest, {
|
|
99
|
+
listMaxHeight: listMaxHeight,
|
|
97
100
|
label: label,
|
|
98
101
|
name: name,
|
|
99
102
|
placeholder: placeholder,
|
|
@@ -187,4 +190,4 @@ export var AssetSelect = /*#__PURE__*/memo(AssetSelectBase);
|
|
|
187
190
|
// memo() wipes the inferred name, so without this the Item silently skips
|
|
188
191
|
// value/onChange injection unless the call site happens to pass a placeholder.
|
|
189
192
|
AssetSelect.displayName = 'AssetSelect';
|
|
190
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9Bc3NldC9Bc3NldFNlbGVjdC5qcyIsImJ1c2luZXNzL1NlbGVjdC9zcmMvYnVzaW5lc3MvU2VsZWN0L0Fzc2V0L0Fzc2V0U2VsZWN0LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlTG9jYWxlIiwibnVtZXJpY0Zvcm1hdHRlciIsIkVtcHR5IiwiRmxleCIsIlNlbGVjdCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiam9pbkNscyIsIldSQVBfQ0xTIiwiSUNPTl9DTFMiLCJjb25jYXQiLCJCQUxBTkNFX0NMUyIsIklDT05fU0laRSIsInRvT3B0aW9uIiwiY3VycmVuY3kiLCJsYWJlbCIsImN1cnJlbmN5TmFtZSIsInZhbHVlIiwiaWNvbiIsImN1cnJlbmN5SWNvblVybCIsIm5hbWUiLCJjdXJyZW5jeURlc2MiLCJiYWxhbmNlIiwiY3VycmVuY3lCYWxhbmNlIiwic2VhcmNoVGV4dCIsImJ5T3JkZXIiLCJhIiwiYiIsIl9hIiwiX2IiLCJvcmRlciIsInRvR3JvdXBPcHRpb25zIiwiY3VycmVuY2llcyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNvcnQiLCJtYXAiLCJBc3NldFNlbGVjdEJhc2UiLCJvcHRpb25zIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJsYWJlbFByb3AiLCJfYSRuYW1lIiwicGxhY2Vob2xkZXJQcm9wIiwicGxhY2Vob2xkZXIiLCJfYSRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9hJGZpbHRlcklucHV0QXV0b0ZvYyIsImZpbHRlcklucHV0QXV0b0ZvY3VzIiwiX2Ekc3Ryb25nIiwic3Ryb25nIiwiX2Ekc2hvd0JhbGFuY2UiLCJzaG93QmFsYW5jZSIsImVtcHR5Q29udGVudCIsIm9uU2VhcmNoQ2hhbmdlIiwicGFuZWxDbGFzc05hbWUiLCJyZXN0IiwibG9jYWxlIiwiZ3JvdXBzTG9jYWxlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwia2V5d29yZCIsInNldEtleXdvcmQiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJncm91cGVkT3B0aW9ucyIsImdyb3VwcyIsImNhc2giLCJmaWF0Iiwic3RhYmxlY29pbnMiLCJkaWdpdGFsQXNzZXRzIiwiZmlsdGVyIiwiZ3JvdXAiLCJhc3NpZ24iLCJkZXNjcmlwdGlvbiIsIm5vUmVzdWx0c0ZvciIsInJlcGxhY2UiLCJub1Jlc3VsdHMiLCJyZW5kZXJWYWx1ZSIsIm9wdGlvbiIsIl9yZWYiLCJmb250U2l6ZSIsIkFycmF5IiwiaXNBcnJheSIsIml0ZW0iLCJhbGlnbiIsImdhcCIsImNoaWxkcmVuIiwic3JjIiwiYWx0IiwiU3RyaW5nIiwid2lkdGgiLCJoZWlnaHQiLCJzaXplIiwicmVuZGVyT3B0aW9uQ29udGVudCIsImp1c3RpZnkiLCJzdHlsZSIsIm1pbldpZHRoIiwidmVydGljYWwiLCJjb2xvciIsInRob3VzYW5kU2VwYXJhdG9yIiwiQXNzZXRTZWxlY3QiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FB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QUMsQ0FBRTtZQUFBVixRQUFBLEVBQUEsQ0FDekQ5RixJQUFBLENBQUNZLGVBQWUsRUFBQTtjQUFDd0YsSUFBSSxFQUFDLElBQUk7Y0FBQ00sS0FBSyxFQUFDLFNBQVM7Y0FBQVosUUFBQSxFQUN2Q0gsSUFBSSxDQUFDdEU7WUFBSyxDQUFBLENBQ0ssRUFDbEJyQixJQUFBLENBQUNXLGNBQWMsRUFBQTtjQUFDeUYsSUFBSSxFQUFDLElBQUk7Y0FBQ00sS0FBSyxFQUFDLGtCQUFrQjtjQUFBWixRQUFBLEVBQy9DSCxJQUFJLENBQUNqRTtZQUFJLENBQUEsQ0FDSztVQUFBLENBQUEsQ0FDWjtRQUFBLENBQUEsQ0FDRixFQUNOaUMsV0FBVyxJQUFJZ0MsSUFBSSxDQUFDL0QsT0FBTyxJQUFJLElBQUksSUFDbEMxQixLQUFBLENBQUNTLGNBQWMsRUFBQTtVQUFDeUYsSUFBSSxFQUFDLElBQUk7VUFBQ00sS0FBSyxFQUFDLFNBQVM7VUFBQzVELFNBQVMsRUFBRTdCLFdBQVc7VUFBQTZFLFFBQUEsRUFBQSxDQUM3RHZGLGdCQUFnQixDQUFDb0YsSUFBSSxDQUFDL0QsT0FBTyxFQUFFO1lBQUUrRSxpQkFBaUIsRUFBRTtVQUFJLENBQUUsQ0FBQyxFQUFBLEdBQUEsRUFBR1YsTUFBTSxDQUFDLENBQUE5RCxFQUFBLEdBQUF3RCxJQUFJLENBQUNwRSxLQUFLLE1BQUEsSUFBQSxJQUFBWSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxFQUFFLENBQUM7UUFBQSxDQUFBLENBRTFGO01BQUEsQ0FBQSxDQUNJO0lBRVg7RUFBQyxDQUFBLENBQUEsQ0FDRDtBQUVOLENBQUM7QUFFRCxPQUFPLElBQU15RSxXQUFXLGdCQUFHekcsSUFBSSxDQUFDeUMsZUFBZSxDQUFDO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBZ0UsV0FBVyxDQUFDQyxXQUFXLEdBQUcsYUFBYSIsImZpbGUiOiJidXNpbmVzcy9TZWxlY3QvQXNzZXQvQXNzZXRTZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IG51bWVyaWNGb3JtYXR0ZXIgfSBmcm9tICdyZWFjdC1udW1iZXItZm9ybWF0JztcbmltcG9ydCB7IEVtcHR5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9FbXB0eSc7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgV1JBUF9DTFMgPSAnb20tYXNzZXQtc2VsZWN0JztcbmNvbnN0IElDT05fQ0xTID0gYCR7V1JBUF9DTFN9LWljb25gO1xuY29uc3QgQkFMQU5DRV9DTFMgPSBgJHtXUkFQX0NMU30tYmFsYW5jZWA7XG5jb25zdCBJQ09OX1NJWkUgPSAyNDtcbmNvbnN0IHRvT3B0aW9uID0gKGN1cnJlbmN5KSA9PiAoe1xuICAgIGxhYmVsOiBjdXJyZW5jeS5jdXJyZW5jeU5hbWUsXG4gICAgdmFsdWU6IGN1cnJlbmN5LmN1cnJlbmN5TmFtZSxcbiAgICBpY29uOiBjdXJyZW5jeS5jdXJyZW5jeUljb25VcmwsXG4gICAgbmFtZTogY3VycmVuY3kuY3VycmVuY3lEZXNjLFxuICAgIGJhbGFuY2U6IGN1cnJlbmN5LmN1cnJlbmN5QmFsYW5jZSxcbiAgICAvLyBNYXRjaCB0aGUgc2VhcmNoIGFnYWluc3QgYm90aCB0aGUgc3ltYm9sIGFuZCB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZS5cbiAgICBzZWFyY2hUZXh0OiBgJHtjdXJyZW5jeS5jdXJyZW5jeU5hbWV9ICR7Y3VycmVuY3kuY3VycmVuY3lEZXNjfWAsXG59KTtcbi8vIFNvcnQgd2l0aGluIGEgZ3JvdXAgYnkgdGhlIGJhY2tlbmQgYG9yZGVyYCAoYXNjZW5kaW5nKS4gQ29waWVzIHRoZSBhcnJheSBzb1xuLy8gdGhlIGNhbGxlcidzIGBvcHRpb25zYCBpcyBuZXZlciBtdXRhdGVkOyBtaXNzaW5nIGBvcmRlcmAgZmFsbHMgYmFjayB0byAwLlxuY29uc3QgYnlPcmRlciA9IChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKF9hID0gYS5vcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgLSAoKF9iID0gYi5vcmRlcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCk7IH07XG5jb25zdCB0b0dyb3VwT3B0aW9ucyA9IChjdXJyZW5jaWVzID0gW10pID0+IFsuLi5jdXJyZW5jaWVzXS5zb3J0KGJ5T3JkZXIpLm1hcCh0b09wdGlvbik7XG5jb25zdCBBc3NldFNlbGVjdEJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyBvcHRpb25zLCBjbGFzc05hbWUsIGxhYmVsQ2xhc3NOYW1lLCBsYWJlbDogbGFiZWxQcm9wLCBuYW1lID0gJ2Fzc2V0JywgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyUHJvcCwgc2VhcmNoYWJsZSA9IHRydWUsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgc3Ryb25nID0gdHJ1ZSwgc2hvd0JhbGFuY2UgPSBmYWxzZSwgZW1wdHlDb250ZW50LCBvblNlYXJjaENoYW5nZSwgcGFuZWxDbGFzc05hbWUgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJvcHRpb25zXCIsIFwiY2xhc3NOYW1lXCIsIFwibGFiZWxDbGFzc05hbWVcIiwgXCJsYWJlbFwiLCBcIm5hbWVcIiwgXCJwbGFjZWhvbGRlclwiLCBcInNlYXJjaGFibGVcIiwgXCJmaWx0ZXJJbnB1dEF1dG9Gb2N1c1wiLCBcInN0cm9uZ1wiLCBcInNob3dCYWxhbmNlXCIsIFwiZW1wdHlDb250ZW50XCIsIFwib25TZWFyY2hDaGFuZ2VcIiwgXCJwYW5lbENsYXNzTmFtZVwiXSk7XG4gICAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCdBc3NldFNlbGVjdCcpO1xuICAgIGNvbnN0IGdyb3Vwc0xvY2FsZSA9IHVzZUxvY2FsZSgnQXNzZXRHcm91cHMnKTtcbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsUHJvcCAhPT0gbnVsbCAmJiBsYWJlbFByb3AgIT09IHZvaWQgMCA/IGxhYmVsUHJvcCA6IGxvY2FsZS5sYWJlbDtcbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyUHJvcCAhPT0gbnVsbCAmJiBwbGFjZWhvbGRlclByb3AgIT09IHZvaWQgMCA/IHBsYWNlaG9sZGVyUHJvcCA6IGxvY2FsZS5wbGFjZWhvbGRlcjtcbiAgICBjb25zdCBba2V5d29yZCwgc2V0S2V5d29yZF0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIHNldEtleXdvcmQodmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UodmFsdWUpO1xuICAgIH07XG4gICAgY29uc3QgZ3JvdXBlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gW1xuICAgICAgICAgICAgeyBsYWJlbDogZ3JvdXBzTG9jYWxlLmNhc2gsIG9wdGlvbnM6IHRvR3JvdXBPcHRpb25zKG9wdGlvbnMuZmlhdCkgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6IGdyb3Vwc0xvY2FsZS5zdGFibGVjb2lucywgb3B0aW9uczogdG9Hcm91cE9wdGlvbnMob3B0aW9ucy5zdGFibGVjb2lucykgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6IGdyb3Vwc0xvY2FsZS5kaWdpdGFsQXNzZXRzLCBvcHRpb25zOiB0b0dyb3VwT3B0aW9ucyhvcHRpb25zLmRpZ2l0YWxBc3NldHMpIH0sXG4gICAgICAgIF0uZmlsdGVyKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucy5sZW5ndGggPiAwKTtcbiAgICAgICAgLy8gV2l0aCBvbmx5IG9uZSBwb3B1bGF0ZWQgZ3JvdXAsIGRyb3AgdGhlIGdyb3VwIGxhYmVsIGFuZCByZW5kZXIgYSBmbGF0XG4gICAgICAgIC8vIGxpc3Qg4oCUIGEgbG9uZSBcIkNhc2hcIi9cIlN0YWJsZWNvaW5zXCIvXCJEaWdpdGFsIEFzc2V0c1wiIGhlYWRpbmcgaXMganVzdFxuICAgICAgICAvLyBub2lzZS4gYFNlbGVjdGAgb25seSBzaG93cyBhIGhlYWRpbmcgZm9yIGdyb3VwcyB3aXRoIGEgdHJ1dGh5IGBsYWJlbGAuXG4gICAgICAgIGlmIChncm91cHMubGVuZ3RoID09PSAxKVxuICAgICAgICAgICAgcmV0dXJuIGdyb3Vwc1swXS5vcHRpb25zO1xuICAgICAgICByZXR1cm4gZ3JvdXBzO1xuICAgIH0sIFtvcHRpb25zLmZpYXQsIG9wdGlvbnMuc3RhYmxlY29pbnMsIG9wdGlvbnMuZGlnaXRhbEFzc2V0cywgZ3JvdXBzTG9jYWxlXSk7XG4gICAgcmV0dXJuIChfanN4KFNlbGVjdCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBsYWJlbDogbGFiZWwsIG5hbWU6IG5hbWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgc2VhcmNoYWJsZTogc2VhcmNoYWJsZSwgZmlsdGVySW5wdXRBdXRvRm9jdXM6IGZpbHRlcklucHV0QXV0b0ZvY3VzLCBvblNlYXJjaENoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBlbXB0eUNvbnRlbnQ6IGVtcHR5Q29udGVudCAhPT0gbnVsbCAmJiBlbXB0eUNvbnRlbnQgIT09IHZvaWQgMCA/IGVtcHR5Q29udGVudCA6IChfanN4KEVtcHR5LCB7IGljb246ICdjb2luJywgZGVzY3JpcHRpb246IGtleXdvcmQgPyBsb2NhbGUubm9SZXN1bHRzRm9yLnJlcGxhY2UoJ3trZXl3b3JkfScsIGtleXdvcmQpIDogbG9jYWxlLm5vUmVzdWx0cyB9KSksIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgbGFiZWxDbGFzc05hbWU6IGpvaW5DbHMoYCR7V1JBUF9DTFN9LWxhYmVsYCwgbGFiZWxDbGFzc05hbWUpLCBwYW5lbENsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU30tcGFuZWxgLCBwYW5lbENsYXNzTmFtZSksIG9wdGlvbnM6IGdyb3VwZWRPcHRpb25zLCByZW5kZXJWYWx1ZTogKG9wdGlvbiwgeyBmb250U2l6ZSB9KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbiB8fCBBcnJheS5pc0FycmF5KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IGl0ZW0uaWNvbiwgYWx0OiBTdHJpbmcoKF9hID0gaXRlbS52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBmb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBpdGVtLmxhYmVsIH0pXSB9KSk7XG4gICAgICAgIH0sIHJlbmRlck9wdGlvbkNvbnRlbnQ6IChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nLCBnYXA6IDgsIHN0eWxlOiB7IHdpZHRoOiAnMTAwJScgfSwgY2hpbGRyZW46IFtfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBzdHlsZTogeyBtaW5XaWR0aDogMCB9LCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IGl0ZW0uaWNvbiwgYWx0OiBTdHJpbmcoKF9hID0gaXRlbS52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeHMoRmxleCwgeyB2ZXJ0aWNhbDogdHJ1ZSwgZ2FwOiAwLCBhbGlnbjogJ3N0YXJ0Jywgc3R5bGU6IHsgbWluV2lkdGg6IDAgfSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiAnbWQnLCBjb2xvcjogJ2RlZmF1bHQnLCBjaGlsZHJlbjogaXRlbS5sYWJlbCB9KSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtdGVydGlhcnknLCBjaGlsZHJlbjogaXRlbS5uYW1lIH0pXSB9KV0gfSksIHNob3dCYWxhbmNlICYmIGl0ZW0uYmFsYW5jZSAhPSBudWxsICYmIChfanN4cyhUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnbWQnLCBjb2xvcjogJ2RlZmF1bHQnLCBjbGFzc05hbWU6IEJBTEFOQ0VfQ0xTLCBjaGlsZHJlbjogW251bWVyaWNGb3JtYXR0ZXIoaXRlbS5iYWxhbmNlLCB7IHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlIH0pLCBcIiBcIiwgU3RyaW5nKChfYiA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnKV0gfSkpXSB9KSk7XG4gICAgICAgIH0gfSkpKTtcbn07XG5leHBvcnQgY29uc3QgQXNzZXRTZWxlY3QgPSBtZW1vKEFzc2V0U2VsZWN0QmFzZSk7XG4vLyBQcm9Gb3JtLkl0ZW0gcmVjb2duaXplcyBmb3JtIGNvbnRyb2xzIGJ5IGRpc3BsYXlOYW1lIChGT1JNX0NPTVBPTkVOVF9OQU1FUyk7XG4vLyBtZW1vKCkgd2lwZXMgdGhlIGluZmVycmVkIG5hbWUsIHNvIHdpdGhvdXQgdGhpcyB0aGUgSXRlbSBzaWxlbnRseSBza2lwc1xuLy8gdmFsdWUvb25DaGFuZ2UgaW5qZWN0aW9uIHVubGVzcyB0aGUgY2FsbCBzaXRlIGhhcHBlbnMgdG8gcGFzcyBhIHBsYWNlaG9sZGVyLlxuQXNzZXRTZWxlY3QuZGlzcGxheU5hbWUgPSAnQXNzZXRTZWxlY3QnOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9Bc3NldC9Bc3NldFNlbGVjdC5qcyIsImJ1c2luZXNzL1NlbGVjdC9zcmMvYnVzaW5lc3MvU2VsZWN0L0Fzc2V0L0Fzc2V0U2VsZWN0LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlTG9jYWxlIiwibnVtZXJpY0Zvcm1hdHRlciIsIkVtcHR5IiwiRmxleCIsIlNlbGVjdCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiam9pbkNscyIsIldSQVBfQ0xTIiwiSUNPTl9DTFMiLCJjb25jYXQiLCJCQUxBTkNFX0NMUyIsIklDT05fU0laRSIsInRvT3B0aW9uIiwiY3VycmVuY3kiLCJsYWJlbCIsImN1cnJlbmN5TmFtZSIsInZhbHVlIiwiaWNvbiIsImN1cnJlbmN5SWNvblVybCIsIm5hbWUiLCJjdXJyZW5jeURlc2MiLCJiYWxhbmNlIiwiY3VycmVuY3lCYWxhbmNlIiwic2VhcmNoVGV4dCIsImJ5T3JkZXIiLCJhIiwiYiIsIl9hIiwiX2IiLCJvcmRlciIsInRvR3JvdXBPcHRpb25zIiwiY3VycmVuY2llcyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNvcnQiLCJtYXAiLCJBc3NldFNlbGVjdEJhc2UiLCJvcHRpb25zIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJsYWJlbFByb3AiLCJfYSRuYW1lIiwicGxhY2Vob2xkZXJQcm9wIiwicGxhY2Vob2xkZXIiLCJfYSRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9hJGZpbHRlcklucHV0QXV0b0ZvYyIsImZpbHRlcklucHV0QXV0b0ZvY3VzIiwiX2Ekc3Ryb25nIiwic3Ryb25nIiwiX2Ekc2hvd0JhbGFuY2UiLCJzaG93QmFsYW5jZSIsImVtcHR5Q29udGVudCIsIm9uU2VhcmNoQ2hhbmdlIiwicGFuZWxDbGFzc05hbWUiLCJfYSRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsInJlc3QiLCJsb2NhbGUiLCJncm91cHNMb2NhbGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJrZXl3b3JkIiwic2V0S2V5d29yZCIsImhhbmRsZVNlYXJjaENoYW5nZSIsImdyb3VwZWRPcHRpb25zIiwiZ3JvdXBzIiwiY2FzaCIsImZpYXQiLCJzdGFibGVjb2lucyIsImRpZ2l0YWxBc3NldHMiLCJmaWx0ZXIiLCJncm91cCIsImFzc2lnbiIsImRlc2NyaXB0aW9uIiwibm9SZXN1bHRzRm9yIiwicmVwbGFjZSIsIm5vUmVzdWx0cyIsInJlbmRlclZhbHVlIiwib3B0aW9uIiwiX3JlZiIsImZvbnRTaXplIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsImFsaWduIiwiZ2FwIiwiY2hpbGRyZW4iLCJzcmMiLCJhbHQiLCJTdHJpbmciLCJ3aWR0aCIsImhlaWdodCIsInNpemUiLCJyZW5kZXJPcHRpb25Db250ZW50IiwianVzdGlmeSIsInN0eWxlIiwibWluV2lkdGgiLCJ2ZXJ0aWNhbCIsImNvbG9yIiwidGhvdXNhbmRTZXBhcmF0b3IiLCJBc3NldFNlbGVjdCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxD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MkUsV0FBVyxnQkFBRzNHLElBQUksQ0FBQ3lDLGVBQWUsQ0FBQztBQUNoRDtBQUNBO0FBQ0E7QUFDQWtFLFdBQVcsQ0FBQ0MsV0FBVyxHQUFHLGFBQWEiLCJmaWxlIjoiYnVzaW5lc3MvU2VsZWN0L0Fzc2V0L0Fzc2V0U2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9Db25maWdQcm92aWRlcic7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBFbXB0eSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRW1wdHknO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1NlbGVjdCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLWFzc2V0LXNlbGVjdCc7XG5jb25zdCBJQ09OX0NMUyA9IGAke1dSQVBfQ0xTfS1pY29uYDtcbmNvbnN0IEJBTEFOQ0VfQ0xTID0gYCR7V1JBUF9DTFN9LWJhbGFuY2VgO1xuY29uc3QgSUNPTl9TSVpFID0gMjQ7XG5jb25zdCB0b09wdGlvbiA9IChjdXJyZW5jeSkgPT4gKHtcbiAgICBsYWJlbDogY3VycmVuY3kuY3VycmVuY3lOYW1lLFxuICAgIHZhbHVlOiBjdXJyZW5jeS5jdXJyZW5jeU5hbWUsXG4gICAgaWNvbjogY3VycmVuY3kuY3VycmVuY3lJY29uVXJsLFxuICAgIG5hbWU6IGN1cnJlbmN5LmN1cnJlbmN5RGVzYyxcbiAgICBiYWxhbmNlOiBjdXJyZW5jeS5jdXJyZW5jeUJhbGFuY2UsXG4gICAgLy8gTWF0Y2ggdGhlIHNlYXJjaCBhZ2FpbnN0IGJvdGggdGhlIHN5bWJvbCBhbmQgdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUuXG4gICAgc2VhcmNoVGV4dDogYCR7Y3VycmVuY3kuY3VycmVuY3lOYW1lfSAke2N1cnJlbmN5LmN1cnJlbmN5RGVzY31gLFxufSk7XG4vLyBTb3J0IHdpdGhpbiBhIGdyb3VwIGJ5IHRoZSBiYWNrZW5kIGBvcmRlcmAgKGFzY2VuZGluZykuIENvcGllcyB0aGUgYXJyYXkgc29cbi8vIHRoZSBjYWxsZXIncyBgb3B0aW9uc2AgaXMgbmV2ZXIgbXV0YXRlZDsgbWlzc2luZyBgb3JkZXJgIGZhbGxzIGJhY2sgdG8gMC5cbmNvbnN0IGJ5T3JkZXIgPSAoYSwgYikgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKChfYSA9IGEub3JkZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApIC0gKChfYiA9IGIub3JkZXIpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApOyB9O1xuY29uc3QgdG9Hcm91cE9wdGlvbnMgPSAoY3VycmVuY2llcyA9IFtdKSA9PiBbLi4uY3VycmVuY2llc10uc29ydChieU9yZGVyKS5tYXAodG9PcHRpb24pO1xuY29uc3QgQXNzZXRTZWxlY3RCYXNlID0gKF9hKSA9PiB7XG4gICAgdmFyIHsgb3B0aW9ucywgY2xhc3NOYW1lLCBsYWJlbENsYXNzTmFtZSwgbGFiZWw6IGxhYmVsUHJvcCwgbmFtZSA9ICdhc3NldCcsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlclByb3AsIHNlYXJjaGFibGUgPSB0cnVlLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1cyA9IHRydWUsIHN0cm9uZyA9IHRydWUsIHNob3dCYWxhbmNlID0gZmFsc2UsIGVtcHR5Q29udGVudCwgb25TZWFyY2hDaGFuZ2UsIHBhbmVsQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gJ2F1dG8nIH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wib3B0aW9uc1wiLCBcImNsYXNzTmFtZVwiLCBcImxhYmVsQ2xhc3NOYW1lXCIsIFwibGFiZWxcIiwgXCJuYW1lXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJzZWFyY2hhYmxlXCIsIFwiZmlsdGVySW5wdXRBdXRvRm9jdXNcIiwgXCJzdHJvbmdcIiwgXCJzaG93QmFsYW5jZVwiLCBcImVtcHR5Q29udGVudFwiLCBcIm9uU2VhcmNoQ2hhbmdlXCIsIFwicGFuZWxDbGFzc05hbWVcIiwgXCJsaXN0TWF4SGVpZ2h0XCJdKTtcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ0Fzc2V0U2VsZWN0Jyk7XG4gICAgY29uc3QgZ3JvdXBzTG9jYWxlID0gdXNlTG9jYWxlKCdBc3NldEdyb3VwcycpO1xuICAgIGNvbnN0IGxhYmVsID0gbGFiZWxQcm9wICE9PSBudWxsICYmIGxhYmVsUHJvcCAhPT0gdm9pZCAwID8gbGFiZWxQcm9wIDogbG9jYWxlLmxhYmVsO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJQcm9wICE9PSBudWxsICYmIHBsYWNlaG9sZGVyUHJvcCAhPT0gdm9pZCAwID8gcGxhY2Vob2xkZXJQcm9wIDogbG9jYWxlLnBsYWNlaG9sZGVyO1xuICAgIGNvbnN0IFtrZXl3b3JkLCBzZXRLZXl3b3JkXSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSAodmFsdWUpID0+IHtcbiAgICAgICAgc2V0S2V5d29yZCh2YWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZSh2YWx1ZSk7XG4gICAgfTtcbiAgICBjb25zdCBncm91cGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBncm91cHMgPSBbXG4gICAgICAgICAgICB7IGxhYmVsOiBncm91cHNMb2NhbGUuY2FzaCwgb3B0aW9uczogdG9Hcm91cE9wdGlvbnMob3B0aW9ucy5maWF0KSB9LFxuICAgICAgICAgICAgeyBsYWJlbDogZ3JvdXBzTG9jYWxlLnN0YWJsZWNvaW5zLCBvcHRpb25zOiB0b0dyb3VwT3B0aW9ucyhvcHRpb25zLnN0YWJsZWNvaW5zKSB9LFxuICAgICAgICAgICAgeyBsYWJlbDogZ3JvdXBzTG9jYWxlLmRpZ2l0YWxBc3NldHMsIG9wdGlvbnM6IHRvR3JvdXBPcHRpb25zKG9wdGlvbnMuZGlnaXRhbEFzc2V0cykgfSxcbiAgICAgICAgXS5maWx0ZXIoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zLmxlbmd0aCA+IDApO1xuICAgICAgICAvLyBXaXRoIG9ubHkgb25lIHBvcHVsYXRlZCBncm91cCwgZHJvcCB0aGUgZ3JvdXAgbGFiZWwgYW5kIHJlbmRlciBhIGZsYXRcbiAgICAgICAgLy8gbGlzdCDigJQgYSBsb25lIFwiQ2FzaFwiL1wiU3RhYmxlY29pbnNcIi9cIkRpZ2l0YWwgQXNzZXRzXCIgaGVhZGluZyBpcyBqdXN0XG4gICAgICAgIC8vIG5vaXNlLiBgU2VsZWN0YCBvbmx5IHNob3dzIGEgaGVhZGluZyBmb3IgZ3JvdXBzIHdpdGggYSB0cnV0aHkgYGxhYmVsYC5cbiAgICAgICAgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDEpXG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBzWzBdLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBncm91cHM7XG4gICAgfSwgW29wdGlvbnMuZmlhdCwgb3B0aW9ucy5zdGFibGVjb2lucywgb3B0aW9ucy5kaWdpdGFsQXNzZXRzLCBncm91cHNMb2NhbGVdKTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0LCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IGxpc3RNYXhIZWlnaHQ6IGxpc3RNYXhIZWlnaHQsIGxhYmVsOiBsYWJlbCwgbmFtZTogbmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBzZWFyY2hhYmxlOiBzZWFyY2hhYmxlLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1czogZmlsdGVySW5wdXRBdXRvRm9jdXMsIG9uU2VhcmNoQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIGVtcHR5Q29udGVudDogZW1wdHlDb250ZW50ICE9PSBudWxsICYmIGVtcHR5Q29udGVudCAhPT0gdm9pZCAwID8gZW1wdHlDb250ZW50IDogKF9qc3goRW1wdHksIHsgaWNvbjogJ2NvaW4nLCBkZXNjcmlwdGlvbjoga2V5d29yZCA/IGxvY2FsZS5ub1Jlc3VsdHNGb3IucmVwbGFjZSgne2tleXdvcmR9Jywga2V5d29yZCkgOiBsb2NhbGUubm9SZXN1bHRzIH0pKSwgY2xhc3NOYW1lOiBqb2luQ2xzKFdSQVBfQ0xTLCBjbGFzc05hbWUpLCBsYWJlbENsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU30tbGFiZWxgLCBsYWJlbENsYXNzTmFtZSksIHBhbmVsQ2xhc3NOYW1lOiBqb2luQ2xzKGAke1dSQVBfQ0xTfS1wYW5lbGAsIHBhbmVsQ2xhc3NOYW1lKSwgb3B0aW9uczogZ3JvdXBlZE9wdGlvbnMsIHJlbmRlclZhbHVlOiAob3B0aW9uLCB7IGZvbnRTaXplIH0pID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGlmICghb3B0aW9uIHx8IEFycmF5LmlzQXJyYXkob3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIGNoaWxkcmVuOiBbX2pzeChcImltZ1wiLCB7IHNyYzogaXRlbS5pY29uLCBhbHQ6IFN0cmluZygoX2EgPSBpdGVtLnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksIHdpZHRoOiBJQ09OX1NJWkUsIGhlaWdodDogSUNPTl9TSVpFLCBjbGFzc05hbWU6IElDT05fQ0xTIH0pLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IGZvbnRTaXplLCBzdHJvbmc6IHN0cm9uZywgY2hpbGRyZW46IGl0ZW0ubGFiZWwgfSldIH0pKTtcbiAgICAgICAgfSwgcmVuZGVyT3B0aW9uQ29udGVudDogKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnc3BhY2UtYmV0d2VlbicsIGdhcDogOCwgc3R5bGU6IHsgd2lkdGg6ICcxMDAlJyB9LCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIHN0eWxlOiB7IG1pbldpZHRoOiAwIH0sIGNoaWxkcmVuOiBbX2pzeChcImltZ1wiLCB7IHNyYzogaXRlbS5pY29uLCBhbHQ6IFN0cmluZygoX2EgPSBpdGVtLnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksIHdpZHRoOiBJQ09OX1NJWkUsIGhlaWdodDogSUNPTl9TSVpFLCBjbGFzc05hbWU6IElDT05fQ0xTIH0pLCBfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IDAsIGFsaWduOiAnc3RhcnQnLCBzdHlsZTogeyBtaW5XaWR0aDogMCB9LCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6ICdtZCcsIGNvbG9yOiAnZGVmYXVsdCcsIGNoaWxkcmVuOiBpdGVtLmxhYmVsIH0pLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC10ZXJ0aWFyeScsIGNoaWxkcmVuOiBpdGVtLm5hbWUgfSldIH0pXSB9KSwgc2hvd0JhbGFuY2UgJiYgaXRlbS5iYWxhbmNlICE9IG51bGwgJiYgKF9qc3hzKFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdtZCcsIGNvbG9yOiAnZGVmYXVsdCcsIGNsYXNzTmFtZTogQkFMQU5DRV9DTFMsIGNoaWxkcmVuOiBbbnVtZXJpY0Zvcm1hdHRlcihpdGVtLmJhbGFuY2UsIHsgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUgfSksIFwiIFwiLCBTdHJpbmcoKF9iID0gaXRlbS52YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJycpXSB9KSldIH0pKTtcbiAgICAgICAgfSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBBc3NldFNlbGVjdCA9IG1lbW8oQXNzZXRTZWxlY3RCYXNlKTtcbi8vIFByb0Zvcm0uSXRlbSByZWNvZ25pemVzIGZvcm0gY29udHJvbHMgYnkgZGlzcGxheU5hbWUgKEZPUk1fQ09NUE9ORU5UX05BTUVTKTtcbi8vIG1lbW8oKSB3aXBlcyB0aGUgaW5mZXJyZWQgbmFtZSwgc28gd2l0aG91dCB0aGlzIHRoZSBJdGVtIHNpbGVudGx5IHNraXBzXG4vLyB2YWx1ZS9vbkNoYW5nZSBpbmplY3Rpb24gdW5sZXNzIHRoZSBjYWxsIHNpdGUgaGFwcGVucyB0byBwYXNzIGEgcGxhY2Vob2xkZXIuXG5Bc3NldFNlbGVjdC5kaXNwbGF5TmFtZSA9ICdBc3NldFNlbGVjdCc7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -73,6 +73,12 @@ export interface AssetSelectProps extends Omit<SelectProps, 'options' | 'renderV
|
|
|
73
73
|
* ```
|
|
74
74
|
*/
|
|
75
75
|
options: AssetSelectOptions;
|
|
76
|
+
/**
|
|
77
|
+
* Maximum height of the entire panel. By default it adapts to the available
|
|
78
|
+
* clipping space; pass a number to cap it. Fixed listHeight is also supported.
|
|
79
|
+
* @default 'auto'
|
|
80
|
+
*/
|
|
81
|
+
listMaxHeight?: number | 'auto';
|
|
76
82
|
/**
|
|
77
83
|
* Bold the currency symbol in the trigger and the dropdown options.
|
|
78
84
|
* @default true
|
|
@@ -19,7 +19,6 @@ import { useSelectShell } from './useSelectShell';
|
|
|
19
19
|
import { KEYBOARD, SELECT_TYPOGRAPHY } from './constants';
|
|
20
20
|
import { extractOptionText, filterOptionGroups, flattenOptionGroups, getMultipleValue, getFontSize, getOptionsByValues, getSelectedOptions, isOptionSelected, isSelectMultipleValue, normalizeSize, normalizeOptionGroups, removeMultipleValue, toggleMultipleValue } from './utils';
|
|
21
21
|
import './style';
|
|
22
|
-
var DEFAULT_MAX_HEIGHT = 320;
|
|
23
22
|
export var Select = function Select(props) {
|
|
24
23
|
var _a;
|
|
25
24
|
var locale = useLocale('Select');
|
|
@@ -83,8 +82,8 @@ export var Select = function Select(props) {
|
|
|
83
82
|
panelClassName = props.panelClassName,
|
|
84
83
|
optionClassName = props.optionClassName,
|
|
85
84
|
groupLabelClassName = props.groupLabelClassName,
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
listMaxHeight = props.listMaxHeight,
|
|
86
|
+
listHeight = props.listHeight,
|
|
88
87
|
offset = props.offset,
|
|
89
88
|
animation = props.animation,
|
|
90
89
|
onChange = props.onChange,
|
|
@@ -168,6 +167,7 @@ export var Select = function Select(props) {
|
|
|
168
167
|
disabled: disabled,
|
|
169
168
|
readOnly: readOnly,
|
|
170
169
|
listMaxHeight: listMaxHeight,
|
|
170
|
+
listHeight: listHeight,
|
|
171
171
|
animation: animation,
|
|
172
172
|
offset: offset
|
|
173
173
|
}),
|
|
@@ -595,4 +595,4 @@ export var Select = function Select(props) {
|
|
|
595
595
|
};
|
|
596
596
|
Select.displayName = 'Select';
|
|
597
597
|
export default /*#__PURE__*/memo(Select);
|
|
598
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VMb2NhbGUiLCJ1c2VGb3JtQ29udHJvbFNpemUiLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0Rm9udFNpemUiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJpc09wdGlvblNlbGVjdGVkIiwiaXNTZWxlY3RNdWx0aXBsZVZhbHVlIiwibm9ybWFsaXplU2l6ZSIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwicHJvcHMiLCJfYSIsImxvY2FsZSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJzaXplUHJvcCIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsSGVhZGVyIiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwicGFuZWxDbGFzc05hbWUiLCJvcHRpb25DbGFzc05hbWUiLCJncm91cExhYmVsQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib2Zmc2V0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJyZW5kZXJWYWx1ZSIsInJlZiIsImNvbnRleHRTaXplIiwiaW50ZXJhY3RpdmUiLCJjbGFzc2VzIiwiYXV0b0lkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwib3B0aW9uSWRQcmVmaXgiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkVmFsdWVzIiwiU2V0Iiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwiaW5uZXJPcGVuIiwiaXNPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInNldE9wZW4iLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwidHJhbnNpdGlvblN0eWxlcyIsImlzTW91bnRlZCIsImJhc2VJbnRlcmFjdGlvbnMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImVuYWJsZWQiLCJsb29wIiwidmlydHVhbCIsInR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJwcmV2IiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwic2xpY2UiLCJzZXRTZWFyY2hJbnB1dFJlZiIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJuZXh0T3B0aW9ucyIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImluY2x1ZGVzIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJFTlRFUiIsIlNQQUNFIiwicHJldmVudERlZmF1bHQiLCJBUlJPV19ET1dOIiwiQVJST1dfVVAiLCJoYW5kbGVJdGVtTW91c2VFbnRlciIsImluZGV4IiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiaGFuZGxlU2VhcmNoQ2xlYXIiLCJmaW5kRW5hYmxlZEluZGV4IiwiZGlyZWN0aW9uIiwic3RhcnQiLCJzdGVwIiwiY2FuZGlkYXRlIiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIm5leHQiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJmb250U2l6ZSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJpY29uU2l6ZSIsImFjdGl2ZU9wdGlvbklkIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJjaGlsZHJlbiIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJvbktleURvd24iLCJvblJlbW92ZSIsIm9uUmVtb3ZlQ2xpY2siLCJvblJlbW92ZU1vdXNlRG93biIsInN0cm9rZVdpZHRoIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiYWN0aXZlRGVzY2VuZGFudCIsIm9uQ2xlYXIiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaGFzIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsInJvbGUiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwiY29udGVudCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsU0FDRUMsb0JBQW9CLEVBQ3BCQyxjQUFjLEVBQ2RDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQyxZQUFZLFFBQ1Asb0JBQW9CO0FBQzNCLFNBQVNDLElBQUksRUFBRUMsU0FBUyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFB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R0FBQSxLQUFBLENBQUEsR0FBbkJBLG1CQUFtQixDQUFHc0MsTUFBTSxFQUFFeUgsVUFBVTtzQkFBQyxDQUFBO29CQUVyRCxDQUFBLENBQUEsS0FBQTFGLE1BQUEsQ0FyQ09tRixLQUFLLENBQUNyRCxHQUFHLE9BQUE5QixNQUFBLENBQUkvQixNQUFNLENBQUNqRyxLQUFLLENBQUUsQ0FzQzVCO2tCQUViLENBQUMsQ0FBQztnQkFBQSxDQUFBLEVBcEVNbU4sS0FBSyxDQUFDckQsR0FBRyxDQXFFYjtjQUFBLENBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUNIO1VBQUEsQ0FBQSxDQUNHLEVBQ0x4SCxXQUFXLElBQUksSUFBSSxJQUNsQnJHLElBQUEsQ0FBQSxLQUFBLEVBQUE7WUFBS21ELFNBQVMsRUFBRTRFLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFBQWdJLFFBQUEsRUFBRzFKO1VBQVcsQ0FBQSxDQUN0RDtRQUFBLENBQUEsQ0FBQTtNQUNHLENBQUEsQ0FFVDtNQUVELE9BQU9LLE1BQU0sR0FBRzFHLElBQUEsQ0FBQ0ksY0FBYyxFQUFBO1FBQUEyUCxRQUFBLEVBQUVVO01BQVMsQ0FBQSxDQUFrQixHQUFHQSxTQUFTO0lBQzFFLENBQUMsQ0FBQyxDQUFFO0VBQUEsQ0FBQSxDQUNhO0FBRXZCLENBQUM7QUFFRDNOLE1BQU0sQ0FBQ2dQLFdBQVcsR0FBRyxRQUFRO0FBRTdCLDRCQUFldFIsSUFBSSxDQUFDc0MsTUFBTSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIHVzZUludGVyYWN0aW9ucywgdXNlTGlzdE5hdmlnYXRpb24sIHVzZVR5cGVhaGVhZCwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHVzZUZvcm1Db250cm9sU2l6ZSB9IGZyb20gJy4uL0Zvcm1MYXlvdXQvY29udGV4dCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldEZvbnRTaXplLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgaXNTZWxlY3RNdWx0aXBsZVZhbHVlLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ1NlbGVjdCcpO1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gbG9jYWxlLnBsYWNlaG9sZGVyLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemU6IHNpemVQcm9wLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBtYXhWaXNpYmxlVmFsdWVzLCBzZWFyY2hhYmxlID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyID0gbG9jYWxlLnNlYXJjaFBsYWNlaG9sZGVyLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgbGFiZWwsIGxhYmVsQ2xhc3NOYW1lLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gdHJ1ZSwgcHJlZml4LCBlbXB0eUNvbnRlbnQgPSBsb2NhbGUuZW1wdHlDb250ZW50LCBwYW5lbEhlYWRlciwgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgcGFuZWxDbGFzc05hbWUsIG9wdGlvbkNsYXNzTmFtZSwgZ3JvdXBMYWJlbENsYXNzTmFtZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb2Zmc2V0LCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJPcHRpb25Db250ZW50LCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgLy8gQmFyZS1jb250cm9sIHNpemUgZGVmYXVsdDogYW4gZXhwbGljaXQgYHNpemVgIHdpbnM7IGluc2lkZSBhIEZvcm1MYXlvdXRcbiAgICAvLyB0aGUgdmFyaWFudCdzIGNvbnRyb2xTaXplIGFwcGxpZXM7IGVsc2V3aGVyZSAnbGFyZ2UnLlxuICAgIGNvbnN0IGNvbnRleHRTaXplID0gdXNlRm9ybUNvbnRyb2xTaXplKCk7XG4gICAgY29uc3Qgc2l6ZSA9IChfYSA9IHNpemVQcm9wICE9PSBudWxsICYmIHNpemVQcm9wICE9PSB2b2lkIDAgPyBzaXplUHJvcCA6IGNvbnRleHRTaXplKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnbGFyZ2UnO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IG9wdGlvbklkUHJlZml4ID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIC8vIFJlYnVpbGQgcGVyIHJlbmRlcjogY29udHJvbGxlZCBhcnJheXMgbWF5IGJlIG11dGF0ZWQgaW4gcGxhY2UsIGFuZCBvcHRpb25cbiAgICAvLyBtZW1iZXJzaGlwIHByZXZpb3VzbHkgcmVhZCB0aGVpciBjdXJyZW50IGNvbnRlbnRzIG9uIGV2ZXJ5IHJlbmRlci5cbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IGlzU2VsZWN0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBtdWx0aXBsZSkgPyBuZXcgU2V0KGlubmVyVmFsdWUpIDogbnVsbDtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3BlbjogaW5uZXJPcGVuLCBzZXRPcGVuOiBoYW5kbGVPcGVuQ2hhbmdlLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgdmlydHVhbDogc2VhcmNoYWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICAuLi5iYXNlSW50ZXJhY3Rpb25zLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgY29uc3Qgc2V0U2VhcmNoSW5wdXRSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZSAmJiBpbm5lck9wZW4gJiYgZmlsdGVySW5wdXRBdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5vZGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24sIG5hbWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChpbm5lck9wZW4gJiZcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDbGVhciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGhhbmRsZVNlYXJjaENoYW5nZSgnJyk7XG4gICAgICAgIChfYSA9IHNlYXJjaElucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgZmluZEVuYWJsZWRJbmRleCA9IHVzZUV2ZW50Q2FsbGJhY2soKGN1cnJlbnQsIGRpcmVjdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB2b2lkIDAgPyBjdXJyZW50IDogKGRpcmVjdGlvbiA9PT0gMSA/IC0xIDogbGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9ICgoc3RhcnQgKyBkaXJlY3Rpb24gKiBzdGVwKSAlIGxlbmd0aCArIGxlbmd0aCkgJSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbY2FuZGlkYXRlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgLTEpO1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUikge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgc2l6ZTogbm9ybWFsaXplZFNpemUsXG4gICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAvLyBBIGN1c3RvbSBgcmVuZGVyVmFsdWVgIHByb2R1Y2VzIGl0cyBvd24gc2luZ2xlLWxpbmUgc3VtbWFyeSwgc28gdGhlXG4gICAgICAgIC8vIG11bHRpLXZhbHVlIGNoaXAgbGF5b3V0IChoZWlnaHQ6YXV0byArIHZlcnRpY2FsIHBhZGRpbmcgKyBmbGV4LXdyYXApXG4gICAgICAgIC8vIG11c3Qgbm90IGtpY2sgaW4gYW5kIGluZmxhdGUgdGhlIHRyaWdnZXIgaGVpZ2h0LlxuICAgICAgICAhcmVuZGVyVmFsdWUpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJyksIHJlYWRPbmx5ICYmICFkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLXJlYWRvbmx5JykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnbGFyZ2UnID8gMjAgOiAxNjtcbiAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IHNlYXJjaGFibGUgJiYgaW5uZXJPcGVuICYmIGFjdGl2ZUluZGV4ICE9PSBudWxsXG4gICAgICAgID8gYCR7b3B0aW9uSWRQcmVmaXh9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCByZWFkT25seTogcmVhZE9ubHksIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZWFkT25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlzTW91bnRlZCAmJiBpbnRlcmFjdGl2ZSAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2V0U2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaXplPXtub3JtYWxpemVkU2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJzbWFsbFwiLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBhY3RpdmVEZXNjZW5kYW50OiBhY3RpdmVPcHRpb25JZCwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbkNsZWFyOiBoYW5kbGVTZWFyY2hDbGVhciwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IFtwYW5lbEhlYWRlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXInKSwgY2hpbGRyZW46IHBhbmVsSGVhZGVyIH0pKSwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5zaXplLCBjb2xvcjogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuY29sb3IsIGNoaWxkcmVuOiBlbXB0eUNvbnRlbnQgfSkgfSkpIDogKCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcsIGdyb3VwTGFiZWxDbGFzc05hbWUpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25GbGF0SW5kZXggPSBmbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNlbGVjdGVkVmFsdWVzLmhhcyhvcHRpb24udmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHtvcHRpb25JZFByZWZpeH0tJHtvcHRpb25GbGF0SW5kZXh9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCwgc2l6ZTogbm9ybWFsaXplZFNpemUsIGNvbnRlbnQ6IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IG51bGwgfHwgcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyT3B0aW9uQ29udGVudChvcHRpb24sIG9wdGlvbk1ldGEpIH0pKSB9KSwgYCR7Z3JvdXAua2V5fS0ke29wdGlvbi52YWx1ZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSldIH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWxOb2RlIH0pIDogcGFuZWxOb2RlO1xuICAgICAgICAgICAgfSkoKV0gfSkpO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWxlY3QnO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
598
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VMb2NhbGUiLCJ1c2VGb3JtQ29udHJvbFNpemUiLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0Rm9udFNpemUiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJpc09wdGlvblNlbGVjdGVkIiwiaXNTZWxlY3RNdWx0aXBsZVZhbHVlIiwibm9ybWFsaXplU2l6ZSIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwiU2VsZWN0IiwicHJvcHMiLCJfYSIsImxvY2FsZSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJzaXplUHJvcCIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsSGVhZGVyIiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwicGFuZWxDbGFzc05hbWUiLCJvcHRpb25DbGFzc05hbWUiLCJncm91cExhYmVsQ2xhc3NOYW1lIiwibGlzdE1heEhlaWdodCIsImxpc3RIZWlnaHQiLCJvZmZzZXQiLCJhbmltYXRpb24iLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uQ29udGVudCIsInJlbmRlclZhbHVlIiwicmVmIiwiY29udGV4dFNpemUiLCJpbnRlcmFjdGl2ZSIsImNsYXNzZXMiLCJhdXRvSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJvcHRpb25JZFByZWZpeCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwiYWxsRmxhdE9wdGlvbnMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRWYWx1ZXMiLCJTZXQiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJpbm5lck9wZW4iLCJpc09wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwibGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsInNldFNlYXJjaElucHV0UmVmIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm5leHRPcHRpb25zIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiaW5jbHVkZXMiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaW5kZXgiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJoYW5kbGVTZWFyY2hDbGVhciIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsImZvbnRTaXplIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImljb25TaXplIiwiYWN0aXZlT3B0aW9uSWQiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImNoaWxkcmVuIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwic3Ryb2tlV2lkdGgiLCJjb2xvciIsInBhbmVsTm9kZSIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJhY3RpdmVEZXNjZW5kYW50Iiwib25DbGVhciIsImVtcHR5IiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJncm91cExhYmVsIiwic3Ryb25nIiwib3B0aW9uRmxhdEluZGV4Iiwic2VsZWN0ZWQiLCJoYXMiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwicm9sZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUNFQyxvQkFBb0IsRUFDcEJDLGNBQWMsRUFDZEMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3pFLE9BQU9DLGtCQUFrQixNQUFNLGtDQUFrQztBQUNqRSxPQUFPQyxnQkFBZ0IsTUFBTSxnQ0FBZ0M7QUFDN0QsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUM3QyxTQUFTQyxrQkFBa0IsUUFBUSx1QkFBdUI7QUFDMUQsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLEVBQUVDLE9BQU8sSUFBSUMsY0FBYyxRQUFRLHdCQUF3QjtBQWUzRSxPQUFPQyxnQkFBZ0IsTUFBTSxvQkFBb0I7QUFDakQsT0FBT0MsbUJBQW1CLE1BQU0sdUJBQXVCO0FBQ3ZELE9BQU9DLG1CQUFtQixNQUFNLHVCQUF1QjtBQUN2RCxPQUFPQyxrQkFBa0IsTUFBTSxzQkFBc0I7QUFDckQsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLEVBQUVDLGlCQUFpQixRQUFRLGFBQWE7QUFDekQsU0FDRUMsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxXQUFXLEVBQ1hDLGtCQUFrQixFQUNsQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsYUFBYSxFQUNiQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsbUJBQW1CLFFBQ2QsU0FBUztBQUNoQixPQUFPLFNBQVM7QUFFaEIsT0FBTyxJQUFNQyxNQUFNLEdBQW9CLFNBQTFCQSxNQUFNQSxDQUFxQkMsS0FBSyxFQUFJO0VEakM3QyxJQUFJQyxFQUFFO0VDa0NSLElBQU1DLE1BQU0sR0FBR2hDLFNBQVMsQ0FBQyxRQUFRLENBQUM7RUFDbEMsSUFBQWlDLGdCQUFBLEdBdURJSCxLQUFLLENBdERQSSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRyxFQUFFLEdBQUFBLGdCQUFBO0lBQUFFLGdCQUFBLEdBc0RaTCxLQUFLLENBckRQTSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRyxRQUFRLEdBQUFBLGdCQUFBO0lBQ3BCRSxLQUFLLEdBb0RIUCxLQUFLLENBcERQTyxLQUFLO0lBQ0xDLEVBQUUsR0FtREFSLEtBQUssQ0FuRFBRLEVBQUU7SUFDRkMsSUFBSSxHQWtERlQsS0FBSyxDQWxEUFMsSUFBSTtJQUNVQyxTQUFTLEdBaURyQlYsS0FBSyxDQWpEUCxZQUFZO0lBQ09XLGNBQWMsR0FnRC9CWCxLQUFLLENBaERQLGlCQUFpQjtJQUFBWSxrQkFBQSxHQWdEZlosS0FBSyxDQS9DUGEsV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUdWLE1BQU0sQ0FBQ1csV0FBVyxHQUFBRCxrQkFBQTtJQUFBRSxjQUFBLEdBK0M5QmQsS0FBSyxDQTlDUGUsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBRyxFQUFFLEdBQUFBLGNBQUE7SUFDWkUsS0FBSyxHQTZDSGhCLEtBQUssQ0E3Q1BnQixLQUFLO0lBQ0xDLFlBQVksR0E0Q1ZqQixLQUFLLENBNUNQaUIsWUFBWTtJQUNOQyxRQUFRLEdBMkNabEIsS0FBSyxDQTNDUG1CLElBQUk7SUFBQUMsYUFBQSxHQTJDRnBCLEtBQUssQ0ExQ1BxQixNQUFNO0lBQU5BLE1BQU0sR0FBQUQsYUFBQSxjQUFHLFNBQVMsR0FBQUEsYUFBQTtJQUFBRSxjQUFBLEdBMENoQnRCLEtBQUssQ0F6Q1B1QixPQUFPO0lBQVBBLE9BQU8sR0FBQUQsY0FBQSxjQUFHLE1BQU0sR0FBQUEsY0FBQTtJQUFBRSxlQUFBLEdBeUNkeEIsS0FBSyxDQXhDUHlCLFFBQVE7SUFBRUMsWUFBWSxHQUFBRixlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUFHLGVBQUEsR0F3QzVCM0IsS0FBSyxDQXZDUDRCLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUFFLGNBQUEsR0F1Q2Q3QixLQUFLLENBdENQOEIsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBRyxLQUFLLEdBQUFBLGNBQUE7SUFBQUUsZUFBQSxHQXNDYi9CLEtBQUssQ0FyQ1BnQyxRQUFRO0lBQVJBLFFBQVEsR0FBQUQsZUFBQSxjQUFHLEtBQUssR0FBQUEsZUFBQTtJQUNoQkUsZ0JBQWdCLEdBb0NkakMsS0FBSyxDQXBDUGlDLGdCQUFnQjtJQUFBQyxpQkFBQSxHQW9DZGxDLEtBQUssQ0FuQ1BtQyxVQUFVO0lBQVZBLFVBQVUsR0FBQUQsaUJBQUEsY0FBRyxLQUFLLEdBQUFBLGlCQUFBO0lBQUFFLHFCQUFBLEdBbUNoQnBDLEtBQUssQ0FsQ1BxQyxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHbEMsTUFBTSxDQUFDbUMsaUJBQWlCLEdBQUFELHFCQUFBO0lBQzVDRSxXQUFXLEdBaUNUdEMsS0FBSyxDQWpDUHNDLFdBQVc7SUFBQUMscUJBQUEsR0FpQ1R2QyxLQUFLLENBaENQd0Msa0JBQWtCO0lBQWxCQSxrQkFBa0IsR0FBQUQscUJBQUEsY0FBRyxFQUFFLEdBQUFBLHFCQUFBO0lBQUFFLHFCQUFBLEdBZ0NyQnpDLEtBQUssQ0EvQlAwQyxvQkFBb0I7SUFBcEJBLG9CQUFvQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDM0JFLEtBQUssR0E4QkgzQyxLQUFLLENBOUJQMkMsS0FBSztJQUNMQyxjQUFjLEdBNkJaNUMsS0FBSyxDQTdCUDRDLGNBQWM7SUFDZEMsSUFBSSxHQTRCRjdDLEtBQUssQ0E1QlA2QyxJQUFJO0lBQ0pDLFdBQVcsR0EyQlQ5QyxLQUFLLENBM0JQOEMsV0FBVztJQUNYQyxRQUFRLEdBMEJOL0MsS0FBSyxDQTFCUCtDLFFBQVE7SUFBQUMsZUFBQSxHQTBCTmhELEtBQUssQ0F6QlBpRCxRQUFRO0lBQVJBLFFBQVEsR0FBQUQsZUFBQSxjQUFHLElBQUksR0FBQUEsZUFBQTtJQUNmRSxNQUFNLEdBd0JKbEQsS0FBSyxDQXhCUGtELE1BQU07SUFBQUMsbUJBQUEsR0F3QkpuRCxLQUFLLENBdkJQb0QsWUFBWTtJQUFaQSxZQUFZLEdBQUFELG1CQUFBLGNBQUdqRCxNQUFNLENBQUNrRCxZQUFZLEdBQUFELG1CQUFBO0lBQ2xDRSxXQUFXLEdBc0JUckQsS0FBSyxDQXRCUHFELFdBQVc7SUFDWEMsV0FBVyxHQXFCVHRELEtBQUssQ0FyQlBzRCxXQUFXO0lBQ1hDLElBQUksR0FvQkZ2RCxLQUFLLENBcEJQdUQsSUFBSTtJQUFBQyxrQkFBQSxHQW9CRnhELEtBQUssQ0FuQlB5RCxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsa0JBQUEsY0FBRyxLQUFLLEdBQUFBLGtCQUFBO0lBQUFFLGFBQUEsR0FtQmpCMUQsS0FBSyxDQWxCUDJELE1BQU07SUFBTkEsTUFBTSxHQUFBRCxhQUFBLGNBQUcsSUFBSSxHQUFBQSxhQUFBO0lBQUFFLG9CQUFBLEdBa0JYNUQsS0FBSyxDQWpCUDZELGFBQWE7SUFBYkEsYUFBYSxHQUFBRCxvQkFBQSxjQUFHLEtBQUssR0FBQUEsb0JBQUE7SUFDckJFLGNBQWMsR0FnQlo5RCxLQUFLLENBaEJQOEQsY0FBYztJQUNkQyxlQUFlLEdBZWIvRCxLQUFLLENBZlArRCxlQUFlO0lBQ2ZDLG1CQUFtQixHQWNqQmhFLEtBQUssQ0FkUGdFLG1CQUFtQjtJQUNuQkMsYUFBYSxHQWFYakUsS0FBSyxDQWJQaUUsYUFBYTtJQUNiQyxVQUFVLEdBWVJsRSxLQUFLLENBWlBrRSxVQUFVO0lBQ1ZDLE1BQU0sR0FXSm5FLEtBQUssQ0FYUG1FLE1BQU07SUFDTkMsU0FBUyxHQVVQcEUsS0FBSyxDQVZQb0UsU0FBUztJQUNUQyxRQUFRLEdBU05yRSxLQUFLLENBVFBxRSxRQUFRO0lBQ1JDLFlBQVksR0FRVnRFLEtBQUssQ0FSUHNFLFlBQVk7SUFDWkMsY0FBYyxHQU9adkUsS0FBSyxDQVBQdUUsY0FBYztJQUNkQyxNQUFNLEdBTUp4RSxLQUFLLENBTlB3RSxNQUFNO0lBQ05DLFlBQVksR0FLVnpFLEtBQUssQ0FMUHlFLFlBQVk7SUFDWkMsWUFBWSxHQUlWMUUsS0FBSyxDQUpQMEUsWUFBWTtJQUNaQyxtQkFBbUIsR0FHakIzRSxLQUFLLENBSFAyRSxtQkFBbUI7SUFDbkJDLFdBQVcsR0FFVDVFLEtBQUssQ0FGUDRFLFdBQVc7SUFDWEMsR0FBRyxHQUNEN0UsS0FBSyxDQURQNkUsR0FBRztFQUVMO0VBQ0E7RUFDQSxJQUFNQyxXQUFXLEdBQUczRyxrQkFBa0IsQ0FBQSxDQUFFO0VBQ3hDLElBQU1nRCxJQUFJLEdBQUcsQ0FBQWxCLEVBQUEsR0FBQWlCLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxHQUFJNEQsV0FBVyxNQUFBLElBQUEsSUFBQTdFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLE9BQU87RUFDL0MsSUFBTXdCLFFBQVEsR0FBR0MsWUFBWSxJQUFJSSxPQUFPO0VBQ3hDLElBQU1pRCxXQUFXLEdBQUcsQ0FBQ3RELFFBQVEsSUFBSSxDQUFDRyxRQUFRO0VBRTFDLElBQU1vRCxPQUFPLEdBQUd0RyxjQUFjLENBQUM0QixTQUFTLENBQUM7RUFDekMsSUFBTTJFLE1BQU0sR0FBR3JILEtBQUssQ0FBQSxDQUFFO0VBQ3RCLElBQU1zSCxTQUFTLEdBQUcxRSxFQUFFLEtBQUEsSUFBQSxJQUFGQSxFQUFFLEtBQUEsS0FBQSxDQUFBLEdBQUZBLEVBQUUsR0FBSXlFLE1BQU07RUFDOUIsSUFBTUUsT0FBTyxHQUFHdkgsS0FBSyxDQUFBLENBQUU7RUFDdkIsSUFBTXdILGFBQWEsR0FBR3hILEtBQUssQ0FBQSxDQUFFO0VBQzdCLElBQU15SCxVQUFVLEdBQUd6SCxLQUFLLENBQUEsQ0FBRTtFQUMxQixJQUFNMEgsY0FBYyxHQUFHMUgsS0FBSyxDQUFBLENBQUU7RUFDOUIsSUFBQTJILG1CQUFBLEdBQW9Ddkgsa0JBQWtCLENBQ3BEaUQsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLEdBQUtlLFFBQVEsR0FBRyxFQUFFLEdBQUd3RCxTQUFVLEVBQzNDeEUsS0FBSyxDQUNOO0lBQUF5RSxvQkFBQSxHQUFBQyxjQUFBLENBQUFILG1CQUFBO0lBSE1JLFVBQVUsR0FBQUYsb0JBQUE7SUFBRUcsYUFBYSxHQUFBSCxvQkFBQTtFQUloQyxJQUFBSSxvQkFBQSxHQUFnRDdILGtCQUFrQixDQUNoRXdFLGtCQUFrQixFQUNsQkYsV0FBVyxDQUNaO0lBQUF3RCxvQkFBQSxHQUFBSixjQUFBLENBQUFHLG9CQUFBO0lBSE1FLGdCQUFnQixHQUFBRCxvQkFBQTtJQUFFRSxtQkFBbUIsR0FBQUYsb0JBQUE7RUFJNUMsSUFBQUcsU0FBQSxHQUFzQ2xJLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUFtSSxVQUFBLEdBQUFSLGNBQUEsQ0FBQU8sU0FBQTtJQUE1REUsV0FBVyxHQUFBRCxVQUFBO0lBQUVFLGNBQWMsR0FBQUYsVUFBQTtFQUVsQyxJQUFNRyxjQUFjLEdBQUcxRyxhQUFhLENBQUN3QixJQUFJLENBQUM7RUFDMUMsSUFBTW1GLGVBQWUsR0FBR3pJLE9BQU8sQ0FDN0I7SUFBQSxPQUFNK0IscUJBQXFCLENBQUNtQixPQUFPLENBQUM7RUFBQSxHQUNwQyxDQUFDQSxPQUFPLENBQUMsQ0FDVjtFQUNELElBQU13RixjQUFjLEdBQUcxSSxPQUFPLENBQzVCO0lBQUEsT0FBTXVCLG1CQUFtQixDQUFDa0gsZUFBZSxDQUFDO0VBQUEsR0FDMUMsQ0FBQ0EsZUFBZSxDQUFDLENBQ2xCO0VBQ0QsSUFBTUUsbUJBQW1CLEdBQUczSSxPQUFPLENBQ2pDO0lBQUEsT0FDRXNFLFVBQVUsR0FDTmhELGtCQUFrQixDQUFDbUgsZUFBZSxFQUFFUCxnQkFBZ0IsRUFBRXRCLFlBQVksQ0FBQyxHQUNuRTZCLGVBQWU7RUFBQSxDQUNwQixFQUNELENBQUNBLGVBQWUsRUFBRTdCLFlBQVksRUFBRXNCLGdCQUFnQixFQUFFNUQsVUFBVSxDQUFDLENBQzlEO0VBQ0QsSUFBTXNFLGtCQUFrQixHQUFHNUksT0FBTyxDQUNoQztJQUFBLE9BQU11QixtQkFBbUIsQ0FBQ29ILG1CQUFtQixDQUFDO0VBQUEsR0FDOUMsQ0FBQ0EsbUJBQW1CLENBQUMsQ0FDdEI7RUFDRCxJQUFNRSxlQUFlLEdBQUc3SSxPQUFPLENBQzdCO0lBQUEsT0FBTTJCLGtCQUFrQixDQUFDK0csY0FBYyxFQUFFWixVQUFVLEVBQUUzRCxRQUFRLENBQUM7RUFBQSxHQUM5RCxDQUFDdUUsY0FBYyxFQUFFWixVQUFVLEVBQUUzRCxRQUFRLENBQUMsQ0FDdkM7RUFDRDtFQUNBO0VBQ0EsSUFBTTJFLGNBQWMsR0FBR2pILHFCQUFxQixDQUFDaUcsVUFBVSxFQUFFM0QsUUFBUSxDQUFDLEdBQUcsSUFBSTRFLEdBQUcsQ0FBQ2pCLFVBQVUsQ0FBQyxHQUFHLElBQUk7RUFDL0YsSUFBTWtCLGFBQWEsR0FBR2hKLE9BQU8sQ0FBQyxZQUFLO0lBQ2pDLElBQUk2SSxlQUFlLENBQUNJLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDaEMsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFNQyxZQUFZLEdBQUdOLGtCQUFrQixDQUFDTyxTQUFTLENBQy9DLFVBQUNDLE1BQU07TUFBQSxPQUFLQSxNQUFNLENBQUNqRyxLQUFLLEtBQUswRixlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMxRixLQUFLO0lBQUEsRUFDdEQ7SUFFRCxPQUFPK0YsWUFBWSxJQUFJLENBQUMsR0FBR0EsWUFBWSxHQUFHLElBQUk7RUFDaEQsQ0FBQyxFQUFFLENBQUNMLGVBQWUsRUFBRUQsa0JBQWtCLENBQUMsQ0FBQztFQUN6QyxJQUFNUyxZQUFZLEdBQUdSLGVBQWUsQ0FBQ0ksTUFBTSxHQUFHLENBQUM7RUFDL0MsSUFBTUssT0FBTyxHQUFHckosTUFBTSxDQUFrQyxFQUFFLENBQUM7RUFDM0QsSUFBTXNKLGNBQWMsR0FBR3RKLE1BQU0sQ0FBdUIsRUFBRSxDQUFDO0VBQ3ZELElBQU11SixXQUFXLEdBQUd2SixNQUFNLENBQXdCLElBQUksQ0FBQztFQUN2RCxJQUFNd0osVUFBVSxHQUFHeEosTUFBTSxDQUEyQixJQUFJLENBQUM7RUFDekQsSUFBTXlKLGNBQWMsR0FBR3pKLE1BQU0sQ0FBMEIsSUFBSSxDQUFDO0VBRTVELElBQU0wSixnQkFBZ0IsR0FBR3ZKLGdCQUFnQixDQUFDLFVBQUN3SixJQUE4QixFQUFJO0lBQzNFSCxVQUFVLENBQUNJLE9BQU8sR0FBR0QsSUFBSTtJQUN6QixJQUFJNUMsR0FBRyxFQUFFO01BQ05BLEdBQTZDLENBQUM2QyxPQUFPLEdBQUdELElBQUk7SUFDL0Q7RUFDRixDQUFDLENBQUM7RUFFRixJQUFBRSxlQUFBLEdBU0k1SSxjQUFjLENBQW9CO01BQ3BDd0UsSUFBSSxFQUFKQSxJQUFJO01BQ0pFLFdBQVcsRUFBWEEsV0FBVztNQUNYYSxZQUFZLEVBQVpBLFlBQVk7TUFDWjdDLFFBQVEsRUFBUkEsUUFBUTtNQUNSRyxRQUFRLEVBQVJBLFFBQVE7TUFDUnFDLGFBQWEsRUFBYkEsYUFBYTtNQUNiQyxVQUFVLEVBQVZBLFVBQVU7TUFDVkUsU0FBUyxFQUFUQSxTQUFTO01BQ1RELE1BQU0sRUFBTkE7SUQvSEEsQ0NnSUQsQ0FBQztJQWxCUXlELFNBQVMsR0FBQUQsZUFBQSxDQUFqQkUsTUFBTTtJQUNHQyxnQkFBZ0IsR0FBQUgsZUFBQSxDQUF6QkksT0FBTztJQUNQQyxJQUFJLEdBQUFMLGVBQUEsQ0FBSkssSUFBSTtJQUNKQyxPQUFPLEdBQUFOLGVBQUEsQ0FBUE0sT0FBTztJQUNQQyxjQUFjLEdBQUFQLGVBQUEsQ0FBZE8sY0FBYztJQUNkQyxnQkFBZ0IsR0FBQVIsZUFBQSxDQUFoQlEsZ0JBQWdCO0lBQ2hCQyxTQUFTLEdBQUFULGVBQUEsQ0FBVFMsU0FBUztJQUNUQyxnQkFBZ0IsR0FBQVYsZUFBQSxDQUFoQlUsZ0JBQWdCO0VBYWxCLElBQU1DLFlBQVksR0FBR3JLLGdCQUFnQixDQUFDLFVBQUN3SixJQUE4QixFQUFJO0lBQ3ZFTyxJQUFJLENBQUNNLFlBQVksQ0FBQ2IsSUFBSSxDQUFDO0lBQ3ZCRCxnQkFBZ0IsQ0FBQ0MsSUFBSSxDQUFDO0VBQ3hCLENBQUMsQ0FBQztFQUVGLElBQU1jLFdBQVcsR0FBR3RLLGdCQUFnQixDQUFDLFVBQUN3SixJQUEyQixFQUFJO0lBQ25FTyxJQUFJLENBQUNPLFdBQVcsQ0FBQ2QsSUFBSSxDQUFDO0lBQ3RCSixXQUFXLENBQUNLLE9BQU8sR0FBR0QsSUFBSTtFQUM1QixDQUFDLENBQUM7RUFFRixJQUFNZSxjQUFjLEdBQUdoTCxpQkFBaUIsQ0FBQ3lLLE9BQU8sRUFBRTtJQUNoRGQsT0FBTyxFQUFQQSxPQUFPO0lBQ1BoQixXQUFXLEVBQVhBLFdBQVc7SUFDWFUsYUFBYSxFQUFiQSxhQUFhO0lBQ2I0QixVQUFVLEVBQUVyQyxjQUFjO0lBQzFCc0MsT0FBTyxFQUFFZCxTQUFTO0lBQ2xCZSxJQUFJLEVBQUUsSUFBSTtJQUNWQyxPQUFPLEVBQUV6RztFRGxJVCxDQ21JRCxDQUFDO0VBQ0YsSUFBTTBHLFNBQVMsR0FBR3BMLFlBQVksQ0FBQ3dLLE9BQU8sRUFBRTtJQUN0Q2QsT0FBTyxFQUFFQyxjQUFjO0lBQ3ZCakIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hVLGFBQWEsRUFBYkEsYUFBYTtJQUNiNkIsT0FBTyxFQUFFZCxTQUFTLElBQUksQ0FBQ3pGLFVBQVU7SUFDakMyRyxPQUFPLEVBQUUxQztFRGxJVCxDQ21JRCxDQUFDO0VBQ0YsSUFBQTJDLGdCQUFBLEdBQThEeEwsZUFBZSxJQUFBeUwsTUFBQSxDQUFBQyxrQkFBQSxDQUN4RVosZ0JBQWdCLElBQ25CRyxjQUFjLEVBQ2RLLFNBQVMsRUFDVixDQUFDO0lBSk1LLGlCQUFpQixHQUFBSCxnQkFBQSxDQUFqQkcsaUJBQWlCO0lBQUVDLGdCQUFnQixHQUFBSixnQkFBQSxDQUFoQkksZ0JBQWdCO0lBQUVDLFlBQVksR0FBQUwsZ0JBQUEsQ0FBWkssWUFBWTtFQU16RCxJQUFNQyxpQkFBaUIsR0FBR3hMLE9BQU8sQ0FDL0I7SUFBQSxPQUFNNEksa0JBQWtCLENBQUNPLFNBQVMsQ0FBQyxVQUFDQyxNQUFNO01BQUEsT0FBSyxDQUFDQSxNQUFNLENBQUN4RixRQUFRO0lBQUEsRUFBQztFQUFBLEdBQ2hFLENBQUNnRixrQkFBa0IsQ0FBQyxDQUNyQjtFQUVEOUksU0FBUyxDQUFDLFlBQUs7SUFDYixJQUFJLENBQUNpSyxTQUFTLEVBQUU7TUFDZHhCLGNBQWMsQ0FBQ1MsYUFBYSxDQUFDO01BQzdCO0lBQ0Y7SUFFQVQsY0FBYyxDQUFDLFVBQUNrRCxJQUFJLEVBQUk7TUFDdEIsSUFBSUEsSUFBSSxLQUFLLElBQUksSUFBSTdDLGtCQUFrQixDQUFDNkMsSUFBSSxDQUFDLElBQUksQ0FBQzdDLGtCQUFrQixDQUFDNkMsSUFBSSxDQUFDLENBQUM3SCxRQUFRLEVBQUU7UUFDbkYsT0FBTzZILElBQUk7TUFDYjtNQUVBLElBQ0V6QyxhQUFhLEtBQUssSUFBSSxJQUN0Qkosa0JBQWtCLENBQUNJLGFBQWEsQ0FBQyxJQUNqQyxDQUFDSixrQkFBa0IsQ0FBQ0ksYUFBYSxDQUFDLENBQUNwRixRQUFRLEVBQzNDO1FBQ0EsT0FBT29GLGFBQWE7TUFDdEI7TUFFQSxPQUFPd0MsaUJBQWlCLElBQUksQ0FBQyxHQUFHQSxpQkFBaUIsR0FBRyxJQUFJO0lBQzFELENBQUMsQ0FBQztFQUNKLENBQUMsRUFBRSxDQUFDQSxpQkFBaUIsRUFBRXpCLFNBQVMsRUFBRWYsYUFBYSxFQUFFSixrQkFBa0IsQ0FBQyxDQUFDO0VBRXJFOUksU0FBUyxDQUFDLFlBQUs7SUQ3SVQsSUFBSXNDLEVBQUU7SUM4SVYsSUFBSSxDQUFDMkgsU0FBUyxJQUFJekIsV0FBVyxLQUFLLElBQUksSUFBSWhFLFVBQVUsRUFBRTtNQUNwRDtJQUNGO0lBRUEsQ0FBQWxDLEVBQUEsR0FBQWtILE9BQU8sQ0FBQ08sT0FBTyxDQUFDdkIsV0FBVyxDQUFDLE1BQUEsSUFBQSxJQUFBbEcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVzSixLQUFLLENBQUM7TUFBRUMsYUFBYSxFQUFFO0lBQUksQ0FBRSxDQUFDO0VBQzlELENBQUMsRUFBRSxDQUFDckQsV0FBVyxFQUFFeUIsU0FBUyxFQUFFekYsVUFBVSxDQUFDLENBQUM7RUFFeEN4RSxTQUFTLENBQUMsWUFBSztJQUNid0osT0FBTyxDQUFDTyxPQUFPLEdBQUdQLE9BQU8sQ0FBQ08sT0FBTyxDQUFDK0IsS0FBSyxDQUFDLENBQUMsRUFBRWhELGtCQUFrQixDQUFDSyxNQUFNLENBQUM7SUFDckVNLGNBQWMsQ0FBQ00sT0FBTyxHQUFHTixjQUFjLENBQUNNLE9BQU8sQ0FBQytCLEtBQUssQ0FBQyxDQUFDLEVBQUVoRCxrQkFBa0IsQ0FBQ0ssTUFBTSxDQUFDO0VBQ3JGLENBQUMsRUFBRSxDQUFDTCxrQkFBa0IsQ0FBQ0ssTUFBTSxDQUFDLENBQUM7RUFFL0IsSUFBTTRDLGlCQUFpQixHQUFHekwsZ0JBQWdCLENBQUMsVUFBQ3dKLElBQTZCLEVBQUk7SUFDM0VGLGNBQWMsQ0FBQ0csT0FBTyxHQUFHRCxJQUFJO0lBQzdCLElBQUlBLElBQUksSUFBSUcsU0FBUyxJQUFJbEYsb0JBQW9CLEVBQUU7TUFDN0MrRSxJQUFJLENBQUM4QixLQUFLLENBQUM7UUFBRUMsYUFBYSxFQUFFO01BQUksQ0FBRSxDQUFDO0lBQ3JDO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBTUcsbUJBQW1CLEdBQUcxTCxnQkFBZ0IsQ0FBQyxVQUFDMkwsYUFBaUMsRUFBRUMsS0FBK0IsRUFBSTtJRGhKOUcsSUFBSTVKLEVBQUUsRUFBRTZKLEVBQUU7SUNpSmQsSUFBTUMsVUFBVSxHQUFHSCxhQUE0QjtJQUMvQyxJQUFNSSxhQUFhLEdBQUcsQ0FBQyxFQUFFRCxVQUFVLEtBQUksQ0FBQTlKLEVBQUEsR0FBQXFILFVBQVUsQ0FBQ0ksT0FBTyxNQUFBLElBQUEsSUFBQXpILEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFZ0ssUUFBUSxDQUFDRixVQUFVLENBQUMsQ0FBQSxDQUFDO0lBQ2hGLElBQU1HLGNBQWMsR0FBRyxDQUFDLEVBQUVILFVBQVUsS0FBSSxDQUFBRCxFQUFBLEdBQUF6QyxXQUFXLENBQUNLLE9BQU8sTUFBQSxJQUFBLElBQUFvQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUcsUUFBUSxDQUFDRixVQUFVLENBQUMsQ0FBQSxDQUFDO0lBRWxGLElBQUksQ0FBQ0MsYUFBYSxJQUFJLENBQUNFLGNBQWMsRUFBRTtNQUNyQzFGLE1BQU0sS0FBQSxJQUFBLElBQU5BLE1BQU0sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBTkEsTUFBTSxDQUFHcUYsS0FBSyxDQUFDO0lBQ2pCO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBTU0saUJBQWlCLEdBQUdsTSxnQkFBZ0IsQ0FBQyxVQUFDNEwsS0FBb0MsRUFBSTtJQUNsRkYsbUJBQW1CLENBQUNFLEtBQUssQ0FBQ0QsYUFBYSxFQUFFQyxLQUFnQyxDQUFDO0VBQzVFLENBQUMsQ0FBQztFQUVGLElBQU1PLGdCQUFnQixHQUFHbk0sZ0JBQWdCLENBQUMsVUFBQzRMLEtBQW9DLEVBQUk7SUFDakZGLG1CQUFtQixDQUFDRSxLQUFLLENBQUNELGFBQWEsRUFBRUMsS0FBZ0MsQ0FBQztFQUM1RSxDQUFDLENBQUM7RUFFRixJQUFNUSxZQUFZLEdBQUdwTSxnQkFBZ0IsQ0FBQyxVQUFDcU0sU0FBc0IsRUFBRUMsVUFBMEMsRUFBSTtJQUMzRzNFLGFBQWEsQ0FBQzBFLFNBQVMsQ0FBQztJQUN4QmpHLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxDQUFHaUcsU0FBUyxFQUFFQyxVQUFVLEVBQUU5SixJQUFJLENBQUM7RUFDekMsQ0FBQyxDQUFDO0VBRUYsSUFBTStKLGtCQUFrQixHQUFHdk0sZ0JBQWdCLENBQUMsVUFBQ2dKLE1BQW9CLEVBQUk7SURwSi9ELElBQUloSCxFQUFFLEVBQUU2SixFQUFFO0lDcUpkLElBQUk3QyxNQUFNLENBQUN4RixRQUFRLEVBQUU7TUFDbkI7SUFDRjtJQUVBLElBQUlPLFFBQVEsRUFBRTtNQUNaLElBQU1zSSxTQUFTLEdBQUd4SyxtQkFBbUIsQ0FBQzZGLFVBQVUsRUFBRXNCLE1BQU0sQ0FBQ2pHLEtBQUssQ0FBQztNQUMvRCxJQUFNeUosV0FBVyxHQUFHbEwsa0JBQWtCLENBQUNnSCxjQUFjLEVBQUUrRCxTQUFTLENBQUM7TUFDakVELFlBQVksQ0FBQ0MsU0FBUyxFQUFFRyxXQUFXLENBQUM7TUFDcEM7SUFDRjtJQUVBLElBQUk1RyxhQUFhLElBQUk4QixVQUFVLEtBQUtzQixNQUFNLENBQUNqRyxLQUFLLEVBQUU7TUFDaERxSixZQUFZLENBQUM3RSxTQUFTLEVBQUVBLFNBQVMsQ0FBQztNQUNsQ3NDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztNQUN2QnRELE1BQU0sS0FBQSxJQUFBLElBQU5BLE1BQU0sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBTkEsTUFBTSxDQUFBLENBQUk7TUFDVixDQUFBdkUsRUFBQSxHQUFBcUgsVUFBVSxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBekgsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVzSixLQUFLLENBQUM7UUFBRUMsYUFBYSxFQUFFO01BQUksQ0FBRSxDQUFDO01BQ2xEO0lBQ0Y7SUFFQWEsWUFBWSxDQUFDcEQsTUFBTSxDQUFDakcsS0FBSyxFQUFFaUcsTUFBTSxDQUFDO0lBQ2xDYSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDdkJ0RCxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBQSxDQUFJO0lBQ1YsQ0FBQXNGLEVBQUEsR0FBQXhDLFVBQVUsQ0FBQ0ksT0FBTyxNQUFBLElBQUEsSUFBQW9DLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFUCxLQUFLLENBQUM7TUFBRUMsYUFBYSxFQUFFO0lBQUksQ0FBRSxDQUFDO0VBQ3BELENBQUMsQ0FBQztFQUVGLElBQU1rQix5QkFBeUIsR0FBR3pNLGdCQUFnQixDQUFDLFVBQUMwTSxXQUE4QixFQUFJO0lBQ3BGLElBQUksQ0FBQzNJLFFBQVEsRUFBRTtNQUNiO0lBQ0Y7SUFFQSxJQUFJLENBQUMzQyxnQkFBZ0IsQ0FBQ3NHLFVBQVUsQ0FBQyxDQUFDaUYsUUFBUSxDQUFDRCxXQUFXLENBQUMsRUFBRTtNQUN2RDtJQUNGO0lBRUEsSUFBTUwsU0FBUyxHQUFHekssbUJBQW1CLENBQUM4RixVQUFVLEVBQUVnRixXQUFXLENBQUM7SUFDOUQsSUFBTUYsV0FBVyxHQUFHbEwsa0JBQWtCLENBQUNnSCxjQUFjLEVBQUUrRCxTQUFTLENBQUM7SUFDakVELFlBQVksQ0FBQ0MsU0FBUyxFQUFFRyxXQUFXLENBQUM7RUFDdEMsQ0FBQyxDQUFDO0VBRUYsSUFBTUksb0JBQW9CLEdBQUc1TSxnQkFBZ0IsQ0FBQyxVQUFDNEwsS0FBNEMsRUFBSTtJQUM3RixJQUFJLENBQUM5RSxXQUFXLEVBQUU7TUFDaEI7SUFDRjtJQUVBLElBQUk4RSxLQUFLLENBQUNpQixHQUFHLEtBQUs5TCxRQUFRLENBQUMrTCxLQUFLLElBQUlsQixLQUFLLENBQUNpQixHQUFHLEtBQUs5TCxRQUFRLENBQUNnTSxLQUFLLEVBQUU7TUFDaEUsSUFDRXBELFNBQVMsSUFDVHpCLFdBQVcsS0FBSyxJQUFJLElBQ3BCTSxrQkFBa0IsQ0FBQ04sV0FBVyxDQUFDLElBQy9CLENBQUNNLGtCQUFrQixDQUFDTixXQUFXLENBQUMsQ0FBQzFFLFFBQVEsRUFDekM7UUFDQW9JLEtBQUssQ0FBQ29CLGNBQWMsQ0FBQSxDQUFFO1FBQ3RCVCxrQkFBa0IsQ0FBQy9ELGtCQUFrQixDQUFDTixXQUFXLENBQUMsQ0FBQztRQUNuRDtNQUNGO01BQ0EwRCxLQUFLLENBQUNvQixjQUFjLENBQUEsQ0FBRTtNQUN0Qm5ELGdCQUFnQixDQUFDLENBQUNGLFNBQVMsQ0FBQztNQUM1QjtJQUNGO0lBRUEsSUFBSWlDLEtBQUssQ0FBQ2lCLEdBQUcsS0FBSzlMLFFBQVEsQ0FBQ2tNLFVBQVUsSUFBSXJCLEtBQUssQ0FBQ2lCLEdBQUcsS0FBSzlMLFFBQVEsQ0FBQ21NLFFBQVEsRUFBRTtNQUN4RXRCLEtBQUssQ0FBQ29CLGNBQWMsQ0FBQSxDQUFFO01BQ3RCLElBQUksQ0FBQ3JELFNBQVMsRUFBRTtRQUNkRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7TUFDeEI7SUFDRjtFQUNGLENBQUMsQ0FBQztFQUVGLElBQU1zRCxvQkFBb0IsR0FBR25OLGdCQUFnQixDQUFDLFVBQUNvTixLQUFhLEVBQUk7SUQvSjFELElBQUlwTCxFQUFFO0lDZ0tWLElBQUksRUFBQyxDQUFBQSxFQUFBLEdBQUF3RyxrQkFBa0IsQ0FBQzRFLEtBQUssQ0FBQyxNQUFBLElBQUEsSUFBQXBMLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFd0IsUUFBUSxDQUFBLEVBQUU7TUFDeEMyRSxjQUFjLENBQUNpRixLQUFLLENBQUM7SUFDdkI7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNQyx3QkFBd0IsR0FBR3JOLGdCQUFnQixDQUFDLFVBQUM0TCxLQUF1QyxFQUFJO0lBQzVGQSxLQUFLLENBQUNvQixjQUFjLENBQUEsQ0FBRTtJQUN0QnBCLEtBQUssQ0FBQzBCLGVBQWUsQ0FBQSxDQUFFO0VBQ3pCLENBQUMsQ0FBQztFQUVGLElBQU1DLG9CQUFvQixHQUFHdk4sZ0JBQWdCLENBQUMsVUFBQzRMLEtBQXVDLEVBQUk7SUFDeEZBLEtBQUssQ0FBQ29CLGNBQWMsQ0FBQSxDQUFFO0lBQ3RCcEIsS0FBSyxDQUFDMEIsZUFBZSxDQUFBLENBQUU7RUFDekIsQ0FBQyxDQUFDO0VBRUYsSUFBTUUsZ0JBQWdCLEdBQUd4TixnQkFBZ0IsQ0FBQyxVQUFDNEwsS0FBOEIsRUFBSTtJQUMzRUYsbUJBQW1CLENBQUNFLEtBQUssQ0FBQ0QsYUFBYSxFQUFFQyxLQUFLLENBQUM7RUFDakQsQ0FBQyxDQUFDO0VBRUYsSUFBTTZCLGtCQUFrQixHQUFHek4sZ0JBQWdCLENBQUMsVUFBQ3FNLFNBQWlCLEVBQUk7SUFDaEV0RSxtQkFBbUIsQ0FBQ3NFLFNBQVMsQ0FBQztJQUM5Qi9GLGNBQWMsS0FBQSxJQUFBLElBQWRBLGNBQWMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBZEEsY0FBYyxDQUFHK0YsU0FBUyxDQUFDO0VBQzdCLENBQUMsQ0FBQztFQUVGLElBQU1xQixpQkFBaUIsR0FBRzFOLGdCQUFnQixDQUFDLFlBQUs7SURuSzFDLElBQUlnQyxFQUFFO0lDb0tWeUwsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0lBQ3RCLENBQUF6TCxFQUFBLEdBQUFzSCxjQUFjLENBQUNHLE9BQU8sTUFBQSxJQUFBLElBQUF6SCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXNKLEtBQUssQ0FBQztNQUFFQyxhQUFhLEVBQUU7SUFBSSxDQUFFLENBQUM7RUFDeEQsQ0FBQyxDQUFDO0VBRUYsSUFBTW9DLGdCQUFnQixHQUFHM04sZ0JBQWdCLENBQUMsVUFBQ3lKLE9BQXNCLEVBQUVtRSxTQUFpQixFQUFtQjtJRG5LakcsSUFBSTVMLEVBQUU7SUNvS1YsSUFBTTZHLE1BQU0sR0FBR0wsa0JBQWtCLENBQUNLLE1BQU07SUFDeEMsSUFBSUEsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUNoQixPQUFPLElBQUk7SUFDYjtJQUVBLElBQU1nRixLQUFLLEdBQUdwRSxPQUFPLEtBQUEsSUFBQSxJQUFQQSxPQUFPLEtBQUEsS0FBQSxDQUFBLEdBQVBBLE9BQU8sR0FBS21FLFNBQVMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcvRSxNQUFPO0lBQ3hELEtBQUssSUFBSWlGLElBQUksR0FBRyxDQUFDLEVBQUVBLElBQUksSUFBSWpGLE1BQU0sRUFBRWlGLElBQUksSUFBSSxDQUFDLEVBQUU7TUFDNUMsSUFBTUMsU0FBUyxHQUFHLENBQUMsQ0FBQ0YsS0FBSyxHQUFHRCxTQUFTLEdBQUdFLElBQUksSUFBSWpGLE1BQU0sR0FBR0EsTUFBTSxJQUFJQSxNQUFNO01BQ3pFLElBQUksRUFBQyxDQUFBN0csRUFBQSxHQUFBd0csa0JBQWtCLENBQUN1RixTQUFTLENBQUMsTUFBQSxJQUFBLElBQUEvTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXdCLFFBQVEsQ0FBQSxFQUFFO1FBQzVDLE9BQU91SyxTQUFTO01BQ2xCO0lBQ0Y7SUFDQSxPQUFPLElBQUk7RUFDYixDQUFDLENBQUM7RUFFRixJQUFNQyxtQkFBbUIsR0FBR2hPLGdCQUFnQixDQUFDLFVBQUM0TCxLQUEyQyxFQUFJO0lEcEt2RixJQUFJNUosRUFBRTtJQ3FLVixJQUFJNEosS0FBSyxDQUFDaUIsR0FBRyxLQUFLOUwsUUFBUSxDQUFDa00sVUFBVSxFQUFFO01BQ3JDckIsS0FBSyxDQUFDb0IsY0FBYyxDQUFBLENBQUU7TUFDdEIsSUFBTWlCLElBQUksR0FBR04sZ0JBQWdCLENBQUN6RixXQUFXLEVBQUUsQ0FBQyxDQUFDO01BQzdDLElBQUkrRixJQUFJLEtBQUssSUFBSSxFQUFFO1FBQ2pCOUYsY0FBYyxDQUFDOEYsSUFBSSxDQUFDO01BQ3RCO01BQ0E7SUFDRjtJQUVBLElBQUlyQyxLQUFLLENBQUNpQixHQUFHLEtBQUs5TCxRQUFRLENBQUNtTSxRQUFRLEVBQUU7TUFDbkN0QixLQUFLLENBQUNvQixjQUFjLENBQUEsQ0FBRTtNQUN0QixJQUFNM0IsSUFBSSxHQUFHc0MsZ0JBQWdCLENBQUN6RixXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7TUFDOUMsSUFBSW1ELElBQUksS0FBSyxJQUFJLEVBQUU7UUFDakJsRCxjQUFjLENBQUNrRCxJQUFJLENBQUM7TUFDdEI7TUFDQTtJQUNGO0lBRUEsSUFBSU8sS0FBSyxDQUFDaUIsR0FBRyxLQUFLOUwsUUFBUSxDQUFDK0wsS0FBSyxFQUFFO01BQ2hDLElBQ0U1RSxXQUFXLEtBQUssSUFBSSxJQUNwQk0sa0JBQWtCLENBQUNOLFdBQVcsQ0FBQyxJQUMvQixDQUFDTSxrQkFBa0IsQ0FBQ04sV0FBVyxDQUFDLENBQUMxRSxRQUFRLEVBQ3pDO1FBQ0FvSSxLQUFLLENBQUNvQixjQUFjLENBQUEsQ0FBRTtRQUN0QlQsa0JBQWtCLENBQUMvRCxrQkFBa0IsQ0FBQ04sV0FBVyxDQUFDLENBQUM7TUFDckQ7TUFDQTtJQUNGO0lBRUEsSUFBSTBELEtBQUssQ0FBQ2lCLEdBQUcsS0FBSzlMLFFBQVEsQ0FBQ21OLE1BQU0sRUFBRTtNQUNqQ3RDLEtBQUssQ0FBQ29CLGNBQWMsQ0FBQSxDQUFFO01BQ3RCbkQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO01BQ3ZCLENBQUE3SCxFQUFBLEdBQUFxSCxVQUFVLENBQUNJLE9BQU8sTUFBQSxJQUFBLElBQUF6SCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXNKLEtBQUssQ0FBQztRQUFFQyxhQUFhLEVBQUU7TUFBSSxDQUFFLENBQUM7SUFDcEQ7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNNEMsZUFBZSxHQUEwQjtJQUM3QzNLLFFBQVEsRUFBUkEsUUFBUTtJQUNSRyxRQUFRLEVBQVJBLFFBQVE7SUFDUkksUUFBUSxFQUFSQSxRQUFRO0lBQ1JDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCc0IsSUFBSSxFQUFFcUUsU0FBUztJQUNmL0csV0FBVyxFQUFFLENBQUNxRyxZQUFZO0lBQzFCUixlQUFlLEVBQWZBLGVBQWU7SUFDZnZGLElBQUksRUFBRWtGLGNBQWM7SUFDcEJnRyxRQUFRLEVBQUUvTSxXQUFXLENBQUMrRyxjQUFjO0VEektwQyxDQzBLRDtFQUNELElBQU1pRyxlQUFlLEdBQUdwRixZQUFZLEdBQUcsT0FBTyxHQUFHLGFBQWE7RUFDOUQsSUFBTXFGLHFCQUFxQixHQUN6QnZLLFFBQVEsSUFDUmtGLFlBQVksSUFDWmpGLGdCQUFnQixLQUFLdUQsU0FBUztFQUM5QjtFQUNBO0VBQ0E7RUFDQSxDQUFDWixXQUNGO0VBQ0QsSUFBTTRILGdCQUFnQixHQUFHeEgsT0FBTyxDQUM5QixTQUFTLEVBQ1R4RyxPQUFPLENBQ0x3RyxPQUFPLFlBQUFnRSxNQUFBLENBQVkzQyxjQUFjLENBQUUsQ0FBQyxFQUNwQ3JCLE9BQU8sWUFBQWdFLE1BQUEsQ0FBWXpILE9BQU8sQ0FBRSxDQUFDLEVBQzdCcUcsU0FBUyxJQUFJNUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUNwQ3VILHFCQUFxQixJQUFJdkgsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEVBQzNEa0MsWUFBWSxHQUFHbEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUdBLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUN6RTNELE1BQU0sS0FBSyxTQUFTLElBQUkyRCxPQUFPLFlBQUFnRSxNQUFBLENBQVkzSCxNQUFNLENBQUUsQ0FBQyxFQUNwREksUUFBUSxJQUFJdUQsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3ZDcEQsUUFBUSxJQUFJLENBQUNILFFBQVEsSUFBSXVELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUNyRCxDQUNGO0VBQ0QsSUFBTXlILFFBQVEsR0FBR3BHLGNBQWMsS0FBSyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUU7RUFDckQsSUFBTXFHLGNBQWMsR0FDbEJ2SyxVQUFVLElBQUl5RixTQUFTLElBQUl6QixXQUFXLEtBQUssSUFBSSxNQUFBNkMsTUFBQSxDQUN4QzFELGNBQWMsT0FBQTBELE1BQUEsQ0FBSTdDLFdBQVcsSUFDaENYLFNBQVM7RUFDZixJQUFNbUgsc0JBQXNCLEdBQUdoTSxjQUFjLEtBQUEsSUFBQSxJQUFkQSxjQUFjLEtBQUEsS0FBQSxDQUFBLEdBQWRBLGNBQWMsR0FBS2dDLEtBQUssR0FBR3dDLE9BQU8sR0FBR0ssU0FBVTtFQUM5RSxJQUFNb0gsY0FBYyxHQUFHLENBQ3JCOUosV0FBVyxHQUFHc0MsYUFBYSxHQUFHLElBQUksRUFDbENyQyxRQUFRLEdBQUdzQyxVQUFVLEdBQUcsSUFBSSxDQUM3QixDQUFDd0gsTUFBTSxDQUFDQyxPQUFPLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJdkgsU0FBUztFQUV4QyxPQUNFcEksS0FBQSxDQUFDdUIsZ0JBQWdCLEVBQUE7SUFDZnFHLE9BQU8sRUFBRUEsT0FBTztJQUNoQjVFLFNBQVMsRUFBRUEsU0FBUztJQUNwQmUsSUFBSSxFQUFFa0YsY0FBYztJQUNwQjlFLE9BQU8sRUFBRUEsT0FBTztJQUNoQkYsTUFBTSxFQUFFQSxNQUFNO0lBQ2RJLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkcsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCRSxPQUFPLEVBQUVBLE9BQU87SUFDaEJhLEtBQUssRUFBRUEsS0FBSztJQUNaQyxjQUFjLEVBQUVBLGNBQWM7SUFDOUJDLElBQUksRUFBRUEsSUFBSTtJQUNWQyxXQUFXLEVBQUVBLFdBQVc7SUFDeEJDLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkUsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCa0MsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCQyxhQUFhLEVBQUVBLGFBQWE7SUFDNUJDLFVBQVUsRUFBRUEsVUFBVTtJQUFBMkgsUUFBQSxFQUFBLENBRXRCNVAsS0FBQSxDQUFBLFFBQUEsRUFBQTZQLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNNaEUsaUJBQWlCLENBQUM7TUFDcEJyRSxHQUFHLEVBQUV5RCxZQUFZO01BQ2pCOUgsRUFBRSxFQUFFMEUsU0FBUztNQUNiaUksSUFBSSxFQUFFLFFBQVE7TUFDZDFNLElBQUksRUFBSkEsSUFBSTtNQUNKZ0IsUUFBUSxFQUFSQSxRQUFRO01BQ1IsZUFBZSxFQUFFRyxRQUFRLElBQUk0RCxTQUFTO01BQ3RDcEYsU0FBUyxFQUFFb00sZ0JBQWdCO01BQzNCWSxTQUFTLEVBQUV2QyxvQkFBb0I7TUFDL0JyRyxNQUFNLEVBQUUyRixpQkFBaUI7TUFDekIsWUFBWSxFQUFFekosU0FBUztNQUN2QixpQkFBaUIsRUFBRWlNLHNCQUFzQjtNQUN6QyxrQkFBa0IsRUFBRUM7SUQ5TWxCLENDK01ILENBQUMsRUFBQTtNQUFBSSxRQUFBLEVBQUEsQ0FFRjVQLEtBQUEsQ0FBQSxNQUFBLEVBQUE7UUFBTWdELFNBQVMsRUFBRTRFLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFBQWdJLFFBQUEsRUFBQSxDQUNoQzlKLE1BQU0sSUFBSWhHLElBQUEsQ0FBQSxNQUFBLEVBQUE7VUFBTWtELFNBQVMsRUFBRTRFLE9BQU8sQ0FBQyxRQUFRLENBQUM7VUFBQWdJLFFBQUEsRUFBRzlKO1FBQU0sQ0FBQSxDQUFRLEVBQzlEaEcsSUFBQSxDQUFBLE1BQUEsRUFBQTtVQUNFa0QsU0FBUyxFQUFFNEUsT0FBTyxDQUNoQnNILGVBQWUsRUFDZjlOLE9BQU8sQ0FDTHdHLE9BQU8sSUFBQWdFLE1BQUEsQ0FBSXNELGVBQWUsT0FBQXRELE1BQUEsQ0FBSTNDLGNBQWMsQ0FBRSxDQUFDLEVBQy9Da0cscUJBQXFCLElBQUl2SCxPQUFPLElBQUFnRSxNQUFBLENBQUlzRCxlQUFlLGNBQVcsQ0FBQyxFQUMvRDdLLFFBQVEsSUFBSXVELE9BQU8sSUFBQWdFLE1BQUEsQ0FBSXNELGVBQWUsY0FBVyxDQUFDLENBQ25ELENBQ0Y7VUFBQVUsUUFBQSxFQUVEOVAsSUFBQSxDQUFDNEIsa0JBQWtCLEVBQUE7WUFDakJrRyxPQUFPLEVBQUVBLE9BQU87WUFDaEJrQyxZQUFZLEVBQUVBLFlBQVk7WUFDMUJsRixRQUFRLEVBQUVBLFFBQVE7WUFDbEJuQixXQUFXLEVBQUVBLFdBQVc7WUFDeEIrRCxXQUFXLEVBQUVBLFdBQVc7WUFDeEJ3SCxlQUFlLEVBQUVBLGVBQWU7WUFDaEMxRixlQUFlLEVBQUVBLGVBQWU7WUFDaEN6RSxnQkFBZ0IsRUFBRUEsZ0JBQWdCO1lBQ2xDb0wsUUFBUSxFQUFFM0MseUJBQXlCO1lBQ25DNEMsYUFBYSxFQUFFOUIsb0JBQW9CO1lBQ25DK0IsaUJBQWlCLEVBQUVqQztVQUF3QixDQUFBO1FBQzNDLENBQUEsQ0FDRztNQUFBLENBQUEsQ0FDRixFQUNQcE8sSUFBQSxDQUFBLE1BQUEsRUFBQTtRQUFNa0QsU0FBUyxFQUFFNEUsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUFBZ0ksUUFBQSxFQUU1QmxMLE9BQU8sR0FDRjVFLElBQUEsQ0FBQ21CLE9BQU8sRUFBQTtVQUFDOEMsSUFBSSxFQUFFc0wsUUFBUTtVQUFFZSxXQUFXLEVBQUU7UUFBQyxDQUFBLENBQUksR0FDNUM1TCxRQUFRLEdBQ0wsSUFBSSxHQUNKMUUsSUFBQSxDQUFDa0IsS0FBSyxFQUFBO1VBQUVxQyxJQUFJLEVBQUVtSCxTQUFTLEdBQUcsV0FBVyxHQUFHLGFBQWE7VUFBRXpHLElBQUksRUFBRXNMLFFBQVE7VUFBR2dCLEtBQUssRUFBQztRQUFjLENBQUE7TUFBRSxDQUFBLENBRWxHO0lBQUEsQ0FBQSxDQUFBLENBQ0EsRUFFUnJGLFNBQVMsSUFBSXJELFdBQVcsSUFBSyxZQUFLO01BQ2pDLElBQU0ySSxTQUFTLEdBQ2J4USxJQUFBLENBQUNHLG9CQUFvQixFQUFBO1FBQUM0SyxPQUFPLEVBQUVBLE9BQU87UUFBRTBGLEtBQUssRUFBRSxLQUFLO1FBQUVDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFBRUMsV0FBVyxFQUFFLEtBQUs7UUFBQWIsUUFBQSxFQUN4RjVQLEtBQUEsQ0FBQSxLQUFBLEVBQUE2UCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTS9ELGdCQUFnQixDQUFDO1VBQ25CdEUsR0FBRyxFQUFFMEQsV0FBVztVQUNoQm5JLFNBQVMsRUFBRTVCLE9BQU8sQ0FBQ3dHLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRWxCLGNBQWMsQ0FBQztVQUNwRHZELEtBQUssRUFBQTBNLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBT2hGLGNBQWMsQ0FBQSxFQUFLQyxnQkFBZ0I7UURyUDNDLENDc1BMLENBQUMsRUFBQTtVQUFBNkUsUUFBQSxFQUFBLENBRUQ3SyxVQUFVLElBQ1RqRixJQUFBLENBQUMyQixtQkFBbUIsRUFBQTtZQUNsQmdHLEdBQUcsRUFBRTZFLGlCQUFpQjtZQUN0QjFFLE9BQU8sRUFBRUEsT0FBTztZQUNoQjtZQUNBN0QsSUFBSSxFQUFDLE9BQU87WUFDWk4sV0FBVyxFQUFFd0IsaUJBQWlCO1lBQzlCckIsS0FBSyxFQUFFK0UsZ0JBQWdCO1lBQ3ZCK0gsZ0JBQWdCLEVBQUVwQixjQUFjO1lBQ2hDbEksTUFBTSxFQUFFaUgsZ0JBQWdCO1lBQ3hCcEgsUUFBUSxFQUFFcUgsa0JBQWtCO1lBQzVCcUMsT0FBTyxFQUFFcEMsaUJBQWlCO1lBQzFCeUIsU0FBUyxFQUFFbkI7VUFBbUIsQ0FBQSxDQUVqQyxFQUNEN08sS0FBQSxDQUFBLEtBQUEsRUFBQTtZQUFLZ0QsU0FBUyxFQUFFNEUsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUFBZ0ksUUFBQSxFQUFBLENBQ2xDM0osV0FBVyxJQUFJLElBQUksSUFDbEJuRyxJQUFBLENBQUEsS0FBQSxFQUFBO2NBQUtrRCxTQUFTLEVBQUU0RSxPQUFPLENBQUMsY0FBYyxDQUFDO2NBQUFnSSxRQUFBLEVBQUczSjtZQUFXLENBQUEsQ0FDdEQsRUFDQW9ELGtCQUFrQixDQUFDSyxNQUFNLEtBQUssQ0FBQyxHQUM5QjVKLElBQUEsQ0FBQSxLQUFBLEVBQUE7Y0FBS2tELFNBQVMsRUFBRTRFLE9BQU8sQ0FBQyxPQUFPLENBQUM7Y0FBQWdJLFFBQUEsRUFDOUI5UCxJQUFBLENBQUNvQixjQUFjLEVBQUE7Z0JBQUM2QyxJQUFJLEVBQUVsQyxpQkFBaUIsQ0FBQytPLEtBQUssQ0FBQzdNLElBQUk7Z0JBQUVzTSxLQUFLLEVBQUV4TyxpQkFBaUIsQ0FBQytPLEtBQUssQ0FBQ1AsS0FBSztnQkFBQVQsUUFBQSxFQUFHNUo7Y0FBWSxDQUFBO1lBQWtCLENBQUEsQ0FDckgsR0FFTCxZQUFLO2NBQ0osSUFBSTZLLFNBQVMsR0FBRyxDQUFDO2NBRWpCLE9BQU96SCxtQkFBbUIsQ0FBQzBILEdBQUcsQ0FBQyxVQUFDQyxLQUFLO2dCQUFBLE9BQ25DL1EsS0FBQSxDQUFBLEtBQUEsRUFBQTtrQkFBcUJnRCxTQUFTLEVBQUU0RSxPQUFPLENBQUMsT0FBTyxDQUFDO2tCQUFBZ0ksUUFBQSxFQUFBLENBQzdDbUIsS0FBSyxDQUFDeEwsS0FBSyxJQUNWekYsSUFBQSxDQUFBLEtBQUEsRUFBQTtvQkFBS2tELFNBQVMsRUFBRTRFLE9BQU8sQ0FBQyxhQUFhLEVBQUVoQixtQkFBbUIsQ0FBQztvQkFBQWdKLFFBQUEsRUFDekQ5UCxJQUFBLENBQUNxQixlQUFlLEVBQUE7c0JBQUM0QyxJQUFJLEVBQUVsQyxpQkFBaUIsQ0FBQ21QLFVBQVUsQ0FBQ2pOLElBQUk7c0JBQUVrTixNQUFNLEVBQUEsSUFBQTtzQkFBQXJCLFFBQUEsRUFBRW1CLEtBQUssQ0FBQ3hMO29CQUFLLENBQUE7a0JBQW1CLENBQUEsQ0FFbkcsRUFDQXdMLEtBQUssQ0FBQ3BOLE9BQU8sQ0FBQ21OLEdBQUcsQ0FBQyxVQUFDakgsTUFBTSxFQUFJO29CQUM1QixJQUFNcUgsZUFBZSxHQUFHTCxTQUFTO29CQUNqQ0EsU0FBUyxJQUFJLENBQUM7b0JBRWQsSUFBTU0sUUFBUSxHQUFHNUgsY0FBYyxHQUMzQkEsY0FBYyxDQUFDNkgsR0FBRyxDQUFDdkgsTUFBTSxDQUFDakcsS0FBSyxDQUFDLEdBQ2hDdkIsZ0JBQWdCLENBQUNrRyxVQUFVLEVBQUUzRCxRQUFRLEVBQUVpRixNQUFNLENBQUNqRyxLQUFLLENBQUM7b0JBQ3hELElBQU15TixNQUFNLEdBQUd0SSxXQUFXLEtBQUttSSxlQUFlO29CQUM5QyxJQUFNSSxVQUFVLEdBQTJCO3NCQUN6Q0QsTUFBTSxFQUFOQSxNQUFNO3NCQUNOaE4sUUFBUSxFQUFFLENBQUMsQ0FBQ3dGLE1BQU0sQ0FBQ3hGLFFBQVE7c0JBQzNCNEosS0FBSyxFQUFFaUQsZUFBZTtzQkFDdEJ0TSxRQUFRLEVBQVJBLFFBQVE7c0JBQ1J1QixJQUFJLEVBQUVxRSxTQUFTO3NCQUNmMkcsUUFBUSxFQUFSQSxRQUFRO3NCQUNSbEMsUUFBUSxFQUFFL00sV0FBVyxDQUFDK0csY0FBYztvQkR0UlosQ0N1UnpCO29CQUVEZSxjQUFjLENBQUNNLE9BQU8sQ0FBQzRHLGVBQWUsQ0FBQyxHQUFHcFAsaUJBQWlCLENBQUMrSCxNQUFNLENBQUM7b0JBRW5FLE9BQ0UvSixJQUFBLENBQUEsUUFBQSxFQUFBK1AsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBRU05RCxZQUFZLENBQUM7c0JBQ2Z2RSxHQUFHLFdBQUhBLEdBQUdBLENBQUM0QyxJQUE4QixFQUFBO3dCQUNoQ04sT0FBTyxDQUFDTyxPQUFPLENBQUM0RyxlQUFlLENBQUMsR0FBRzdHLElBQUk7c0JBQ3pDLENBQUM7c0JBQ0RqSCxFQUFFLEtBQUF3SSxNQUFBLENBQUsxRCxjQUFjLE9BQUEwRCxNQUFBLENBQUlzRixlQUFlLENBQUU7c0JBQzFDbkIsSUFBSSxFQUFFLFFBQVE7c0JBQ2R3QixJQUFJLEVBQUUsUUFBUTtzQkFDZHZPLFNBQVMsRUFBRTRFLE9BQU8sQ0FDaEIsUUFBUSxFQUNSeEcsT0FBTyxDQUNMaVEsTUFBTSxJQUFJekosT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUNsQ3VKLFFBQVEsSUFBSXZKLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUN0Q2lDLE1BQU0sQ0FBQ3hGLFFBQVEsSUFBSXVELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUM3Q2pCLGVBQWUsQ0FDaEIsQ0FDRjtzQkFDRHRDLFFBQVEsRUFBRXdGLE1BQU0sQ0FBQ3hGLFFBQVE7c0JBQ3pCLGVBQWUsRUFBRThNLFFBQVE7c0JBQ3pCSyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBRy9FLEtBQXlDLEVBQUk7d0JBQ3JEQSxLQUFLLENBQUNvQixjQUFjLENBQUEsQ0FBRTt3QkFDdEJULGtCQUFrQixDQUFDdkQsTUFBTSxDQUFDO3NCQUM1QixDQUFDO3NCQUNENEgsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7d0JBQUEsT0FBUXpELG9CQUFvQixDQUFDa0QsZUFBZSxDQUFDO3NCQUFBO3NCQUN6RDlKLE1BQU0sRUFBRTRGO29CRG5TWSxDQ29TckIsQ0FBQyxFQUFBO3NCQUFBNEMsUUFBQSxFQUVEdEksWUFBWSxHQUNYQSxZQUFZLENBQUN1QyxNQUFNLEVBQUV5SCxVQUFVLENBQUMsR0FFaEN4UixJQUFBLENBQUMwQixtQkFBbUIsRUFBQTt3QkFDbEJvRyxPQUFPLEVBQUVBLE9BQU87d0JBQ2hCaUMsTUFBTSxFQUFFQSxNQUFNO3dCQUNkc0gsUUFBUSxFQUFFQSxRQUFRO3dCQUNsQnBOLElBQUksRUFBRWtGLGNBQWM7d0JBQ3BCeUksT0FBTyxFQUFFbkssbUJBQW1CLEtBQUEsSUFBQSxJQUFuQkEsbUJBQW1CLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQW5CQSxtQkFBbUIsQ0FBR3NDLE1BQU0sRUFBRXlILFVBQVU7c0JBQUMsQ0FBQTtvQkFFckQsQ0FBQSxDQUFBLEtBQUExRixNQUFBLENBckNPbUYsS0FBSyxDQUFDckQsR0FBRyxPQUFBOUIsTUFBQSxDQUFJL0IsTUFBTSxDQUFDakcsS0FBSyxDQUFFLENBc0M1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQXBFTW1OLEtBQUssQ0FBQ3JELEdBQUcsQ0FxRWI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSDtVQUFBLENBQUEsQ0FDRyxFQUNMeEgsV0FBVyxJQUFJLElBQUksSUFDbEJwRyxJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUtrRCxTQUFTLEVBQUU0RSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFnSSxRQUFBLEVBQUcxSjtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUd6RyxJQUFBLENBQUNJLGNBQWMsRUFBQTtRQUFBMFAsUUFBQSxFQUFFVTtNQUFTLENBQUEsQ0FBa0IsR0FBR0EsU0FBUztJQUMxRSxDQUFDLENBQUMsQ0FBRTtFQUFBLENBQUEsQ0FDYTtBQUV2QixDQUFDO0FBRUQzTixNQUFNLENBQUNnUCxXQUFXLEdBQUcsUUFBUTtBQUU3Qiw0QkFBZXJSLElBQUksQ0FBQ3FDLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi9Db25maWdQcm92aWRlcic7XG5pbXBvcnQgeyB1c2VGb3JtQ29udHJvbFNpemUgfSBmcm9tICcuLi9Gb3JtTGF5b3V0L2NvbnRleHQnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRGb250U2l6ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIGlzU2VsZWN0TXVsdGlwbGVWYWx1ZSwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCdTZWxlY3QnKTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9IGxvY2FsZS5wbGFjZWhvbGRlciwgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplOiBzaXplUHJvcCwgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9IGxvY2FsZS5zZWFyY2hQbGFjZWhvbGRlciwgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1cyA9IHRydWUsIGxhYmVsLCBsYWJlbENsYXNzTmFtZSwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IHRydWUsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gbG9jYWxlLmVtcHR5Q29udGVudCwgcGFuZWxIZWFkZXIsIHBhbmVsRm9vdGVyLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBhbGxvd0Rlc2VsZWN0ID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGdyb3VwTGFiZWxDbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQsIGxpc3RIZWlnaHQsIG9mZnNldCwgYW5pbWF0aW9uLCBvbkNoYW5nZSwgb25PcGVuQ2hhbmdlLCBvblNlYXJjaENoYW5nZSwgb25CbHVyLCBmaWx0ZXJPcHRpb24sIHJlbmRlck9wdGlvbiwgcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWUsIHJlZiwgfSA9IHByb3BzO1xuICAgIC8vIEJhcmUtY29udHJvbCBzaXplIGRlZmF1bHQ6IGFuIGV4cGxpY2l0IGBzaXplYCB3aW5zOyBpbnNpZGUgYSBGb3JtTGF5b3V0XG4gICAgLy8gdGhlIHZhcmlhbnQncyBjb250cm9sU2l6ZSBhcHBsaWVzOyBlbHNld2hlcmUgJ2xhcmdlJy5cbiAgICBjb25zdCBjb250ZXh0U2l6ZSA9IHVzZUZvcm1Db250cm9sU2l6ZSgpO1xuICAgIGNvbnN0IHNpemUgPSAoX2EgPSBzaXplUHJvcCAhPT0gbnVsbCAmJiBzaXplUHJvcCAhPT0gdm9pZCAwID8gc2l6ZVByb3AgOiBjb250ZXh0U2l6ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2xhcmdlJztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gIWRpc2FibGVkICYmICFyZWFkT25seTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvcHRpb25JZFByZWZpeCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICAvLyBSZWJ1aWxkIHBlciByZW5kZXI6IGNvbnRyb2xsZWQgYXJyYXlzIG1heSBiZSBtdXRhdGVkIGluIHBsYWNlLCBhbmQgb3B0aW9uXG4gICAgLy8gbWVtYmVyc2hpcCBwcmV2aW91c2x5IHJlYWQgdGhlaXIgY3VycmVudCBjb250ZW50cyBvbiBldmVyeSByZW5kZXIuXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSBpc1NlbGVjdE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgbXVsdGlwbGUpID8gbmV3IFNldChpbm5lclZhbHVlKSA6IG51bGw7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgeyBpc09wZW46IGlubmVyT3Blbiwgc2V0T3BlbjogaGFuZGxlT3BlbkNoYW5nZSwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBsaXN0TWF4SGVpZ2h0LFxuICAgICAgICBsaXN0SGVpZ2h0LFxuICAgICAgICBhbmltYXRpb24sXG4gICAgICAgIG9mZnNldCxcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWZlcmVuY2UgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBoYW5kbGVUcmlnZ2VyUmVmKG5vZGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZsb2F0aW5nID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldEZsb2F0aW5nKG5vZGUpO1xuICAgICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCBsaXN0TmF2aWdhdGlvbiA9IHVzZUxpc3ROYXZpZ2F0aW9uKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIG9uTmF2aWdhdGU6IHNldEFjdGl2ZUluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4sXG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIHZpcnR1YWw6IHNlYXJjaGFibGUsXG4gICAgfSk7XG4gICAgY29uc3QgdHlwZWFoZWFkID0gdXNlVHlwZWFoZWFkKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZjogbGlzdENvbnRlbnRSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4gJiYgIXNlYXJjaGFibGUsXG4gICAgICAgIG9uTWF0Y2g6IHNldEFjdGl2ZUluZGV4LFxuICAgIH0pO1xuICAgIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgLi4uYmFzZUludGVyYWN0aW9ucyxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRBY3RpdmVJbmRleCgocHJldikgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwgJiYgdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdICYmICF2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0RW5hYmxlZEluZGV4ID49IDAgPyBmaXJzdEVuYWJsZWRJbmRleCA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH0sIFtmaXJzdEVuYWJsZWRJbmRleCwgaW5uZXJPcGVuLCBzZWxlY3RlZEluZGV4LCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghaW5uZXJPcGVuIHx8IGFjdGl2ZUluZGV4ID09PSBudWxsIHx8IHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbYWN0aXZlSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0sIFthY3RpdmVJbmRleCwgaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGlzdFJlZi5jdXJyZW50ID0gbGlzdFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50ID0gbGlzdENvbnRlbnRSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aF0pO1xuICAgIGNvbnN0IHNldFNlYXJjaElucHV0UmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKG5vZGUgJiYgaW5uZXJPcGVuICYmIGZpbHRlcklucHV0QXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICBub2RlLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG5vdGlmeUJsdXJJZk91dHNpZGUgPSB1c2VFdmVudENhbGxiYWNrKChyZWxhdGVkVGFyZ2V0LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBuZXh0VGFyZ2V0ID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgY29uc3Qgd2l0aGluVHJpZ2dlciA9ICEhKG5leHRUYXJnZXQgJiYgKChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGNvbnN0IHdpdGhpbkZsb2F0aW5nID0gISEobmV4dFRhcmdldCAmJiAoKF9iID0gZmxvYXRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGlmICghd2l0aGluVHJpZ2dlciAmJiAhd2l0aGluRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wdGlvbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIG5leHRPcHRpb24pID0+IHtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9uLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdG9nZ2xlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFsbG93RGVzZWxlY3QgJiYgaW5uZXJWYWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb21taXRDaGFuZ2Uob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgIChfYiA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBpZiAoaW5uZXJPcGVuICYmXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlKSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2xlYXIgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBoYW5kbGVTZWFyY2hDaGFuZ2UoJycpO1xuICAgICAgICAoX2EgPSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmRFbmFibGVkSW5kZXggPSB1c2VFdmVudENhbGxiYWNrKChjdXJyZW50LCBkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBsZW5ndGggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydCA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudCAhPT0gdm9pZCAwID8gY3VycmVudCA6IChkaXJlY3Rpb24gPT09IDEgPyAtMSA6IGxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IHN0ZXAgPSAxOyBzdGVwIDw9IGxlbmd0aDsgc3RlcCArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSAoKHN0YXJ0ICsgZGlyZWN0aW9uICogc3RlcCkgJSBsZW5ndGggKyBsZW5ndGgpICUgbGVuZ3RoO1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2NhbmRpZGF0ZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04pIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgMSk7XG4gICAgICAgICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KG5leHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcHJldiA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIC0xKTtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgocHJldik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNpemU6IG5vcm1hbGl6ZWRTaXplLFxuICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUobm9ybWFsaXplZFNpemUpLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgLy8gQSBjdXN0b20gYHJlbmRlclZhbHVlYCBwcm9kdWNlcyBpdHMgb3duIHNpbmdsZS1saW5lIHN1bW1hcnksIHNvIHRoZVxuICAgICAgICAvLyBtdWx0aS12YWx1ZSBjaGlwIGxheW91dCAoaGVpZ2h0OmF1dG8gKyB2ZXJ0aWNhbCBwYWRkaW5nICsgZmxleC13cmFwKVxuICAgICAgICAvLyBtdXN0IG5vdCBraWNrIGluIGFuZCBpbmZsYXRlIHRoZSB0cmlnZ2VyIGhlaWdodC5cbiAgICAgICAgIXJlbmRlclZhbHVlKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaW5uZXJPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1tdWx0aXBsZS1maWxsZWQnKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpLCByZWFkT25seSAmJiAhZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1yZWFkb25seScpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ2xhcmdlJyA/IDIwIDogMTY7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uSWQgPSBzZWFyY2hhYmxlICYmIGlubmVyT3BlbiAmJiBhY3RpdmVJbmRleCAhPT0gbnVsbFxuICAgICAgICA/IGAke29wdGlvbklkUHJlZml4fS0ke2FjdGl2ZUluZGV4fWBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW1xuICAgICAgICBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uSWQgOiBudWxsLFxuICAgICAgICBmZWVkYmFjayA/IGZlZWRiYWNrSWQgOiBudWxsLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgcmVhZE9ubHk6IHJlYWRPbmx5LCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGxhYmVsQ2xhc3NOYW1lOiBsYWJlbENsYXNzTmFtZSwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICdhcmlhLXJlYWRvbmx5JzogcmVhZE9ubHkgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX2pzeChTcGlubmVyLCB7IHNpemU6IGljb25TaXplLCBzdHJva2VXaWR0aDogMiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX2pzeChJY29ucywgeyBuYW1lOiBpbm5lck9wZW4gPyAnY2hldnJvblVwJyA6ICdjaGV2cm9uRG93bicsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgaW50ZXJhY3RpdmUgJiYgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbE5vZGUgPSAoX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdwYW5lbCcpLCBwYW5lbENsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIHRyYW5zaXRpb25TdHlsZXMpLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW3NlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNldFNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2l6ZT17bm9ybWFsaXplZFNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IFwic21hbGxcIiwgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgYWN0aXZlRGVzY2VuZGFudDogYWN0aXZlT3B0aW9uSWQsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25DbGVhcjogaGFuZGxlU2VhcmNoQ2xlYXIsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiBbcGFuZWxIZWFkZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyJyksIGNoaWxkcmVuOiBwYW5lbEhlYWRlciB9KSksIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnLCBncm91cExhYmVsQ2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRWYWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWxlY3RlZFZhbHVlcy5oYXMob3B0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRJdGVtUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7b3B0aW9uSWRQcmVmaXh9LSR7b3B0aW9uRmxhdEluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCBjb250ZW50OiByZW5kZXJPcHRpb25Db250ZW50ID09PSBudWxsIHx8IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbmRlck9wdGlvbkNvbnRlbnQob3B0aW9uLCBvcHRpb25NZXRhKSB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkpXSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|