@projectcor/maia-components 2.35.4-1 → 2.35.4-3
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/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +2 -1
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +10 -14
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +1 -1
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +57 -37
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +58 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +18 -12
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +68 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +4 -2
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +12 -10
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +38 -26
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +41 -1
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +24 -27
- package/lib/dev/DevReasoningTimeline.js +11 -17
- package/lib/lang/br/index.js +3 -1
- package/lib/lang/en/index.js +3 -1
- package/lib/lang/es/index.js +3 -1
- package/lib/lang/fr/index.js +3 -1
- package/lib/store/sessions/sessionStreamManager.js +40 -52
- package/lib/utils/streamActivityMessages.js +32 -19
- package/lib/utils/streamActivityMessages.spec.js +39 -6
- package/package.json +1 -1
|
@@ -337,6 +337,14 @@ var ChatAIPageContent = function ChatAIPageContent(_ref2) {
|
|
|
337
337
|
startChat(message, attachments, faqId, agentSuggestionId, mentions, fuaId);
|
|
338
338
|
}
|
|
339
339
|
}, [sendMessageFunction, startChat, computedCurrentOption, sidebarHasError]);
|
|
340
|
+
var handleHomeLeaveStart = useCallback(function () {
|
|
341
|
+
skipChatEnterRef.current = true;
|
|
342
|
+
setHomeLeaving(true);
|
|
343
|
+
}, []);
|
|
344
|
+
var handleHomeSendMessage = useCallback(function (message, attachments, faqId, agentSuggestionId, mentions, fuaId) {
|
|
345
|
+
setHomeLeaving(false);
|
|
346
|
+
handleSendMessage(message, attachments, faqId, agentSuggestionId, mentions, fuaId);
|
|
347
|
+
}, [handleSendMessage]);
|
|
340
348
|
var handleGoHome = useCallback(function () {
|
|
341
349
|
setHomeLeaving(false);
|
|
342
350
|
skipChatEnterRef.current = false;
|
|
@@ -431,15 +439,9 @@ var ChatAIPageContent = function ChatAIPageContent(_ref2) {
|
|
|
431
439
|
handleResetChat: handleResetChat,
|
|
432
440
|
onAgentUpdate: updateAgentFavorite
|
|
433
441
|
}), hasError ? /*#__PURE__*/_jsx(MAIAError, {}) : canAccessPage ? isHome ? /*#__PURE__*/_jsx(ChatAIPageHome, {
|
|
434
|
-
onSendMessage:
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
},
|
|
438
|
-
onLeaveStart: function onLeaveStart() {
|
|
439
|
-
skipChatEnterRef.current = true;
|
|
440
|
-
setHomeLeaving(true);
|
|
441
|
-
}
|
|
442
|
-
}, agent === null || agent === void 0 ? void 0 : agent.id) : /*#__PURE__*/_jsx(ChatAIContent, {
|
|
442
|
+
onSendMessage: handleHomeSendMessage,
|
|
443
|
+
onLeaveStart: handleHomeLeaveStart
|
|
444
|
+
}) : /*#__PURE__*/_jsx(ChatAIContent, {
|
|
443
445
|
currentOption: options.chat,
|
|
444
446
|
handlers: _objectSpread(_objectSpread({}, handlers), {}, {
|
|
445
447
|
chat: startChat,
|
|
@@ -481,4 +483,4 @@ var ChatAIPageContent = function ChatAIPageContent(_ref2) {
|
|
|
481
483
|
}), /*#__PURE__*/_jsx(Snackbar, {})]
|
|
482
484
|
});
|
|
483
485
|
};
|
|
484
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIm1vbWVudCIsInVzZVRyYW5zbGF0aW9uIiwidXNlVXNlciIsIk1BSUFFcnJvciIsIkNoYXRBSUNvbnRlbnQiLCJidWlsZEhhbmRsZXJzIiwib3B0aW9ucyIsIlNpZGViYXIiLCJ1c2VHZXRBZ2VudHMiLCJHbG9iYWxDb250ZXh0IiwidXNlR2xvYmFsQ29udGV4dCIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIkNoYXRBaU1vZGFsRm9vdGVyIiwiQ2hhdEFJUGFnZUhlYWRlciIsIkNoYXRBSVBhZ2VIb21lIiwiU0VDVElPTlMiLCJ1c2VTdHJlYW1kb3duU3R5bGVzIiwidXNlUHJvamVjdFN1bW1hcnlDb25maWciLCJhY3F1aXJlQ2hhdHNTdG9yZSIsInJlbGVhc2VDaGF0c1N0b3JlIiwidXNlRXZlbnQiLCJ3aXRoQXBwQ2ZnIiwiRmVhdHVyZXMiLCJzZXRNYWlhUGFnZVByZXNlbmNlIiwiU0NQYWdlTWFpbiIsIlNDUGFnZVdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwidmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUiLCJzZWN0aW9uIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIkNoYXRBSVBhZ2UiLCJfcmVmIiwiX3JlZiRlbnRpdHkiLCJlbnRpdHkiLCJwcm9qZWN0SWQiLCJjbGllbnRJZCIsIl9yZWYkcHJvamVjdCIsInByb2plY3QiLCJpbml0aWFsUHJvamVjdCIsIl9yZWYkY2xpZW50IiwiY2xpZW50IiwiaW5pdGlhbENsaWVudCIsIl9yZWYkc2VjdGlvbiIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsImNsYXNzTmFtZSIsImluaXRpYWxQcm9qZWN0VmFsdWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRQcm9qZWN0IiwiX3VzZVByb2plY3RTdW1tYXJ5Q29uIiwidW5kZWZpbmVkIiwiY29udGV4dCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsInByb3ZpZGVyVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImNoaWxkcmVuIiwiQ2hhdEFJUGFnZUNvbnRlbnQiLCJDSEFUX0FJIiwiX3JlZjIiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsInVzZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsImkxOG4iLCJhbXBsaXR1ZEV2ZW50IiwibGFuZyIsImxhbmd1YWdlIiwibG9jYWxlIiwiX3VzZVN0YXRlMyIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTQiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJzZXRVc2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImluaXRpYWxDaGF0SWQiLCJzZXRJbml0aWFsQ2hhdElkIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJuZXdDaGF0S2V5Iiwic2V0TmV3Q2hhdEtleSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2VuZE1lc3NhZ2VGdW5jdGlvbiIsInNldFNlbmRNZXNzYWdlRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uIiwic2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNyIsImhvbWUiLCJfdXNlU3RhdGUxOCIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTkiLCJfdXNlU3RhdGUyMCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJsYXlvdXRNb2RlIiwic2V0TGF5b3V0TW9kZSIsIl91c2VTdGF0ZTI1IiwiX3VzZVN0YXRlMjYiLCJzaWRlYmFyT3BlbiIsInNldFNpZGViYXJPcGVuIiwiX3VzZVN0YXRlMjciLCJfdXNlU3RhdGUyOCIsImhvbWVMZWF2aW5nIiwic2V0SG9tZUxlYXZpbmciLCJza2lwQ2hhdEVudGVyUmVmIiwiZXhwYW5kZWQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50IiwiYWdlbnQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsInNldENsaWVudCIsIl91c2VHZXRBZ2VudHMiLCJoYW5kbGVHb0hvbWUiLCJhZ2VudHMiLCJsb2FkaW5nIiwibG9hZGluZ01vcmUiLCJhZ2VudEVycm9yIiwiZXJyb3IiLCJoYW5kbGVHZXRBZ2VudHMiLCJsb2FkTW9yZUFnZW50cyIsInNvcnRBZ2VudHNMaXN0IiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJ1c2VySGFzUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsImVkaXQiLCJvcmNoZXN0cmF0b3IiLCJfYWdlbnRzJGRhdGEkZmluZCIsImRhdGEiLCJmaW5kIiwiaXRlbSIsInR5cGUiLCJjb21wdXRlZEN1cnJlbnRPcHRpb24iLCJjaGF0IiwiZGlkSW5pdEFnZW50UmVmIiwiY3VycmVudCIsImFnZW50c0ZldGNoZWRSZWYiLCJvbk1lcmdlQ3JlYXRlZEFnZW50IiwiZXZ0IiwiX3JlZjMiLCJkZXRhaWwiLCJuZXh0QWdlbnQiLCJpZCIsIm5hdmlnYXRlSG9tZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvblN5bmNFZGl0ZWRBZ2VudCIsIl9yZWY0Iiwib3BlbkNoYXRWaWV3IiwicHJldiIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsIm9wZW5OZXdDaGF0V2l0aEFnZW50IiwiZXZlbnQiLCJfZGV0YWlsIiwic3RhcnRDaGF0IiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsIl9tZW50aW9ucyIsImZ1YUlkIiwiZ29Ub0NoYXQiLCJjaGF0QXJnIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZWxlY3RlZEFnZW50IiwiYWdlbnRJdGVtIiwiYWdlbnRJZCIsImhhbmRsZVNlbmRNZXNzYWdlUmVhZHkiLCJzZW5kTWVzc2FnZSIsInN0b3BHZW5lcmF0aW9uIiwic3RyZWFtaW5nIiwid3JpdGluZyIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVudGlvbnMiLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwicHJvamVjdF9kZWxldGVkIiwibGVuZ3RoIiwiaGFuZGxlUmVzZXRDaGF0IiwiZm9jdXNDaGF0SW5wdXQiLCJzZXRUaW1lb3V0IiwiaGFuZGxlU3RhcnROZXdDaGF0Iiwibm9vcCIsImNhbkFjY2Vzc1BhZ2UiLCJpc0hvbWUiLCJzaG93Q2hhdEZvb3RlciIsImNvbnZlcnNhdGlvbnNPbmx5Iiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIm9uR29Ub0NoYXQiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJoYW5kbGVPcGVuU2tpbGxzIiwic2hvd05ld0NoYXQiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJvdmVybGF5Iiwic2hvd0JhY2siLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJvbkFnZW50VXBkYXRlIiwib25TZW5kTWVzc2FnZSIsIm9uTGVhdmVTdGFydCIsInJlZnMiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJmbG9hdGluZyIsImxvYWRpbmdBZ2VudHMiLCJza2lwRW50ZXJBbmltYXRpb24iLCJvblJlc3RhcnRTdW1tYXJ5IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJjaGF0SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJUGFnZS9DaGF0QUlQYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBNQUlBRXJyb3IgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBRXJyb3InXG5pbXBvcnQgeyBDaGF0QUlDb250ZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0NoYXRBSUNvbnRlbnQnXG5pbXBvcnQgeyBidWlsZEhhbmRsZXJzLCBvcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvU2lkZWJhcidcbmltcG9ydCB7IHVzZUdldEFnZW50cyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50cydcbmltcG9ydCB7IEdsb2JhbENvbnRleHQsIHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgU25hY2tiYXIgfSBmcm9tICcuLi9TbmFja0Jhci9TbmFja2JhcidcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9Qcm9qZWN0U3VtbWFyeUNvbnRlbnQnXG5pbXBvcnQgeyBBYm1BZ2VudE1vZGFsIH0gZnJvbSAnLi4vQWJtQWdlbnRNb2RhbC9BYm1BZ2VudE1vZGFsJ1xuaW1wb3J0IHsgQ2hhdEFpTW9kYWxGb290ZXIgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29tcG9uZW50cy9DaGF0QWlNb2RhbEZvb3RlcidcbmltcG9ydCB7IENoYXRBSVBhZ2VIZWFkZXIgfSBmcm9tICcuL0NoYXRBSVBhZ2VIZWFkZXInXG5pbXBvcnQgeyBDaGF0QUlQYWdlSG9tZSB9IGZyb20gJy4vQ2hhdEFJUGFnZUhvbWUnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlU3RyZWFtZG93blN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVN0cmVhbWRvd25TdHlsZXMnXG5pbXBvcnQgeyB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnJ1xuaW1wb3J0IHsgYWNxdWlyZUNoYXRzU3RvcmUsIHJlbGVhc2VDaGF0c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9sYXlvdXQnXG5pbXBvcnQgeyB3aXRoQXBwQ2ZnIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEFwcENmZydcbmltcG9ydCB7IEZlYXR1cmVzIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEZlYXR1cmVWYWxpZGF0aW9uJ1xuaW1wb3J0IHsgc2V0TWFpYVBhZ2VQcmVzZW5jZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21haWFQYWdlUm91dGUnXG5pbXBvcnQgeyBTQ1BhZ2VNYWluLCBTQ1BhZ2VXcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlQYWdlLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgQ2hhdEFJUGFnZVByb3BzID0ge1xuICBlbnRpdHk/OiB7IHByb2plY3RJZDogc3RyaW5nIHwgbnVsbDsgY2xpZW50SWQ6IHN0cmluZyB8IG51bGwgfVxuICBwcm9qZWN0PzogUHJvamVjdCB8IG51bGxcbiAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICBzZWN0aW9uPzogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgU2VjdGlvblR5cGUgPSAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnXG5cbnR5cGUgQ2hhdExpc3RJdGVtID0geyBzZXNzaW9uRXh0ZXJuYWxJZDogc3RyaW5nOyBhZ2VudElkOiBzdHJpbmcgfVxuXG5jb25zdCB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZSA9IChzZWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICh3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpICYmIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJUGFnZSA9IHdpdGhBcHBDZmcoXG4gICh7XG4gICAgZW50aXR5ID0geyBwcm9qZWN0SWQ6IG51bGwsIGNsaWVudElkOiBudWxsIH0sXG4gICAgcHJvamVjdDogaW5pdGlhbFByb2plY3QgPSBudWxsLFxuICAgIGNsaWVudDogaW5pdGlhbENsaWVudCA9IG51bGwsXG4gICAgc2VjdGlvbiA9ICdoZWFkZXInLFxuICAgIGhhc011bHRpQWdlbnRzID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICB9OiBDaGF0QUlQYWdlUHJvcHMpID0+IHtcbiAgICB1c2VTdHJlYW1kb3duU3R5bGVzKClcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRNYWlhUGFnZVByZXNlbmNlKHRydWUpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBzZXRNYWlhUGFnZVByZXNlbmNlKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3QgaW5pdGlhbFByb2plY3RWYWx1ZSA9IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/IGluaXRpYWxQcm9qZWN0IDogbnVsbFxuICAgIGNvbnN0IFtwcm9qZWN0LCBzZXRQcm9qZWN0XSA9IHVzZVN0YXRlPFByb2plY3QgfCBudWxsPihpbml0aWFsUHJvamVjdFZhbHVlKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgJiYgaW5pdGlhbFByb2plY3QgIT0gbnVsbCkge1xuICAgICAgICBzZXRQcm9qZWN0KGluaXRpYWxQcm9qZWN0KVxuICAgICAgfVxuICAgIH0sIFtzZWN0aW9uLCBpbml0aWFsUHJvamVjdF0pXG5cbiAgICBjb25zdCB7IGNvbnRleHQsIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyB9ID0gdXNlUHJvamVjdFN1bW1hcnlDb25maWcoe1xuICAgICAgc2VjdGlvbixcbiAgICAgIGVudGl0eSxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50OiBzZWN0aW9uID09PSAnY2xpZW50JyA/IChpbml0aWFsQ2xpZW50ID8/IG51bGwpIDogdW5kZWZpbmVkLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgfSlcblxuICAgIGNvbnN0IHByb3ZpZGVyVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsgLi4uY29udGV4dCwgc2VjdGlvbjogc2VjdGlvbiBhcyAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIH0pLFxuICAgICAgW2NvbnRleHQsIHNlY3Rpb25dXG4gICAgKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGFjcXVpcmVDaGF0c1N0b3JlKClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHJlbGVhc2VDaGF0c1N0b3JlKClcbiAgICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzKClcbiAgICAgIH1cbiAgICB9LCBbcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzXSlcblxuICAgIHJldHVybiAoXG4gICAgICA8R2xvYmFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJvdmlkZXJWYWx1ZX0+XG4gICAgICAgIDxDaGF0QUlQYWdlQ29udGVudCBzZWN0aW9uPXtzZWN0aW9uIGFzIFNlY3Rpb25UeXBlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH0sXG4gIEZlYXR1cmVzLkNIQVRfQUlcbilcblxuY29uc3QgQ2hhdEFJUGFnZUNvbnRlbnQgPSAoeyBzZWN0aW9uLCBjbGFzc05hbWUgfTogeyBzZWN0aW9uOiBTZWN0aW9uVHlwZTsgY2xhc3NOYW1lPzogc3RyaW5nIH0pID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQtYnInIDogaTE4bi5sYW5ndWFnZVxuICBtb21lbnQubG9jYWxlKGxhbmcpXG5cbiAgY29uc3QgW3VzZXJJbml0aWFsTWVzc2FnZSwgc2V0VXNlckluaXRpYWxNZXNzYWdlXSA9IHVzZVN0YXRlPHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICAgIGZhcUlkPzogc3RyaW5nXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgICBmdWFJZD86IHN0cmluZ1xuICB9Pih7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgY29uc3QgW2luaXRpYWxDaGF0SWQsIHNldEluaXRpYWxDaGF0SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW25ld0NoYXRLZXksIHNldE5ld0NoYXRLZXldID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHNldFNlbmRNZXNzYWdlRnVuY3Rpb25dID0gdXNlU3RhdGU8XG4gICAgKChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcsIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nKSA9PiB2b2lkKSB8IG51bGxcbiAgPihudWxsKVxuICBjb25zdCBbc3RvcEdlbmVyYXRpb25GdW5jdGlvbiwgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbl0gPSB1c2VTdGF0ZTwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNTdHJlYW1pbmcsIHNldElzU3RyZWFtaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNXcml0aW5nLCBzZXRJc1dyaXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtyZWZldGNoQ2hhdHMsIHNldFJlZmV0Y2hDaGF0c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnRPcHRpb24sIHNldEN1cnJlbnRPcHRpb25dID0gdXNlU3RhdGUob3B0aW9ucy5ob21lKVxuICBjb25zdCBbaGFzRXJyb3IsIHNldEhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBoYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4gYnVpbGRIYW5kbGVycyhzZXRDdXJyZW50T3B0aW9uLCBzZXRIYXNFcnJvciksIFtdKVxuICBjb25zdCBbc2lkZWJhckhhc0Vycm9yLCBzZXRTaWRlYmFySGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHJlc2V0U2VsZWN0ZWRDaGF0UmVmID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsYXlvdXRNb2RlLCBzZXRMYXlvdXRNb2RlXSA9IHVzZVN0YXRlPE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlPignc2lkZWJhcicpXG4gIGNvbnN0IFtzaWRlYmFyT3Blbiwgc2V0U2lkZWJhck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtob21lTGVhdmluZywgc2V0SG9tZUxlYXZpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNraXBDaGF0RW50ZXJSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGV4cGFuZGVkID0gbGF5b3V0TW9kZSA9PT0gJ2Z1bGxzY3JlZW4nXG5cbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgYWdlbnQsIHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0IH0gPVxuICAgIHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIGNvbnN0IHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcjogYWdlbnRFcnJvcixcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgc29ydEFnZW50c0xpc3QsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICB9ID0gdXNlR2V0QWdlbnRzKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWU6IGhhbmRsZXJzLmhvbWUgfSlcblxuICBjb25zdCB1c2VySGFzUGVybWlzc2lvbnMgPVxuICAgICh1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGUgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmVkaXQgfHxcbiAgICAgIHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmRlbGV0ZSkgJiZcbiAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gIGNvbnN0IG9yY2hlc3RyYXRvciA9IHVzZU1lbW8oKCkgPT4gYWdlbnRzLmRhdGEuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpID8/IG51bGwsIFthZ2VudHMuZGF0YV0pXG5cbiAgY29uc3QgY29tcHV0ZWRDdXJyZW50T3B0aW9uID0gY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0ID8gb3B0aW9ucy5jaGF0IDogb3B0aW9ucy5ob21lXG5cbiAgY29uc3QgZGlkSW5pdEFnZW50UmVmID0gdXNlUmVmKGZhbHNlKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkaWRJbml0QWdlbnRSZWYuY3VycmVudCB8fCAhb3JjaGVzdHJhdG9yKSByZXR1cm5cbiAgICBkaWRJbml0QWdlbnRSZWYuY3VycmVudCA9IHRydWVcbiAgICBzZWxlY3RBZ2VudChvcmNoZXN0cmF0b3IpXG4gIH0sIFtvcmNoZXN0cmF0b3IsIHNlbGVjdEFnZW50XSlcblxuICBjb25zdCBhZ2VudHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhZ2VudHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGFnZW50c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldEFnZW50cygpXG4gICAgfVxuICB9LCBbaGFuZGxlR2V0QWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uTWVyZ2VDcmVhdGVkQWdlbnQgPSAoZXZ0OiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBhZ2VudDogbmV4dEFnZW50IH0gPSAoZXZ0IGFzIEN1c3RvbUV2ZW50PHsgYWdlbnQ6IEFnZW50IH0+KS5kZXRhaWwgfHwge31cbiAgICAgIGlmIChuZXh0QWdlbnQ/LmlkKSBhZGRBZ2VudChuZXh0QWdlbnQsIHsgbmF2aWdhdGVIb21lOiBmYWxzZSB9KVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW1lcmdlLWNyZWF0ZWQtYWdlbnQtaW50by1saXN0Jywgb25NZXJnZUNyZWF0ZWRBZ2VudClcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1tZXJnZS1jcmVhdGVkLWFnZW50LWludG8tbGlzdCcsIG9uTWVyZ2VDcmVhdGVkQWdlbnQpXG4gIH0sIFthZGRBZ2VudF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvblN5bmNFZGl0ZWRBZ2VudCA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IGFnZW50OiBuZXh0QWdlbnQgfSA9IChldnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbCB8fCB7fVxuICAgICAgaWYgKCFuZXh0QWdlbnQ/LmlkKSByZXR1cm5cbiAgICAgIHVwZGF0ZUFnZW50KG5leHRBZ2VudClcbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IG5leHRBZ2VudC5pZCkgc2VsZWN0QWdlbnQobmV4dEFnZW50KVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLXN5bmMtZWRpdGVkLWFnZW50LWZyb20tY2hhdCcsIG9uU3luY0VkaXRlZEFnZW50KVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLXN5bmMtZWRpdGVkLWFnZW50LWZyb20tY2hhdCcsIG9uU3luY0VkaXRlZEFnZW50KVxuICB9LCBbdXBkYXRlQWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudD8uaWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3BlbkNoYXRWaWV3ID0gKCkgPT4ge1xuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2hhdClcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9wZW5OZXdDaGF0V2l0aEFnZW50ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgbmV4dEFnZW50ID0gKGV2ZW50IGFzIEN1c3RvbUV2ZW50PHsgYWdlbnQ6IEFnZW50IH0+KS5kZXRhaWw/LmFnZW50XG4gICAgICBpZiAoIW5leHRBZ2VudCkgcmV0dXJuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2VsZWN0QWdlbnQobmV4dEFnZW50KVxuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCBvcGVuTmV3Q2hhdFdpdGhBZ2VudClcbiAgfSwgW3NlbGVjdEFnZW50LCBzZXRDbGllbnQsIHNldFByb2plY3RdKVxuXG4gIGNvbnN0IHN0YXJ0Q2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgX21lbnRpb25zPzogdW5rbm93bixcbiAgICAgIGZ1YUlkPzogc3RyaW5nXG4gICAgKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSBzZXRTaWRlYmFySGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2Uoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlIHx8ICcnLFxuICAgICAgICBhdHRhY2htZW50czogYXR0YWNobWVudHMgfHwgW10sXG4gICAgICAgIC4uLihmYXFJZCA/IHsgZmFxSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGFnZW50U3VnZ2VzdGlvbklkID8geyBhZ2VudFN1Z2dlc3Rpb25JZCB9IDoge30pLFxuICAgICAgICAuLi4oZnVhSWQgPyB7IGZ1YUlkIH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIC8vIFNpZGViYXIgdHlwZXMgdGhpcyBwcm9wIGFzIChjaGF0SWQ6IHN0cmluZykgYnV0IHBhc3NlcyB0aGUgZnVsbCBjaGF0IG9iamVjdCBhdCBydW50aW1lXG4gIGNvbnN0IGdvVG9DaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoYXRBcmc6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY2hhdCA9IGNoYXRBcmcgYXMgdW5rbm93biBhcyBDaGF0TGlzdEl0ZW1cbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIGNvbnN0IHNlbGVjdGVkQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKGFnZW50SXRlbSA9PiBhZ2VudEl0ZW0uaWQgPT09IGNoYXQuYWdlbnRJZClcbiAgICAgIGlmIChzZWxlY3RlZEFnZW50KSBzZWxlY3RBZ2VudChzZWxlY3RlZEFnZW50KVxuICAgICAgc2tpcENoYXRFbnRlclJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIGFnZW50cywgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZVJlYWR5ID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgc2VuZE1lc3NhZ2U6IChcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICAgICAgKSA9PiB2b2lkLFxuICAgICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgICBzdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgICB3cml0aW5nOiBib29sZWFuXG4gICAgKSA9PiB7XG4gICAgICBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uKCgpID0+IHNlbmRNZXNzYWdlKVxuICAgICAgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbigoKSA9PiBzdG9wR2VuZXJhdGlvbilcbiAgICAgIHNldElzU3RyZWFtaW5nKHN0cmVhbWluZylcbiAgICAgIHNldElzV3JpdGluZyh3cml0aW5nKVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgIG1lbnRpb25zPzogdW5rbm93bixcbiAgICAgIGZ1YUlkPzogc3RyaW5nXG4gICAgKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSBzZXRTaWRlYmFySGFzRXJyb3IoZmFsc2UpXG4gICAgICBpZiAoc2VuZE1lc3NhZ2VGdW5jdGlvbiAmJiBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgICBzZW5kTWVzc2FnZUZ1bmN0aW9uKG1lc3NhZ2UsIGF0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHN0YXJ0Q2hhdCwgY29tcHV0ZWRDdXJyZW50T3B0aW9uLCBzaWRlYmFySGFzRXJyb3JdXG4gIClcblxuICBjb25zdCBoYW5kbGVHb0hvbWUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SG9tZUxlYXZpbmcoZmFsc2UpXG4gICAgc2tpcENoYXRFbnRlclJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBpZiAoYWdlbnQ/LmVudGl0eSAhPT0gJ2NsaWVudCcpIHNldENsaWVudD8uKG51bGwpXG4gICAgfVxuICAgIGlmIChvcmNoZXN0cmF0b3IpIHtcbiAgICAgIHNlbGVjdEFnZW50KG9yY2hlc3RyYXRvcilcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKCFhZ2VudCB8fCBhZ2VudD8uaXNfZGVsZXRlZCB8fCBhZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCBhZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHwgYWdlbnQ/LnByb2plY3RfZGVsZXRlZCkgJiZcbiAgICAgIGFnZW50cy5kYXRhLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50cy5kYXRhWzBdKVxuICAgIH1cbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQpIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQoKVxuICB9LCBbXG4gICAgY3VycmVudE9wdGlvbixcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgYWdlbnQsXG4gICAgYWdlbnRzLFxuICAgIG9yY2hlc3RyYXRvcixcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZXRDbGllbnQsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICBdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRIb21lTGVhdmluZyhmYWxzZSlcbiAgICBza2lwQ2hhdEVudGVyUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5ob21lKVxuICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCkgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCgpXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgdG9nZ2xlV2ViU2VhcmNoLCBzZXRDaGlwc1Byb2plY3RdKVxuXG4gIGNvbnN0IGZvY3VzQ2hhdElucHV0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtYWlhLWlucHV0LXJlZm9jdXMnKSlcbiAgICB9LCAxMDApXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZVN0YXJ0TmV3Q2hhdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lKSB7XG4gICAgICBmb2N1c0NoYXRJbnB1dCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKG9yY2hlc3RyYXRvcikgc2VsZWN0QWdlbnQob3JjaGVzdHJhdG9yKVxuICAgIGhhbmRsZUdvSG9tZSgpXG4gICAgZm9jdXNDaGF0SW5wdXQoKVxuICB9LCBbY3VycmVudE9wdGlvbiwgZm9jdXNDaGF0SW5wdXQsIGhhbmRsZUdvSG9tZSwgb3JjaGVzdHJhdG9yLCBzZWxlY3RBZ2VudF0pXG5cbiAgY29uc3Qgbm9vcCA9IHVzZUNhbGxiYWNrKCgpID0+IHVuZGVmaW5lZCwgW10pXG5cbiAgLy8gU3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcg4oCUIGtlcHQgZm9yIHBvdGVudGlhbCBBbXBsaXR1ZGUgdHJhY2tpbmcgcGFyaXR5XG4gIHZvaWQgYW1wbGl0dWRFdmVudFxuXG4gIGNvbnN0IGNhbkFjY2Vzc1BhZ2UgPSB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZShzZWN0aW9uKVxuICBjb25zdCBpc0hvbWUgPSBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZVxuICBjb25zdCBzaG93Q2hhdEZvb3RlciA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0ICYmICFoYXNFcnJvciAmJiAhbG9hZGluZyAmJiBjYW5BY2Nlc3NQYWdlXG5cbiAgcmV0dXJuIChcbiAgICA8U0NQYWdlV3JhcHBlciBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7Y2FuQWNjZXNzUGFnZSA/IChcbiAgICAgICAgPFNpZGViYXJcbiAgICAgICAgICBjb252ZXJzYXRpb25zT25seVxuICAgICAgICAgIG9wZW49e3NpZGViYXJPcGVufVxuICAgICAgICAgIG9uT3BlbkNoYW5nZT17c2V0U2lkZWJhck9wZW59XG4gICAgICAgICAgb25Hb1RvQ2hhdD17Z29Ub0NoYXR9XG4gICAgICAgICAgb25FcnJvcj17KCkgPT4gc2V0U2lkZWJhckhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgIGhhbmRsZUdvVG9Ib21lPXtoYW5kbGVHb0hvbWV9XG4gICAgICAgICAgaGFuZGxlU3RhcnROZXdDaGF0PXtoYW5kbGVTdGFydE5ld0NoYXR9XG4gICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlPXtub29wfVxuICAgICAgICAgIGhhbmRsZU9wZW5Ta2lsbHM9e25vb3B9XG4gICAgICAgICAgc2hvd05ld0NoYXQ9e2ZhbHNlfVxuICAgICAgICAgIHJlZmV0Y2hDaGF0cz17cmVmZXRjaENoYXRzfVxuICAgICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cz17c2V0UmVmZXRjaENoYXRzfVxuICAgICAgICAgIGhhc0Vycm9yPXtzaWRlYmFySGFzRXJyb3J9XG4gICAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWY9e3Jlc2V0U2VsZWN0ZWRDaGF0UmVmfVxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8U0NQYWdlTWFpbj5cbiAgICAgICAgPENoYXRBSVBhZ2VIZWFkZXJcbiAgICAgICAgICBvdmVybGF5PXtpc0hvbWUgJiYgIWhvbWVMZWF2aW5nfVxuICAgICAgICAgIHNob3dCYWNrPXshaXNIb21lfVxuICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBsb2FkaW5nTW9yZT17bG9hZGluZ01vcmV9XG4gICAgICAgICAgaGFzTW9yZT17YWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgIGxvYWRNb3JlQWdlbnRzPXtsb2FkTW9yZUFnZW50c31cbiAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgaGFuZGxlUmVzZXRDaGF0PXtoYW5kbGVSZXNldENoYXR9XG4gICAgICAgICAgb25BZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgLz5cbiAgICAgICAge2hhc0Vycm9yID8gKFxuICAgICAgICAgIDxNQUlBRXJyb3IgLz5cbiAgICAgICAgKSA6IGNhbkFjY2Vzc1BhZ2UgPyAoXG4gICAgICAgICAgaXNIb21lID8gKFxuICAgICAgICAgICAgPENoYXRBSVBhZ2VIb21lXG4gICAgICAgICAgICAgIGtleT17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICBvblNlbmRNZXNzYWdlPXsobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SG9tZUxlYXZpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2UobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkxlYXZlU3RhcnQ9eygpID0+IHtcbiAgICAgICAgICAgICAgICBza2lwQ2hhdEVudGVyUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgICAgICAgc2V0SG9tZUxlYXZpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICAgIGN1cnJlbnRPcHRpb249e29wdGlvbnMuY2hhdH1cbiAgICAgICAgICAgICAgaGFuZGxlcnM9e3sgLi4uaGFuZGxlcnMsIGNoYXQ6IHN0YXJ0Q2hhdCwgaG9tZTogaGFuZGxlcnMuaG9tZSwgaGFuZGxlR29Ib21lIH19XG4gICAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgICByZWZzPXt7IHVzZXJJbml0aWFsTWVzc2FnZSwgaW5pdGlhbENoYXRJZCB9fVxuICAgICAgICAgICAgICBvblNlbmRNZXNzYWdlUmVhZHk9e2hhbmRsZVNlbmRNZXNzYWdlUmVhZHl9XG4gICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgZmxvYXRpbmc9e2ZhbHNlfVxuICAgICAgICAgICAgICBhZ2VudHM9e2FnZW50cy5kYXRhfVxuICAgICAgICAgICAgICBsb2FkaW5nQWdlbnRzPXtsb2FkaW5nfVxuICAgICAgICAgICAgICBhZ2VudEVycm9yPXthZ2VudEVycm9yfVxuICAgICAgICAgICAgICBza2lwRW50ZXJBbmltYXRpb249e3NraXBDaGF0RW50ZXJSZWYuY3VycmVudH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAge3Nob3dDaGF0Rm9vdGVyID8gKFxuICAgICAgICAgIDxDaGF0QWlNb2RhbEZvb3RlclxuICAgICAgICAgICAgYWdlbnQ9e2FnZW50fVxuICAgICAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgaGFuZGxlU3RvcEdlbmVyYXRpb249e3N0b3BHZW5lcmF0aW9uRnVuY3Rpb259XG4gICAgICAgICAgICBpc1N0cmVhbWluZz17aXNTdHJlYW1pbmd9XG4gICAgICAgICAgICBpc1dyaXRpbmc9e2lzV3JpdGluZ31cbiAgICAgICAgICAgIGNoYXRJZD17aW5pdGlhbENoYXRJZH1cbiAgICAgICAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICAgICAgICBsYXlvdXRNb2RlPXtsYXlvdXRNb2RlfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ1BhZ2VNYWluPlxuICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgIDxBYm1BZ2VudE1vZGFsXG4gICAgICAgICAgYWRkQWdlbnQ9e2FkZEFnZW50fVxuICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICByZW1vdmVBZ2VudD17cmVtb3ZlQWdlbnR9XG4gICAgICAgICAgdXBkYXRlQWdlbnRGYXZvcml0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxTbmFja2JhciAvPlxuICAgIDwvU0NQYWdlV3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDekUsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGFBQWEsUUFBUSwrQkFBK0I7QUFDN0QsU0FBU0MsYUFBYSxFQUFFQyxPQUFPLFFBQVEsdUNBQXVDO0FBQzlFLFNBQVNDLE9BQU8sUUFBUSx5QkFBeUI7QUFDakQsU0FBU0MsWUFBWSxRQUFRLHlDQUF5QztBQUN0RSxTQUFTQyxhQUFhLEVBQUVDLGdCQUFnQixRQUFRLGlDQUFpQztBQUVqRixTQUFTQyxRQUFRLFFBQVEsc0JBQXNCO0FBQy9DLFNBQVNDLHFCQUFxQixRQUFRLHVDQUF1QztBQUM3RSxTQUFTQyxhQUFhLFFBQVEsZ0NBQWdDO0FBQzlELFNBQVNDLGlCQUFpQixRQUFRLDBEQUEwRDtBQUM1RixTQUFTQyxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFDckQsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBRXBELFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFDaEYsU0FBU0MsaUJBQWlCLEVBQUVDLGlCQUFpQixRQUFRLGdCQUFnQjtBQUdyRSxTQUFTQyxRQUFRLFFBQVEseUJBQXlCO0FBRWxELFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FBU0MsUUFBUSxRQUFRLG1DQUFtQztBQUM1RCxTQUFTQyxtQkFBbUIsUUFBUSw4QkFBOEI7QUFDbEUsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEscUJBQXFCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWUvRCxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJQyxPQUFlLEVBQUs7RUFDbkQsSUFBSUEsT0FBTyxLQUFLLFFBQVEsS0FBS0MsTUFBTSxDQUFDQyx3Q0FBd0MsSUFBSUQsTUFBTSxDQUFDRSwyQkFBMkIsQ0FBQyxFQUFFO0lBQ25ILE9BQU8sSUFBSTtFQUNiO0VBQ0EsSUFBSSxDQUFDSCxPQUFPLEtBQUssU0FBUyxJQUFJQSxPQUFPLEtBQUssUUFBUSxLQUFLQyxNQUFNLENBQUNFLDJCQUEyQixFQUFFO0lBQ3pGLE9BQU8sSUFBSTtFQUNiO0VBQ0EsT0FBTyxLQUFLO0FBQ2QsQ0FBQztBQUVELE9BQU8sSUFBTUMsVUFBVSxHQUFHZCxVQUFVLENBQ2xDLFVBQUFlLElBQUEsRUFPdUI7RUFBQSxJQUFBQyxXQUFBLEdBQUFELElBQUEsQ0FOckJFLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUc7TUFBRUUsU0FBUyxFQUFFLElBQUk7TUFBRUMsUUFBUSxFQUFFO0lBQUssQ0FBQyxHQUFBSCxXQUFBO0lBQUFJLFlBQUEsR0FBQUwsSUFBQSxDQUM1Q00sT0FBTztJQUFFQyxjQUFjLEdBQUFGLFlBQUEsY0FBRyxJQUFJLEdBQUFBLFlBQUE7SUFBQUcsV0FBQSxHQUFBUixJQUFBLENBQzlCUyxNQUFNO0lBQUVDLGFBQWEsR0FBQUYsV0FBQSxjQUFHLElBQUksR0FBQUEsV0FBQTtJQUFBRyxZQUFBLEdBQUFYLElBQUEsQ0FDNUJMLE9BQU87SUFBUEEsT0FBTyxHQUFBZ0IsWUFBQSxjQUFHLFFBQVEsR0FBQUEsWUFBQTtJQUFBQyxtQkFBQSxHQUFBWixJQUFBLENBQ2xCYSxjQUFjO0lBQWRBLGNBQWMsR0FBQUQsbUJBQUEsY0FBRyxLQUFLLEdBQUFBLG1CQUFBO0lBQ3RCRSxTQUFTLEdBQUFkLElBQUEsQ0FBVGMsU0FBUztFQUVUbEMsbUJBQW1CLENBQUMsQ0FBQztFQUVyQnRCLFNBQVMsQ0FBQyxZQUFNO0lBQ2Q2QixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7SUFDekIsT0FBTyxZQUFNO01BQ1hBLG1CQUFtQixDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU00QixtQkFBbUIsR0FBR3BCLE9BQU8sS0FBSyxTQUFTLEdBQUdZLGNBQWMsR0FBRyxJQUFJO0VBQ3pFLElBQUFTLFNBQUEsR0FBOEJ2RCxRQUFRLENBQWlCc0QsbUJBQW1CLENBQUM7SUFBQUUsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBcEVWLE9BQU8sR0FBQVcsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7RUFFMUIzRCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUlxQyxPQUFPLEtBQUssU0FBUyxJQUFJWSxjQUFjLElBQUksSUFBSSxFQUFFO01BQ25EWSxVQUFVLENBQUNaLGNBQWMsQ0FBQztJQUM1QjtFQUNGLENBQUMsRUFBRSxDQUFDWixPQUFPLEVBQUVZLGNBQWMsQ0FBQyxDQUFDO0VBRTdCLElBQUFhLHFCQUFBLEdBQThDdkMsdUJBQXVCLENBQUM7TUFDcEVjLE9BQU8sRUFBUEEsT0FBTztNQUNQTyxNQUFNLEVBQU5BLE1BQU07TUFDTkksT0FBTyxFQUFQQSxPQUFPO01BQ1BhLFVBQVUsRUFBVkEsVUFBVTtNQUNWVixNQUFNLEVBQUVkLE9BQU8sS0FBSyxRQUFRLEdBQUllLGFBQWEsYUFBYkEsYUFBYSxjQUFiQSxhQUFhLEdBQUksSUFBSSxHQUFJVyxTQUFTO01BQ2xFUixjQUFjLEVBQWRBO0lBQ0YsQ0FBQyxDQUFDO0lBUE1TLE9BQU8sR0FBQUYscUJBQUEsQ0FBUEUsT0FBTztJQUFFQyx3QkFBd0IsR0FBQUgscUJBQUEsQ0FBeEJHLHdCQUF3QjtFQVN6QyxJQUFNQyxhQUFhLEdBQUdqRSxPQUFPLENBQzNCO0lBQUEsT0FBQWtFLGFBQUEsQ0FBQUEsYUFBQSxLQUFZSCxPQUFPO01BQUUzQixPQUFPLEVBQUVBO0lBQTBDO0VBQUEsQ0FBRyxFQUMzRSxDQUFDMkIsT0FBTyxFQUFFM0IsT0FBTyxDQUNuQixDQUFDO0VBRURyQyxTQUFTLENBQUMsWUFBTTtJQUNkd0IsaUJBQWlCLENBQUMsQ0FBQztJQUNuQixPQUFPLFlBQU07TUFDWEMsaUJBQWlCLENBQUMsQ0FBQztNQUNuQndDLHdCQUF3QixDQUFDLENBQUM7SUFDNUIsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDQSx3QkFBd0IsQ0FBQyxDQUFDO0VBRTlCLG9CQUNFaEMsSUFBQSxDQUFDcEIsYUFBYSxDQUFDdUQsUUFBUTtJQUFDQyxLQUFLLEVBQUVILGFBQWM7SUFBQUksUUFBQSxlQUMzQ3JDLElBQUEsQ0FBQ3NDLGlCQUFpQjtNQUFDbEMsT0FBTyxFQUFFQSxPQUF1QjtNQUFDbUIsU0FBUyxFQUFFQTtJQUFVLENBQUU7RUFBQyxDQUN0RCxDQUFDO0FBRTdCLENBQUMsRUFDRDVCLFFBQVEsQ0FBQzRDLE9BQ1gsQ0FBQztBQUVELElBQU1ELGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUFFLEtBQUEsRUFBNkU7RUFBQSxJQUFBQyxpQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyxrQkFBQTtFQUFBLElBQXZFdkMsT0FBTyxHQUFBb0MsS0FBQSxDQUFQcEMsT0FBTztJQUFFbUIsU0FBUyxHQUFBaUIsS0FBQSxDQUFUakIsU0FBUztFQUM3QyxJQUFNcUIsSUFBSSxHQUFHdkUsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBQXdFLGVBQUEsR0FBaUJ6RSxjQUFjLENBQUMsQ0FBQ2dCLFFBQVEsQ0FBQzBELFFBQVEsQ0FBQyxDQUFDO0lBQTVDQyxJQUFJLEdBQUFGLGVBQUEsQ0FBSkUsSUFBSTtFQUNaLElBQU1DLGFBQWEsR0FBR3ZELFFBQVEsQ0FBQyxDQUFDO0VBRWhDLElBQU13RCxJQUFJLEdBQUdGLElBQUksQ0FBQ0csUUFBUSxLQUFLLElBQUksR0FBRyxPQUFPLEdBQUdILElBQUksQ0FBQ0csUUFBUTtFQUM3RC9FLE1BQU0sQ0FBQ2dGLE1BQU0sQ0FBQ0YsSUFBSSxDQUFDO0VBRW5CLElBQUFHLFVBQUEsR0FBb0RsRixRQUFRLENBTXpEO01BQUVtRixPQUFPLEVBQUUsRUFBRTtNQUFFQyxXQUFXLEVBQUU7SUFBRyxDQUFDLENBQUM7SUFBQUMsVUFBQSxHQUFBNUIsY0FBQSxDQUFBeUIsVUFBQTtJQU43Qkksa0JBQWtCLEdBQUFELFVBQUE7SUFBRUUscUJBQXFCLEdBQUFGLFVBQUE7RUFPaEQsSUFBQUcsVUFBQSxHQUEwQ3hGLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUF5RixVQUFBLEdBQUFoQyxjQUFBLENBQUErQixVQUFBO0lBQWhFRSxhQUFhLEdBQUFELFVBQUE7SUFBRUUsZ0JBQWdCLEdBQUFGLFVBQUE7RUFDdEMsSUFBQUcsVUFBQSxHQUFvQzVGLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQTZGLFVBQUEsR0FBQXBDLGNBQUEsQ0FBQW1DLFVBQUE7SUFBeENFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQUcsVUFBQSxHQUFzRGhHLFFBQVEsQ0FFNUQsSUFBSSxDQUFDO0lBQUFpRyxVQUFBLEdBQUF4QyxjQUFBLENBQUF1QyxVQUFBO0lBRkFFLG1CQUFtQixHQUFBRCxVQUFBO0lBQUVFLHNCQUFzQixHQUFBRixVQUFBO0VBR2xELElBQUFHLFVBQUEsR0FBNERwRyxRQUFRLENBQXNCLElBQUksQ0FBQztJQUFBcUcsV0FBQSxHQUFBNUMsY0FBQSxDQUFBMkMsVUFBQTtJQUF4RkUsc0JBQXNCLEdBQUFELFdBQUE7SUFBRUUseUJBQXlCLEdBQUFGLFdBQUE7RUFDeEQsSUFBQUcsV0FBQSxHQUFzQ3hHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXlHLFdBQUEsR0FBQWhELGNBQUEsQ0FBQStDLFdBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBQUcsV0FBQSxHQUFrQzVHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZHLFdBQUEsR0FBQXBELGNBQUEsQ0FBQW1ELFdBQUE7SUFBMUNFLFNBQVMsR0FBQUQsV0FBQTtJQUFFRSxZQUFZLEdBQUFGLFdBQUE7RUFDOUIsSUFBQUcsV0FBQSxHQUF3Q2hILFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQWlILFdBQUEsR0FBQXhELGNBQUEsQ0FBQXVELFdBQUE7SUFBaERFLFlBQVksR0FBQUQsV0FBQTtJQUFFRSxlQUFlLEdBQUFGLFdBQUE7RUFDcEMsSUFBQUcsV0FBQSxHQUEwQ3BILFFBQVEsQ0FBQ08sT0FBTyxDQUFDOEcsSUFBSSxDQUFDO0lBQUFDLFdBQUEsR0FBQTdELGNBQUEsQ0FBQTJELFdBQUE7SUFBekRHLGFBQWEsR0FBQUQsV0FBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsV0FBQTtFQUN0QyxJQUFBRyxXQUFBLEdBQWdDekgsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBMEgsV0FBQSxHQUFBakUsY0FBQSxDQUFBZ0UsV0FBQTtJQUF4Q0UsUUFBUSxHQUFBRCxXQUFBO0lBQUVFLFdBQVcsR0FBQUYsV0FBQTtFQUM1QixJQUFNRyxRQUFRLEdBQUcvSCxPQUFPLENBQUM7SUFBQSxPQUFNUSxhQUFhLENBQUNrSCxnQkFBZ0IsRUFBRUksV0FBVyxDQUFDO0VBQUEsR0FBRSxFQUFFLENBQUM7RUFDaEYsSUFBQUUsV0FBQSxHQUE4QzlILFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQStILFdBQUEsR0FBQXRFLGNBQUEsQ0FBQXFFLFdBQUE7SUFBdERFLGVBQWUsR0FBQUQsV0FBQTtJQUFFRSxrQkFBa0IsR0FBQUYsV0FBQTtFQUMxQyxJQUFNRyxvQkFBb0IsR0FBR25JLE1BQU0sQ0FBc0IsSUFBSSxDQUFDO0VBQzlELElBQUFvSSxXQUFBLEdBQW9DbkksUUFBUSxDQUEwQixTQUFTLENBQUM7SUFBQW9JLFdBQUEsR0FBQTNFLGNBQUEsQ0FBQTBFLFdBQUE7SUFBekVFLFVBQVUsR0FBQUQsV0FBQTtJQUFFRSxhQUFhLEdBQUFGLFdBQUE7RUFDaEMsSUFBQUcsV0FBQSxHQUFzQ3ZJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXdJLFdBQUEsR0FBQS9FLGNBQUEsQ0FBQThFLFdBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBQUcsV0FBQSxHQUFzQzNJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTRJLFdBQUEsR0FBQW5GLGNBQUEsQ0FBQWtGLFdBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBTUcsZ0JBQWdCLEdBQUdoSixNQUFNLENBQUMsS0FBSyxDQUFDO0VBQ3RDLElBQU1pSixRQUFRLEdBQUdYLFVBQVUsS0FBSyxZQUFZO0VBRTVDLElBQUFZLGlCQUFBLEdBQ0V0SSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRFp1SSxXQUFXLEdBQUFELGlCQUFBLENBQVhDLFdBQVc7SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0lBQUVDLGVBQWUsR0FBQUgsaUJBQUEsQ0FBZkcsZUFBZTtJQUFFQyxpQkFBaUIsR0FBQUosaUJBQUEsQ0FBakJJLGlCQUFpQjtJQUFFQyxlQUFlLEdBQUFMLGlCQUFBLENBQWZLLGVBQWU7SUFBRUMsU0FBUyxHQUFBTixpQkFBQSxDQUFUTSxTQUFTO0lBQUU3RixVQUFVLEdBQUF1RixpQkFBQSxDQUFWdkYsVUFBVTtFQUd0RyxJQUFBOEYsYUFBQSxHQWFJL0ksWUFBWSxDQUFDO01BQUV5SSxXQUFXLEVBQVhBLFdBQVc7TUFBRWhILE9BQU8sRUFBUEEsT0FBTztNQUFFaUgsS0FBSyxFQUFMQSxLQUFLO01BQUVNLFlBQVksRUFBRTVCLFFBQVEsQ0FBQ1I7SUFBSyxDQUFDLENBQUM7SUFaNUVxQyxNQUFNLEdBQUFGLGFBQUEsQ0FBTkUsTUFBTTtJQUNOQyxPQUFPLEdBQUFILGFBQUEsQ0FBUEcsT0FBTztJQUNQQyxXQUFXLEdBQUFKLGFBQUEsQ0FBWEksV0FBVztJQUNKQyxVQUFVLEdBQUFMLGFBQUEsQ0FBakJNLEtBQUs7SUFDTEMsZUFBZSxHQUFBUCxhQUFBLENBQWZPLGVBQWU7SUFDZkMsY0FBYyxHQUFBUixhQUFBLENBQWRRLGNBQWM7SUFDZEMsY0FBYyxHQUFBVCxhQUFBLENBQWRTLGNBQWM7SUFDZEMsUUFBUSxHQUFBVixhQUFBLENBQVJVLFFBQVE7SUFDUkMsV0FBVyxHQUFBWCxhQUFBLENBQVhXLFdBQVc7SUFDWEMsV0FBVyxHQUFBWixhQUFBLENBQVhZLFdBQVc7SUFDWEMsbUJBQW1CLEdBQUFiLGFBQUEsQ0FBbkJhLG1CQUFtQjtJQUNuQkMsZ0JBQWdCLEdBQUFkLGFBQUEsQ0FBaEJjLGdCQUFnQjtFQUdsQixJQUFNQyxrQkFBa0IsR0FDdEIsQ0FBQyxDQUFBN0YsSUFBSSxhQUFKQSxJQUFJLGdCQUFBSCxpQkFBQSxHQUFKRyxJQUFJLENBQUU4RixXQUFXLGNBQUFqRyxpQkFBQSxnQkFBQUEsaUJBQUEsR0FBakJBLGlCQUFBLENBQW1Ca0csU0FBUyxjQUFBbEcsaUJBQUEsdUJBQTVCQSxpQkFBQSxDQUE4Qm1HLE1BQU0sTUFDbkNoRyxJQUFJLGFBQUpBLElBQUksZ0JBQUFGLGtCQUFBLEdBQUpFLElBQUksQ0FBRThGLFdBQVcsY0FBQWhHLGtCQUFBLGdCQUFBQSxrQkFBQSxHQUFqQkEsa0JBQUEsQ0FBbUJpRyxTQUFTLGNBQUFqRyxrQkFBQSx1QkFBNUJBLGtCQUFBLENBQThCbUcsSUFBSSxNQUNsQ2pHLElBQUksYUFBSkEsSUFBSSxnQkFBQUQsa0JBQUEsR0FBSkMsSUFBSSxDQUFFOEYsV0FBVyxjQUFBL0Ysa0JBQUEsZ0JBQUFBLGtCQUFBLEdBQWpCQSxrQkFBQSxDQUFtQmdHLFNBQVMsY0FBQWhHLGtCQUFBLHVCQUE1QkEsa0JBQUEsVUFBb0MsTUFDdEN0QyxNQUFNLENBQUNDLHdDQUF3QztFQUVqRCxJQUFNd0ksWUFBWSxHQUFHOUssT0FBTyxDQUFDO0lBQUEsSUFBQStLLGlCQUFBO0lBQUEsUUFBQUEsaUJBQUEsR0FBTW5CLE1BQU0sQ0FBQ29CLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQUFDLElBQUk7TUFBQSxPQUFJQSxJQUFJLENBQUNDLElBQUksS0FBSyxjQUFjO0lBQUEsRUFBQyxjQUFBSixpQkFBQSxjQUFBQSxpQkFBQSxHQUFJLElBQUk7RUFBQSxHQUFFLENBQUNuQixNQUFNLENBQUNvQixJQUFJLENBQUMsQ0FBQztFQUVqSCxJQUFNSSxxQkFBcUIsR0FBRzNELGFBQWEsS0FBS2hILE9BQU8sQ0FBQzRLLElBQUksR0FBRzVLLE9BQU8sQ0FBQzRLLElBQUksR0FBRzVLLE9BQU8sQ0FBQzhHLElBQUk7RUFFMUYsSUFBTStELGVBQWUsR0FBR3JMLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDckNGLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSXVMLGVBQWUsQ0FBQ0MsT0FBTyxJQUFJLENBQUNULFlBQVksRUFBRTtJQUM5Q1EsZUFBZSxDQUFDQyxPQUFPLEdBQUcsSUFBSTtJQUM5Qm5DLFdBQVcsQ0FBQzBCLFlBQVksQ0FBQztFQUMzQixDQUFDLEVBQUUsQ0FBQ0EsWUFBWSxFQUFFMUIsV0FBVyxDQUFDLENBQUM7RUFFL0IsSUFBTW9DLGdCQUFnQixHQUFHdkwsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUV0Q0YsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUN5TCxnQkFBZ0IsQ0FBQ0QsT0FBTyxFQUFFO01BQzdCQyxnQkFBZ0IsQ0FBQ0QsT0FBTyxHQUFHLElBQUk7TUFDL0J0QixlQUFlLENBQUMsQ0FBQztJQUNuQjtFQUNGLENBQUMsRUFBRSxDQUFDQSxlQUFlLENBQUMsQ0FBQztFQUVyQmxLLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTTBMLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLEdBQVUsRUFBSztNQUMxQyxJQUFBQyxLQUFBLEdBQThCRCxHQUFHLENBQW1DRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQWpFQyxTQUFTLEdBQUFGLEtBQUEsQ0FBaEJ0QyxLQUFLO01BQ2IsSUFBSXdDLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVDLEVBQUUsRUFBRTFCLFFBQVEsQ0FBQ3lCLFNBQVMsRUFBRTtRQUFFRSxZQUFZLEVBQUU7TUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNEQyxRQUFRLENBQUNDLGdCQUFnQixDQUFDLG9DQUFvQyxFQUFFUixtQkFBbUIsQ0FBQztJQUNwRixPQUFPO01BQUEsT0FBTU8sUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxvQ0FBb0MsRUFBRVQsbUJBQW1CLENBQUM7SUFBQTtFQUN0RyxDQUFDLEVBQUUsQ0FBQ3JCLFFBQVEsQ0FBQyxDQUFDO0VBRWRySyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU1vTSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJVCxHQUFVLEVBQUs7TUFDeEMsSUFBQVUsS0FBQSxHQUE4QlYsR0FBRyxDQUFtQ0UsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUFqRUMsU0FBUyxHQUFBTyxLQUFBLENBQWhCL0MsS0FBSztNQUNiLElBQUksRUFBQ3dDLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVDLEVBQUUsR0FBRTtNQUNwQnhCLFdBQVcsQ0FBQ3VCLFNBQVMsQ0FBQztNQUN0QixJQUFJLENBQUF4QyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXlDLEVBQUUsTUFBS0QsU0FBUyxDQUFDQyxFQUFFLEVBQUUxQyxXQUFXLENBQUN5QyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUNERyxRQUFRLENBQUNDLGdCQUFnQixDQUFDLGtDQUFrQyxFQUFFRSxpQkFBaUIsQ0FBQztJQUNoRixPQUFPO01BQUEsT0FBTUgsUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxrQ0FBa0MsRUFBRUMsaUJBQWlCLENBQUM7SUFBQTtFQUNsRyxDQUFDLEVBQUUsQ0FBQzdCLFdBQVcsRUFBRWxCLFdBQVcsRUFBRUMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV5QyxFQUFFLENBQUMsQ0FBQztFQUV6Qy9MLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTXNNLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7TUFDekJ2RSxXQUFXLENBQUMsS0FBSyxDQUFDO01BQ2xCakMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO01BQ3RCSSxhQUFhLENBQUMsVUFBQXFHLElBQUk7UUFBQSxPQUFJQSxJQUFJLEdBQUcsQ0FBQztNQUFBLEVBQUM7TUFDL0I3RyxxQkFBcUIsQ0FBQztRQUFFSixPQUFPLEVBQUUsRUFBRTtRQUFFQyxXQUFXLEVBQUU7TUFBRyxDQUFDLENBQUM7TUFDdkRvQyxnQkFBZ0IsQ0FBQ2pILE9BQU8sQ0FBQzRLLElBQUksQ0FBQztNQUM5QlcsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNEUixRQUFRLENBQUNDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFSSxZQUFZLENBQUM7SUFDOUQsT0FBTztNQUFBLE9BQU1MLFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUMscUJBQXFCLEVBQUVHLFlBQVksQ0FBQztJQUFBO0VBQ2hGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTnRNLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTTBNLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLEtBQVksRUFBSztNQUFBLElBQUFDLE9BQUE7TUFDN0MsSUFBTWQsU0FBUyxJQUFBYyxPQUFBLEdBQUlELEtBQUssQ0FBbUNkLE1BQU0sY0FBQWUsT0FBQSx1QkFBL0NBLE9BQUEsQ0FBaUR0RCxLQUFLO01BQ3hFLElBQUksQ0FBQ3dDLFNBQVMsRUFBRTtNQUNoQmpJLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDaEI2RixTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFHLElBQUksQ0FBQztNQUNqQkwsV0FBVyxDQUFDeUMsU0FBUyxDQUFDO01BQ3RCL0QsV0FBVyxDQUFDLEtBQUssQ0FBQztNQUNsQkosZ0JBQWdCLENBQUNqSCxPQUFPLENBQUM4RyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUNEeUUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQywrQkFBK0IsRUFBRVEsb0JBQW9CLENBQUM7SUFDaEYsT0FBTztNQUFBLE9BQU1ULFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUMsK0JBQStCLEVBQUVPLG9CQUFvQixDQUFDO0lBQUE7RUFDbEcsQ0FBQyxFQUFFLENBQUNyRCxXQUFXLEVBQUVLLFNBQVMsRUFBRTdGLFVBQVUsQ0FBQyxDQUFDO0VBRXhDLElBQU1nSixTQUFTLEdBQUc5TSxXQUFXLENBQzNCLFVBQ0V1RixPQUFnQixFQUNoQkMsV0FBOEIsRUFDOUJ1SCxLQUFjLEVBQ2RDLGlCQUEwQixFQUMxQkMsU0FBbUIsRUFDbkJDLEtBQWMsRUFDWDtJQUNILElBQUk5RSxlQUFlLEVBQUVDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUM5Q3RDLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUN0QkksYUFBYSxDQUFDLFVBQUFxRyxJQUFJO01BQUEsT0FBSUEsSUFBSSxHQUFHLENBQUM7SUFBQSxFQUFDO0lBQy9CN0cscUJBQXFCLENBQUF2QixhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQTtNQUNuQm1CLE9BQU8sRUFBRUEsT0FBTyxJQUFJLEVBQUU7TUFDdEJDLFdBQVcsRUFBRUEsV0FBVyxJQUFJO0lBQUUsR0FDMUJ1SCxLQUFLLEdBQUc7TUFBRUEsS0FBSyxFQUFMQTtJQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDdEJDLGlCQUFpQixHQUFHO01BQUVBLGlCQUFpQixFQUFqQkE7SUFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUM5Q0UsS0FBSyxHQUFHO01BQUVBLEtBQUssRUFBTEE7SUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzNCLENBQUM7SUFDRmpGLFFBQVEsQ0FBQ3NELElBQUksQ0FBQyxDQUFDO0VBQ2pCLENBQUMsRUFDRCxDQUFDdEQsUUFBUSxFQUFFRyxlQUFlLENBQzVCLENBQUM7O0VBRUQ7RUFDQSxJQUFNK0UsUUFBUSxHQUFHbk4sV0FBVyxDQUMxQixVQUFDb04sT0FBZSxFQUFLO0lBQ25CLElBQU03QixJQUFJLEdBQUc2QixPQUFrQztJQUMvQ3pILHFCQUFxQixDQUFDO01BQUVKLE9BQU8sRUFBRSxFQUFFO01BQUVDLFdBQVcsRUFBRTtJQUFHLENBQUMsQ0FBQztJQUN2RE8sZ0JBQWdCLENBQUN3RixJQUFJLENBQUM4QixpQkFBaUIsQ0FBQztJQUN4QyxJQUFNQyxhQUFhLEdBQUd4RCxNQUFNLENBQUNvQixJQUFJLENBQUNDLElBQUksQ0FBQyxVQUFBb0MsU0FBUztNQUFBLE9BQUlBLFNBQVMsQ0FBQ3ZCLEVBQUUsS0FBS1QsSUFBSSxDQUFDaUMsT0FBTztJQUFBLEVBQUM7SUFDbEYsSUFBSUYsYUFBYSxFQUFFaEUsV0FBVyxDQUFDZ0UsYUFBYSxDQUFDO0lBQzdDbkUsZ0JBQWdCLENBQUNzQyxPQUFPLEdBQUcsS0FBSztJQUNoQ1MsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0R6RSxRQUFRLENBQUNzRCxJQUFJLENBQUMsQ0FBQztFQUNqQixDQUFDLEVBQ0QsQ0FBQ3RELFFBQVEsRUFBRTZCLE1BQU0sRUFBRVIsV0FBVyxDQUNoQyxDQUFDO0VBRUQsSUFBTW1FLHNCQUFzQixHQUFHek4sV0FBVyxDQUN4QyxVQUNFME4sV0FLUyxFQUNUQyxjQUEwQixFQUMxQkMsU0FBa0IsRUFDbEJDLE9BQWdCLEVBQ2I7SUFDSHRILHNCQUFzQixDQUFDO01BQUEsT0FBTW1ILFdBQVc7SUFBQSxFQUFDO0lBQ3pDL0cseUJBQXlCLENBQUM7TUFBQSxPQUFNZ0gsY0FBYztJQUFBLEVBQUM7SUFDL0M1RyxjQUFjLENBQUM2RyxTQUFTLENBQUM7SUFDekJ6RyxZQUFZLENBQUMwRyxPQUFPLENBQUM7RUFDdkIsQ0FBQyxFQUNELEVBQ0YsQ0FBQztFQUVELElBQU1DLGlCQUFpQixHQUFHOU4sV0FBVyxDQUNuQyxVQUNFdUYsT0FBZSxFQUNmQyxXQUE4QixFQUM5QnVILEtBQWMsRUFDZEMsaUJBQTBCLEVBQzFCZSxRQUFrQixFQUNsQmIsS0FBYyxFQUNYO0lBQ0gsSUFBSTlFLGVBQWUsRUFBRUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO0lBQzlDLElBQUkvQixtQkFBbUIsSUFBSWdGLHFCQUFxQixLQUFLM0ssT0FBTyxDQUFDNEssSUFBSSxFQUFFO01BQ2pFakYsbUJBQW1CLENBQUNmLE9BQU8sRUFBRUMsV0FBVyxFQUFFdUgsS0FBSyxFQUFFQyxpQkFBaUIsQ0FBQztJQUNyRSxDQUFDLE1BQU07TUFDTEYsU0FBUyxDQUFDdkgsT0FBTyxFQUFFQyxXQUFXLEVBQUV1SCxLQUFLLEVBQUVDLGlCQUFpQixFQUFFZSxRQUFRLEVBQUViLEtBQUssQ0FBQztJQUM1RTtFQUNGLENBQUMsRUFDRCxDQUFDNUcsbUJBQW1CLEVBQUV3RyxTQUFTLEVBQUV4QixxQkFBcUIsRUFBRWxELGVBQWUsQ0FDekUsQ0FBQztFQUVELElBQU15QixZQUFZLEdBQUc3SixXQUFXLENBQUMsWUFBTTtJQUNyQ2tKLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDckJDLGdCQUFnQixDQUFDc0MsT0FBTyxHQUFHLEtBQUs7SUFDaEMsSUFBSTlELGFBQWEsS0FBS2hILE9BQU8sQ0FBQzRLLElBQUksRUFBRTtNQUNsQ3hGLGdCQUFnQixDQUFDLElBQUksQ0FBQztNQUN0QkksYUFBYSxDQUFDLFVBQUFxRyxJQUFJO1FBQUEsT0FBSUEsSUFBSSxHQUFHLENBQUM7TUFBQSxFQUFDO01BQy9CLElBQUksQ0FBQWpELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFMUcsTUFBTSxNQUFLLFFBQVEsRUFBRThHLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUcsSUFBSSxDQUFDO0lBQ25EO0lBQ0EsSUFBSXFCLFlBQVksRUFBRTtNQUNoQjFCLFdBQVcsQ0FBQzBCLFlBQVksQ0FBQztJQUMzQixDQUFDLE1BQU0sSUFDTCxDQUFDLENBQUN6QixLQUFLLElBQUlBLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUV5RSxVQUFVLElBQUl6RSxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFMEUsbUJBQW1CLElBQUkxRSxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFMkUsY0FBYyxJQUFJM0UsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRTRFLGVBQWUsS0FDN0dyRSxNQUFNLENBQUNvQixJQUFJLENBQUNrRCxNQUFNLEdBQUcsQ0FBQyxFQUN0QjtNQUNBOUUsV0FBVyxDQUFDUSxNQUFNLENBQUNvQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0I7SUFDQXRELGdCQUFnQixDQUFDakgsT0FBTyxDQUFDOEcsSUFBSSxDQUFDO0lBQzlCaUMsZUFBZSxDQUFDLElBQUksQ0FBQztJQUNyQjFCLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDbEIsSUFBSXlCLGlCQUFpQixFQUFFRCxlQUFlLENBQUMsQ0FBQztJQUN4QyxJQUFJbEIsb0JBQW9CLENBQUNtRCxPQUFPLEVBQUVuRCxvQkFBb0IsQ0FBQ21ELE9BQU8sQ0FBQyxDQUFDO0VBQ2xFLENBQUMsRUFBRSxDQUNEOUQsYUFBYSxFQUNiOEIsaUJBQWlCLEVBQ2pCRCxlQUFlLEVBQ2ZELEtBQUssRUFDTE8sTUFBTSxFQUNOa0IsWUFBWSxFQUNaMUIsV0FBVyxFQUNYSyxTQUFTLEVBQ1RELGVBQWUsQ0FDaEIsQ0FBQztFQUVGLElBQU0yRSxlQUFlLEdBQUdyTyxXQUFXLENBQUMsWUFBTTtJQUN4Q2tKLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDckJDLGdCQUFnQixDQUFDc0MsT0FBTyxHQUFHLEtBQUs7SUFDaEMxRixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDdEJJLGFBQWEsQ0FBQyxVQUFBcUcsSUFBSTtNQUFBLE9BQUlBLElBQUksR0FBRyxDQUFDO0lBQUEsRUFBQztJQUMvQjdHLHFCQUFxQixDQUFDO01BQUVKLE9BQU8sRUFBRSxFQUFFO01BQUVDLFdBQVcsRUFBRTtJQUFHLENBQUMsQ0FBQztJQUN2RG9DLGdCQUFnQixDQUFDakgsT0FBTyxDQUFDOEcsSUFBSSxDQUFDO0lBQzlCaUMsZUFBZSxDQUFDLElBQUksQ0FBQztJQUNyQjFCLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDbEIsSUFBSXlCLGlCQUFpQixFQUFFRCxlQUFlLENBQUMsQ0FBQztJQUN4QyxJQUFJbEIsb0JBQW9CLENBQUNtRCxPQUFPLEVBQUVuRCxvQkFBb0IsQ0FBQ21ELE9BQU8sQ0FBQyxDQUFDO0lBQ2hFUyxRQUFRLENBQUNPLGFBQWEsQ0FBQyxJQUFJQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztFQUNqRSxDQUFDLEVBQUUsQ0FBQ2pELGlCQUFpQixFQUFFRCxlQUFlLEVBQUVFLGVBQWUsQ0FBQyxDQUFDO0VBRXpELElBQU00RSxjQUFjLEdBQUd0TyxXQUFXLENBQUMsWUFBTTtJQUN2Q3VDLE1BQU0sQ0FBQ2dNLFVBQVUsQ0FBQyxZQUFNO01BQ3RCckMsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDL0QsQ0FBQyxFQUFFLEdBQUcsQ0FBQztFQUNULENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNOEIsa0JBQWtCLEdBQUd4TyxXQUFXLENBQUMsWUFBTTtJQUMzQyxJQUFJMkgsYUFBYSxLQUFLaEgsT0FBTyxDQUFDOEcsSUFBSSxFQUFFO01BQ2xDNkcsY0FBYyxDQUFDLENBQUM7TUFDaEI7SUFDRjtJQUNBLElBQUl0RCxZQUFZLEVBQUUxQixXQUFXLENBQUMwQixZQUFZLENBQUM7SUFDM0NuQixZQUFZLENBQUMsQ0FBQztJQUNkeUUsY0FBYyxDQUFDLENBQUM7RUFDbEIsQ0FBQyxFQUFFLENBQUMzRyxhQUFhLEVBQUUyRyxjQUFjLEVBQUV6RSxZQUFZLEVBQUVtQixZQUFZLEVBQUUxQixXQUFXLENBQUMsQ0FBQztFQUU1RSxJQUFNbUYsSUFBSSxHQUFHek8sV0FBVyxDQUFDO0lBQUEsT0FBTWdFLFNBQVM7RUFBQSxHQUFFLEVBQUUsQ0FBQzs7RUFFN0M7RUFDQSxLQUFLa0IsYUFBYTtFQUVsQixJQUFNd0osYUFBYSxHQUFHck0sdUJBQXVCLENBQUNDLE9BQU8sQ0FBQztFQUN0RCxJQUFNcU0sTUFBTSxHQUFHckQscUJBQXFCLEtBQUszSyxPQUFPLENBQUM4RyxJQUFJO0VBQ3JELElBQU1tSCxjQUFjLEdBQUd0RCxxQkFBcUIsS0FBSzNLLE9BQU8sQ0FBQzRLLElBQUksSUFBSSxDQUFDeEQsUUFBUSxJQUFJLENBQUNnQyxPQUFPLElBQUkyRSxhQUFhO0VBRXZHLG9CQUNFdE0sS0FBQSxDQUFDSixhQUFhO0lBQUN5QixTQUFTLEVBQUVBLFNBQVU7SUFBQWMsUUFBQSxHQUNqQ21LLGFBQWEsZ0JBQ1p4TSxJQUFBLENBQUN0QixPQUFPO01BQ05pTyxpQkFBaUI7TUFDakJDLElBQUksRUFBRWpHLFdBQVk7TUFDbEJrRyxZQUFZLEVBQUVqRyxjQUFlO01BQzdCa0csVUFBVSxFQUFFN0IsUUFBUztNQUNyQjhCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1FBQUEsT0FBUTVHLGtCQUFrQixDQUFDLElBQUksQ0FBQztNQUFBLENBQUM7TUFDeEM2RyxjQUFjLEVBQUVyRixZQUFhO01BQzdCMkUsa0JBQWtCLEVBQUVBLGtCQUFtQjtNQUN2Q1cscUJBQXFCLEVBQUVWLElBQUs7TUFDNUJXLGdCQUFnQixFQUFFWCxJQUFLO01BQ3ZCWSxXQUFXLEVBQUUsS0FBTTtNQUNuQi9ILFlBQVksRUFBRUEsWUFBYTtNQUMzQmdJLHFCQUFxQixFQUFFL0gsZUFBZ0I7TUFDdkNRLFFBQVEsRUFBRUssZUFBZ0I7TUFDMUJFLG9CQUFvQixFQUFFQTtJQUFxQixDQUM1QyxDQUFDLEdBQ0EsSUFBSSxlQUNSbEcsS0FBQSxDQUFDTCxVQUFVO01BQUF3QyxRQUFBLGdCQUNUckMsSUFBQSxDQUFDZCxnQkFBZ0I7UUFDZm1PLE9BQU8sRUFBRVosTUFBTSxJQUFJLENBQUMxRixXQUFZO1FBQ2hDdUcsUUFBUSxFQUFFLENBQUNiLE1BQU87UUFDbEI3RSxNQUFNLEVBQUVBLE1BQU0sQ0FBQ29CLElBQUs7UUFDcEJuQixPQUFPLEVBQUVBLE9BQVE7UUFDakJDLFdBQVcsRUFBRUEsV0FBWTtRQUN6QnlGLE9BQU8sRUFBRTNGLE1BQU0sQ0FBQzRGLFFBQVM7UUFDekJ0RixjQUFjLEVBQUVBLGNBQWU7UUFDL0JDLGNBQWMsRUFBRUEsY0FBZTtRQUMvQmdFLGVBQWUsRUFBRUEsZUFBZ0I7UUFDakNzQixhQUFhLEVBQUVsRjtNQUFvQixDQUNwQyxDQUFDLEVBQ0QxQyxRQUFRLGdCQUNQN0YsSUFBQSxDQUFDMUIsU0FBUyxJQUFFLENBQUMsR0FDWGtPLGFBQWEsR0FDZkMsTUFBTSxnQkFDSnpNLElBQUEsQ0FBQ2IsY0FBYztRQUVidU8sYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUdySyxPQUFPLEVBQUVDLFdBQVcsRUFBRXVILEtBQUssRUFBRUMsaUJBQWlCLEVBQUVlLFFBQVEsRUFBRWIsS0FBSyxFQUFLO1VBQ2xGaEUsY0FBYyxDQUFDLEtBQUssQ0FBQztVQUNyQjRFLGlCQUFpQixDQUFDdkksT0FBTyxFQUFFQyxXQUFXLEVBQUV1SCxLQUFLLEVBQUVDLGlCQUFpQixFQUFFZSxRQUFRLEVBQUViLEtBQUssQ0FBQztRQUNwRixDQUFFO1FBQ0YyQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQSxFQUFRO1VBQ2xCMUcsZ0JBQWdCLENBQUNzQyxPQUFPLEdBQUcsSUFBSTtVQUMvQnZDLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDdEI7TUFBRSxHQVJHSyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXlDLEVBU2IsQ0FBQyxnQkFFRjlKLElBQUEsQ0FBQ3pCLGFBQWE7UUFDWmtILGFBQWEsRUFBRWhILE9BQU8sQ0FBQzRLLElBQUs7UUFDNUJ0RCxRQUFRLEVBQUE3RCxhQUFBLENBQUFBLGFBQUEsS0FBTzZELFFBQVE7VUFBRXNELElBQUksRUFBRXVCLFNBQVM7VUFBRXJGLElBQUksRUFBRVEsUUFBUSxDQUFDUixJQUFJO1VBQUVvQyxZQUFZLEVBQVpBO1FBQVksRUFBRztRQUM5RW9GLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWpILFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFBQSxDQUFDO1FBQ2pDOEgsSUFBSSxFQUFFO1VBQUVwSyxrQkFBa0IsRUFBbEJBLGtCQUFrQjtVQUFFSSxhQUFhLEVBQWJBO1FBQWMsQ0FBRTtRQUM1Q2lLLGtCQUFrQixFQUFFdEMsc0JBQXVCO1FBQzNDckUsUUFBUSxFQUFFQSxRQUFTO1FBQ25CNEcsUUFBUSxFQUFFLEtBQU07UUFDaEJsRyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ29CLElBQUs7UUFDcEIrRSxhQUFhLEVBQUVsRyxPQUFRO1FBQ3ZCRSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJpRyxrQkFBa0IsRUFBRS9HLGdCQUFnQixDQUFDc0M7TUFBUSxDQUM5QyxDQUNGLGdCQUVEdkosSUFBQSxDQUFDakIscUJBQXFCO1FBQUNrUCxnQkFBZ0IsRUFBRWxJLFFBQVEsQ0FBQ1I7TUFBSyxDQUFFLENBQzFELEVBQ0FtSCxjQUFjLGdCQUNiMU0sSUFBQSxDQUFDZixpQkFBaUI7UUFDaEJvSSxLQUFLLEVBQUVBLEtBQU07UUFDYnVFLGlCQUFpQixFQUFFQSxpQkFBa0I7UUFDckNzQyxvQkFBb0IsRUFBRTFKLHNCQUF1QjtRQUM3Q0ksV0FBVyxFQUFFQSxXQUFZO1FBQ3pCSSxTQUFTLEVBQUVBLFNBQVU7UUFDckJtSixNQUFNLEVBQUV2SyxhQUFjO1FBQ3RCSSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJ1QyxVQUFVLEVBQUVBO01BQVcsQ0FDeEIsQ0FBQyxHQUNBLElBQUk7SUFBQSxDQUNFLENBQUMsRUFDWmtDLGtCQUFrQixpQkFDakJ6SSxJQUFBLENBQUNoQixhQUFhO01BQ1pvSixRQUFRLEVBQUVBLFFBQVM7TUFDbkJFLFdBQVcsRUFBRUEsV0FBWTtNQUN6QkQsV0FBVyxFQUFFQSxXQUFZO01BQ3pCRSxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDQyxnQkFBZ0IsRUFBRUE7SUFBaUIsQ0FDcEMsQ0FDRixlQUNEeEksSUFBQSxDQUFDbEIsUUFBUSxJQUFFLENBQUM7RUFBQSxDQUNDLENBQUM7QUFFcEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
486
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIm1vbWVudCIsInVzZVRyYW5zbGF0aW9uIiwidXNlVXNlciIsIk1BSUFFcnJvciIsIkNoYXRBSUNvbnRlbnQiLCJidWlsZEhhbmRsZXJzIiwib3B0aW9ucyIsIlNpZGViYXIiLCJ1c2VHZXRBZ2VudHMiLCJHbG9iYWxDb250ZXh0IiwidXNlR2xvYmFsQ29udGV4dCIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIkNoYXRBaU1vZGFsRm9vdGVyIiwiQ2hhdEFJUGFnZUhlYWRlciIsIkNoYXRBSVBhZ2VIb21lIiwiU0VDVElPTlMiLCJ1c2VTdHJlYW1kb3duU3R5bGVzIiwidXNlUHJvamVjdFN1bW1hcnlDb25maWciLCJhY3F1aXJlQ2hhdHNTdG9yZSIsInJlbGVhc2VDaGF0c1N0b3JlIiwidXNlRXZlbnQiLCJ3aXRoQXBwQ2ZnIiwiRmVhdHVyZXMiLCJzZXRNYWlhUGFnZVByZXNlbmNlIiwiU0NQYWdlTWFpbiIsIlNDUGFnZVdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwidmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUiLCJzZWN0aW9uIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIkNoYXRBSVBhZ2UiLCJfcmVmIiwiX3JlZiRlbnRpdHkiLCJlbnRpdHkiLCJwcm9qZWN0SWQiLCJjbGllbnRJZCIsIl9yZWYkcHJvamVjdCIsInByb2plY3QiLCJpbml0aWFsUHJvamVjdCIsIl9yZWYkY2xpZW50IiwiY2xpZW50IiwiaW5pdGlhbENsaWVudCIsIl9yZWYkc2VjdGlvbiIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsImNsYXNzTmFtZSIsImluaXRpYWxQcm9qZWN0VmFsdWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRQcm9qZWN0IiwiX3VzZVByb2plY3RTdW1tYXJ5Q29uIiwidW5kZWZpbmVkIiwiY29udGV4dCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsInByb3ZpZGVyVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImNoaWxkcmVuIiwiQ2hhdEFJUGFnZUNvbnRlbnQiLCJDSEFUX0FJIiwiX3JlZjIiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsInVzZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsImkxOG4iLCJhbXBsaXR1ZEV2ZW50IiwibGFuZyIsImxhbmd1YWdlIiwibG9jYWxlIiwiX3VzZVN0YXRlMyIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTQiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJzZXRVc2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImluaXRpYWxDaGF0SWQiLCJzZXRJbml0aWFsQ2hhdElkIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJuZXdDaGF0S2V5Iiwic2V0TmV3Q2hhdEtleSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2VuZE1lc3NhZ2VGdW5jdGlvbiIsInNldFNlbmRNZXNzYWdlRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uIiwic2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNyIsImhvbWUiLCJfdXNlU3RhdGUxOCIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTkiLCJfdXNlU3RhdGUyMCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJsYXlvdXRNb2RlIiwic2V0TGF5b3V0TW9kZSIsIl91c2VTdGF0ZTI1IiwiX3VzZVN0YXRlMjYiLCJzaWRlYmFyT3BlbiIsInNldFNpZGViYXJPcGVuIiwiX3VzZVN0YXRlMjciLCJfdXNlU3RhdGUyOCIsImhvbWVMZWF2aW5nIiwic2V0SG9tZUxlYXZpbmciLCJza2lwQ2hhdEVudGVyUmVmIiwiZXhwYW5kZWQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50IiwiYWdlbnQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsInNldENsaWVudCIsIl91c2VHZXRBZ2VudHMiLCJoYW5kbGVHb0hvbWUiLCJhZ2VudHMiLCJsb2FkaW5nIiwibG9hZGluZ01vcmUiLCJhZ2VudEVycm9yIiwiZXJyb3IiLCJoYW5kbGVHZXRBZ2VudHMiLCJsb2FkTW9yZUFnZW50cyIsInNvcnRBZ2VudHNMaXN0IiwiYWRkQWdlbnQiLCJyZW1vdmVBZ2VudCIsInVwZGF0ZUFnZW50IiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNlbGVjdEZpcnN0QWdlbnQiLCJ1c2VySGFzUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsImVkaXQiLCJvcmNoZXN0cmF0b3IiLCJfYWdlbnRzJGRhdGEkZmluZCIsImRhdGEiLCJmaW5kIiwiaXRlbSIsInR5cGUiLCJjb21wdXRlZEN1cnJlbnRPcHRpb24iLCJjaGF0IiwiZGlkSW5pdEFnZW50UmVmIiwiY3VycmVudCIsImFnZW50c0ZldGNoZWRSZWYiLCJvbk1lcmdlQ3JlYXRlZEFnZW50IiwiZXZ0IiwiX3JlZjMiLCJkZXRhaWwiLCJuZXh0QWdlbnQiLCJpZCIsIm5hdmlnYXRlSG9tZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvblN5bmNFZGl0ZWRBZ2VudCIsIl9yZWY0Iiwib3BlbkNoYXRWaWV3IiwicHJldiIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsIm9wZW5OZXdDaGF0V2l0aEFnZW50IiwiZXZlbnQiLCJfZGV0YWlsIiwic3RhcnRDaGF0IiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsIl9tZW50aW9ucyIsImZ1YUlkIiwiZ29Ub0NoYXQiLCJjaGF0QXJnIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZWxlY3RlZEFnZW50IiwiYWdlbnRJdGVtIiwiYWdlbnRJZCIsImhhbmRsZVNlbmRNZXNzYWdlUmVhZHkiLCJzZW5kTWVzc2FnZSIsInN0b3BHZW5lcmF0aW9uIiwic3RyZWFtaW5nIiwid3JpdGluZyIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVudGlvbnMiLCJoYW5kbGVIb21lTGVhdmVTdGFydCIsImhhbmRsZUhvbWVTZW5kTWVzc2FnZSIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCJwcm9qZWN0X2RlbGV0ZWQiLCJsZW5ndGgiLCJoYW5kbGVSZXNldENoYXQiLCJmb2N1c0NoYXRJbnB1dCIsInNldFRpbWVvdXQiLCJoYW5kbGVTdGFydE5ld0NoYXQiLCJub29wIiwiY2FuQWNjZXNzUGFnZSIsImlzSG9tZSIsInNob3dDaGF0Rm9vdGVyIiwiY29udmVyc2F0aW9uc09ubHkiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwib25Hb1RvQ2hhdCIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsImhhbmRsZU9wZW5Ta2lsbHMiLCJzaG93TmV3Q2hhdCIsImhhbmRsZVNldFJlZmV0Y2hDaGF0cyIsIm92ZXJsYXkiLCJzaG93QmFjayIsImhhc01vcmUiLCJoYXNfbW9yZSIsIm9uQWdlbnRVcGRhdGUiLCJvblNlbmRNZXNzYWdlIiwib25MZWF2ZVN0YXJ0IiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsImZsb2F0aW5nIiwibG9hZGluZ0FnZW50cyIsInNraXBFbnRlckFuaW1hdGlvbiIsIm9uUmVzdGFydFN1bW1hcnkiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImNoYXRJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29yZ2FuaXNtcy9DaGF0QUlQYWdlL0NoYXRBSVBhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFFcnJvcidcbmltcG9ydCB7IENoYXRBSUNvbnRlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEFJQ29udGVudCdcbmltcG9ydCB7IGJ1aWxkSGFuZGxlcnMsIG9wdGlvbnMgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9TaWRlYmFyJ1xuaW1wb3J0IHsgdXNlR2V0QWdlbnRzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzJ1xuaW1wb3J0IHsgR2xvYmFsQ29udGV4dCwgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBTbmFja2JhciB9IGZyb20gJy4uL1NuYWNrQmFyL1NuYWNrYmFyJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcbmltcG9ydCB7IEFibUFnZW50TW9kYWwgfSBmcm9tICcuLi9BYm1BZ2VudE1vZGFsL0FibUFnZW50TW9kYWwnXG5pbXBvcnQgeyBDaGF0QWlNb2RhbEZvb3RlciB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb21wb25lbnRzL0NoYXRBaU1vZGFsRm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdEFJUGFnZUhlYWRlciB9IGZyb20gJy4vQ2hhdEFJUGFnZUhlYWRlcidcbmltcG9ydCB7IENoYXRBSVBhZ2VIb21lIH0gZnJvbSAnLi9DaGF0QUlQYWdlSG9tZSdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyB1c2VTdHJlYW1kb3duU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU3RyZWFtZG93blN0eWxlcydcbmltcG9ydCB7IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcnXG5pbXBvcnQgeyBhY3F1aXJlQ2hhdHNTdG9yZSwgcmVsZWFzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSdcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHsgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2xheW91dCdcbmltcG9ydCB7IHdpdGhBcHBDZmcgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoQXBwQ2ZnJ1xuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoRmVhdHVyZVZhbGlkYXRpb24nXG5pbXBvcnQgeyBzZXRNYWlhUGFnZVByZXNlbmNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbWFpYVBhZ2VSb3V0ZSdcbmltcG9ydCB7IFNDUGFnZU1haW4sIFNDUGFnZVdyYXBwZXIgfSBmcm9tICcuL0NoYXRBSVBhZ2Uuc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBDaGF0QUlQYWdlUHJvcHMgPSB7XG4gIGVudGl0eT86IHsgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsOyBjbGllbnRJZDogc3RyaW5nIHwgbnVsbCB9XG4gIHByb2plY3Q/OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHNlY3Rpb24/OiAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxuICBjbGFzc05hbWU/OiBzdHJpbmdcbn1cblxudHlwZSBTZWN0aW9uVHlwZSA9ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCdcblxudHlwZSBDaGF0TGlzdEl0ZW0gPSB7IHNlc3Npb25FeHRlcm5hbElkOiBzdHJpbmc7IGFnZW50SWQ6IHN0cmluZyB9XG5cbmNvbnN0IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgKHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8IHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50JykgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlQYWdlID0gd2l0aEFwcENmZyhcbiAgKHtcbiAgICBlbnRpdHkgPSB7IHByb2plY3RJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfSxcbiAgICBwcm9qZWN0OiBpbml0aWFsUHJvamVjdCA9IG51bGwsXG4gICAgY2xpZW50OiBpbml0aWFsQ2xpZW50ID0gbnVsbCxcbiAgICBzZWN0aW9uID0gJ2hlYWRlcicsXG4gICAgaGFzTXVsdGlBZ2VudHMgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gIH06IENoYXRBSVBhZ2VQcm9wcykgPT4ge1xuICAgIHVzZVN0cmVhbWRvd25TdHlsZXMoKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHNldE1haWFQYWdlUHJlc2VuY2UodHJ1ZSlcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHNldE1haWFQYWdlUHJlc2VuY2UoZmFsc2UpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICBjb25zdCBpbml0aWFsUHJvamVjdFZhbHVlID0gc2VjdGlvbiA9PT0gJ3Byb2plY3QnID8gaW5pdGlhbFByb2plY3QgOiBudWxsXG4gICAgY29uc3QgW3Byb2plY3QsIHNldFByb2plY3RdID0gdXNlU3RhdGU8UHJvamVjdCB8IG51bGw+KGluaXRpYWxQcm9qZWN0VmFsdWUpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0JyAmJiBpbml0aWFsUHJvamVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNldFByb2plY3QoaW5pdGlhbFByb2plY3QpXG4gICAgICB9XG4gICAgfSwgW3NlY3Rpb24sIGluaXRpYWxQcm9qZWN0XSlcblxuICAgIGNvbnN0IHsgY29udGV4dCwgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzIH0gPSB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyh7XG4gICAgICBzZWN0aW9uLFxuICAgICAgZW50aXR5LFxuICAgICAgcHJvamVjdCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQ6IHNlY3Rpb24gPT09ICdjbGllbnQnID8gKGluaXRpYWxDbGllbnQgPz8gbnVsbCkgOiB1bmRlZmluZWQsXG4gICAgICBoYXNNdWx0aUFnZW50cyxcbiAgICB9KVxuXG4gICAgY29uc3QgcHJvdmlkZXJWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoeyAuLi5jb250ZXh0LCBzZWN0aW9uOiBzZWN0aW9uIGFzICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfSksXG4gICAgICBbY29udGV4dCwgc2VjdGlvbl1cbiAgICApXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgYWNxdWlyZUNoYXRzU3RvcmUoKVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgcmVsZWFzZUNoYXRzU3RvcmUoKVxuICAgICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MoKVxuICAgICAgfVxuICAgIH0sIFtyZXN0b3JlQ29uZmlndXJlU2V0dGluZ3NdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHbG9iYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm92aWRlclZhbHVlfT5cbiAgICAgICAgPENoYXRBSVBhZ2VDb250ZW50IHNlY3Rpb249e3NlY3Rpb24gYXMgU2VjdGlvblR5cGV9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfSxcbiAgRmVhdHVyZXMuQ0hBVF9BSVxuKVxuXG5jb25zdCBDaGF0QUlQYWdlQ29udGVudCA9ICh7IHNlY3Rpb24sIGNsYXNzTmFtZSB9OiB7IHNlY3Rpb246IFNlY3Rpb25UeXBlOyBjbGFzc05hbWU/OiBzdHJpbmcgfSkgPT4ge1xuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgYW1wbGl0dWRFdmVudCA9IHVzZUV2ZW50KClcblxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdC1icicgOiBpMThuLmxhbmd1YWdlXG4gIG1vbWVudC5sb2NhbGUobGFuZylcblxuICBjb25zdCBbdXNlckluaXRpYWxNZXNzYWdlLCBzZXRVc2VySW5pdGlhbE1lc3NhZ2VdID0gdXNlU3RhdGU8e1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICAgIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gICAgZmFxSWQ/OiBzdHJpbmdcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICAgIGZ1YUlkPzogc3RyaW5nXG4gIH0+KHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICBjb25zdCBbaW5pdGlhbENoYXRJZCwgc2V0SW5pdGlhbENoYXRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbbmV3Q2hhdEtleSwgc2V0TmV3Q2hhdEtleV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc2V0U2VuZE1lc3NhZ2VGdW5jdGlvbl0gPSB1c2VTdGF0ZTxcbiAgICAoKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZywgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcpID0+IHZvaWQpIHwgbnVsbFxuICA+KG51bGwpXG4gIGNvbnN0IFtzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uLCBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uXSA9IHVzZVN0YXRlPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc1N0cmVhbWluZywgc2V0SXNTdHJlYW1pbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1dyaXRpbmcsIHNldElzV3JpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3JlZmV0Y2hDaGF0cywgc2V0UmVmZXRjaENoYXRzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbY3VycmVudE9wdGlvbiwgc2V0Q3VycmVudE9wdGlvbl0gPSB1c2VTdGF0ZShvcHRpb25zLmhvbWUpXG4gIGNvbnN0IFtoYXNFcnJvciwgc2V0SGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhbmRsZXJzID0gdXNlTWVtbygoKSA9PiBidWlsZEhhbmRsZXJzKHNldEN1cnJlbnRPcHRpb24sIHNldEhhc0Vycm9yKSwgW10pXG4gIGNvbnN0IFtzaWRlYmFySGFzRXJyb3IsIHNldFNpZGViYXJIYXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgcmVzZXRTZWxlY3RlZENoYXRSZWYgPSB1c2VSZWY8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xheW91dE1vZGUsIHNldExheW91dE1vZGVdID0gdXNlU3RhdGU8TWFpYUNoYXRNb2RhbExheW91dE1vZGU+KCdzaWRlYmFyJylcbiAgY29uc3QgW3NpZGViYXJPcGVuLCBzZXRTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hvbWVMZWF2aW5nLCBzZXRIb21lTGVhdmluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2tpcENoYXRFbnRlclJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgZXhwYW5kZWQgPSBsYXlvdXRNb2RlID09PSAnZnVsbHNjcmVlbidcblxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBhZ2VudCwgdG9nZ2xlV2ViU2VhcmNoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRDbGllbnQsIHNldFByb2plY3QgfSA9XG4gICAgdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3Qge1xuICAgIGFnZW50cyxcbiAgICBsb2FkaW5nLFxuICAgIGxvYWRpbmdNb3JlLFxuICAgIGVycm9yOiBhZ2VudEVycm9yLFxuICAgIGhhbmRsZUdldEFnZW50cyxcbiAgICBsb2FkTW9yZUFnZW50cyxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgICBhZGRBZ2VudCxcbiAgICByZW1vdmVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudEZhdm9yaXRlLFxuICAgIHNlbGVjdEZpcnN0QWdlbnQsXG4gIH0gPSB1c2VHZXRBZ2VudHMoeyBzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGhhbmRsZUdvSG9tZTogaGFuZGxlcnMuaG9tZSB9KVxuXG4gIGNvbnN0IHVzZXJIYXNQZXJtaXNzaW9ucyA9XG4gICAgKHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSB8fFxuICAgICAgdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uZWRpdCB8fFxuICAgICAgdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uZGVsZXRlKSAmJlxuICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgY29uc3Qgb3JjaGVzdHJhdG9yID0gdXNlTWVtbygoKSA9PiBhZ2VudHMuZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09PSAnb3JjaGVzdHJhdG9yJykgPz8gbnVsbCwgW2FnZW50cy5kYXRhXSlcblxuICBjb25zdCBjb21wdXRlZEN1cnJlbnRPcHRpb24gPSBjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQgPyBvcHRpb25zLmNoYXQgOiBvcHRpb25zLmhvbWVcblxuICBjb25zdCBkaWRJbml0QWdlbnRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRpZEluaXRBZ2VudFJlZi5jdXJyZW50IHx8ICFvcmNoZXN0cmF0b3IpIHJldHVyblxuICAgIGRpZEluaXRBZ2VudFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIHNlbGVjdEFnZW50KG9yY2hlc3RyYXRvcilcbiAgfSwgW29yY2hlc3RyYXRvciwgc2VsZWN0QWdlbnRdKVxuXG4gIGNvbnN0IGFnZW50c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFnZW50c0ZldGNoZWRSZWYuY3VycmVudCkge1xuICAgICAgYWdlbnRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaGFuZGxlR2V0QWdlbnRzKClcbiAgICB9XG4gIH0sIFtoYW5kbGVHZXRBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25NZXJnZUNyZWF0ZWRBZ2VudCA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IGFnZW50OiBuZXh0QWdlbnQgfSA9IChldnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbCB8fCB7fVxuICAgICAgaWYgKG5leHRBZ2VudD8uaWQpIGFkZEFnZW50KG5leHRBZ2VudCwgeyBuYXZpZ2F0ZUhvbWU6IGZhbHNlIH0pXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtbWVyZ2UtY3JlYXRlZC1hZ2VudC1pbnRvLWxpc3QnLCBvbk1lcmdlQ3JlYXRlZEFnZW50KVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW1lcmdlLWNyZWF0ZWQtYWdlbnQtaW50by1saXN0Jywgb25NZXJnZUNyZWF0ZWRBZ2VudClcbiAgfSwgW2FkZEFnZW50XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uU3luY0VkaXRlZEFnZW50ID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYWdlbnQ6IG5leHRBZ2VudCB9ID0gKGV2dCBhcyBDdXN0b21FdmVudDx7IGFnZW50OiBBZ2VudCB9PikuZGV0YWlsIHx8IHt9XG4gICAgICBpZiAoIW5leHRBZ2VudD8uaWQpIHJldHVyblxuICAgICAgdXBkYXRlQWdlbnQobmV4dEFnZW50KVxuICAgICAgaWYgKGFnZW50Py5pZCA9PT0gbmV4dEFnZW50LmlkKSBzZWxlY3RBZ2VudChuZXh0QWdlbnQpXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtc3luYy1lZGl0ZWQtYWdlbnQtZnJvbS1jaGF0Jywgb25TeW5jRWRpdGVkQWdlbnQpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtc3luYy1lZGl0ZWQtYWdlbnQtZnJvbS1jaGF0Jywgb25TeW5jRWRpdGVkQWdlbnQpXG4gIH0sIFt1cGRhdGVBZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50Py5pZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcGVuQ2hhdFZpZXcgPSAoKSA9PiB7XG4gICAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5jaGF0KVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1jaGF0LXZpZXcnLCBvcGVuQ2hhdFZpZXcpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1jaGF0LXZpZXcnLCBvcGVuQ2hhdFZpZXcpXG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3Blbk5ld0NoYXRXaXRoQWdlbnQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBuZXh0QWdlbnQgPSAoZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbD8uYWdlbnRcbiAgICAgIGlmICghbmV4dEFnZW50KSByZXR1cm5cbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZWxlY3RBZ2VudChuZXh0QWdlbnQpXG4gICAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5ob21lKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9wZW5OZXdDaGF0V2l0aEFnZW50KVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9wZW5OZXdDaGF0V2l0aEFnZW50KVxuICB9LCBbc2VsZWN0QWdlbnQsIHNldENsaWVudCwgc2V0UHJvamVjdF0pXG5cbiAgY29uc3Qgc3RhcnRDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgbWVzc2FnZT86IHN0cmluZyxcbiAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgICBfbWVudGlvbnM/OiB1bmtub3duLFxuICAgICAgZnVhSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgJycsXG4gICAgICAgIGF0dGFjaG1lbnRzOiBhdHRhY2htZW50cyB8fCBbXSxcbiAgICAgICAgLi4uKGZhcUlkID8geyBmYXFJZCB9IDoge30pLFxuICAgICAgICAuLi4oYWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkIH0gOiB7fSksXG4gICAgICAgIC4uLihmdWFJZCA/IHsgZnVhSWQgfSA6IHt9KSxcbiAgICAgIH0pXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgc2lkZWJhckhhc0Vycm9yXVxuICApXG5cbiAgLy8gU2lkZWJhciB0eXBlcyB0aGlzIHByb3AgYXMgKGNoYXRJZDogc3RyaW5nKSBidXQgcGFzc2VzIHRoZSBmdWxsIGNoYXQgb2JqZWN0IGF0IHJ1bnRpbWVcbiAgY29uc3QgZ29Ub0NoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAoY2hhdEFyZzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBjaGF0ID0gY2hhdEFyZyBhcyB1bmtub3duIGFzIENoYXRMaXN0SXRlbVxuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgY29uc3Qgc2VsZWN0ZWRBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYWdlbnRJdGVtID0+IGFnZW50SXRlbS5pZCA9PT0gY2hhdC5hZ2VudElkKVxuICAgICAgaWYgKHNlbGVjdGVkQWdlbnQpIHNlbGVjdEFnZW50KHNlbGVjdGVkQWdlbnQpXG4gICAgICBza2lwQ2hhdEVudGVyUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgYWdlbnRzLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlUmVhZHkgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBzZW5kTWVzc2FnZTogKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgICApID0+IHZvaWQsXG4gICAgICBzdG9wR2VuZXJhdGlvbjogKCkgPT4gdm9pZCxcbiAgICAgIHN0cmVhbWluZzogYm9vbGVhbixcbiAgICAgIHdyaXRpbmc6IGJvb2xlYW5cbiAgICApID0+IHtcbiAgICAgIHNldFNlbmRNZXNzYWdlRnVuY3Rpb24oKCkgPT4gc2VuZE1lc3NhZ2UpXG4gICAgICBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uKCgpID0+IHN0b3BHZW5lcmF0aW9uKVxuICAgICAgc2V0SXNTdHJlYW1pbmcoc3RyZWFtaW5nKVxuICAgICAgc2V0SXNXcml0aW5nKHdyaXRpbmcpXG4gICAgfSxcbiAgICBbXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiB1bmtub3duLFxuICAgICAgZnVhSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIGlmIChzZW5kTWVzc2FnZUZ1bmN0aW9uICYmIGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgICAgIHNlbmRNZXNzYWdlRnVuY3Rpb24obWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0Q2hhdChtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc3RhcnRDaGF0LCBjb21wdXRlZEN1cnJlbnRPcHRpb24sIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUhvbWVMZWF2ZVN0YXJ0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNraXBDaGF0RW50ZXJSZWYuY3VycmVudCA9IHRydWVcbiAgICBzZXRIb21lTGVhdmluZyh0cnVlKVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVIb21lU2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiB1bmtub3duLFxuICAgICAgZnVhSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIHNldEhvbWVMZWF2aW5nKGZhbHNlKVxuICAgICAgaGFuZGxlU2VuZE1lc3NhZ2UobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkKVxuICAgIH0sXG4gICAgW2hhbmRsZVNlbmRNZXNzYWdlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlR29Ib21lID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEhvbWVMZWF2aW5nKGZhbHNlKVxuICAgIHNraXBDaGF0RW50ZXJSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgaWYgKGFnZW50Py5lbnRpdHkgIT09ICdjbGllbnQnKSBzZXRDbGllbnQ/LihudWxsKVxuICAgIH1cbiAgICBpZiAob3JjaGVzdHJhdG9yKSB7XG4gICAgICBzZWxlY3RBZ2VudChvcmNoZXN0cmF0b3IpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgICghYWdlbnQgfHwgYWdlbnQ/LmlzX2RlbGV0ZWQgfHwgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHwgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8IGFnZW50Py5wcm9qZWN0X2RlbGV0ZWQpICYmXG4gICAgICBhZ2VudHMuZGF0YS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVswXSlcbiAgICB9XG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgfSwgW1xuICAgIGN1cnJlbnRPcHRpb24sXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGFnZW50LFxuICAgIGFnZW50cyxcbiAgICBvcmNoZXN0cmF0b3IsXG4gICAgc2VsZWN0QWdlbnQsXG4gICAgc2V0Q2xpZW50LFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgXSlcblxuICBjb25zdCBoYW5kbGVSZXNldENoYXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SG9tZUxlYXZpbmcoZmFsc2UpXG4gICAgc2tpcENoYXRFbnRlclJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQpIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQoKVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZVdlYlNlYXJjaCwgc2V0Q2hpcHNQcm9qZWN0XSlcblxuICBjb25zdCBmb2N1c0NoYXRJbnB1dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWFpYS1pbnB1dC1yZWZvY3VzJykpXG4gICAgfSwgMTAwKVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVTdGFydE5ld0NoYXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSkge1xuICAgICAgZm9jdXNDaGF0SW5wdXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChvcmNoZXN0cmF0b3IpIHNlbGVjdEFnZW50KG9yY2hlc3RyYXRvcilcbiAgICBoYW5kbGVHb0hvbWUoKVxuICAgIGZvY3VzQ2hhdElucHV0KClcbiAgfSwgW2N1cnJlbnRPcHRpb24sIGZvY3VzQ2hhdElucHV0LCBoYW5kbGVHb0hvbWUsIG9yY2hlc3RyYXRvciwgc2VsZWN0QWdlbnRdKVxuXG4gIGNvbnN0IG5vb3AgPSB1c2VDYWxsYmFjaygoKSA9PiB1bmRlZmluZWQsIFtdKVxuXG4gIC8vIFN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIOKAlCBrZXB0IGZvciBwb3RlbnRpYWwgQW1wbGl0dWRlIHRyYWNraW5nIHBhcml0eVxuICB2b2lkIGFtcGxpdHVkRXZlbnRcblxuICBjb25zdCBjYW5BY2Nlc3NQYWdlID0gdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbilcbiAgY29uc3QgaXNIb21lID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWVcbiAgY29uc3Qgc2hvd0NoYXRGb290ZXIgPSBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCAmJiAhaGFzRXJyb3IgJiYgIWxvYWRpbmcgJiYgY2FuQWNjZXNzUGFnZVxuXG4gIHJldHVybiAoXG4gICAgPFNDUGFnZVdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2NhbkFjY2Vzc1BhZ2UgPyAoXG4gICAgICAgIDxTaWRlYmFyXG4gICAgICAgICAgY29udmVyc2F0aW9uc09ubHlcbiAgICAgICAgICBvcGVuPXtzaWRlYmFyT3Blbn1cbiAgICAgICAgICBvbk9wZW5DaGFuZ2U9e3NldFNpZGViYXJPcGVufVxuICAgICAgICAgIG9uR29Ub0NoYXQ9e2dvVG9DaGF0fVxuICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldFNpZGViYXJIYXNFcnJvcih0cnVlKX1cbiAgICAgICAgICBoYW5kbGVHb1RvSG9tZT17aGFuZGxlR29Ib21lfVxuICAgICAgICAgIGhhbmRsZVN0YXJ0TmV3Q2hhdD17aGFuZGxlU3RhcnROZXdDaGF0fVxuICAgICAgICAgIGhhbmRsZU9wZW5NYXJrZXRwbGFjZT17bm9vcH1cbiAgICAgICAgICBoYW5kbGVPcGVuU2tpbGxzPXtub29wfVxuICAgICAgICAgIHNob3dOZXdDaGF0PXtmYWxzZX1cbiAgICAgICAgICByZWZldGNoQ2hhdHM9e3JlZmV0Y2hDaGF0c31cbiAgICAgICAgICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM9e3NldFJlZmV0Y2hDaGF0c31cbiAgICAgICAgICBoYXNFcnJvcj17c2lkZWJhckhhc0Vycm9yfVxuICAgICAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmPXtyZXNldFNlbGVjdGVkQ2hhdFJlZn1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFNDUGFnZU1haW4+XG4gICAgICAgIDxDaGF0QUlQYWdlSGVhZGVyXG4gICAgICAgICAgb3ZlcmxheT17aXNIb21lICYmICFob21lTGVhdmluZ31cbiAgICAgICAgICBzaG93QmFjaz17IWlzSG9tZX1cbiAgICAgICAgICBhZ2VudHM9e2FnZW50cy5kYXRhfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgbG9hZGluZ01vcmU9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgIGhhc01vcmU9e2FnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICBsb2FkTW9yZUFnZW50cz17bG9hZE1vcmVBZ2VudHN9XG4gICAgICAgICAgc29ydEFnZW50c0xpc3Q9e3NvcnRBZ2VudHNMaXN0fVxuICAgICAgICAgIGhhbmRsZVJlc2V0Q2hhdD17aGFuZGxlUmVzZXRDaGF0fVxuICAgICAgICAgIG9uQWdlbnRVcGRhdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgIC8+XG4gICAgICAgIHtoYXNFcnJvciA/IChcbiAgICAgICAgICA8TUFJQUVycm9yIC8+XG4gICAgICAgICkgOiBjYW5BY2Nlc3NQYWdlID8gKFxuICAgICAgICAgIGlzSG9tZSA/IChcbiAgICAgICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtoYW5kbGVIb21lU2VuZE1lc3NhZ2V9IG9uTGVhdmVTdGFydD17aGFuZGxlSG9tZUxlYXZlU3RhcnR9IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICAgIGN1cnJlbnRPcHRpb249e29wdGlvbnMuY2hhdH1cbiAgICAgICAgICAgICAgaGFuZGxlcnM9e3sgLi4uaGFuZGxlcnMsIGNoYXQ6IHN0YXJ0Q2hhdCwgaG9tZTogaGFuZGxlcnMuaG9tZSwgaGFuZGxlR29Ib21lIH19XG4gICAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgICByZWZzPXt7IHVzZXJJbml0aWFsTWVzc2FnZSwgaW5pdGlhbENoYXRJZCB9fVxuICAgICAgICAgICAgICBvblNlbmRNZXNzYWdlUmVhZHk9e2hhbmRsZVNlbmRNZXNzYWdlUmVhZHl9XG4gICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgZmxvYXRpbmc9e2ZhbHNlfVxuICAgICAgICAgICAgICBhZ2VudHM9e2FnZW50cy5kYXRhfVxuICAgICAgICAgICAgICBsb2FkaW5nQWdlbnRzPXtsb2FkaW5nfVxuICAgICAgICAgICAgICBhZ2VudEVycm9yPXthZ2VudEVycm9yfVxuICAgICAgICAgICAgICBza2lwRW50ZXJBbmltYXRpb249e3NraXBDaGF0RW50ZXJSZWYuY3VycmVudH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAge3Nob3dDaGF0Rm9vdGVyID8gKFxuICAgICAgICAgIDxDaGF0QWlNb2RhbEZvb3RlclxuICAgICAgICAgICAgYWdlbnQ9e2FnZW50fVxuICAgICAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgaGFuZGxlU3RvcEdlbmVyYXRpb249e3N0b3BHZW5lcmF0aW9uRnVuY3Rpb259XG4gICAgICAgICAgICBpc1N0cmVhbWluZz17aXNTdHJlYW1pbmd9XG4gICAgICAgICAgICBpc1dyaXRpbmc9e2lzV3JpdGluZ31cbiAgICAgICAgICAgIGNoYXRJZD17aW5pdGlhbENoYXRJZH1cbiAgICAgICAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICAgICAgICBsYXlvdXRNb2RlPXtsYXlvdXRNb2RlfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ1BhZ2VNYWluPlxuICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgIDxBYm1BZ2VudE1vZGFsXG4gICAgICAgICAgYWRkQWdlbnQ9e2FkZEFnZW50fVxuICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICByZW1vdmVBZ2VudD17cmVtb3ZlQWdlbnR9XG4gICAgICAgICAgdXBkYXRlQWdlbnRGYXZvcml0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxTbmFja2JhciAvPlxuICAgIDwvU0NQYWdlV3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDekUsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGFBQWEsUUFBUSwrQkFBK0I7QUFDN0QsU0FBU0MsYUFBYSxFQUFFQyxPQUFPLFFBQVEsdUNBQXVDO0FBQzlFLFNBQVNDLE9BQU8sUUFBUSx5QkFBeUI7QUFDakQsU0FBU0MsWUFBWSxRQUFRLHlDQUF5QztBQUN0RSxTQUFTQyxhQUFhLEVBQUVDLGdCQUFnQixRQUFRLGlDQUFpQztBQUVqRixTQUFTQyxRQUFRLFFBQVEsc0JBQXNCO0FBQy9DLFNBQVNDLHFCQUFxQixRQUFRLHVDQUF1QztBQUM3RSxTQUFTQyxhQUFhLFFBQVEsZ0NBQWdDO0FBQzlELFNBQVNDLGlCQUFpQixRQUFRLDBEQUEwRDtBQUM1RixTQUFTQyxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFDckQsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBRXBELFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFDaEYsU0FBU0MsaUJBQWlCLEVBQUVDLGlCQUFpQixRQUFRLGdCQUFnQjtBQUdyRSxTQUFTQyxRQUFRLFFBQVEseUJBQXlCO0FBRWxELFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FBU0MsUUFBUSxRQUFRLG1DQUFtQztBQUM1RCxTQUFTQyxtQkFBbUIsUUFBUSw4QkFBOEI7QUFDbEUsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEscUJBQXFCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWUvRCxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJQyxPQUFlLEVBQUs7RUFDbkQsSUFBSUEsT0FBTyxLQUFLLFFBQVEsS0FBS0MsTUFBTSxDQUFDQyx3Q0FBd0MsSUFBSUQsTUFBTSxDQUFDRSwyQkFBMkIsQ0FBQyxFQUFFO0lBQ25ILE9BQU8sSUFBSTtFQUNiO0VBQ0EsSUFBSSxDQUFDSCxPQUFPLEtBQUssU0FBUyxJQUFJQSxPQUFPLEtBQUssUUFBUSxLQUFLQyxNQUFNLENBQUNFLDJCQUEyQixFQUFFO0lBQ3pGLE9BQU8sSUFBSTtFQUNiO0VBQ0EsT0FBTyxLQUFLO0FBQ2QsQ0FBQztBQUVELE9BQU8sSUFBTUMsVUFBVSxHQUFHZCxVQUFVLENBQ2xDLFVBQUFlLElBQUEsRUFPdUI7RUFBQSxJQUFBQyxXQUFBLEdBQUFELElBQUEsQ0FOckJFLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUc7TUFBRUUsU0FBUyxFQUFFLElBQUk7TUFBRUMsUUFBUSxFQUFFO0lBQUssQ0FBQyxHQUFBSCxXQUFBO0lBQUFJLFlBQUEsR0FBQUwsSUFBQSxDQUM1Q00sT0FBTztJQUFFQyxjQUFjLEdBQUFGLFlBQUEsY0FBRyxJQUFJLEdBQUFBLFlBQUE7SUFBQUcsV0FBQSxHQUFBUixJQUFBLENBQzlCUyxNQUFNO0lBQUVDLGFBQWEsR0FBQUYsV0FBQSxjQUFHLElBQUksR0FBQUEsV0FBQTtJQUFBRyxZQUFBLEdBQUFYLElBQUEsQ0FDNUJMLE9BQU87SUFBUEEsT0FBTyxHQUFBZ0IsWUFBQSxjQUFHLFFBQVEsR0FBQUEsWUFBQTtJQUFBQyxtQkFBQSxHQUFBWixJQUFBLENBQ2xCYSxjQUFjO0lBQWRBLGNBQWMsR0FBQUQsbUJBQUEsY0FBRyxLQUFLLEdBQUFBLG1CQUFBO0lBQ3RCRSxTQUFTLEdBQUFkLElBQUEsQ0FBVGMsU0FBUztFQUVUbEMsbUJBQW1CLENBQUMsQ0FBQztFQUVyQnRCLFNBQVMsQ0FBQyxZQUFNO0lBQ2Q2QixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7SUFDekIsT0FBTyxZQUFNO01BQ1hBLG1CQUFtQixDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU00QixtQkFBbUIsR0FBR3BCLE9BQU8sS0FBSyxTQUFTLEdBQUdZLGNBQWMsR0FBRyxJQUFJO0VBQ3pFLElBQUFTLFNBQUEsR0FBOEJ2RCxRQUFRLENBQWlCc0QsbUJBQW1CLENBQUM7SUFBQUUsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBcEVWLE9BQU8sR0FBQVcsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7RUFFMUIzRCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUlxQyxPQUFPLEtBQUssU0FBUyxJQUFJWSxjQUFjLElBQUksSUFBSSxFQUFFO01BQ25EWSxVQUFVLENBQUNaLGNBQWMsQ0FBQztJQUM1QjtFQUNGLENBQUMsRUFBRSxDQUFDWixPQUFPLEVBQUVZLGNBQWMsQ0FBQyxDQUFDO0VBRTdCLElBQUFhLHFCQUFBLEdBQThDdkMsdUJBQXVCLENBQUM7TUFDcEVjLE9BQU8sRUFBUEEsT0FBTztNQUNQTyxNQUFNLEVBQU5BLE1BQU07TUFDTkksT0FBTyxFQUFQQSxPQUFPO01BQ1BhLFVBQVUsRUFBVkEsVUFBVTtNQUNWVixNQUFNLEVBQUVkLE9BQU8sS0FBSyxRQUFRLEdBQUllLGFBQWEsYUFBYkEsYUFBYSxjQUFiQSxhQUFhLEdBQUksSUFBSSxHQUFJVyxTQUFTO01BQ2xFUixjQUFjLEVBQWRBO0lBQ0YsQ0FBQyxDQUFDO0lBUE1TLE9BQU8sR0FBQUYscUJBQUEsQ0FBUEUsT0FBTztJQUFFQyx3QkFBd0IsR0FBQUgscUJBQUEsQ0FBeEJHLHdCQUF3QjtFQVN6QyxJQUFNQyxhQUFhLEdBQUdqRSxPQUFPLENBQzNCO0lBQUEsT0FBQWtFLGFBQUEsQ0FBQUEsYUFBQSxLQUFZSCxPQUFPO01BQUUzQixPQUFPLEVBQUVBO0lBQTBDO0VBQUEsQ0FBRyxFQUMzRSxDQUFDMkIsT0FBTyxFQUFFM0IsT0FBTyxDQUNuQixDQUFDO0VBRURyQyxTQUFTLENBQUMsWUFBTTtJQUNkd0IsaUJBQWlCLENBQUMsQ0FBQztJQUNuQixPQUFPLFlBQU07TUFDWEMsaUJBQWlCLENBQUMsQ0FBQztNQUNuQndDLHdCQUF3QixDQUFDLENBQUM7SUFDNUIsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDQSx3QkFBd0IsQ0FBQyxDQUFDO0VBRTlCLG9CQUNFaEMsSUFBQSxDQUFDcEIsYUFBYSxDQUFDdUQsUUFBUTtJQUFDQyxLQUFLLEVBQUVILGFBQWM7SUFBQUksUUFBQSxlQUMzQ3JDLElBQUEsQ0FBQ3NDLGlCQUFpQjtNQUFDbEMsT0FBTyxFQUFFQSxPQUF1QjtNQUFDbUIsU0FBUyxFQUFFQTtJQUFVLENBQUU7RUFBQyxDQUN0RCxDQUFDO0FBRTdCLENBQUMsRUFDRDVCLFFBQVEsQ0FBQzRDLE9BQ1gsQ0FBQztBQUVELElBQU1ELGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUFFLEtBQUEsRUFBNkU7RUFBQSxJQUFBQyxpQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyxrQkFBQTtFQUFBLElBQXZFdkMsT0FBTyxHQUFBb0MsS0FBQSxDQUFQcEMsT0FBTztJQUFFbUIsU0FBUyxHQUFBaUIsS0FBQSxDQUFUakIsU0FBUztFQUM3QyxJQUFNcUIsSUFBSSxHQUFHdkUsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBQXdFLGVBQUEsR0FBaUJ6RSxjQUFjLENBQUMsQ0FBQ2dCLFFBQVEsQ0FBQzBELFFBQVEsQ0FBQyxDQUFDO0lBQTVDQyxJQUFJLEdBQUFGLGVBQUEsQ0FBSkUsSUFBSTtFQUNaLElBQU1DLGFBQWEsR0FBR3ZELFFBQVEsQ0FBQyxDQUFDO0VBRWhDLElBQU13RCxJQUFJLEdBQUdGLElBQUksQ0FBQ0csUUFBUSxLQUFLLElBQUksR0FBRyxPQUFPLEdBQUdILElBQUksQ0FBQ0csUUFBUTtFQUM3RC9FLE1BQU0sQ0FBQ2dGLE1BQU0sQ0FBQ0YsSUFBSSxDQUFDO0VBRW5CLElBQUFHLFVBQUEsR0FBb0RsRixRQUFRLENBTXpEO01BQUVtRixPQUFPLEVBQUUsRUFBRTtNQUFFQyxXQUFXLEVBQUU7SUFBRyxDQUFDLENBQUM7SUFBQUMsVUFBQSxHQUFBNUIsY0FBQSxDQUFBeUIsVUFBQTtJQU43Qkksa0JBQWtCLEdBQUFELFVBQUE7SUFBRUUscUJBQXFCLEdBQUFGLFVBQUE7RUFPaEQsSUFBQUcsVUFBQSxHQUEwQ3hGLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUF5RixVQUFBLEdBQUFoQyxjQUFBLENBQUErQixVQUFBO0lBQWhFRSxhQUFhLEdBQUFELFVBQUE7SUFBRUUsZ0JBQWdCLEdBQUFGLFVBQUE7RUFDdEMsSUFBQUcsVUFBQSxHQUFvQzVGLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQTZGLFVBQUEsR0FBQXBDLGNBQUEsQ0FBQW1DLFVBQUE7SUFBeENFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQUcsVUFBQSxHQUFzRGhHLFFBQVEsQ0FFNUQsSUFBSSxDQUFDO0lBQUFpRyxVQUFBLEdBQUF4QyxjQUFBLENBQUF1QyxVQUFBO0lBRkFFLG1CQUFtQixHQUFBRCxVQUFBO0lBQUVFLHNCQUFzQixHQUFBRixVQUFBO0VBR2xELElBQUFHLFVBQUEsR0FBNERwRyxRQUFRLENBQXNCLElBQUksQ0FBQztJQUFBcUcsV0FBQSxHQUFBNUMsY0FBQSxDQUFBMkMsVUFBQTtJQUF4RkUsc0JBQXNCLEdBQUFELFdBQUE7SUFBRUUseUJBQXlCLEdBQUFGLFdBQUE7RUFDeEQsSUFBQUcsV0FBQSxHQUFzQ3hHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXlHLFdBQUEsR0FBQWhELGNBQUEsQ0FBQStDLFdBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBQUcsV0FBQSxHQUFrQzVHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZHLFdBQUEsR0FBQXBELGNBQUEsQ0FBQW1ELFdBQUE7SUFBMUNFLFNBQVMsR0FBQUQsV0FBQTtJQUFFRSxZQUFZLEdBQUFGLFdBQUE7RUFDOUIsSUFBQUcsV0FBQSxHQUF3Q2hILFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQWlILFdBQUEsR0FBQXhELGNBQUEsQ0FBQXVELFdBQUE7SUFBaERFLFlBQVksR0FBQUQsV0FBQTtJQUFFRSxlQUFlLEdBQUFGLFdBQUE7RUFDcEMsSUFBQUcsV0FBQSxHQUEwQ3BILFFBQVEsQ0FBQ08sT0FBTyxDQUFDOEcsSUFBSSxDQUFDO0lBQUFDLFdBQUEsR0FBQTdELGNBQUEsQ0FBQTJELFdBQUE7SUFBekRHLGFBQWEsR0FBQUQsV0FBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsV0FBQTtFQUN0QyxJQUFBRyxXQUFBLEdBQWdDekgsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBMEgsV0FBQSxHQUFBakUsY0FBQSxDQUFBZ0UsV0FBQTtJQUF4Q0UsUUFBUSxHQUFBRCxXQUFBO0lBQUVFLFdBQVcsR0FBQUYsV0FBQTtFQUM1QixJQUFNRyxRQUFRLEdBQUcvSCxPQUFPLENBQUM7SUFBQSxPQUFNUSxhQUFhLENBQUNrSCxnQkFBZ0IsRUFBRUksV0FBVyxDQUFDO0VBQUEsR0FBRSxFQUFFLENBQUM7RUFDaEYsSUFBQUUsV0FBQSxHQUE4QzlILFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQStILFdBQUEsR0FBQXRFLGNBQUEsQ0FBQXFFLFdBQUE7SUFBdERFLGVBQWUsR0FBQUQsV0FBQTtJQUFFRSxrQkFBa0IsR0FBQUYsV0FBQTtFQUMxQyxJQUFNRyxvQkFBb0IsR0FBR25JLE1BQU0sQ0FBc0IsSUFBSSxDQUFDO0VBQzlELElBQUFvSSxXQUFBLEdBQW9DbkksUUFBUSxDQUEwQixTQUFTLENBQUM7SUFBQW9JLFdBQUEsR0FBQTNFLGNBQUEsQ0FBQTBFLFdBQUE7SUFBekVFLFVBQVUsR0FBQUQsV0FBQTtJQUFFRSxhQUFhLEdBQUFGLFdBQUE7RUFDaEMsSUFBQUcsV0FBQSxHQUFzQ3ZJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXdJLFdBQUEsR0FBQS9FLGNBQUEsQ0FBQThFLFdBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBQUcsV0FBQSxHQUFzQzNJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTRJLFdBQUEsR0FBQW5GLGNBQUEsQ0FBQWtGLFdBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBTUcsZ0JBQWdCLEdBQUdoSixNQUFNLENBQUMsS0FBSyxDQUFDO0VBQ3RDLElBQU1pSixRQUFRLEdBQUdYLFVBQVUsS0FBSyxZQUFZO0VBRTVDLElBQUFZLGlCQUFBLEdBQ0V0SSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRFp1SSxXQUFXLEdBQUFELGlCQUFBLENBQVhDLFdBQVc7SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0lBQUVDLGVBQWUsR0FBQUgsaUJBQUEsQ0FBZkcsZUFBZTtJQUFFQyxpQkFBaUIsR0FBQUosaUJBQUEsQ0FBakJJLGlCQUFpQjtJQUFFQyxlQUFlLEdBQUFMLGlCQUFBLENBQWZLLGVBQWU7SUFBRUMsU0FBUyxHQUFBTixpQkFBQSxDQUFUTSxTQUFTO0lBQUU3RixVQUFVLEdBQUF1RixpQkFBQSxDQUFWdkYsVUFBVTtFQUd0RyxJQUFBOEYsYUFBQSxHQWFJL0ksWUFBWSxDQUFDO01BQUV5SSxXQUFXLEVBQVhBLFdBQVc7TUFBRWhILE9BQU8sRUFBUEEsT0FBTztNQUFFaUgsS0FBSyxFQUFMQSxLQUFLO01BQUVNLFlBQVksRUFBRTVCLFFBQVEsQ0FBQ1I7SUFBSyxDQUFDLENBQUM7SUFaNUVxQyxNQUFNLEdBQUFGLGFBQUEsQ0FBTkUsTUFBTTtJQUNOQyxPQUFPLEdBQUFILGFBQUEsQ0FBUEcsT0FBTztJQUNQQyxXQUFXLEdBQUFKLGFBQUEsQ0FBWEksV0FBVztJQUNKQyxVQUFVLEdBQUFMLGFBQUEsQ0FBakJNLEtBQUs7SUFDTEMsZUFBZSxHQUFBUCxhQUFBLENBQWZPLGVBQWU7SUFDZkMsY0FBYyxHQUFBUixhQUFBLENBQWRRLGNBQWM7SUFDZEMsY0FBYyxHQUFBVCxhQUFBLENBQWRTLGNBQWM7SUFDZEMsUUFBUSxHQUFBVixhQUFBLENBQVJVLFFBQVE7SUFDUkMsV0FBVyxHQUFBWCxhQUFBLENBQVhXLFdBQVc7SUFDWEMsV0FBVyxHQUFBWixhQUFBLENBQVhZLFdBQVc7SUFDWEMsbUJBQW1CLEdBQUFiLGFBQUEsQ0FBbkJhLG1CQUFtQjtJQUNuQkMsZ0JBQWdCLEdBQUFkLGFBQUEsQ0FBaEJjLGdCQUFnQjtFQUdsQixJQUFNQyxrQkFBa0IsR0FDdEIsQ0FBQyxDQUFBN0YsSUFBSSxhQUFKQSxJQUFJLGdCQUFBSCxpQkFBQSxHQUFKRyxJQUFJLENBQUU4RixXQUFXLGNBQUFqRyxpQkFBQSxnQkFBQUEsaUJBQUEsR0FBakJBLGlCQUFBLENBQW1Ca0csU0FBUyxjQUFBbEcsaUJBQUEsdUJBQTVCQSxpQkFBQSxDQUE4Qm1HLE1BQU0sTUFDbkNoRyxJQUFJLGFBQUpBLElBQUksZ0JBQUFGLGtCQUFBLEdBQUpFLElBQUksQ0FBRThGLFdBQVcsY0FBQWhHLGtCQUFBLGdCQUFBQSxrQkFBQSxHQUFqQkEsa0JBQUEsQ0FBbUJpRyxTQUFTLGNBQUFqRyxrQkFBQSx1QkFBNUJBLGtCQUFBLENBQThCbUcsSUFBSSxNQUNsQ2pHLElBQUksYUFBSkEsSUFBSSxnQkFBQUQsa0JBQUEsR0FBSkMsSUFBSSxDQUFFOEYsV0FBVyxjQUFBL0Ysa0JBQUEsZ0JBQUFBLGtCQUFBLEdBQWpCQSxrQkFBQSxDQUFtQmdHLFNBQVMsY0FBQWhHLGtCQUFBLHVCQUE1QkEsa0JBQUEsVUFBb0MsTUFDdEN0QyxNQUFNLENBQUNDLHdDQUF3QztFQUVqRCxJQUFNd0ksWUFBWSxHQUFHOUssT0FBTyxDQUFDO0lBQUEsSUFBQStLLGlCQUFBO0lBQUEsUUFBQUEsaUJBQUEsR0FBTW5CLE1BQU0sQ0FBQ29CLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQUFDLElBQUk7TUFBQSxPQUFJQSxJQUFJLENBQUNDLElBQUksS0FBSyxjQUFjO0lBQUEsRUFBQyxjQUFBSixpQkFBQSxjQUFBQSxpQkFBQSxHQUFJLElBQUk7RUFBQSxHQUFFLENBQUNuQixNQUFNLENBQUNvQixJQUFJLENBQUMsQ0FBQztFQUVqSCxJQUFNSSxxQkFBcUIsR0FBRzNELGFBQWEsS0FBS2hILE9BQU8sQ0FBQzRLLElBQUksR0FBRzVLLE9BQU8sQ0FBQzRLLElBQUksR0FBRzVLLE9BQU8sQ0FBQzhHLElBQUk7RUFFMUYsSUFBTStELGVBQWUsR0FBR3JMLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDckNGLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSXVMLGVBQWUsQ0FBQ0MsT0FBTyxJQUFJLENBQUNULFlBQVksRUFBRTtJQUM5Q1EsZUFBZSxDQUFDQyxPQUFPLEdBQUcsSUFBSTtJQUM5Qm5DLFdBQVcsQ0FBQzBCLFlBQVksQ0FBQztFQUMzQixDQUFDLEVBQUUsQ0FBQ0EsWUFBWSxFQUFFMUIsV0FBVyxDQUFDLENBQUM7RUFFL0IsSUFBTW9DLGdCQUFnQixHQUFHdkwsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUV0Q0YsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUN5TCxnQkFBZ0IsQ0FBQ0QsT0FBTyxFQUFFO01BQzdCQyxnQkFBZ0IsQ0FBQ0QsT0FBTyxHQUFHLElBQUk7TUFDL0J0QixlQUFlLENBQUMsQ0FBQztJQUNuQjtFQUNGLENBQUMsRUFBRSxDQUFDQSxlQUFlLENBQUMsQ0FBQztFQUVyQmxLLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTTBMLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLEdBQVUsRUFBSztNQUMxQyxJQUFBQyxLQUFBLEdBQThCRCxHQUFHLENBQW1DRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQWpFQyxTQUFTLEdBQUFGLEtBQUEsQ0FBaEJ0QyxLQUFLO01BQ2IsSUFBSXdDLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVDLEVBQUUsRUFBRTFCLFFBQVEsQ0FBQ3lCLFNBQVMsRUFBRTtRQUFFRSxZQUFZLEVBQUU7TUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNEQyxRQUFRLENBQUNDLGdCQUFnQixDQUFDLG9DQUFvQyxFQUFFUixtQkFBbUIsQ0FBQztJQUNwRixPQUFPO01BQUEsT0FBTU8sUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxvQ0FBb0MsRUFBRVQsbUJBQW1CLENBQUM7SUFBQTtFQUN0RyxDQUFDLEVBQUUsQ0FBQ3JCLFFBQVEsQ0FBQyxDQUFDO0VBRWRySyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU1vTSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJVCxHQUFVLEVBQUs7TUFDeEMsSUFBQVUsS0FBQSxHQUE4QlYsR0FBRyxDQUFtQ0UsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUFqRUMsU0FBUyxHQUFBTyxLQUFBLENBQWhCL0MsS0FBSztNQUNiLElBQUksRUFBQ3dDLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVDLEVBQUUsR0FBRTtNQUNwQnhCLFdBQVcsQ0FBQ3VCLFNBQVMsQ0FBQztNQUN0QixJQUFJLENBQUF4QyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXlDLEVBQUUsTUFBS0QsU0FBUyxDQUFDQyxFQUFFLEVBQUUxQyxXQUFXLENBQUN5QyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUNERyxRQUFRLENBQUNDLGdCQUFnQixDQUFDLGtDQUFrQyxFQUFFRSxpQkFBaUIsQ0FBQztJQUNoRixPQUFPO01BQUEsT0FBTUgsUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxrQ0FBa0MsRUFBRUMsaUJBQWlCLENBQUM7SUFBQTtFQUNsRyxDQUFDLEVBQUUsQ0FBQzdCLFdBQVcsRUFBRWxCLFdBQVcsRUFBRUMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV5QyxFQUFFLENBQUMsQ0FBQztFQUV6Qy9MLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTXNNLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7TUFDekJ2RSxXQUFXLENBQUMsS0FBSyxDQUFDO01BQ2xCakMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO01BQ3RCSSxhQUFhLENBQUMsVUFBQXFHLElBQUk7UUFBQSxPQUFJQSxJQUFJLEdBQUcsQ0FBQztNQUFBLEVBQUM7TUFDL0I3RyxxQkFBcUIsQ0FBQztRQUFFSixPQUFPLEVBQUUsRUFBRTtRQUFFQyxXQUFXLEVBQUU7TUFBRyxDQUFDLENBQUM7TUFDdkRvQyxnQkFBZ0IsQ0FBQ2pILE9BQU8sQ0FBQzRLLElBQUksQ0FBQztNQUM5QlcsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNEUixRQUFRLENBQUNDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFSSxZQUFZLENBQUM7SUFDOUQsT0FBTztNQUFBLE9BQU1MLFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUMscUJBQXFCLEVBQUVHLFlBQVksQ0FBQztJQUFBO0VBQ2hGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTnRNLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTTBNLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLEtBQVksRUFBSztNQUFBLElBQUFDLE9BQUE7TUFDN0MsSUFBTWQsU0FBUyxJQUFBYyxPQUFBLEdBQUlELEtBQUssQ0FBbUNkLE1BQU0sY0FBQWUsT0FBQSx1QkFBL0NBLE9BQUEsQ0FBaUR0RCxLQUFLO01BQ3hFLElBQUksQ0FBQ3dDLFNBQVMsRUFBRTtNQUNoQmpJLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDaEI2RixTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFHLElBQUksQ0FBQztNQUNqQkwsV0FBVyxDQUFDeUMsU0FBUyxDQUFDO01BQ3RCL0QsV0FBVyxDQUFDLEtBQUssQ0FBQztNQUNsQkosZ0JBQWdCLENBQUNqSCxPQUFPLENBQUM4RyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUNEeUUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQywrQkFBK0IsRUFBRVEsb0JBQW9CLENBQUM7SUFDaEYsT0FBTztNQUFBLE9BQU1ULFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUMsK0JBQStCLEVBQUVPLG9CQUFvQixDQUFDO0lBQUE7RUFDbEcsQ0FBQyxFQUFFLENBQUNyRCxXQUFXLEVBQUVLLFNBQVMsRUFBRTdGLFVBQVUsQ0FBQyxDQUFDO0VBRXhDLElBQU1nSixTQUFTLEdBQUc5TSxXQUFXLENBQzNCLFVBQ0V1RixPQUFnQixFQUNoQkMsV0FBOEIsRUFDOUJ1SCxLQUFjLEVBQ2RDLGlCQUEwQixFQUMxQkMsU0FBbUIsRUFDbkJDLEtBQWMsRUFDWDtJQUNILElBQUk5RSxlQUFlLEVBQUVDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUM5Q3RDLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUN0QkksYUFBYSxDQUFDLFVBQUFxRyxJQUFJO01BQUEsT0FBSUEsSUFBSSxHQUFHLENBQUM7SUFBQSxFQUFDO0lBQy9CN0cscUJBQXFCLENBQUF2QixhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQTtNQUNuQm1CLE9BQU8sRUFBRUEsT0FBTyxJQUFJLEVBQUU7TUFDdEJDLFdBQVcsRUFBRUEsV0FBVyxJQUFJO0lBQUUsR0FDMUJ1SCxLQUFLLEdBQUc7TUFBRUEsS0FBSyxFQUFMQTtJQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDdEJDLGlCQUFpQixHQUFHO01BQUVBLGlCQUFpQixFQUFqQkE7SUFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUM5Q0UsS0FBSyxHQUFHO01BQUVBLEtBQUssRUFBTEE7SUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzNCLENBQUM7SUFDRmpGLFFBQVEsQ0FBQ3NELElBQUksQ0FBQyxDQUFDO0VBQ2pCLENBQUMsRUFDRCxDQUFDdEQsUUFBUSxFQUFFRyxlQUFlLENBQzVCLENBQUM7O0VBRUQ7RUFDQSxJQUFNK0UsUUFBUSxHQUFHbk4sV0FBVyxDQUMxQixVQUFDb04sT0FBZSxFQUFLO0lBQ25CLElBQU03QixJQUFJLEdBQUc2QixPQUFrQztJQUMvQ3pILHFCQUFxQixDQUFDO01BQUVKLE9BQU8sRUFBRSxFQUFFO01BQUVDLFdBQVcsRUFBRTtJQUFHLENBQUMsQ0FBQztJQUN2RE8sZ0JBQWdCLENBQUN3RixJQUFJLENBQUM4QixpQkFBaUIsQ0FBQztJQUN4QyxJQUFNQyxhQUFhLEdBQUd4RCxNQUFNLENBQUNvQixJQUFJLENBQUNDLElBQUksQ0FBQyxVQUFBb0MsU0FBUztNQUFBLE9BQUlBLFNBQVMsQ0FBQ3ZCLEVBQUUsS0FBS1QsSUFBSSxDQUFDaUMsT0FBTztJQUFBLEVBQUM7SUFDbEYsSUFBSUYsYUFBYSxFQUFFaEUsV0FBVyxDQUFDZ0UsYUFBYSxDQUFDO0lBQzdDbkUsZ0JBQWdCLENBQUNzQyxPQUFPLEdBQUcsS0FBSztJQUNoQ1MsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0R6RSxRQUFRLENBQUNzRCxJQUFJLENBQUMsQ0FBQztFQUNqQixDQUFDLEVBQ0QsQ0FBQ3RELFFBQVEsRUFBRTZCLE1BQU0sRUFBRVIsV0FBVyxDQUNoQyxDQUFDO0VBRUQsSUFBTW1FLHNCQUFzQixHQUFHek4sV0FBVyxDQUN4QyxVQUNFME4sV0FLUyxFQUNUQyxjQUEwQixFQUMxQkMsU0FBa0IsRUFDbEJDLE9BQWdCLEVBQ2I7SUFDSHRILHNCQUFzQixDQUFDO01BQUEsT0FBTW1ILFdBQVc7SUFBQSxFQUFDO0lBQ3pDL0cseUJBQXlCLENBQUM7TUFBQSxPQUFNZ0gsY0FBYztJQUFBLEVBQUM7SUFDL0M1RyxjQUFjLENBQUM2RyxTQUFTLENBQUM7SUFDekJ6RyxZQUFZLENBQUMwRyxPQUFPLENBQUM7RUFDdkIsQ0FBQyxFQUNELEVBQ0YsQ0FBQztFQUVELElBQU1DLGlCQUFpQixHQUFHOU4sV0FBVyxDQUNuQyxVQUNFdUYsT0FBZSxFQUNmQyxXQUE4QixFQUM5QnVILEtBQWMsRUFDZEMsaUJBQTBCLEVBQzFCZSxRQUFrQixFQUNsQmIsS0FBYyxFQUNYO0lBQ0gsSUFBSTlFLGVBQWUsRUFBRUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO0lBQzlDLElBQUkvQixtQkFBbUIsSUFBSWdGLHFCQUFxQixLQUFLM0ssT0FBTyxDQUFDNEssSUFBSSxFQUFFO01BQ2pFakYsbUJBQW1CLENBQUNmLE9BQU8sRUFBRUMsV0FBVyxFQUFFdUgsS0FBSyxFQUFFQyxpQkFBaUIsQ0FBQztJQUNyRSxDQUFDLE1BQU07TUFDTEYsU0FBUyxDQUFDdkgsT0FBTyxFQUFFQyxXQUFXLEVBQUV1SCxLQUFLLEVBQUVDLGlCQUFpQixFQUFFZSxRQUFRLEVBQUViLEtBQUssQ0FBQztJQUM1RTtFQUNGLENBQUMsRUFDRCxDQUFDNUcsbUJBQW1CLEVBQUV3RyxTQUFTLEVBQUV4QixxQkFBcUIsRUFBRWxELGVBQWUsQ0FDekUsQ0FBQztFQUVELElBQU00RixvQkFBb0IsR0FBR2hPLFdBQVcsQ0FBQyxZQUFNO0lBQzdDbUosZ0JBQWdCLENBQUNzQyxPQUFPLEdBQUcsSUFBSTtJQUMvQnZDLGNBQWMsQ0FBQyxJQUFJLENBQUM7RUFDdEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU0rRSxxQkFBcUIsR0FBR2pPLFdBQVcsQ0FDdkMsVUFDRXVGLE9BQWUsRUFDZkMsV0FBOEIsRUFDOUJ1SCxLQUFjLEVBQ2RDLGlCQUEwQixFQUMxQmUsUUFBa0IsRUFDbEJiLEtBQWMsRUFDWDtJQUNIaEUsY0FBYyxDQUFDLEtBQUssQ0FBQztJQUNyQjRFLGlCQUFpQixDQUFDdkksT0FBTyxFQUFFQyxXQUFXLEVBQUV1SCxLQUFLLEVBQUVDLGlCQUFpQixFQUFFZSxRQUFRLEVBQUViLEtBQUssQ0FBQztFQUNwRixDQUFDLEVBQ0QsQ0FBQ1ksaUJBQWlCLENBQ3BCLENBQUM7RUFFRCxJQUFNakUsWUFBWSxHQUFHN0osV0FBVyxDQUFDLFlBQU07SUFDckNrSixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JCQyxnQkFBZ0IsQ0FBQ3NDLE9BQU8sR0FBRyxLQUFLO0lBQ2hDLElBQUk5RCxhQUFhLEtBQUtoSCxPQUFPLENBQUM0SyxJQUFJLEVBQUU7TUFDbEN4RixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7TUFDdEJJLGFBQWEsQ0FBQyxVQUFBcUcsSUFBSTtRQUFBLE9BQUlBLElBQUksR0FBRyxDQUFDO01BQUEsRUFBQztNQUMvQixJQUFJLENBQUFqRCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTFHLE1BQU0sTUFBSyxRQUFRLEVBQUU4RyxTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFHLElBQUksQ0FBQztJQUNuRDtJQUNBLElBQUlxQixZQUFZLEVBQUU7TUFDaEIxQixXQUFXLENBQUMwQixZQUFZLENBQUM7SUFDM0IsQ0FBQyxNQUFNLElBQ0wsQ0FBQyxDQUFDekIsS0FBSyxJQUFJQSxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFMkUsVUFBVSxJQUFJM0UsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRTRFLG1CQUFtQixJQUFJNUUsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRTZFLGNBQWMsSUFBSTdFLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUU4RSxlQUFlLEtBQzdHdkUsTUFBTSxDQUFDb0IsSUFBSSxDQUFDb0QsTUFBTSxHQUFHLENBQUMsRUFDdEI7TUFDQWhGLFdBQVcsQ0FBQ1EsTUFBTSxDQUFDb0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCO0lBQ0F0RCxnQkFBZ0IsQ0FBQ2pILE9BQU8sQ0FBQzhHLElBQUksQ0FBQztJQUM5QmlDLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDckIxQixXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCLElBQUl5QixpQkFBaUIsRUFBRUQsZUFBZSxDQUFDLENBQUM7SUFDeEMsSUFBSWxCLG9CQUFvQixDQUFDbUQsT0FBTyxFQUFFbkQsb0JBQW9CLENBQUNtRCxPQUFPLENBQUMsQ0FBQztFQUNsRSxDQUFDLEVBQUUsQ0FDRDlELGFBQWEsRUFDYjhCLGlCQUFpQixFQUNqQkQsZUFBZSxFQUNmRCxLQUFLLEVBQ0xPLE1BQU0sRUFDTmtCLFlBQVksRUFDWjFCLFdBQVcsRUFDWEssU0FBUyxFQUNURCxlQUFlLENBQ2hCLENBQUM7RUFFRixJQUFNNkUsZUFBZSxHQUFHdk8sV0FBVyxDQUFDLFlBQU07SUFDeENrSixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JCQyxnQkFBZ0IsQ0FBQ3NDLE9BQU8sR0FBRyxLQUFLO0lBQ2hDMUYsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ3RCSSxhQUFhLENBQUMsVUFBQXFHLElBQUk7TUFBQSxPQUFJQSxJQUFJLEdBQUcsQ0FBQztJQUFBLEVBQUM7SUFDL0I3RyxxQkFBcUIsQ0FBQztNQUFFSixPQUFPLEVBQUUsRUFBRTtNQUFFQyxXQUFXLEVBQUU7SUFBRyxDQUFDLENBQUM7SUFDdkRvQyxnQkFBZ0IsQ0FBQ2pILE9BQU8sQ0FBQzhHLElBQUksQ0FBQztJQUM5QmlDLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDckIxQixXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xCLElBQUl5QixpQkFBaUIsRUFBRUQsZUFBZSxDQUFDLENBQUM7SUFDeEMsSUFBSWxCLG9CQUFvQixDQUFDbUQsT0FBTyxFQUFFbkQsb0JBQW9CLENBQUNtRCxPQUFPLENBQUMsQ0FBQztJQUNoRVMsUUFBUSxDQUFDTyxhQUFhLENBQUMsSUFBSUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUM7RUFDakUsQ0FBQyxFQUFFLENBQUNqRCxpQkFBaUIsRUFBRUQsZUFBZSxFQUFFRSxlQUFlLENBQUMsQ0FBQztFQUV6RCxJQUFNOEUsY0FBYyxHQUFHeE8sV0FBVyxDQUFDLFlBQU07SUFDdkN1QyxNQUFNLENBQUNrTSxVQUFVLENBQUMsWUFBTTtNQUN0QnZDLFFBQVEsQ0FBQ08sYUFBYSxDQUFDLElBQUlDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9ELENBQUMsRUFBRSxHQUFHLENBQUM7RUFDVCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTWdDLGtCQUFrQixHQUFHMU8sV0FBVyxDQUFDLFlBQU07SUFDM0MsSUFBSTJILGFBQWEsS0FBS2hILE9BQU8sQ0FBQzhHLElBQUksRUFBRTtNQUNsQytHLGNBQWMsQ0FBQyxDQUFDO01BQ2hCO0lBQ0Y7SUFDQSxJQUFJeEQsWUFBWSxFQUFFMUIsV0FBVyxDQUFDMEIsWUFBWSxDQUFDO0lBQzNDbkIsWUFBWSxDQUFDLENBQUM7SUFDZDJFLGNBQWMsQ0FBQyxDQUFDO0VBQ2xCLENBQUMsRUFBRSxDQUFDN0csYUFBYSxFQUFFNkcsY0FBYyxFQUFFM0UsWUFBWSxFQUFFbUIsWUFBWSxFQUFFMUIsV0FBVyxDQUFDLENBQUM7RUFFNUUsSUFBTXFGLElBQUksR0FBRzNPLFdBQVcsQ0FBQztJQUFBLE9BQU1nRSxTQUFTO0VBQUEsR0FBRSxFQUFFLENBQUM7O0VBRTdDO0VBQ0EsS0FBS2tCLGFBQWE7RUFFbEIsSUFBTTBKLGFBQWEsR0FBR3ZNLHVCQUF1QixDQUFDQyxPQUFPLENBQUM7RUFDdEQsSUFBTXVNLE1BQU0sR0FBR3ZELHFCQUFxQixLQUFLM0ssT0FBTyxDQUFDOEcsSUFBSTtFQUNyRCxJQUFNcUgsY0FBYyxHQUFHeEQscUJBQXFCLEtBQUszSyxPQUFPLENBQUM0SyxJQUFJLElBQUksQ0FBQ3hELFFBQVEsSUFBSSxDQUFDZ0MsT0FBTyxJQUFJNkUsYUFBYTtFQUV2RyxvQkFDRXhNLEtBQUEsQ0FBQ0osYUFBYTtJQUFDeUIsU0FBUyxFQUFFQSxTQUFVO0lBQUFjLFFBQUEsR0FDakNxSyxhQUFhLGdCQUNaMU0sSUFBQSxDQUFDdEIsT0FBTztNQUNObU8saUJBQWlCO01BQ2pCQyxJQUFJLEVBQUVuRyxXQUFZO01BQ2xCb0csWUFBWSxFQUFFbkcsY0FBZTtNQUM3Qm9HLFVBQVUsRUFBRS9CLFFBQVM7TUFDckJnQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVE5RyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7TUFBQSxDQUFDO01BQ3hDK0csY0FBYyxFQUFFdkYsWUFBYTtNQUM3QjZFLGtCQUFrQixFQUFFQSxrQkFBbUI7TUFDdkNXLHFCQUFxQixFQUFFVixJQUFLO01BQzVCVyxnQkFBZ0IsRUFBRVgsSUFBSztNQUN2QlksV0FBVyxFQUFFLEtBQU07TUFDbkJqSSxZQUFZLEVBQUVBLFlBQWE7TUFDM0JrSSxxQkFBcUIsRUFBRWpJLGVBQWdCO01BQ3ZDUSxRQUFRLEVBQUVLLGVBQWdCO01BQzFCRSxvQkFBb0IsRUFBRUE7SUFBcUIsQ0FDNUMsQ0FBQyxHQUNBLElBQUksZUFDUmxHLEtBQUEsQ0FBQ0wsVUFBVTtNQUFBd0MsUUFBQSxnQkFDVHJDLElBQUEsQ0FBQ2QsZ0JBQWdCO1FBQ2ZxTyxPQUFPLEVBQUVaLE1BQU0sSUFBSSxDQUFDNUYsV0FBWTtRQUNoQ3lHLFFBQVEsRUFBRSxDQUFDYixNQUFPO1FBQ2xCL0UsTUFBTSxFQUFFQSxNQUFNLENBQUNvQixJQUFLO1FBQ3BCbkIsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCQyxXQUFXLEVBQUVBLFdBQVk7UUFDekIyRixPQUFPLEVBQUU3RixNQUFNLENBQUM4RixRQUFTO1FBQ3pCeEYsY0FBYyxFQUFFQSxjQUFlO1FBQy9CQyxjQUFjLEVBQUVBLGNBQWU7UUFDL0JrRSxlQUFlLEVBQUVBLGVBQWdCO1FBQ2pDc0IsYUFBYSxFQUFFcEY7TUFBb0IsQ0FDcEMsQ0FBQyxFQUNEMUMsUUFBUSxnQkFDUDdGLElBQUEsQ0FBQzFCLFNBQVMsSUFBRSxDQUFDLEdBQ1hvTyxhQUFhLEdBQ2ZDLE1BQU0sZ0JBQ0ozTSxJQUFBLENBQUNiLGNBQWM7UUFBQ3lPLGFBQWEsRUFBRTdCLHFCQUFzQjtRQUFDOEIsWUFBWSxFQUFFL0I7TUFBcUIsQ0FBRSxDQUFDLGdCQUU1RjlMLElBQUEsQ0FBQ3pCLGFBQWE7UUFDWmtILGFBQWEsRUFBRWhILE9BQU8sQ0FBQzRLLElBQUs7UUFDNUJ0RCxRQUFRLEVBQUE3RCxhQUFBLENBQUFBLGFBQUEsS0FBTzZELFFBQVE7VUFBRXNELElBQUksRUFBRXVCLFNBQVM7VUFBRXJGLElBQUksRUFBRVEsUUFBUSxDQUFDUixJQUFJO1VBQUVvQyxZQUFZLEVBQVpBO1FBQVksRUFBRztRQUM5RXNGLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUW5ILFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFBQSxDQUFDO1FBQ2pDZ0ksSUFBSSxFQUFFO1VBQUV0SyxrQkFBa0IsRUFBbEJBLGtCQUFrQjtVQUFFSSxhQUFhLEVBQWJBO1FBQWMsQ0FBRTtRQUM1Q21LLGtCQUFrQixFQUFFeEMsc0JBQXVCO1FBQzNDckUsUUFBUSxFQUFFQSxRQUFTO1FBQ25COEcsUUFBUSxFQUFFLEtBQU07UUFDaEJwRyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ29CLElBQUs7UUFDcEJpRixhQUFhLEVBQUVwRyxPQUFRO1FBQ3ZCRSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJtRyxrQkFBa0IsRUFBRWpILGdCQUFnQixDQUFDc0M7TUFBUSxDQUM5QyxDQUNGLGdCQUVEdkosSUFBQSxDQUFDakIscUJBQXFCO1FBQUNvUCxnQkFBZ0IsRUFBRXBJLFFBQVEsQ0FBQ1I7TUFBSyxDQUFFLENBQzFELEVBQ0FxSCxjQUFjLGdCQUNiNU0sSUFBQSxDQUFDZixpQkFBaUI7UUFDaEJvSSxLQUFLLEVBQUVBLEtBQU07UUFDYnVFLGlCQUFpQixFQUFFQSxpQkFBa0I7UUFDckN3QyxvQkFBb0IsRUFBRTVKLHNCQUF1QjtRQUM3Q0ksV0FBVyxFQUFFQSxXQUFZO1FBQ3pCSSxTQUFTLEVBQUVBLFNBQVU7UUFDckJxSixNQUFNLEVBQUV6SyxhQUFjO1FBQ3RCSSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJ1QyxVQUFVLEVBQUVBO01BQVcsQ0FDeEIsQ0FBQyxHQUNBLElBQUk7SUFBQSxDQUNFLENBQUMsRUFDWmtDLGtCQUFrQixpQkFDakJ6SSxJQUFBLENBQUNoQixhQUFhO01BQ1pvSixRQUFRLEVBQUVBLFFBQVM7TUFDbkJFLFdBQVcsRUFBRUEsV0FBWTtNQUN6QkQsV0FBVyxFQUFFQSxXQUFZO01BQ3pCRSxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDQyxnQkFBZ0IsRUFBRUE7SUFBaUIsQ0FDcEMsQ0FDRixlQUNEeEksSUFBQSxDQUFDbEIsUUFBUSxJQUFFLENBQUM7RUFBQSxDQUNDLENBQUM7QUFFcEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import { useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { memo, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
5
5
|
import { ChatDisclaimerMessage } from '../../atoms/ChatDisclaimerMessage';
|
|
6
6
|
import { ChatFooter } from '../../molecules/ChatFooter/ChatFooter';
|
|
@@ -22,15 +22,26 @@ var getAgentIntroduction = function getAgentIntroduction(introduction) {
|
|
|
22
22
|
return typeof introduction === 'string' ? introduction : '';
|
|
23
23
|
};
|
|
24
24
|
var LEAVE_MS = 600;
|
|
25
|
-
|
|
25
|
+
var ChatAIPageHomeInput = /*#__PURE__*/memo(function (_ref) {
|
|
26
26
|
var onSendMessage = _ref.onSendMessage,
|
|
27
|
-
|
|
27
|
+
disabled = _ref.disabled;
|
|
28
|
+
return /*#__PURE__*/_jsx(ChatFooter, {
|
|
29
|
+
onSendMessage: onSendMessage,
|
|
30
|
+
hideDisclaimer: true,
|
|
31
|
+
disabled: disabled
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
ChatAIPageHomeInput.displayName = 'ChatAIPageHomeInput';
|
|
35
|
+
export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
|
|
36
|
+
var onSendMessage = _ref2.onSendMessage,
|
|
37
|
+
onLeaveStart = _ref2.onLeaveStart;
|
|
28
38
|
var _useT = useT(),
|
|
29
39
|
t = _useT.t;
|
|
30
40
|
var user = useUser();
|
|
31
41
|
var _useGlobalContext = useGlobalContext(),
|
|
32
42
|
agent = _useGlobalContext.agent;
|
|
33
|
-
var
|
|
43
|
+
var hasAgent = Boolean(agent);
|
|
44
|
+
var isMAIA = hasAgent && validateIsMaia(agent);
|
|
34
45
|
var showActionCards = isMAIA;
|
|
35
46
|
var daypart = useMemo(function () {
|
|
36
47
|
return getDaypart();
|
|
@@ -41,9 +52,13 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
41
52
|
var introduction = useMemo(function () {
|
|
42
53
|
return getAgentIntroduction(agent === null || agent === void 0 ? void 0 : agent.introduction);
|
|
43
54
|
}, [agent === null || agent === void 0 ? void 0 : agent.introduction]);
|
|
44
|
-
var disclaimerMessage =
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
var disclaimerMessage = function () {
|
|
56
|
+
if (!hasAgent) return '';
|
|
57
|
+
if (isMAIA) return t('chat.footer.disclaimer', {
|
|
58
|
+
agentName: t('globals.brandName')
|
|
59
|
+
});
|
|
60
|
+
return t('chat.footer.disclaimerAgent');
|
|
61
|
+
}();
|
|
47
62
|
var _useState = useState(false),
|
|
48
63
|
_useState2 = _slicedToArray(_useState, 2),
|
|
49
64
|
leaving = _useState2[0],
|
|
@@ -58,7 +73,7 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
58
73
|
var pendingSendRef = useRef(null);
|
|
59
74
|
var onSendMessageRef = useRef(onSendMessage);
|
|
60
75
|
onSendMessageRef.current = onSendMessage;
|
|
61
|
-
var handleSend = function
|
|
76
|
+
var handleSend = useCallback(function () {
|
|
62
77
|
var _inputRef$current$get, _inputRef$current;
|
|
63
78
|
if (leaving) return;
|
|
64
79
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -70,13 +85,12 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
70
85
|
setLeaveText(message);
|
|
71
86
|
onLeaveStart === null || onLeaveStart === void 0 || onLeaveStart();
|
|
72
87
|
setLeaving(true);
|
|
73
|
-
};
|
|
88
|
+
}, [leaving, onLeaveStart]);
|
|
74
89
|
var renderActionCards = function renderActionCards() {
|
|
75
90
|
var isLeaving = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
76
|
-
if (!showActionCards) return null;
|
|
77
91
|
return /*#__PURE__*/_jsx(SCPageHomeActionsReveal, {
|
|
78
92
|
$leaving: isLeaving,
|
|
79
|
-
children: /*#__PURE__*/_jsx(SCPageHomeActions, {
|
|
93
|
+
children: showActionCards ? /*#__PURE__*/_jsx(SCPageHomeActions, {
|
|
80
94
|
children: PAGE_HOME_MOCK_CARDS.map(function (card) {
|
|
81
95
|
return /*#__PURE__*/_jsxs(SCPageHomeCard, {
|
|
82
96
|
type: "button",
|
|
@@ -98,7 +112,7 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
98
112
|
})]
|
|
99
113
|
}, card.id);
|
|
100
114
|
})
|
|
101
|
-
})
|
|
115
|
+
}) : null
|
|
102
116
|
});
|
|
103
117
|
};
|
|
104
118
|
useLayoutEffect(function () {
|
|
@@ -158,7 +172,7 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
158
172
|
})
|
|
159
173
|
}) : null, /*#__PURE__*/_jsx(SCPageHomeWelcomeReveal, {
|
|
160
174
|
$leaving: leaving,
|
|
161
|
-
children: /*#__PURE__*/_jsx(SCPageHomeWelcome, {
|
|
175
|
+
children: hasAgent ? /*#__PURE__*/_jsx(SCPageHomeWelcome, {
|
|
162
176
|
$agent: !isMAIA,
|
|
163
177
|
children: isMAIA ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
164
178
|
children: [/*#__PURE__*/_jsx(SCPageHomeGreeting, {
|
|
@@ -180,24 +194,22 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
180
194
|
children: introduction
|
|
181
195
|
}) : null]
|
|
182
196
|
})
|
|
183
|
-
})
|
|
184
|
-
}), leaving ?
|
|
185
|
-
children:
|
|
197
|
+
}) : null
|
|
198
|
+
}), leaving ? null : /*#__PURE__*/_jsx(SCPageHomeComposer, {
|
|
199
|
+
children: /*#__PURE__*/_jsx(SCPageHomeInput, {
|
|
186
200
|
ref: inputRef,
|
|
187
|
-
children: /*#__PURE__*/_jsx(
|
|
188
|
-
onSendMessage: handleSend
|
|
189
|
-
hideDisclaimer: true
|
|
201
|
+
children: /*#__PURE__*/_jsx(ChatAIPageHomeInput, {
|
|
202
|
+
onSendMessage: handleSend
|
|
190
203
|
})
|
|
191
|
-
})
|
|
192
|
-
})]
|
|
204
|
+
})
|
|
205
|
+
}), renderActionCards(leaving)]
|
|
193
206
|
}), leaving ? /*#__PURE__*/_jsxs(SCPageHomeLeaveFooter, {
|
|
194
207
|
children: [/*#__PURE__*/_jsx(SCPageHomeComposer, {
|
|
195
208
|
$leaving: true,
|
|
196
209
|
children: /*#__PURE__*/_jsx(SCPageHomeInput, {
|
|
197
210
|
ref: inputRef,
|
|
198
|
-
children: /*#__PURE__*/_jsx(
|
|
211
|
+
children: /*#__PURE__*/_jsx(ChatAIPageHomeInput, {
|
|
199
212
|
onSendMessage: handleSend,
|
|
200
|
-
hideDisclaimer: true,
|
|
201
213
|
disabled: true
|
|
202
214
|
})
|
|
203
215
|
})
|
|
@@ -208,10 +220,10 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref) {
|
|
|
208
220
|
})
|
|
209
221
|
})]
|
|
210
222
|
}) : /*#__PURE__*/_jsx(SCPageHomeDisclaimer, {
|
|
211
|
-
children: /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
|
|
223
|
+
children: disclaimerMessage ? /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
|
|
212
224
|
message: disclaimerMessage
|
|
213
|
-
})
|
|
225
|
+
}) : null
|
|
214
226
|
})]
|
|
215
227
|
});
|
|
216
228
|
};
|
|
217
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiQ2hhdEZvb3RlciIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInZhbGlkYXRlSXNNYWlhIiwicmVuZGVyQWN0aW9uSWNvbiIsImdldERheXBhcnQiLCJQQUdFX0hPTUVfTU9DS19DQVJEUyIsIlNDUGFnZUhvbWVBY3Rpb25zIiwiU0NQYWdlSG9tZUFjdGlvbnNSZXZlYWwiLCJTQ1BhZ2VIb21lQWdlbnRBdXRob3IiLCJTQ1BhZ2VIb21lQWdlbnRJbnRybyIsIlNDUGFnZUhvbWVDYXJkIiwiU0NQYWdlSG9tZUNhcmRDb3B5IiwiU0NQYWdlSG9tZUNhcmRJY29uIiwiU0NQYWdlSG9tZUNhcmRTdWJ0aXRsZSIsIlNDUGFnZUhvbWVDYXJkVGl0bGUiLCJTQ1BhZ2VIb21lQ2VudGVyIiwiU0NQYWdlSG9tZUNvbXBvc2VyIiwiU0NQYWdlSG9tZURpc2NsYWltZXIiLCJTQ1BhZ2VIb21lR2xvd0JsdWVJbm5lciIsIlNDUGFnZUhvbWVHbG93Qmx1ZU91dGVyIiwiU0NQYWdlSG9tZUdsb3dMYXllciIsIlNDUGFnZUhvbWVHbG93VmlvbGV0IiwiU0NQYWdlSG9tZUdyZWV0aW5nIiwiU0NQYWdlSG9tZUlucHV0IiwiU0NQYWdlSG9tZUxlYXZlQnViYmxlIiwiU0NQYWdlSG9tZUxlYXZlRm9vdGVyIiwiU0NQYWdlSG9tZUxlYXZlTWVzc2FnZSIsIlNDUGFnZUhvbWVSb290IiwiU0NQYWdlSG9tZVN1YnRpdGxlIiwiU0NQYWdlSG9tZVdlbGNvbWUiLCJTQ1BhZ2VIb21lV2VsY29tZVJldmVhbCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImdldEFnZW50SW50cm9kdWN0aW9uIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwiaXRlbSIsInRyaW0iLCJsZW5ndGgiLCJqb2luIiwiTEVBVkVfTVMiLCJDaGF0QUlQYWdlSG9tZSIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwib25MZWF2ZVN0YXJ0IiwiX3VzZVQiLCJ0IiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJpc01BSUEiLCJzaG93QWN0aW9uQ2FyZHMiLCJkYXlwYXJ0IiwiZ3JlZXRpbmciLCJjb25jYXQiLCJuYW1lIiwiZmlyc3ROYW1lIiwiZGlzY2xhaW1lck1lc3NhZ2UiLCJhZ2VudE5hbWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsZWF2aW5nIiwic2V0TGVhdmluZyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibGVhdmVUZXh0Iiwic2V0TGVhdmVUZXh0IiwiaW5wdXRSZWYiLCJtZXNzYWdlUmVmIiwiZmlyc3RJbnB1dFRvcFJlZiIsInBlbmRpbmdTZW5kUmVmIiwib25TZW5kTWVzc2FnZVJlZiIsImN1cnJlbnQiLCJoYW5kbGVTZW5kIiwiX2lucHV0UmVmJGN1cnJlbnQkZ2V0IiwiX2lucHV0UmVmJGN1cnJlbnQiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIl9rZXkiLCJtZXNzYWdlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwicmVuZGVyQWN0aW9uQ2FyZHMiLCJpc0xlYXZpbmciLCJ1bmRlZmluZWQiLCIkbGVhdmluZyIsImNoaWxkcmVuIiwibWFwIiwiY2FyZCIsInR5cGUiLCJvbkNsaWNrIiwidGl0bGVLZXkiLCJpY29uIiwid2lkdGgiLCJoZWlnaHQiLCJzdWJ0aXRsZUtleSIsImlkIiwiaW5wdXRFbCIsIm1lc3NhZ2VFbCIsImZpcnN0VG9wIiwiZHkiLCJzdHlsZSIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJzdGFydFkiLCJvcGFjaXR5IiwiaW5uZXJQbGF5IiwicGxheSIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImRvbmUiLCJzZXRUaW1lb3V0IiwicGVuZGluZyIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJjbGVhclRpbWVvdXQiLCJyZWYiLCIkYWdlbnQiLCJjcmVhdGVkX2J5IiwidGl0bGUiLCJpc19kZWxldGVkIiwiaGlkZURpc2NsYWltZXIiLCJkaXNhYmxlZCIsIiRjb21wYWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSVBhZ2UvQ2hhdEFJUGFnZUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuaW1wb3J0IHsgQ2hhdEZvb3RlciB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgcmVuZGVyQWN0aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGlvbkljb25NYXAnXG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBnZXREYXlwYXJ0IH0gZnJvbSAnLi9nZXREYXlwYXJ0J1xuaW1wb3J0IHsgUEFHRV9IT01FX01PQ0tfQ0FSRFMgfSBmcm9tICcuL3BhZ2VIb21lTW9ja0NhcmRzJ1xuaW1wb3J0IHtcbiAgU0NQYWdlSG9tZUFjdGlvbnMsXG4gIFNDUGFnZUhvbWVBY3Rpb25zUmV2ZWFsLFxuICBTQ1BhZ2VIb21lQWdlbnRBdXRob3IsXG4gIFNDUGFnZUhvbWVBZ2VudEludHJvLFxuICBTQ1BhZ2VIb21lQ2FyZCxcbiAgU0NQYWdlSG9tZUNhcmRDb3B5LFxuICBTQ1BhZ2VIb21lQ2FyZEljb24sXG4gIFNDUGFnZUhvbWVDYXJkU3VidGl0bGUsXG4gIFNDUGFnZUhvbWVDYXJkVGl0bGUsXG4gIFNDUGFnZUhvbWVDZW50ZXIsXG4gIFNDUGFnZUhvbWVDb21wb3NlcixcbiAgU0NQYWdlSG9tZURpc2NsYWltZXIsXG4gIFNDUGFnZUhvbWVHbG93Qmx1ZUlubmVyLFxuICBTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlcixcbiAgU0NQYWdlSG9tZUdsb3dMYXllcixcbiAgU0NQYWdlSG9tZUdsb3dWaW9sZXQsXG4gIFNDUGFnZUhvbWVHcmVldGluZyxcbiAgU0NQYWdlSG9tZUlucHV0LFxuICBTQ1BhZ2VIb21lTGVhdmVCdWJibGUsXG4gIFNDUGFnZUhvbWVMZWF2ZUZvb3RlcixcbiAgU0NQYWdlSG9tZUxlYXZlTWVzc2FnZSxcbiAgU0NQYWdlSG9tZVJvb3QsXG4gIFNDUGFnZUhvbWVTdWJ0aXRsZSxcbiAgU0NQYWdlSG9tZVdlbGNvbWUsXG4gIFNDUGFnZUhvbWVXZWxjb21lUmV2ZWFsLFxufSBmcm9tICcuL0NoYXRBSVBhZ2VIb21lLnN0eWxlcydcblxuY29uc3QgZ2V0QWdlbnRJbnRyb2R1Y3Rpb24gPSAoaW50cm9kdWN0aW9uOiBBZ2VudFsnaW50cm9kdWN0aW9uJ10pOiBzdHJpbmcgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShpbnRyb2R1Y3Rpb24pKSB7XG4gICAgcmV0dXJuIGludHJvZHVjdGlvbi5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIHN0cmluZyA9PiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgJiYgaXRlbS50cmltKCkubGVuZ3RoID4gMCkuam9pbignICcpXG4gIH1cbiAgcmV0dXJuIHR5cGVvZiBpbnRyb2R1Y3Rpb24gPT09ICdzdHJpbmcnID8gaW50cm9kdWN0aW9uIDogJydcbn1cblxuY29uc3QgTEVBVkVfTVMgPSA2MDBcblxudHlwZSBTZW5kTWVzc2FnZSA9IFBhcmFtZXRlcnM8dHlwZW9mIENoYXRGb290ZXI+WzBdWydvblNlbmRNZXNzYWdlJ11cblxuaW50ZXJmYWNlIENoYXRBSVBhZ2VIb21lUHJvcHMge1xuICBvblNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZVxuICBvbkxlYXZlU3RhcnQ/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlQYWdlSG9tZSA9ICh7IG9uU2VuZE1lc3NhZ2UsIG9uTGVhdmVTdGFydCB9OiBDaGF0QUlQYWdlSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBzaG93QWN0aW9uQ2FyZHMgPSBpc01BSUFcbiAgY29uc3QgZGF5cGFydCA9IHVzZU1lbW8oKCkgPT4gZ2V0RGF5cGFydCgpLCBbXSlcbiAgY29uc3QgZ3JlZXRpbmcgPSB0KGBwYWdlSG9tZS5ncmVldGluZy4ke2RheXBhcnR9YCwgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KVxuICBjb25zdCBpbnRyb2R1Y3Rpb24gPSB1c2VNZW1vKCgpID0+IGdldEFnZW50SW50cm9kdWN0aW9uKGFnZW50Py5pbnRyb2R1Y3Rpb24pLCBbYWdlbnQ/LmludHJvZHVjdGlvbl0pXG5cbiAgY29uc3QgZGlzY2xhaW1lck1lc3NhZ2UgPSBpc01BSUFcbiAgICA/IHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXInLCB7IGFnZW50TmFtZTogdCgnZ2xvYmFscy5icmFuZE5hbWUnKSB9KVxuICAgIDogdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lckFnZW50JylcblxuICBjb25zdCBbbGVhdmluZywgc2V0TGVhdmluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xlYXZlVGV4dCwgc2V0TGVhdmVUZXh0XSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgbWVzc2FnZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZmlyc3RJbnB1dFRvcFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBwZW5kaW5nU2VuZFJlZiA9IHVzZVJlZjxQYXJhbWV0ZXJzPFNlbmRNZXNzYWdlPiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG9uU2VuZE1lc3NhZ2VSZWYgPSB1c2VSZWYob25TZW5kTWVzc2FnZSlcbiAgb25TZW5kTWVzc2FnZVJlZi5jdXJyZW50ID0gb25TZW5kTWVzc2FnZVxuXG4gIGNvbnN0IGhhbmRsZVNlbmQ6IFNlbmRNZXNzYWdlID0gKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAobGVhdmluZykgcmV0dXJuXG4gICAgY29uc3QgW21lc3NhZ2VdID0gYXJnc1xuICAgIHBlbmRpbmdTZW5kUmVmLmN1cnJlbnQgPSBhcmdzXG4gICAgZmlyc3RJbnB1dFRvcFJlZi5jdXJyZW50ID0gaW5wdXRSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wID8/IDBcbiAgICBzZXRMZWF2ZVRleHQobWVzc2FnZSlcbiAgICBvbkxlYXZlU3RhcnQ/LigpXG4gICAgc2V0TGVhdmluZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQWN0aW9uQ2FyZHMgPSAoaXNMZWF2aW5nID0gZmFsc2UpID0+IHtcbiAgICBpZiAoIXNob3dBY3Rpb25DYXJkcykgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gKFxuICAgICAgPFNDUGFnZUhvbWVBY3Rpb25zUmV2ZWFsICRsZWF2aW5nPXtpc0xlYXZpbmd9PlxuICAgICAgICA8U0NQYWdlSG9tZUFjdGlvbnM+XG4gICAgICAgICAge1BBR0VfSE9NRV9NT0NLX0NBUkRTLm1hcChjYXJkID0+IChcbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lQ2FyZCBrZXk9e2NhcmQuaWR9IHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZW5kKHQoY2FyZC50aXRsZUtleSkpfT5cbiAgICAgICAgICAgICAgPFNDUGFnZUhvbWVDYXJkSWNvbiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgICB7cmVuZGVyQWN0aW9uSWNvbihjYXJkLmljb24sIHsgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4IH0pfVxuICAgICAgICAgICAgICA8L1NDUGFnZUhvbWVDYXJkSWNvbj5cbiAgICAgICAgICAgICAgPFNDUGFnZUhvbWVDYXJkQ29weT5cbiAgICAgICAgICAgICAgICA8U0NQYWdlSG9tZUNhcmRUaXRsZT57dChjYXJkLnRpdGxlS2V5KX08L1NDUGFnZUhvbWVDYXJkVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVDYXJkU3VidGl0bGU+e3QoY2FyZC5zdWJ0aXRsZUtleSl9PC9TQ1BhZ2VIb21lQ2FyZFN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L1NDUGFnZUhvbWVDYXJkQ29weT5cbiAgICAgICAgICAgIDwvU0NQYWdlSG9tZUNhcmQ+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NQYWdlSG9tZUFjdGlvbnM+XG4gICAgICA8L1NDUGFnZUhvbWVBY3Rpb25zUmV2ZWFsPlxuICAgIClcbiAgfVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsZWF2aW5nKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBpbnB1dEVsID0gaW5wdXRSZWYuY3VycmVudFxuICAgIGNvbnN0IG1lc3NhZ2VFbCA9IG1lc3NhZ2VSZWYuY3VycmVudFxuICAgIGNvbnN0IGZpcnN0VG9wID0gZmlyc3RJbnB1dFRvcFJlZi5jdXJyZW50XG5cbiAgICBpZiAoaW5wdXRFbCkge1xuICAgICAgY29uc3QgZHkgPSBmaXJzdFRvcCAtIGlucHV0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wXG4gICAgICBpbnB1dEVsLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7ZHl9cHgpYFxuICAgICAgaW5wdXRFbC5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnXG4gICAgfVxuXG4gICAgaWYgKG1lc3NhZ2VFbCkge1xuICAgICAgY29uc3Qgc3RhcnRZID0gZmlyc3RUb3AgLSBtZXNzYWdlRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wXG4gICAgICBtZXNzYWdlRWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHtzdGFydFl9cHgpYFxuICAgICAgbWVzc2FnZUVsLnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgIG1lc3NhZ2VFbC5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnXG4gICAgfVxuXG4gICAgbGV0IGlubmVyUGxheSA9IDBcbiAgICBjb25zdCBwbGF5ID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpbm5lclBsYXkgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKGlucHV0RWwpIHtcbiAgICAgICAgICBpbnB1dEVsLnN0eWxlLnRyYW5zaXRpb24gPSBgdHJhbnNmb3JtICR7TEVBVkVfTVN9bXMgY3ViaWMtYmV6aWVyKDAuMzIsIDAuNzIsIDAsIDEpYFxuICAgICAgICAgIGlucHV0RWwuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoMCknXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2VFbCkge1xuICAgICAgICAgIG1lc3NhZ2VFbC5zdHlsZS50cmFuc2l0aW9uID0gYHRyYW5zZm9ybSAke0xFQVZFX01TfW1zIGN1YmljLWJlemllcigwLjMyLCAwLjcyLCAwLCAxKSwgb3BhY2l0eSAxNjBtcyBlYXNlLW91dGBcbiAgICAgICAgICBtZXNzYWdlRWwuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoMCknXG4gICAgICAgICAgbWVzc2FnZUVsLnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgY29uc3QgZG9uZSA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHBlbmRpbmcgPSBwZW5kaW5nU2VuZFJlZi5jdXJyZW50XG4gICAgICBwZW5kaW5nU2VuZFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgaWYgKHBlbmRpbmcpIHtcbiAgICAgICAgb25TZW5kTWVzc2FnZVJlZi5jdXJyZW50KC4uLnBlbmRpbmcpXG4gICAgICB9XG4gICAgfSwgTEVBVkVfTVMgKyA0MClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUocGxheSlcbiAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShpbm5lclBsYXkpXG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGRvbmUpXG4gICAgfVxuICB9LCBbbGVhdmluZ10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NQYWdlSG9tZVJvb3Q+XG4gICAgICA8U0NQYWdlSG9tZUdsb3dMYXllciAkbGVhdmluZz17bGVhdmluZ30gYXJpYS1oaWRkZW4+XG4gICAgICAgIDxTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlciAvPlxuICAgICAgICA8U0NQYWdlSG9tZUdsb3dCbHVlSW5uZXIgLz5cbiAgICAgICAgPFNDUGFnZUhvbWVHbG93VmlvbGV0IC8+XG4gICAgICA8L1NDUGFnZUhvbWVHbG93TGF5ZXI+XG4gICAgICA8U0NQYWdlSG9tZUNlbnRlciAkbGVhdmluZz17bGVhdmluZ30+XG4gICAgICAgIHtsZWF2aW5nID8gKFxuICAgICAgICAgIDxTQ1BhZ2VIb21lTGVhdmVNZXNzYWdlIHJlZj17bWVzc2FnZVJlZn0+XG4gICAgICAgICAgICA8U0NQYWdlSG9tZUxlYXZlQnViYmxlPntsZWF2ZVRleHR9PC9TQ1BhZ2VIb21lTGVhdmVCdWJibGU+XG4gICAgICAgICAgPC9TQ1BhZ2VIb21lTGVhdmVNZXNzYWdlPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDUGFnZUhvbWVXZWxjb21lUmV2ZWFsICRsZWF2aW5nPXtsZWF2aW5nfT5cbiAgICAgICAgICA8U0NQYWdlSG9tZVdlbGNvbWUgJGFnZW50PXshaXNNQUlBfT5cbiAgICAgICAgICAgIHtpc01BSUEgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ1BhZ2VIb21lR3JlZXRpbmc+XG4gICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVTdWJ0aXRsZT57dCgncGFnZUhvbWUuc3VidGl0bGUnKX08L1NDUGFnZUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lU3VidGl0bGU+e2FnZW50Py5uYW1lfTwvU0NQYWdlSG9tZVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgICAgICBhZ2VudC5jcmVhdGVkX2J5LmlzX2RlbGV0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U0NQYWdlSG9tZUFnZW50QXV0aG9yPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdwYWdlSG9tZS5jcmVhdGVkQnknLCB7IG5hbWU6IGFnZW50LmNyZWF0ZWRfYnkubmFtZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1BhZ2VIb21lQWdlbnRBdXRob3I+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge2ludHJvZHVjdGlvbiA/IDxTQ1BhZ2VIb21lQWdlbnRJbnRybz57aW50cm9kdWN0aW9ufTwvU0NQYWdlSG9tZUFnZW50SW50cm8+IDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NQYWdlSG9tZVdlbGNvbWU+XG4gICAgICAgIDwvU0NQYWdlSG9tZVdlbGNvbWVSZXZlYWw+XG4gICAgICAgIHtsZWF2aW5nID8gKFxuICAgICAgICAgIHJlbmRlckFjdGlvbkNhcmRzKHRydWUpXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFNDUGFnZUhvbWVDb21wb3Nlcj5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lSW5wdXQgcmVmPXtpbnB1dFJlZn0+XG4gICAgICAgICAgICAgIDxDaGF0Rm9vdGVyIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmR9IGhpZGVEaXNjbGFpbWVyIC8+XG4gICAgICAgICAgICA8L1NDUGFnZUhvbWVJbnB1dD5cbiAgICAgICAgICAgIHtyZW5kZXJBY3Rpb25DYXJkcygpfVxuICAgICAgICAgIDwvU0NQYWdlSG9tZUNvbXBvc2VyPlxuICAgICAgICApfVxuICAgICAgPC9TQ1BhZ2VIb21lQ2VudGVyPlxuICAgICAge2xlYXZpbmcgPyAoXG4gICAgICAgIDxTQ1BhZ2VIb21lTGVhdmVGb290ZXI+XG4gICAgICAgICAgPFNDUGFnZUhvbWVDb21wb3NlciAkbGVhdmluZz5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lSW5wdXQgcmVmPXtpbnB1dFJlZn0+XG4gICAgICAgICAgICAgIDxDaGF0Rm9vdGVyIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmR9IGhpZGVEaXNjbGFpbWVyIGRpc2FibGVkIC8+XG4gICAgICAgICAgICA8L1NDUGFnZUhvbWVJbnB1dD5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVDb21wb3Nlcj5cbiAgICAgICAgICA8U0NQYWdlSG9tZURpc2NsYWltZXIgJGNvbXBhY3Q+XG4gICAgICAgICAgICA8Q2hhdERpc2NsYWltZXJNZXNzYWdlIG1lc3NhZ2U9e2Rpc2NsYWltZXJNZXNzYWdlfSAvPlxuICAgICAgICAgIDwvU0NQYWdlSG9tZURpc2NsYWltZXI+XG4gICAgICAgIDwvU0NQYWdlSG9tZUxlYXZlRm9vdGVyPlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDUGFnZUhvbWVEaXNjbGFpbWVyPlxuICAgICAgICAgIDxDaGF0RGlzY2xhaW1lck1lc3NhZ2UgbWVzc2FnZT17ZGlzY2xhaW1lck1lc3NhZ2V9IC8+XG4gICAgICAgIDwvU0NQYWdlSG9tZURpc2NsYWltZXI+XG4gICAgICApfVxuICAgIDwvU0NQYWdlSG9tZVJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxlQUFlLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNsRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLHFCQUFxQixRQUFRLG1DQUFtQztBQUN6RSxTQUFTQyxVQUFVLFFBQVEsdUNBQXVDO0FBQ2xFLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFDbkQsU0FBU0MsY0FBYyxRQUFRLHdDQUF3QztBQUN2RSxTQUFTQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFFL0QsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFD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
|
|
229
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiQ2hhdEZvb3RlciIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInZhbGlkYXRlSXNNYWlhIiwicmVuZGVyQWN0aW9uSWNvbiIsImdldERheXBhcnQiLCJQQUdFX0hPTUVfTU9DS19DQVJEUyIsIlNDUGFnZUhvbWVBY3Rpb25zIiwiU0NQYWdlSG9tZUFjdGlvbnNSZXZlYWwiLCJTQ1BhZ2VIb21lQWdlbnRBdXRob3IiLCJTQ1BhZ2VIb21lQWdlbnRJbnRybyIsIlNDUGFnZUhvbWVDYXJkIiwiU0NQYWdlSG9tZUNhcmRDb3B5IiwiU0NQYWdlSG9tZUNhcmRJY29uIiwiU0NQYWdlSG9tZUNhcmRTdWJ0aXRsZSIsIlNDUGFnZUhvbWVDYXJkVGl0bGUiLCJTQ1BhZ2VIb21lQ2VudGVyIiwiU0NQYWdlSG9tZUNvbXBvc2VyIiwiU0NQYWdlSG9tZURpc2NsYWltZXIiLCJTQ1BhZ2VIb21lR2xvd0JsdWVJbm5lciIsIlNDUGFnZUhvbWVHbG93Qmx1ZU91dGVyIiwiU0NQYWdlSG9tZUdsb3dMYXllciIsIlNDUGFnZUhvbWVHbG93VmlvbGV0IiwiU0NQYWdlSG9tZUdyZWV0aW5nIiwiU0NQYWdlSG9tZUlucHV0IiwiU0NQYWdlSG9tZUxlYXZlQnViYmxlIiwiU0NQYWdlSG9tZUxlYXZlRm9vdGVyIiwiU0NQYWdlSG9tZUxlYXZlTWVzc2FnZSIsIlNDUGFnZUhvbWVSb290IiwiU0NQYWdlSG9tZVN1YnRpdGxlIiwiU0NQYWdlSG9tZVdlbGNvbWUiLCJTQ1BhZ2VIb21lV2VsY29tZVJldmVhbCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImdldEFnZW50SW50cm9kdWN0aW9uIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwiaXRlbSIsInRyaW0iLCJsZW5ndGgiLCJqb2luIiwiTEVBVkVfTVMiLCJDaGF0QUlQYWdlSG9tZUlucHV0IiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJkaXNhYmxlZCIsImhpZGVEaXNjbGFpbWVyIiwiZGlzcGxheU5hbWUiLCJDaGF0QUlQYWdlSG9tZSIsIl9yZWYyIiwib25MZWF2ZVN0YXJ0IiwiX3VzZVQiLCJ0IiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJoYXNBZ2VudCIsIkJvb2xlYW4iLCJpc01BSUEiLCJzaG93QWN0aW9uQ2FyZHMiLCJkYXlwYXJ0IiwiZ3JlZXRpbmciLCJjb25jYXQiLCJuYW1lIiwiZmlyc3ROYW1lIiwiZGlzY2xhaW1lck1lc3NhZ2UiLCJhZ2VudE5hbWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsZWF2aW5nIiwic2V0TGVhdmluZyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibGVhdmVUZXh0Iiwic2V0TGVhdmVUZXh0IiwiaW5wdXRSZWYiLCJtZXNzYWdlUmVmIiwiZmlyc3RJbnB1dFRvcFJlZiIsInBlbmRpbmdTZW5kUmVmIiwib25TZW5kTWVzc2FnZVJlZiIsImN1cnJlbnQiLCJoYW5kbGVTZW5kIiwiX2lucHV0UmVmJGN1cnJlbnQkZ2V0IiwiX2lucHV0UmVmJGN1cnJlbnQiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIl9rZXkiLCJtZXNzYWdlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwicmVuZGVyQWN0aW9uQ2FyZHMiLCJpc0xlYXZpbmciLCJ1bmRlZmluZWQiLCIkbGVhdmluZyIsImNoaWxkcmVuIiwibWFwIiwiY2FyZCIsInR5cGUiLCJvbkNsaWNrIiwidGl0bGVLZXkiLCJpY29uIiwid2lkdGgiLCJoZWlnaHQiLCJzdWJ0aXRsZUtleSIsImlkIiwiaW5wdXRFbCIsIm1lc3NhZ2VFbCIsImZpcnN0VG9wIiwiZHkiLCJzdHlsZSIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJzdGFydFkiLCJvcGFjaXR5IiwiaW5uZXJQbGF5IiwicGxheSIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImRvbmUiLCJzZXRUaW1lb3V0IiwicGVuZGluZyIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJjbGVhclRpbWVvdXQiLCJyZWYiLCIkYWdlbnQiLCJjcmVhdGVkX2J5IiwidGl0bGUiLCJpc19kZWxldGVkIiwiJGNvbXBhY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJUGFnZS9DaGF0QUlQYWdlSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuaW1wb3J0IHsgQ2hhdEZvb3RlciB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgcmVuZGVyQWN0aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGlvbkljb25NYXAnXG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBnZXREYXlwYXJ0IH0gZnJvbSAnLi9nZXREYXlwYXJ0J1xuaW1wb3J0IHsgUEFHRV9IT01FX01PQ0tfQ0FSRFMgfSBmcm9tICcuL3BhZ2VIb21lTW9ja0NhcmRzJ1xuaW1wb3J0IHtcbiAgU0NQYWdlSG9tZUFjdGlvbnMsXG4gIFNDUGFnZUhvbWVBY3Rpb25zUmV2ZWFsLFxuICBTQ1BhZ2VIb21lQWdlbnRBdXRob3IsXG4gIFNDUGFnZUhvbWVBZ2VudEludHJvLFxuICBTQ1BhZ2VIb21lQ2FyZCxcbiAgU0NQYWdlSG9tZUNhcmRDb3B5LFxuICBTQ1BhZ2VIb21lQ2FyZEljb24sXG4gIFNDUGFnZUhvbWVDYXJkU3VidGl0bGUsXG4gIFNDUGFnZUhvbWVDYXJkVGl0bGUsXG4gIFNDUGFnZUhvbWVDZW50ZXIsXG4gIFNDUGFnZUhvbWVDb21wb3NlcixcbiAgU0NQYWdlSG9tZURpc2NsYWltZXIsXG4gIFNDUGFnZUhvbWVHbG93Qmx1ZUlubmVyLFxuICBTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlcixcbiAgU0NQYWdlSG9tZUdsb3dMYXllcixcbiAgU0NQYWdlSG9tZUdsb3dWaW9sZXQsXG4gIFNDUGFnZUhvbWVHcmVldGluZyxcbiAgU0NQYWdlSG9tZUlucHV0LFxuICBTQ1BhZ2VIb21lTGVhdmVCdWJibGUsXG4gIFNDUGFnZUhvbWVMZWF2ZUZvb3RlcixcbiAgU0NQYWdlSG9tZUxlYXZlTWVzc2FnZSxcbiAgU0NQYWdlSG9tZVJvb3QsXG4gIFNDUGFnZUhvbWVTdWJ0aXRsZSxcbiAgU0NQYWdlSG9tZVdlbGNvbWUsXG4gIFNDUGFnZUhvbWVXZWxjb21lUmV2ZWFsLFxufSBmcm9tICcuL0NoYXRBSVBhZ2VIb21lLnN0eWxlcydcblxuY29uc3QgZ2V0QWdlbnRJbnRyb2R1Y3Rpb24gPSAoaW50cm9kdWN0aW9uOiBBZ2VudFsnaW50cm9kdWN0aW9uJ10pOiBzdHJpbmcgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShpbnRyb2R1Y3Rpb24pKSB7XG4gICAgcmV0dXJuIGludHJvZHVjdGlvbi5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIHN0cmluZyA9PiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgJiYgaXRlbS50cmltKCkubGVuZ3RoID4gMCkuam9pbignICcpXG4gIH1cbiAgcmV0dXJuIHR5cGVvZiBpbnRyb2R1Y3Rpb24gPT09ICdzdHJpbmcnID8gaW50cm9kdWN0aW9uIDogJydcbn1cblxuY29uc3QgTEVBVkVfTVMgPSA2MDBcblxudHlwZSBTZW5kTWVzc2FnZSA9IFBhcmFtZXRlcnM8dHlwZW9mIENoYXRGb290ZXI+WzBdWydvblNlbmRNZXNzYWdlJ11cblxuaW50ZXJmYWNlIENoYXRBSVBhZ2VIb21lUHJvcHMge1xuICBvblNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZVxuICBvbkxlYXZlU3RhcnQ/OiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IENoYXRBSVBhZ2VIb21lSW5wdXQgPSBtZW1vKCh7IG9uU2VuZE1lc3NhZ2UsIGRpc2FibGVkIH06IHsgb25TZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7IGRpc2FibGVkPzogYm9vbGVhbiB9KSA9PiAoXG4gIDxDaGF0Rm9vdGVyIG9uU2VuZE1lc3NhZ2U9e29uU2VuZE1lc3NhZ2V9IGhpZGVEaXNjbGFpbWVyIGRpc2FibGVkPXtkaXNhYmxlZH0gLz5cbikpXG5DaGF0QUlQYWdlSG9tZUlucHV0LmRpc3BsYXlOYW1lID0gJ0NoYXRBSVBhZ2VIb21lSW5wdXQnXG5cbmV4cG9ydCBjb25zdCBDaGF0QUlQYWdlSG9tZSA9ICh7IG9uU2VuZE1lc3NhZ2UsIG9uTGVhdmVTdGFydCB9OiBDaGF0QUlQYWdlSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGhhc0FnZW50ID0gQm9vbGVhbihhZ2VudClcbiAgY29uc3QgaXNNQUlBID0gaGFzQWdlbnQgJiYgdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IHNob3dBY3Rpb25DYXJkcyA9IGlzTUFJQVxuICBjb25zdCBkYXlwYXJ0ID0gdXNlTWVtbygoKSA9PiBnZXREYXlwYXJ0KCksIFtdKVxuICBjb25zdCBncmVldGluZyA9IHQoYHBhZ2VIb21lLmdyZWV0aW5nLiR7ZGF5cGFydH1gLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pXG4gIGNvbnN0IGludHJvZHVjdGlvbiA9IHVzZU1lbW8oKCkgPT4gZ2V0QWdlbnRJbnRyb2R1Y3Rpb24oYWdlbnQ/LmludHJvZHVjdGlvbiksIFthZ2VudD8uaW50cm9kdWN0aW9uXSlcblxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9ICgoKSA9PiB7XG4gICAgaWYgKCFoYXNBZ2VudCkgcmV0dXJuICcnXG4gICAgaWYgKGlzTUFJQSkgcmV0dXJuIHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXInLCB7IGFnZW50TmFtZTogdCgnZ2xvYmFscy5icmFuZE5hbWUnKSB9KVxuICAgIHJldHVybiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyQWdlbnQnKVxuICB9KSgpXG5cbiAgY29uc3QgW2xlYXZpbmcsIHNldExlYXZpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtsZWF2ZVRleHQsIHNldExlYXZlVGV4dF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IG1lc3NhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGZpcnN0SW5wdXRUb3BSZWYgPSB1c2VSZWYoMClcbiAgY29uc3QgcGVuZGluZ1NlbmRSZWYgPSB1c2VSZWY8UGFyYW1ldGVyczxTZW5kTWVzc2FnZT4gfCBudWxsPihudWxsKVxuICBjb25zdCBvblNlbmRNZXNzYWdlUmVmID0gdXNlUmVmKG9uU2VuZE1lc3NhZ2UpXG4gIG9uU2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VcblxuICBjb25zdCBoYW5kbGVTZW5kOiBTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKFxuICAgICguLi5hcmdzKSA9PiB7XG4gICAgICBpZiAobGVhdmluZykgcmV0dXJuXG4gICAgICBjb25zdCBbbWVzc2FnZV0gPSBhcmdzXG4gICAgICBwZW5kaW5nU2VuZFJlZi5jdXJyZW50ID0gYXJnc1xuICAgICAgZmlyc3RJbnB1dFRvcFJlZi5jdXJyZW50ID0gaW5wdXRSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wID8/IDBcbiAgICAgIHNldExlYXZlVGV4dChtZXNzYWdlKVxuICAgICAgb25MZWF2ZVN0YXJ0Py4oKVxuICAgICAgc2V0TGVhdmluZyh0cnVlKVxuICAgIH0sXG4gICAgW2xlYXZpbmcsIG9uTGVhdmVTdGFydF1cbiAgKVxuXG4gIGNvbnN0IHJlbmRlckFjdGlvbkNhcmRzID0gKGlzTGVhdmluZyA9IGZhbHNlKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1BhZ2VIb21lQWN0aW9uc1JldmVhbCAkbGVhdmluZz17aXNMZWF2aW5nfT5cbiAgICAgICAge3Nob3dBY3Rpb25DYXJkcyA/IChcbiAgICAgICAgICA8U0NQYWdlSG9tZUFjdGlvbnM+XG4gICAgICAgICAgICB7UEFHRV9IT01FX01PQ0tfQ0FSRFMubWFwKGNhcmQgPT4gKFxuICAgICAgICAgICAgICA8U0NQYWdlSG9tZUNhcmQga2V5PXtjYXJkLmlkfSB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gaGFuZGxlU2VuZCh0KGNhcmQudGl0bGVLZXkpKX0+XG4gICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVDYXJkSWNvbiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgICAgIHtyZW5kZXJBY3Rpb25JY29uKGNhcmQuaWNvbiwgeyB3aWR0aDogMTgsIGhlaWdodDogMTggfSl9XG4gICAgICAgICAgICAgICAgPC9TQ1BhZ2VIb21lQ2FyZEljb24+XG4gICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVDYXJkQ29weT5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lQ2FyZFRpdGxlPnt0KGNhcmQudGl0bGVLZXkpfTwvU0NQYWdlSG9tZUNhcmRUaXRsZT5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lQ2FyZFN1YnRpdGxlPnt0KGNhcmQuc3VidGl0bGVLZXkpfTwvU0NQYWdlSG9tZUNhcmRTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICA8L1NDUGFnZUhvbWVDYXJkQ29weT5cbiAgICAgICAgICAgICAgPC9TQ1BhZ2VIb21lQ2FyZD5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvU0NQYWdlSG9tZUFjdGlvbnM+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ1BhZ2VIb21lQWN0aW9uc1JldmVhbD5cbiAgICApXG4gIH1cblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbGVhdmluZykgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaW5wdXRFbCA9IGlucHV0UmVmLmN1cnJlbnRcbiAgICBjb25zdCBtZXNzYWdlRWwgPSBtZXNzYWdlUmVmLmN1cnJlbnRcbiAgICBjb25zdCBmaXJzdFRvcCA9IGZpcnN0SW5wdXRUb3BSZWYuY3VycmVudFxuXG4gICAgaWYgKGlucHV0RWwpIHtcbiAgICAgIGNvbnN0IGR5ID0gZmlyc3RUb3AgLSBpbnB1dEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgaW5wdXRFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke2R5fXB4KWBcbiAgICAgIGlucHV0RWwuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJ1xuICAgIH1cblxuICAgIGlmIChtZXNzYWdlRWwpIHtcbiAgICAgIGNvbnN0IHN0YXJ0WSA9IGZpcnN0VG9wIC0gbWVzc2FnZUVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgbWVzc2FnZUVsLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7c3RhcnRZfXB4KWBcbiAgICAgIG1lc3NhZ2VFbC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBtZXNzYWdlRWwuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJ1xuICAgIH1cblxuICAgIGxldCBpbm5lclBsYXkgPSAwXG4gICAgY29uc3QgcGxheSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaW5uZXJQbGF5ID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChpbnB1dEVsKSB7XG4gICAgICAgICAgaW5wdXRFbC5zdHlsZS50cmFuc2l0aW9uID0gYHRyYW5zZm9ybSAke0xFQVZFX01TfW1zIGN1YmljLWJlemllcigwLjMyLCAwLjcyLCAwLCAxKWBcbiAgICAgICAgICBpbnB1dEVsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKDApJ1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXNzYWdlRWwpIHtcbiAgICAgICAgICBtZXNzYWdlRWwuc3R5bGUudHJhbnNpdGlvbiA9IGB0cmFuc2Zvcm0gJHtMRUFWRV9NU31tcyBjdWJpYy1iZXppZXIoMC4zMiwgMC43MiwgMCwgMSksIG9wYWNpdHkgMTYwbXMgZWFzZS1vdXRgXG4gICAgICAgICAgbWVzc2FnZUVsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKDApJ1xuICAgICAgICAgIG1lc3NhZ2VFbC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGNvbnN0IGRvbmUgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBwZW5kaW5nID0gcGVuZGluZ1NlbmRSZWYuY3VycmVudFxuICAgICAgcGVuZGluZ1NlbmRSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIGlmIChwZW5kaW5nKSB7XG4gICAgICAgIG9uU2VuZE1lc3NhZ2VSZWYuY3VycmVudCguLi5wZW5kaW5nKVxuICAgICAgfVxuICAgIH0sIExFQVZFX01TICsgNDApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHBsYXkpXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW5uZXJQbGF5KVxuICAgICAgd2luZG93LmNsZWFyVGltZW91dChkb25lKVxuICAgIH1cbiAgfSwgW2xlYXZpbmddKVxuXG4gIHJldHVybiAoXG4gICAgPFNDUGFnZUhvbWVSb290PlxuICAgICAgPFNDUGFnZUhvbWVHbG93TGF5ZXIgJGxlYXZpbmc9e2xlYXZpbmd9IGFyaWEtaGlkZGVuPlxuICAgICAgICA8U0NQYWdlSG9tZUdsb3dCbHVlT3V0ZXIgLz5cbiAgICAgICAgPFNDUGFnZUhvbWVHbG93Qmx1ZUlubmVyIC8+XG4gICAgICAgIDxTQ1BhZ2VIb21lR2xvd1Zpb2xldCAvPlxuICAgICAgPC9TQ1BhZ2VIb21lR2xvd0xheWVyPlxuICAgICAgPFNDUGFnZUhvbWVDZW50ZXIgJGxlYXZpbmc9e2xlYXZpbmd9PlxuICAgICAgICB7bGVhdmluZyA/IChcbiAgICAgICAgICA8U0NQYWdlSG9tZUxlYXZlTWVzc2FnZSByZWY9e21lc3NhZ2VSZWZ9PlxuICAgICAgICAgICAgPFNDUGFnZUhvbWVMZWF2ZUJ1YmJsZT57bGVhdmVUZXh0fTwvU0NQYWdlSG9tZUxlYXZlQnViYmxlPlxuICAgICAgICAgIDwvU0NQYWdlSG9tZUxlYXZlTWVzc2FnZT5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ1BhZ2VIb21lV2VsY29tZVJldmVhbCAkbGVhdmluZz17bGVhdmluZ30+XG4gICAgICAgICAge2hhc0FnZW50ID8gKFxuICAgICAgICAgICAgPFNDUGFnZUhvbWVXZWxjb21lICRhZ2VudD17IWlzTUFJQX0+XG4gICAgICAgICAgICAgIHtpc01BSUEgPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lR3JlZXRpbmc+e2dyZWV0aW5nfTwvU0NQYWdlSG9tZUdyZWV0aW5nPlxuICAgICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVTdWJ0aXRsZT57dCgncGFnZUhvbWUuc3VidGl0bGUnKX08L1NDUGFnZUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPFNDUGFnZUhvbWVTdWJ0aXRsZT57YWdlbnQ/Lm5hbWV9PC9TQ1BhZ2VIb21lU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnQuY3JlYXRlZF9ieS5pc19kZWxldGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lQWdlbnRBdXRob3I+XG4gICAgICAgICAgICAgICAgICAgICAgICB7dCgncGFnZUhvbWUuY3JlYXRlZEJ5JywgeyBuYW1lOiBhZ2VudC5jcmVhdGVkX2J5Lm5hbWUgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ1BhZ2VIb21lQWdlbnRBdXRob3I+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2ludHJvZHVjdGlvbiA/IDxTQ1BhZ2VIb21lQWdlbnRJbnRybz57aW50cm9kdWN0aW9ufTwvU0NQYWdlSG9tZUFnZW50SW50cm8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NQYWdlSG9tZVdlbGNvbWU+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU0NQYWdlSG9tZVdlbGNvbWVSZXZlYWw+XG4gICAgICAgIHtsZWF2aW5nID8gbnVsbCA6IChcbiAgICAgICAgICA8U0NQYWdlSG9tZUNvbXBvc2VyPlxuICAgICAgICAgICAgPFNDUGFnZUhvbWVJbnB1dCByZWY9e2lucHV0UmVmfT5cbiAgICAgICAgICAgICAgPENoYXRBSVBhZ2VIb21lSW5wdXQgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZH0gLz5cbiAgICAgICAgICAgIDwvU0NQYWdlSG9tZUlucHV0PlxuICAgICAgICAgIDwvU0NQYWdlSG9tZUNvbXBvc2VyPlxuICAgICAgICApfVxuICAgICAgICB7cmVuZGVyQWN0aW9uQ2FyZHMobGVhdmluZyl9XG4gICAgICA8L1NDUGFnZUhvbWVDZW50ZXI+XG4gICAgICB7bGVhdmluZyA/IChcbiAgICAgICAgPFNDUGFnZUhvbWVMZWF2ZUZvb3Rlcj5cbiAgICAgICAgICA8U0NQYWdlSG9tZUNvbXBvc2VyICRsZWF2aW5nPlxuICAgICAgICAgICAgPFNDUGFnZUhvbWVJbnB1dCByZWY9e2lucHV0UmVmfT5cbiAgICAgICAgICAgICAgPENoYXRBSVBhZ2VIb21lSW5wdXQgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZH0gZGlzYWJsZWQgLz5cbiAgICAgICAgICAgIDwvU0NQYWdlSG9tZUlucHV0PlxuICAgICAgICAgIDwvU0NQYWdlSG9tZUNvbXBvc2VyPlxuICAgICAgICAgIDxTQ1BhZ2VIb21lRGlzY2xhaW1lciAkY29tcGFjdD5cbiAgICAgICAgICAgIDxDaGF0RGlzY2xhaW1lck1lc3NhZ2UgbWVzc2FnZT17ZGlzY2xhaW1lck1lc3NhZ2V9IC8+XG4gICAgICAgICAgPC9TQ1BhZ2VIb21lRGlzY2xhaW1lcj5cbiAgICAgICAgPC9TQ1BhZ2VIb21lTGVhdmVGb290ZXI+XG4gICAgICApIDogKFxuICAgICAgICA8U0NQYWdlSG9tZURpc2NsYWltZXI+XG4gICAgICAgICAge2Rpc2NsYWltZXJNZXNzYWdlID8gPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDUGFnZUhvbWVEaXNjbGFpbWVyPlxuICAgICAgKX1cbiAgICA8L1NDUGFnZUhvbWVSb290PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsSUFBSSxFQUFFQyxXQUFXLEVBQUVDLGVBQWUsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3JGLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MscUJBQXFCLFFBQVEsbUNBQW1DO0FBQ3pFLFNBQVNDLFVBQVUsUUFBUSx1Q0FBdUM7QUFDbEUsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsd0NBQXdDO0FBQ3ZFLFNBQVNDLGdCQUFnQixRQUFRLDhCQUE4QjtBQUUvRCxTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUN6QyxTQUFTQyxvQkFBb0IsUUFBUSxxQkFBcUI7QUFDMUQsU0FDRUMsaUJBQWlCLEVBQ2pCQyx1QkFBdUIsRUFDdkJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyxjQUFjLEVBQ2RDLGtCQUFrQixFQUNsQkMsa0JBQWtCLEVBQ2xCQyxzQkFBc0IsRUFDdEJDLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxrQkFBa0IsRUFDbEJDLG9CQUFvQixFQUNwQkMsdUJBQXVCLEVBQ3ZC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
|