@projectcor/maia-components 2.11.26-7 → 2.11.26-8
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/hooks/useChatManager/useChatManager.js +20 -8
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +8 -5
- package/lib/hooks/useProjectSearch.js +11 -4
- package/lib/services/maia/Orchestrator/orchestrator.js +6 -4
- package/lib/services/query/projectSearchByValueQuery.js +2 -2
- package/lib/types/Project.js +1 -1
- package/package.json +1 -1
|
@@ -662,7 +662,7 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
662
662
|
projects = _context3.sent;
|
|
663
663
|
payloadFaqId = faqId !== null && faqId !== void 0 ? faqId : options.faqId;
|
|
664
664
|
payloadAgentSuggestionId = agentSuggestionId !== null && agentSuggestionId !== void 0 ? agentSuggestionId : options.agentSuggestionId;
|
|
665
|
-
payloadData = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
665
|
+
payloadData = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
666
666
|
message: finalMessage,
|
|
667
667
|
history: history,
|
|
668
668
|
projectId: projectToRequest,
|
|
@@ -677,11 +677,15 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
677
677
|
agentId: currentAgentFromMessages || (agent === null || agent === void 0 ? void 0 : agent.id),
|
|
678
678
|
isWebSearchActive: isWebSearchActiveRef.current,
|
|
679
679
|
isDeepSearchActive: isDeepSearchActiveRef.current
|
|
680
|
-
},
|
|
680
|
+
}, (project === null || project === void 0 ? void 0 : project.feeId) != null ? {
|
|
681
|
+
feeId: Number(project.feeId)
|
|
682
|
+
} : {}), client !== null && client !== void 0 && client.id ? _objectSpread({
|
|
681
683
|
clientId: client.id
|
|
682
684
|
}, client.name ? {
|
|
683
685
|
clientName: client.name
|
|
684
|
-
} : {}) : project
|
|
686
|
+
} : {}) : (project === null || project === void 0 ? void 0 : project.clientId) != null ? {
|
|
687
|
+
clientId: Number(project.clientId)
|
|
688
|
+
} : project !== null && project !== void 0 && (_project$client = project.client) !== null && _project$client !== void 0 && _project$client.id ? _objectSpread({
|
|
685
689
|
clientId: project.client.id
|
|
686
690
|
}, project.client.name ? {
|
|
687
691
|
clientName: project.client.name
|
|
@@ -719,7 +723,7 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
719
723
|
role: historyMessage.user.id === authUser.id.toString() ? ChatHistoryRole.USER : ChatHistoryRole.ASSISTANT
|
|
720
724
|
};
|
|
721
725
|
});
|
|
722
|
-
askMaia(_objectSpread({
|
|
726
|
+
askMaia(_objectSpread(_objectSpread(_objectSpread({
|
|
723
727
|
message: currentUserQuestion.current,
|
|
724
728
|
history: history,
|
|
725
729
|
projectId: option.id,
|
|
@@ -734,7 +738,11 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
734
738
|
agentId: (agent === null || agent === void 0 ? void 0 : agent.id) || '',
|
|
735
739
|
isWebSearchActive: isWebSearchActiveRef.current,
|
|
736
740
|
isDeepSearchActive: isDeepSearchActiveRef.current
|
|
737
|
-
}, (
|
|
741
|
+
}, (option === null || option === void 0 ? void 0 : option.feeId) != null ? {
|
|
742
|
+
feeId: Number(option.feeId)
|
|
743
|
+
} : {}), (option === null || option === void 0 ? void 0 : option.clientId) != null ? {
|
|
744
|
+
clientId: Number(option.clientId)
|
|
745
|
+
} : {}), (agent === null || agent === void 0 ? void 0 : agent.entity) != null ? {
|
|
738
746
|
agentEntity: agent.entity
|
|
739
747
|
} : {}));
|
|
740
748
|
}
|
|
@@ -950,7 +958,7 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
950
958
|
role: historyMessage.user.id === authUser.id.toString() ? ChatHistoryRole.USER : ChatHistoryRole.ASSISTANT
|
|
951
959
|
};
|
|
952
960
|
});
|
|
953
|
-
askMaia(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
961
|
+
askMaia(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
954
962
|
message: userInitialMessage.message,
|
|
955
963
|
history: history,
|
|
956
964
|
projectId: (project === null || project === void 0 ? void 0 : project.id) || null,
|
|
@@ -965,8 +973,12 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
965
973
|
agentId: agent === null || agent === void 0 ? void 0 : agent.id,
|
|
966
974
|
isWebSearchActive: isWebSearchActiveRef.current,
|
|
967
975
|
isDeepSearchActive: isDeepSearchActiveRef.current
|
|
968
|
-
},
|
|
976
|
+
}, (project === null || project === void 0 ? void 0 : project.feeId) != null ? {
|
|
977
|
+
feeId: Number(project.feeId)
|
|
978
|
+
} : {}), client !== null && client !== void 0 && client.id ? {
|
|
969
979
|
clientId: client.id
|
|
980
|
+
} : (project === null || project === void 0 ? void 0 : project.clientId) != null ? {
|
|
981
|
+
clientId: Number(project.clientId)
|
|
970
982
|
} : project !== null && project !== void 0 && (_project$client2 = project.client) !== null && _project$client2 !== void 0 && _project$client2.id ? {
|
|
971
983
|
clientId: project.client.id
|
|
972
984
|
} : {}), project !== null && project !== void 0 && project.name ? {
|
|
@@ -1022,4 +1034,4 @@ export var useChatManager = function useChatManager(_ref3) {
|
|
|
1022
1034
|
isDisabled: waitingResponse || loadingMessages
|
|
1023
1035
|
};
|
|
1024
1036
|
};
|
|
1025
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidjQiLCJ1dWlkdjQiLCJ1c2VDaGF0TWVzc2FnZXMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJ1c2VUIiwidXNlVXNlciIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIm1haWEiLCJGZWVkYmFjayIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVByb2plY3RzIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwiZmV0Y2hBZ2VudERldGFpbCIsIm5vcm1hbGl6ZVNlbmRNZXNzYWdlQXJncyIsImF0dGFjaG1lbnRzT3JPcHRpb25zIiwiX29wdGlvbnMkYXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJhdHRhY2htZW50cyIsIm9wdGlvbnMiLCJleHRyYWN0VGFza0lkc0Zyb21EZWxldGVQZW5kaW5nQWN0aW9ucyIsInBlbmRpbmdBY3Rpb25zIiwiaWRzIiwiZm9yRWFjaCIsImFjdGlvbiIsIl90eXBlb2YiLCJhcmdzIiwidG9vbF9hcmdzIiwicmVjIiwidG9vbF9uYW1lIiwiX3JlYyR0YXNrX2lkIiwicmF3IiwidGFza19pZCIsImlkIiwibiIsInBhcnNlSW50IiwiU3RyaW5nIiwiTnVtYmVyIiwiaXNOYU4iLCJwdXNoIiwibGlzdCIsInRhc2tfaWRzIiwidGlkIiwiZXh0cmFjdEFnZW50SWRGcm9tRWRpdEFnZW50UGVuZGluZ0FjdGlvbnMiLCJfcmVjJGFnZW50X2lkIiwiZWRpdEFjdGlvbiIsImZpbmQiLCJhIiwidG9Mb3dlckNhc2UiLCJhZ2VudF9pZCIsImFnZW50SWQiLCJleHRyYWN0QWdlbnRJZEZyb21QZW5kaW5nQWN0aW9uc0J5VG9vbE5hbWUiLCJ0b29sTmFtZSIsIl9yZWYiLCJfcmVjJGFnZW50X2lkMiIsImV4dHJhY3RUYXNrSWRzRnJvbUFzc2lzdGFudERlbGV0aW9uVGV4dCIsInRleHQiLCJsYWJlbGVkIiwibWF0Y2giLCJib2xkIiwidXNlU3RhYmxlQ2FsbGJhY2tzIiwiYXV0aFVzZXIiLCJjdXJyZW50VXNlciIsInRvU3RyaW5nIiwibmFtZSIsImZpcnN0TmFtZSIsImF2YXRhciIsInBpY3R1cmUiLCJjdXJyZW50IiwicGFyc2VTU0VMaW5lIiwibGluZSIsInRyaW0iLCJfbGluZSRzcGxpdCIsInNwbGl0IiwiX2xpbmUkc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsInJlcGxhY2UiLCJkYXRhU3RyIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBhcnNlRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzU1NFU3RyZWFtIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwidGhyZWFkSWQiLCJjYWxsYmFja3MiLCJfcmVzcG9uc2UkYm9keSIsInJlYWRlciIsImRlY29kZXIiLCJidWZmZXIiLCJhY2N1bXVsYXRlZENvbnRlbnQiLCJpc1N0cmVhbUNvbXBsZXRlIiwiaGFuZGxlTGluZSIsIl95aWVsZCRyZWFkZXIkcmVhZCIsImRvbmUiLCJ2YWx1ZSIsImxpbmVzIiwiaSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiX2hhbmRsZUxpbmUiLCJwYXJzZWQiLCJldmVudERhdGEiLCJjb250ZW50Iiwib25Ub2tlbiIsIm1lc3NhZ2UiLCJvbk5vZGUiLCJfZXZlbnREYXRhJGFnZW50X2lkIiwiZmluYWxDb250ZW50Iiwic291cmNlcyIsIm1lbW9yeVNlc3Npb25JZCIsIm1lbW9yeV9zZXNzaW9uX2lkIiwic3VnZ2VzdGlvbnMiLCJzdWdnZXN0X3JlcGx5IiwiYWdlbnRJZFJhdyIsImNvbXBsZXRlZEFnZW50SWQiLCJvbkNvbXBsZXRlIiwiX2NhbGxiYWNrcyRvbkFwcHJvdmFsIiwib25BcHByb3ZhbFJlcXVpcmVkIiwiY2FsbCIsIm9uRXJyb3IiLCJib2R5IiwiZ2V0UmVhZGVyIiwiRXJyb3IiLCJUZXh0RGVjb2RlciIsInJlYWQiLCJzZW50IiwiYWJydXB0IiwiZGVjb2RlIiwic3RyZWFtIiwicG9wIiwibGVuZ3RoIiwic3RvcCIsIl94IiwiX3gyIiwiX3gzIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VDaGF0TWFuYWdlciIsIl9yZWYzIiwiaW5pdGlhbENoYXRJZCIsImNoYXRJZCIsInVzZXJJbml0aWFsTWVzc2FnZSIsIl9yZWYzJGFnZW50cyIsImFnZW50cyIsIl91c2VUIiwidCIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsInNldFByb2plY3QiLCJjbGllbnQiLCJzZXRDbGllbnQiLCJhZ2VudCIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2hpcHNQcm9qZWN0IiwiZXZlbnQiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZVN0YWJsZUNhbGxiYWNrcyIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwiY3VycmVudE1lc3NhZ2VJZCIsImN1cnJlbnRVc2VyUXVlc3Rpb24iLCJjdXJyZW50Q2hhdElkIiwicmVwb3J0ZWRFdmVudCIsIm1lc3NhZ2VzUmVmIiwiaXNQcm9jZXNzaW5nUmVmIiwiZmlyc3RUaW1lUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUxvYWRpbmdzIiwic2V0QWN0aXZlTG9hZGluZ3MiLCJpc1dlYlNlYXJjaEFjdGl2ZVJlZiIsImlzRGVlcFNlYXJjaEFjdGl2ZVJlZiIsIl91c2VDaGF0TWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJtZXNzYWdlcyIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsImxvYWRNZXNzYWdlcyIsImFkZE1lc3NhZ2UiLCJyZW1vdmVNZXNzYWdlIiwiaGFuZGxlU2Nyb2xsIiwiY3VzdG9tRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsImxhc3RNc2dXaXRoUHJvamVjdCIsImZpbHRlciIsIm1zZyIsInByb2plY3RJZCIsImF0IiwiX3JlZjQiLCJwcm9qZWN0TmFtZSIsInRoZW4iLCJwcm9qZWN0cyIsImZvdW5kIiwicCIsIl9mb3VuZCRjbGllbnQiLCJjbGllbnROYW1lIiwibGFzdE1zZ1dpdGhDbGllbnQiLCJjbGllbnRJZCIsIl9yZWY1IiwibXNnQ2xpZW50SWQiLCJtc2dDbGllbnROYW1lIiwiaGFuZGxlU3RyZWFtRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJjb25jYXQiLCJpc0Vycm9yIiwiZGF0ZSIsIkRhdGUiLCJ1c2VyIiwicm9sZSIsIkFTU0lTVEFOVCIsImhhbmRsZVN0cmVhbVVwZGF0ZSIsInRlbXBNZXNzYWdlSWQiLCJoYW5kbGVTdHJlYW1GaW5pc2giLCJfcmVmNiIsIl9jYWxsZWUyIiwiX3ByZXZpb3VzTWVzc2FnZSRhcHByIiwiX2NyZWF0ZUFnZW50Rm9sbG93VXAiLCJfZWRpdEFnZW50Rm9sbG93VXAiLCJ0YXNrVXJsUmVnZXgiLCJtYXRjaGVzIiwiY29udGVudFRvQWRkIiwicHJldmlvdXNNZXNzYWdlIiwiaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSIsIlRBU0tfQ1JFQVRJT05fVE9PTFMiLCJUQVNLX0VESVRfVE9PTFMiLCJUQVNLX0RFTEVURV9UT09MUyIsIndhc1Rhc2tDcmVhdGlvbiIsIndhc1Rhc2tFZGl0Iiwid2FzVGFza0RlbGV0ZSIsIndhc0NyZWF0ZUFnZW50QXBwcm92ZWQiLCJ3YXNDb25maWd1cmVBZ2VudEFjY2Vzc0FwcHJvdmVkIiwiY3JlYXRlQWdlbnRGb2xsb3dVcCIsImNvbmZpZ3VyZWRBZ2VudElkIiwid2FzRWRpdEFnZW50QXBwcm92ZWQiLCJlZGl0QWdlbnRGb2xsb3dVcCIsImZyb21TdHJlYW0iLCJmcm9tQXJncyIsInJlc29sdmVkQWdlbnRJZCIsInRhc2tJZHNGcm9tVXJscyIsInRhc2tJZHNGcm9tRGVsZXRlQXBwcm92YWwiLCJ0YXNrSWRzRnJvbURlbGV0aW9uVGV4dCIsInRhc2tJZHNGb3JEYXNoYm9hcmQiLCJzaG91bGRTeW5jRGFzaGJvYXJkIiwidGFza0lkcyIsInRhYiIsInRhYlNlZ21lbnQiLCJsYXN0UHJvamVjdE1lc3NhZ2UiLCJjb250ZXh0UHJvamVjdElkUmF3IiwiY29udGV4dFByb2plY3RJZCIsInBhdGhNYXRjaCIsInJvdXRlUHJvamVjdElkIiwiaXNPblByb2plY3RSb3V0ZSIsIl93aW5kb3ckbmV3UHJvamVjdERhcyIsIl93aW5kb3ckbmV3UHJvamVjdERhczIiLCJfd2luZG93JG5ld1Byb2plY3REYXMzIiwiX3dpbmRvdyRuZXdQcm9qZWN0RGFzNCIsIl93aW5kb3ckbmV3UHJvamVjdERhczUiLCJfd2luZG93JG5ld1Byb2plY3REYXM2IiwiX2NvbnRleHQyIiwiUmVnRXhwIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWF0Y2hBbGwiLCJtIiwiYXBwcm92YWwiLCJwZW5kaW5nX2FjdGlvbnMiLCJzb21lIiwiaW5jbHVkZXMiLCJhcHByb3ZhbFN0YXR1cyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJtYXAiLCJ1cmwiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwibmV3UHJvamVjdERhc2hib2FyZCIsImFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkIiwiZWRpdEV4aXN0aW5nVGFza0luRGFzaGJvYXJkIiwiZGVsZXRlRXhpc3RpbmdUYXNrRnJvbURhc2hib2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QWdlbnQiLCJlcnIiLCJfeDQiLCJfeDUiLCJfeDYiLCJfeDciLCJfeDgiLCJoYW5kbGVTdHJlYW1TdG9wIiwiaXNGcm9udGVuZENhbmNlbGxlZCIsInNldFRpbWVvdXQiLCJoYW5kbGVBcHByb3ZhbFJlcXVpcmVkIiwib3JpZ2luYWxfdGhyZWFkX2lkIiwiX3VzZU9yY2hlc3RyYXRvclN0cmVhIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RvcCIsImFza01haWEiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc0xvYWRpbmciLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsInN0b3BTdHJlYW1pbmciLCJjdXJyZW50UHJvamVjdCIsInNlbmRNZXNzYWdlIiwiX3JlZjciLCJfY2FsbGVlMyIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsIl9wcm9qZWN0JGNsaWVudCIsIl9ub3JtYWxpemVTZW5kTWVzc2FnZSIsIm5ld01lc3NhZ2VJZCIsImxhc3RNZXNzYWdlV2l0aFByb2plY3QiLCJjdXJyZW50QWdlbnRGcm9tTWVzc2FnZXMiLCJmaW5hbE1lc3NhZ2UiLCJfb3B0aW9ucyRwcm9qZWN0Q2hhbmciLCJoaXN0b3J5IiwibGFzdE1lc3NhZ2VQcm9qZWN0SWQiLCJwcm9qZWN0VG9SZXF1ZXN0IiwicGF5bG9hZEZhcUlkIiwicGF5bG9hZEFnZW50U3VnZ2VzdGlvbklkIiwicGF5bG9hZERhdGEiLCJfY29udGV4dDMiLCJwbUFpVHlwZWRUZXh0IiwiVVNFUiIsInByb2plY3RDaGFuZ2VkIiwiaW5jb21lVHlwZSIsImhpc3RvcnlNZXNzYWdlIiwiaXNGaW5pdGUiLCJsYW5nIiwidXNlcklkIiwibGFzdE5hbWUiLCJjb21wYW55SWQiLCJjb21wYW55X2lkIiwibWVzc2FnZUlkIiwiYWdlbnROYW1lIiwiZW50aXR5IiwiYWdlbnRFbnRpdHkiLCJfeDkiLCJfeDAiLCJfeDEiLCJfeDEwIiwiY2hhbmdlUHJvamVjdCIsIm9wdGlvbiIsImhhbmRsZUZlZWRiYWNrIiwiX3JlZjgiLCJfY2FsbGVlNCIsImZlZWRiYWNrUHJvcCIsImNoYXRNZXNzYWdlSWQiLCJfY29udGV4dDQiLCJDaGF0cyIsIndhc0hlbHBmdWxDaGF0IiwiVEhVTUJTX1VQIiwid2FzSGVscGZ1bCIsIl94MTEiLCJfeDEyIiwiaGFuZGxlQXBwcm92YWxEZWNpc2lvbiIsIl9yZWY5IiwiX2NhbGxlZTUiLCJ0aHJlYWRJZHMiLCJkZWNpc2lvbiIsImVkaXRlZEFjdGlvbnMiLCJtZXNzYWdlV2l0aEFwcHJvdmFsIiwibG9hZGluZ0tleSIsImV4aXN0aW5nTWVzc2FnZSIsIm5ld1N0YXR1cyIsIl90IiwiX2NvbnRleHQ1IiwiX20kYXBwcm92YWwiLCJ0aHJlYWRfaWQiLCJfZGVmaW5lUHJvcGVydHkiLCJPcmNoZXN0cmF0b3IiLCJjb250aW51ZVRocmVhZCIsInNlc3Npb25JZCIsInNlc3Npb25faWQiLCJvayIsIm5ld0xvYWRpbmdzIiwiY3VycmVudFRocmVhZElkIiwiZGlzcGxheU1zZyIsImFwcHJvdmFsUGF5bG9hZCIsIl94MTMiLCJfeDE0IiwiX3gxNSIsImluaXRpYWxpemVDaGF0IiwiX2NhbGxlZTYiLCJfdXNlckluaXRpYWxNZXNzYWdlJG0iLCJfdXNlckluaXRpYWxNZXNzYWdlJGEiLCJfcHJvamVjdCRjbGllbnQyIiwiX3Byb2plY3QkY2xpZW50MyIsImhhc0luaXRpYWxNZXNzYWdlIiwiaGFzSW5pdGlhbEF0dGFjaG1lbnRzIiwiaGFzSW5pdGlhbEZhcSIsIl9jb250ZXh0NiIsIkJvb2xlYW4iLCJyZXNldENoYXQiLCJzdG9wR2VuZXJhdGlvbiIsImlzRGlzYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1hbmFnZXIvdXNlQ2hhdE1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmFkaXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0ZWQtb3B0aW9uYWwtY2hhaW4gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyB1c2VDaGF0TWVzc2FnZXMgfSBmcm9tICcuLi91c2VDaGF0TWVzc2FnZXMnXG5pbXBvcnQgeyB1c2VPcmNoZXN0cmF0b3JTdHJlYW0gfSBmcm9tICcuLi91c2VPcmNoZXN0cmF0b3JTdHJlYW0nXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgU2VuZE1lc3NhZ2VPcHRpb25zLCBVc2VDaGF0TWFuYWdlclByb3BzIH0gZnJvbSAnLi91c2VDaGF0TWFuYWdlci5pbnRlcmZhY2UnXG5pbXBvcnQgeyB1c2VVc2VyLCBDT1JVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uL3VzZUV2ZW50J1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjaydcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZVVzZXIsIENoYXRIaXN0b3J5Um9sZSwgQXBwcm92YWxSZXF1ZXN0LCBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcblxuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyB1c2VQcm9qZWN0cyB9IGZyb20gJy4uL3VzZVByb2plY3RzJ1xuaW1wb3J0IHsgdXNlVGFiVGFza0RlZmF1bHQgfSBmcm9tICcuLi91c2VUYWJUYXNrRGVmYXVsdCdcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBmZXRjaEFnZW50RGV0YWlsIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZmV0Y2hBZ2VudERldGFpbCdcblxudHlwZSBBdHRhY2htZW50c09yT3B0aW9ucyA9IEF0dGFjaG1lbnRGaWxlW10gfCBTZW5kTWVzc2FnZU9wdGlvbnNcblxuY29uc3Qgbm9ybWFsaXplU2VuZE1lc3NhZ2VBcmdzID0gKGF0dGFjaG1lbnRzT3JPcHRpb25zPzogQXR0YWNobWVudHNPck9wdGlvbnMpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXR0YWNobWVudHNPck9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIHsgYXR0YWNobWVudHM6IGF0dGFjaG1lbnRzT3JPcHRpb25zLCBvcHRpb25zOiB7fSBhcyBTZW5kTWVzc2FnZU9wdGlvbnMgfVxuICB9XG5cbiAgY29uc3Qgb3B0aW9uczogU2VuZE1lc3NhZ2VPcHRpb25zID0gYXR0YWNobWVudHNPck9wdGlvbnMgPz8ge31cbiAgcmV0dXJuIHsgYXR0YWNobWVudHM6IG9wdGlvbnMuYXR0YWNobWVudHMgPz8gW10sIG9wdGlvbnMgfVxufVxuXG4vKiogdGFza19pZCAvIHRhc2tfaWRzIGVuIHBlbmRpbmdfYWN0aW9ucyBkZSBkZWxldGVfKiAobGEgcmVzcHVlc3RhIHB1ZWRlIG5vIGluY2x1aXIgVVJMcyAvdGFza3Mv4oCmL2RldGFpbCkuICovXG5mdW5jdGlvbiBleHRyYWN0VGFza0lkc0Zyb21EZWxldGVQZW5kaW5nQWN0aW9ucyhwZW5kaW5nQWN0aW9uczogUGVuZGluZ0FjdGlvbltdKTogbnVtYmVyW10ge1xuICBjb25zdCBpZHM6IG51bWJlcltdID0gW11cbiAgcGVuZGluZ0FjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgIGlmICghYWN0aW9uIHx8IHR5cGVvZiBhY3Rpb24gIT09ICdvYmplY3QnKSByZXR1cm5cbiAgICBjb25zdCBhcmdzID0gYWN0aW9uLnRvb2xfYXJnc1xuICAgIGlmICghKGFyZ3MgJiYgdHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGFyZ3MpKSkgcmV0dXJuXG4gICAgY29uc3QgcmVjID0gYXJncyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgIGlmIChhY3Rpb24udG9vbF9uYW1lID09PSAnZGVsZXRlX3Rhc2snKSB7XG4gICAgICBjb25zdCByYXcgPSByZWMudGFza19pZCA/PyByZWMuaWRcbiAgICAgIGlmIChyYXcgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBuID0gcGFyc2VJbnQoU3RyaW5nKHJhdyksIDEwKVxuICAgICAgICBpZiAoIU51bWJlci5pc05hTihuKSkgaWRzLnB1c2gobilcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFjdGlvbi50b29sX25hbWUgPT09ICdkZWxldGVfdGFza3NfYmF0Y2gnKSB7XG4gICAgICBjb25zdCBsaXN0ID0gcmVjLnRhc2tfaWRzXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0KSkge1xuICAgICAgICBsaXN0LmZvckVhY2godGlkID0+IHtcbiAgICAgICAgICBjb25zdCBuID0gcGFyc2VJbnQoU3RyaW5nKHRpZCksIDEwKVxuICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG4pKSBpZHMucHVzaChuKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGlkc1xufVxuXG5mdW5jdGlvbiBleHRyYWN0QWdlbnRJZEZyb21FZGl0QWdlbnRQZW5kaW5nQWN0aW9ucyhwZW5kaW5nQWN0aW9uczogUGVuZGluZ0FjdGlvbltdKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGVkaXRBY3Rpb24gPSBwZW5kaW5nQWN0aW9ucy5maW5kKGEgPT4gKGEudG9vbF9uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSAnZWRpdF9hZ2VudCcpXG4gIGlmIChcbiAgICAhZWRpdEFjdGlvbiB8fFxuICAgICFlZGl0QWN0aW9uLnRvb2xfYXJncyB8fFxuICAgIHR5cGVvZiBlZGl0QWN0aW9uLnRvb2xfYXJncyAhPT0gJ29iamVjdCcgfHxcbiAgICBBcnJheS5pc0FycmF5KGVkaXRBY3Rpb24udG9vbF9hcmdzKVxuICApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IHJlYyA9IGVkaXRBY3Rpb24udG9vbF9hcmdzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGNvbnN0IHJhdyA9IHJlYy5hZ2VudF9pZCA/PyByZWMuYWdlbnRJZFxuICByZXR1cm4gcmF3ICE9IG51bGwgPyBTdHJpbmcocmF3KSA6IG51bGxcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEFnZW50SWRGcm9tUGVuZGluZ0FjdGlvbnNCeVRvb2xOYW1lKHBlbmRpbmdBY3Rpb25zOiBQZW5kaW5nQWN0aW9uW10sIHRvb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgYWN0aW9uID0gcGVuZGluZ0FjdGlvbnMuZmluZChhID0+IChhLnRvb2xfbmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gdG9vbE5hbWUudG9Mb3dlckNhc2UoKSlcbiAgaWYgKCFhY3Rpb24gfHwgIWFjdGlvbi50b29sX2FyZ3MgfHwgdHlwZW9mIGFjdGlvbi50b29sX2FyZ3MgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoYWN0aW9uLnRvb2xfYXJncykpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IHJlYyA9IGFjdGlvbi50b29sX2FyZ3MgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgY29uc3QgcmF3ID0gcmVjLmFnZW50X2lkID8/IHJlYy5hZ2VudElkID8/IHJlYy5pZFxuICByZXR1cm4gcmF3ICE9IG51bGwgPyBTdHJpbmcocmF3KSA6IG51bGxcbn1cblxuLyoqIMOabHRpbW8gcmVjdXJzbyBzaSBubyBoYXkgbGlua3MgbmkgdG9vbF9hcmdzIHBhcnNlYWJsZXMgKHAuIGVqLiBcIklEICoqNzU5NzEwNioqXCIpLiAqL1xuZnVuY3Rpb24gZXh0cmFjdFRhc2tJZHNGcm9tQXNzaXN0YW50RGVsZXRpb25UZXh0KHRleHQ6IHN0cmluZyk6IG51bWJlcltdIHtcbiAgY29uc3QgbGFiZWxlZCA9IHRleHQubWF0Y2goL1xcYklEXFxzKlxcKlxcKihcXGQrKVxcKlxcKi9pKVxuICBpZiAobGFiZWxlZCkge1xuICAgIGNvbnN0IG4gPSBwYXJzZUludChsYWJlbGVkWzFdLCAxMClcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKG4pID8gW10gOiBbbl1cbiAgfVxuICBjb25zdCBib2xkID0gdGV4dC5tYXRjaCgvXFwqXFwqKFxcZHs1LH0pXFwqXFwqLylcbiAgaWYgKGJvbGQpIHtcbiAgICBjb25zdCBuID0gcGFyc2VJbnQoYm9sZFsxXSwgMTApXG4gICAgcmV0dXJuIE51bWJlci5pc05hTihuKSA/IFtdIDogW25dXG4gIH1cbiAgcmV0dXJuIFtdXG59XG5cbmNvbnN0IHVzZVN0YWJsZUNhbGxiYWNrcyA9IChhdXRoVXNlcjogQ09SVXNlcikgPT4ge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZVJlZjxDaGF0TWVzc2FnZVVzZXI+KHtcbiAgICBpZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICBuYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgYXZhdGFyOiBhdXRoVXNlci5waWN0dXJlLFxuICB9KVxuXG4gIGlmIChcbiAgICBjdXJyZW50VXNlci5jdXJyZW50LmlkICE9PSBhdXRoVXNlci5pZC50b1N0cmluZygpIHx8XG4gICAgY3VycmVudFVzZXIuY3VycmVudC5uYW1lICE9PSBhdXRoVXNlci5maXJzdE5hbWUgfHxcbiAgICBjdXJyZW50VXNlci5jdXJyZW50LmF2YXRhciAhPT0gYXV0aFVzZXIucGljdHVyZVxuICApIHtcbiAgICBjdXJyZW50VXNlci5jdXJyZW50ID0ge1xuICAgICAgaWQ6IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCksXG4gICAgICBuYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICBhdmF0YXI6IGF1dGhVc2VyLnBpY3R1cmUsXG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgY3VycmVudFVzZXI6IGN1cnJlbnRVc2VyLmN1cnJlbnQsXG4gIH1cbn1cblxuY29uc3QgcGFyc2VTU0VMaW5lID0gKGxpbmU6IHN0cmluZyk6IHsgZXZlbnRUeXBlOiBzdHJpbmc7IGRhdGE6IHVua25vd24gfSB8IG51bGwgPT4ge1xuICBpZiAoIWxpbmUudHJpbSgpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IFtldmVudExpbmUsIGRhdGFMaW5lXSA9IGxpbmUuc3BsaXQoJ1xcbicpXG4gIGlmICghZXZlbnRMaW5lIHx8ICFkYXRhTGluZSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBldmVudFR5cGUgPSBldmVudExpbmUucmVwbGFjZSgnZXZlbnQ6ICcsICcnKS50cmltKClcbiAgY29uc3QgZGF0YVN0ciA9IGRhdGFMaW5lLnJlcGxhY2UoJ2RhdGE6ICcsICcnKS50cmltKClcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpXG4gICAgcmV0dXJuIHsgZXZlbnRUeXBlLCBkYXRhIH1cbiAgfSBjYXRjaCAocGFyc2VFcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgU1NFIGRhdGE6JywgcGFyc2VFcnJvciwgZGF0YVN0cilcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmNvbnN0IHByb2Nlc3NTU0VTdHJlYW0gPSBhc3luYyAoXG4gIHJlc3BvbnNlOiBSZXNwb25zZSxcbiAgdGhyZWFkSWQ6IHN0cmluZyxcbiAgY2FsbGJhY2tzOiB7XG4gICAgb25Ub2tlbjogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZFxuICAgIG9uTm9kZTogKG1lc3NhZ2U6IHN0cmluZywgdGhyZWFkSWQ6IHN0cmluZykgPT4gdm9pZFxuICAgIG9uQ29tcGxldGU6IChcbiAgICAgIGZpbmFsQ29udGVudDogc3RyaW5nLFxuICAgICAgc291cmNlczogYW55LFxuICAgICAgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcsXG4gICAgICBjdXJyZW50VGhyZWFkSWQ6IHN0cmluZyxcbiAgICAgIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsLFxuICAgICAgYWdlbnRJZD86IHN0cmluZyB8IG51bGxcbiAgICApID0+IHZvaWRcbiAgICBvbkVycm9yOiAoZXJyb3I6IGFueSwgdGhyZWFkSWQ6IHN0cmluZykgPT4gdm9pZFxuICAgIG9uQXBwcm92YWxSZXF1aXJlZD86IChhcHByb3ZhbDogYW55LCBhY2N1bXVsYXRlZENvbnRlbnQ6IHN0cmluZywgY3VycmVudFRocmVhZElkOiBzdHJpbmcpID0+IHZvaWRcbiAgfVxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHk/LmdldFJlYWRlcigpXG4gIGlmICghcmVhZGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyByZWFkZXIgYXZhaWxhYmxlJylcbiAgfVxuXG4gIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICBsZXQgYnVmZmVyID0gJydcbiAgbGV0IGFjY3VtdWxhdGVkQ29udGVudCA9ICcnXG4gIGxldCBpc1N0cmVhbUNvbXBsZXRlID0gZmFsc2VcblxuICBmdW5jdGlvbiBoYW5kbGVMaW5lKGxpbmU6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlU1NFTGluZShsaW5lKVxuICAgIGlmICghcGFyc2VkKSByZXR1cm5cblxuICAgIGNvbnN0IHsgZXZlbnRUeXBlLCBkYXRhIH0gPSBwYXJzZWRcbiAgICBjb25zdCBldmVudERhdGEgPSBkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgICBpZiAoZXZlbnRUeXBlID09PSAndG9rZW4nKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gZXZlbnREYXRhLmNvbnRlbnQgYXMgc3RyaW5nXG4gICAgICBhY2N1bXVsYXRlZENvbnRlbnQgKz0gY29udGVudFxuICAgICAgY2FsbGJhY2tzLm9uVG9rZW4oYWNjdW11bGF0ZWRDb250ZW50KVxuICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSAnbm9kZScpIHtcbiAgICAgIGlmIChldmVudERhdGEubWVzc2FnZSAmJiB0eXBlb2YgZXZlbnREYXRhLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNhbGxiYWNrcy5vbk5vZGUoZXZlbnREYXRhLm1lc3NhZ2UsIHRocmVhZElkKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSAnY29tcGxldGUnKSB7XG4gICAgICBjb25zdCBmaW5hbENvbnRlbnQgPSAoZXZlbnREYXRhLmNvbnRlbnQgYXMgc3RyaW5nKSB8fCBhY2N1bXVsYXRlZENvbnRlbnRcbiAgICAgIGNvbnN0IHNvdXJjZXMgPSAoZXZlbnREYXRhLnNvdXJjZXMgYXMgdW5rbm93bikgfHwgbnVsbFxuICAgICAgY29uc3QgbWVtb3J5U2Vzc2lvbklkID0gKGV2ZW50RGF0YS5tZW1vcnlfc2Vzc2lvbl9pZCBhcyBzdHJpbmcpIHx8ICcnXG4gICAgICBjb25zdCBzdWdnZXN0aW9ucyA9IEFycmF5LmlzQXJyYXkoZXZlbnREYXRhLnN1Z2dlc3RfcmVwbHkpXG4gICAgICAgID8gKGV2ZW50RGF0YS5zdWdnZXN0X3JlcGx5IGFzIHN0cmluZ1tdKVxuICAgICAgICA6IEFycmF5LmlzQXJyYXkoZXZlbnREYXRhLnN1Z2dlc3Rpb25zKVxuICAgICAgICAgID8gKGV2ZW50RGF0YS5zdWdnZXN0aW9ucyBhcyBzdHJpbmdbXSlcbiAgICAgICAgICA6IG51bGxcbiAgICAgIGNvbnN0IGFnZW50SWRSYXcgPSBldmVudERhdGEuYWdlbnRfaWQgPz8gZXZlbnREYXRhLmFnZW50SWRcbiAgICAgIGNvbnN0IGNvbXBsZXRlZEFnZW50SWQgPSBhZ2VudElkUmF3ICE9IG51bGwgJiYgU3RyaW5nKGFnZW50SWRSYXcpLnRyaW0oKSAhPT0gJycgPyBTdHJpbmcoYWdlbnRJZFJhdykudHJpbSgpIDogbnVsbFxuICAgICAgY2FsbGJhY2tzLm9uQ29tcGxldGUoZmluYWxDb250ZW50LCBzb3VyY2VzLCBtZW1vcnlTZXNzaW9uSWQsIHRocmVhZElkLCBzdWdnZXN0aW9ucywgY29tcGxldGVkQWdlbnRJZClcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ2FwcHJvdmFsX3JlcXVpcmVkJykge1xuICAgICAgY2FsbGJhY2tzLm9uQXBwcm92YWxSZXF1aXJlZD8uKGV2ZW50RGF0YSwgYWNjdW11bGF0ZWRDb250ZW50LCB0aHJlYWRJZClcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgY2FsbGJhY2tzLm9uRXJyb3IoZXZlbnREYXRhLmVycm9yLCB0aHJlYWRJZClcbiAgICB9XG4gIH1cblxuICB3aGlsZSAoIWlzU3RyZWFtQ29tcGxldGUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKClcbiAgICBpZiAoZG9uZSkge1xuICAgICAgaXNTdHJlYW1Db21wbGV0ZSA9IHRydWVcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgYnVmZmVyICs9IGRlY29kZXIuZGVjb2RlKHZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KVxuICAgIGNvbnN0IGxpbmVzID0gYnVmZmVyLnNwbGl0KCdcXG5cXG4nKVxuICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBoYW5kbGVMaW5lKGxpbmVzW2ldKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdE1hbmFnZXIgPSAoe1xuICBjaGF0SWQ6IGluaXRpYWxDaGF0SWQsXG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgb25FcnJvcixcbiAgYWdlbnRzID0gW10sXG59OiBVc2VDaGF0TWFuYWdlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGF1dGhVc2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHtcbiAgICBwcm9qZWN0LFxuICAgIHNldFByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIHNldENsaWVudCxcbiAgICBhZ2VudCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgY2hpcHNQcm9qZWN0LFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBmZXRjaFByb2plY3RzIH0gPSB1c2VQcm9qZWN0cygpXG4gIGNvbnN0IHsgY3VycmVudFVzZXIgfSA9IHVzZVN0YWJsZUNhbGxiYWNrcyhhdXRoVXNlcilcbiAgY29uc3QgeyBnZXRUYWJUYXNrRGVmYXVsdCB9ID0gdXNlVGFiVGFza0RlZmF1bHQoKVxuICBjb25zdCBjdXJyZW50TWVzc2FnZUlkID0gdXNlUmVmKHV1aWR2NCgpKVxuICBjb25zdCBjdXJyZW50VXNlclF1ZXN0aW9uID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGN1cnJlbnRDaGF0SWQgPSB1c2VSZWYoaW5pdGlhbENoYXRJZCB8fCB1dWlkdjQoKSlcbiAgY29uc3QgcmVwb3J0ZWRFdmVudCA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgbWVzc2FnZXNSZWYgPSB1c2VSZWY8Q2hhdE1lc3NhZ2VbXT4oW10pXG4gIGNvbnN0IGlzUHJvY2Vzc2luZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgZmlyc3RUaW1lUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBbYWN0aXZlTG9hZGluZ3MsIHNldEFjdGl2ZUxvYWRpbmdzXSA9IHVzZVN0YXRlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KHt9KVxuXG4gIGNvbnN0IGlzV2ViU2VhcmNoQWN0aXZlUmVmID0gdXNlUmVmKGlzV2ViU2VhcmNoQWN0aXZlKVxuICBjb25zdCBpc0RlZXBTZWFyY2hBY3RpdmVSZWYgPSB1c2VSZWYoaXNEZWVwU2VhcmNoQWN0aXZlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaXNXZWJTZWFyY2hBY3RpdmVSZWYuY3VycmVudCA9IGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQgPSBpc0RlZXBTZWFyY2hBY3RpdmVcbiAgfSwgW2lzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmVdKVxuXG4gIGNvbnN0IHsgbG9hZGluZ01lc3NhZ2VzLCBtZXNzYWdlcywgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLCBsb2FkTWVzc2FnZXMsIGFkZE1lc3NhZ2UsIHJlbW92ZU1lc3NhZ2UsIGhhbmRsZVNjcm9sbCB9ID1cbiAgICB1c2VDaGF0TWVzc2FnZXMoe1xuICAgICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IGN1cnJlbnRDaGF0SWQuY3VycmVudCxcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgdXNlckluaXRpYWxNZXNzYWdlLFxuICAgICAgb25FcnJvcixcbiAgICAgIGFnZW50cyxcbiAgICB9KVxuXG4gIG1lc3NhZ2VzUmVmLmN1cnJlbnQgPSBtZXNzYWdlc1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY3VzdG9tRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywge1xuICAgICAgZGV0YWlsOiB7IGxvYWRpbmdNZXNzYWdlcyB9LFxuICAgIH0pXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudClcbiAgfSwgW2xvYWRpbmdNZXNzYWdlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaW5pdGlhbENoYXRJZCAmJiBpbml0aWFsQ2hhdElkICE9PSBjdXJyZW50Q2hhdElkLmN1cnJlbnQpIHtcbiAgICAgIC8vIExpbXBpYXIgY29udGV4dG8gZ2xvYmFsIGFsIGNhbWJpYXIgZGUgY29udmVyc2FjacOzblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuXG4gICAgICBjdXJyZW50Q2hhdElkLmN1cnJlbnQgPSBpbml0aWFsQ2hhdElkXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgICAgY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50ID0gbnVsbFxuICAgICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcblxuICAgICAgbG9hZE1lc3NhZ2VzKClcbiAgICB9XG4gIH0sIFtpbml0aWFsQ2hhdElkLCBwcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgbG9hZE1lc3NhZ2VzXSlcblxuICAvLyBTaW5jcm9uaXphciBjaGlwc1Byb2plY3QgY3VhbmRvIGhheSBtZW5zYWplcyBjb24gcHJvamVjdElkIHBlcm8gY2hpcHNQcm9qZWN0IG5vIHNlIGhhIHNldGVhZG9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2hpcHNQcm9qZWN0IHx8IGxvYWRpbmdNZXNzYWdlcykgcmV0dXJuXG4gICAgY29uc3QgbGFzdE1zZ1dpdGhQcm9qZWN0ID0gbWVzc2FnZXMuZmlsdGVyKG1zZyA9PiBtc2cucHJvamVjdElkKS5hdCgtMSlcbiAgICBjb25zdCB7IHByb2plY3RJZCwgcHJvamVjdE5hbWUgfSA9IGxhc3RNc2dXaXRoUHJvamVjdCB8fCB7fVxuICAgIGlmICghcHJvamVjdElkKSByZXR1cm5cblxuICAgIGZldGNoUHJvamVjdHMocHJvamVjdElkKS50aGVuKHByb2plY3RzID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kID0gcHJvamVjdHM/LmZpbmQocCA9PiBOdW1iZXIocC5pZCkgPT09IE51bWJlcihwcm9qZWN0SWQpKVxuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kLm5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZTogZm91bmQuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGZvdW5kLmlkKSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0UHJvamVjdChmb3VuZClcbiAgICAgIH0gZWxzZSBpZiAocHJvamVjdE5hbWUpIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0TmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWQpLFxuICAgICAgICB9KVxuICAgICAgICBzZXRQcm9qZWN0KHsgaWQ6IE51bWJlcihwcm9qZWN0SWQpLCBuYW1lOiBwcm9qZWN0TmFtZSB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFttZXNzYWdlcywgY2hpcHNQcm9qZWN0LCBsb2FkaW5nTWVzc2FnZXMsIGZldGNoUHJvamVjdHMsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdF0pXG5cbiAgLy8gU2luY3Jvbml6YXIgY2xpZW50IGN1YW5kbyBoYXkgbWVuc2FqZXMgY29uIGNsaWVudElkIHBlcm8gY2xpZW50IG5vIHNlIGhhIHNldGVhZG9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xpZW50IHx8IGxvYWRpbmdNZXNzYWdlcykgcmV0dXJuXG4gICAgY29uc3QgbGFzdE1zZ1dpdGhDbGllbnQgPSBtZXNzYWdlcy5maWx0ZXIobXNnID0+IG1zZy5jbGllbnRJZCAhPSBudWxsICYmIG1zZy5jbGllbnROYW1lKS5hdCgtMSlcbiAgICBjb25zdCB7IGNsaWVudElkOiBtc2dDbGllbnRJZCwgY2xpZW50TmFtZTogbXNnQ2xpZW50TmFtZSB9ID0gbGFzdE1zZ1dpdGhDbGllbnQgfHwge31cbiAgICBpZiAobXNnQ2xpZW50SWQgPT0gbnVsbCB8fCAhbXNnQ2xpZW50TmFtZSkgcmV0dXJuXG5cbiAgICBzZXRDbGllbnQ/Lih7IGlkOiBOdW1iZXIobXNnQ2xpZW50SWQpLCBuYW1lOiBtc2dDbGllbnROYW1lIH0pXG4gIH0sIFttZXNzYWdlcywgY2xpZW50LCBsb2FkaW5nTWVzc2FnZXMsIHNldENsaWVudF0pXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtRXJyb3IgPSB1c2VDYWxsYmFjayhcbiAgICAoZXJyb3JNZXNzYWdlPzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgZXJyb3JNZXNzYWdlID09PSBcIkFjY2VzcyBkZW5pZWQ6IFlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgYWdlbnRcIlxuICAgICAgICAgID8gdCgnY2hhdC5lcnJvckFjY2Vzc0RlbmllZCcpXG4gICAgICAgICAgOiB0KCdjaGF0LmVycm9yJylcblxuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fWAsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IHsgaWQ6ICdhc3Npc3RhbnQnLCBuYW1lOiAnQXNzaXN0YW50JyB9LFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgfSlcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9LFxuICAgIFthZGRNZXNzYWdlLCB0XVxuICApXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtVXBkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRlbnQ6IHN0cmluZywgc291cmNlczogYW55LCBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdGVtcE1lc3NhZ2VJZCA9IGBhbnN3ZXItJHtjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnR9LXN0cmVhbWluZ2BcblxuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiB0ZW1wTWVzc2FnZUlkLFxuICAgICAgICBtZXNzYWdlOiBjb250ZW50LFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgc291cmNlcyxcbiAgICAgICAgbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthZGRNZXNzYWdlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtRmluaXNoID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKFxuICAgICAgY29udGVudDogc3RyaW5nLFxuICAgICAgc291cmNlczogYW55LFxuICAgICAgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcsXG4gICAgICBzdWdnZXN0aW9ucz86IHN0cmluZ1tdIHwgbnVsbCxcbiAgICAgIGNvbXBsZXRlZEFnZW50SWQ/OiBzdHJpbmcgfCBudWxsXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wTWVzc2FnZUlkID0gYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tc3RyZWFtaW5nYFxuICAgICAgcmVtb3ZlTWVzc2FnZSh0ZW1wTWVzc2FnZUlkKVxuXG4gICAgICAvLyBEZXRlY3RhciB0b2RhcyBsYXMgVVJMcyBkZSB0YXJlYXMgKC4uLi90YXNrcy8xMjMvZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycylcbiAgICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgICAgY29uc3QgbWF0Y2hlcyA9IFsuLi5jb250ZW50Lm1hdGNoQWxsKHRhc2tVcmxSZWdleCldXG5cbiAgICAgIGxldCBjb250ZW50VG9BZGQgPSBjb250ZW50XG4gICAgICBjb25zdCBwcmV2aW91c01lc3NhZ2UgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbHRlcihtID0+IG0uaWQgIT09IHRlbXBNZXNzYWdlSWQpLmF0KC0xKVxuICAgICAgY29uc3QgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSA9IHByZXZpb3VzTWVzc2FnZT8uYXBwcm92YWwgIT0gbnVsbFxuICAgICAgY29uc3QgVEFTS19DUkVBVElPTl9UT09MUyA9IFsnY3JlYXRlX3Rhc2snLCAnY3JlYXRlX3Rhc2tzX2JhdGNoJ11cbiAgICAgIGNvbnN0IFRBU0tfRURJVF9UT09MUyA9IFtcbiAgICAgICAgJ2VkaXRfdGFzaycsXG4gICAgICAgICdlZGl0X3Rhc2tzX2JhdGNoJyxcbiAgICAgICAgJ3Rhc2tfYXNzaWduJyxcbiAgICAgICAgJ3Rhc2tfdW5hc3NpZ24nLFxuICAgICAgICAndXBkYXRlX3Rhc2tfdHlwZScsXG4gICAgICAgICd1cGRhdGVfZXN0aW1hdGVkX2hvdXJzJyxcbiAgICAgICAgJ2Fzc2lnbl90YXNrX2xhYmVsJyxcbiAgICAgIF1cbiAgICAgIGNvbnN0IFRBU0tfREVMRVRFX1RPT0xTID0gWydkZWxldGVfdGFzaycsICdkZWxldGVfdGFza3NfYmF0Y2gnXVxuICAgICAgY29uc3QgcGVuZGluZ0FjdGlvbnMgPSBwcmV2aW91c01lc3NhZ2U/LmFwcHJvdmFsPy5wZW5kaW5nX2FjdGlvbnMgfHwgW11cbiAgICAgIGNvbnN0IHdhc1Rhc2tDcmVhdGlvbiA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgcGVuZGluZ0FjdGlvbnMuc29tZSgoYWN0aW9uOiBhbnkpID0+IFRBU0tfQ1JFQVRJT05fVE9PTFMuaW5jbHVkZXMoYWN0aW9uLnRvb2xfbmFtZSkpXG4gICAgICBjb25zdCB3YXNUYXNrRWRpdCA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiYgcGVuZGluZ0FjdGlvbnMuc29tZSgoYWN0aW9uOiBhbnkpID0+IFRBU0tfRURJVF9UT09MUy5pbmNsdWRlcyhhY3Rpb24udG9vbF9uYW1lKSlcbiAgICAgIGNvbnN0IHdhc1Rhc2tEZWxldGUgPVxuICAgICAgICBoYXNBcHByb3ZhbEluUHJldmlvdXNNZXNzYWdlICYmXG4gICAgICAgIHBlbmRpbmdBY3Rpb25zLnNvbWUoKGFjdGlvbjogYW55KSA9PiBUQVNLX0RFTEVURV9UT09MUy5pbmNsdWRlcyhhY3Rpb24udG9vbF9uYW1lKSlcbiAgICAgIGNvbnN0IHdhc0NyZWF0ZUFnZW50QXBwcm92ZWQgPVxuICAgICAgICBoYXNBcHByb3ZhbEluUHJldmlvdXNNZXNzYWdlICYmXG4gICAgICAgIHByZXZpb3VzTWVzc2FnZT8uYXBwcm92YWxTdGF0dXMgPT09ICdhcHByb3ZlZCcgJiZcbiAgICAgICAgcGVuZGluZ0FjdGlvbnMuc29tZSgoYWN0aW9uOiBhbnkpID0+IGFjdGlvbi50b29sX25hbWUgPT09ICdjcmVhdGVfYWdlbnQnKVxuICAgICAgY29uc3Qgd2FzQ29uZmlndXJlQWdlbnRBY2Nlc3NBcHByb3ZlZCA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgcHJldmlvdXNNZXNzYWdlPy5hcHByb3ZhbFN0YXR1cyA9PT0gJ2FwcHJvdmVkJyAmJlxuICAgICAgICBwZW5kaW5nQWN0aW9ucy5zb21lKChhY3Rpb246IGFueSkgPT4gKGFjdGlvbi50b29sX25hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdjb25maWd1cmVfYWdlbnRfYWNjZXNzJylcbiAgICAgIGxldCBjcmVhdGVBZ2VudEZvbGxvd1VwOiB7IGFnZW50SWQ6IHN0cmluZyB9IHwgdW5kZWZpbmVkXG4gICAgICBpZiAod2FzQ3JlYXRlQWdlbnRBcHByb3ZlZCAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiBjb21wbGV0ZWRBZ2VudElkPy50cmltKCkpIHtcbiAgICAgICAgY3JlYXRlQWdlbnRGb2xsb3dVcCA9IHsgYWdlbnRJZDogY29tcGxldGVkQWdlbnRJZC50cmltKCkgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgd2FzQ29uZmlndXJlQWdlbnRBY2Nlc3NBcHByb3ZlZCAmJlxuICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJlxuICAgICAgICAoY29tcGxldGVkQWdlbnRJZD8udHJpbSgpIHx8XG4gICAgICAgICAgZXh0cmFjdEFnZW50SWRGcm9tUGVuZGluZ0FjdGlvbnNCeVRvb2xOYW1lKHBlbmRpbmdBY3Rpb25zLCAnY29uZmlndXJlX2FnZW50X2FjY2VzcycpKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyZWRBZ2VudElkID1cbiAgICAgICAgICBjb21wbGV0ZWRBZ2VudElkPy50cmltKCkgfHxcbiAgICAgICAgICBleHRyYWN0QWdlbnRJZEZyb21QZW5kaW5nQWN0aW9uc0J5VG9vbE5hbWUocGVuZGluZ0FjdGlvbnMsICdjb25maWd1cmVfYWdlbnRfYWNjZXNzJylcbiAgICAgICAgY3JlYXRlQWdlbnRGb2xsb3dVcCA9IHtcbiAgICAgICAgICBhZ2VudElkOiBjb25maWd1cmVkQWdlbnRJZCBhcyBzdHJpbmcsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2FzRWRpdEFnZW50QXBwcm92ZWQgPVxuICAgICAgICBoYXNBcHByb3ZhbEluUHJldmlvdXNNZXNzYWdlICYmXG4gICAgICAgIHByZXZpb3VzTWVzc2FnZT8uYXBwcm92YWxTdGF0dXMgPT09ICdhcHByb3ZlZCcgJiZcbiAgICAgICAgcGVuZGluZ0FjdGlvbnMuc29tZSgoYWN0aW9uOiBhbnkpID0+IChhY3Rpb24udG9vbF9uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSAnZWRpdF9hZ2VudCcpXG5cbiAgICAgIGxldCBlZGl0QWdlbnRGb2xsb3dVcDogeyBhZ2VudElkOiBzdHJpbmcgfSB8IHVuZGVmaW5lZFxuICAgICAgaWYgKHdhc0VkaXRBZ2VudEFwcHJvdmVkKSB7XG4gICAgICAgIGNvbnN0IGZyb21TdHJlYW0gPSBjb21wbGV0ZWRBZ2VudElkPy50cmltKClcbiAgICAgICAgY29uc3QgZnJvbUFyZ3MgPSBleHRyYWN0QWdlbnRJZEZyb21FZGl0QWdlbnRQZW5kaW5nQWN0aW9ucyhwZW5kaW5nQWN0aW9ucylcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRBZ2VudElkID0gZnJvbVN0cmVhbSB8fCBmcm9tQXJnc1xuICAgICAgICBpZiAocmVzb2x2ZWRBZ2VudElkKSB7XG4gICAgICAgICAgZWRpdEFnZW50Rm9sbG93VXAgPSB7IGFnZW50SWQ6IHJlc29sdmVkQWdlbnRJZCB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFza0lkc0Zyb21VcmxzID0gbWF0Y2hlcy5tYXAobWF0Y2ggPT4gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKSlcbiAgICAgIGNvbnN0IHRhc2tJZHNGcm9tRGVsZXRlQXBwcm92YWwgPSBleHRyYWN0VGFza0lkc0Zyb21EZWxldGVQZW5kaW5nQWN0aW9ucyhwZW5kaW5nQWN0aW9ucylcbiAgICAgIGNvbnN0IHRhc2tJZHNGcm9tRGVsZXRpb25UZXh0ID1cbiAgICAgICAgd2FzVGFza0RlbGV0ZSAmJiB0YXNrSWRzRnJvbVVybHMubGVuZ3RoID09PSAwICYmIHRhc2tJZHNGcm9tRGVsZXRlQXBwcm92YWwubGVuZ3RoID09PSAwXG4gICAgICAgICAgPyBleHRyYWN0VGFza0lkc0Zyb21Bc3Npc3RhbnREZWxldGlvblRleHQoY29udGVudClcbiAgICAgICAgICA6IFtdXG4gICAgICBjb25zdCB0YXNrSWRzRm9yRGFzaGJvYXJkID1cbiAgICAgICAgdGFza0lkc0Zyb21VcmxzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IHRhc2tJZHNGcm9tVXJsc1xuICAgICAgICAgIDogdGFza0lkc0Zyb21EZWxldGVBcHByb3ZhbC5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IHRhc2tJZHNGcm9tRGVsZXRlQXBwcm92YWxcbiAgICAgICAgICAgIDogdGFza0lkc0Zyb21EZWxldGlvblRleHRcblxuICAgICAgY29uc3Qgc2hvdWxkU3luY0Rhc2hib2FyZCA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgKHdhc1Rhc2tDcmVhdGlvbiB8fCB3YXNUYXNrRWRpdCB8fCB3YXNUYXNrRGVsZXRlKSAmJlxuICAgICAgICB0YXNrSWRzRm9yRGFzaGJvYXJkLmxlbmd0aCA+IDBcblxuICAgICAgaWYgKHNob3VsZFN5bmNEYXNoYm9hcmQpIHtcbiAgICAgICAgY29uc3QgdGFza0lkcyA9IHRhc2tJZHNGb3JEYXNoYm9hcmRcbiAgICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KHRhc2tJZHNbMF0pXG4gICAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICAgIGNvbnRlbnRUb0FkZCA9IGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgICAgICAgICAgdXJsLnJlcGxhY2UoL1xcLyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSg/PSR8XFw/KS8sIHRhYlNlZ21lbnQpXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFzdFByb2plY3RNZXNzYWdlID0gbWVzc2FnZXNSZWYuY3VycmVudC5maWx0ZXIobXNnID0+IG1zZy5wcm9qZWN0SWQpLmF0KC0xKVxuICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkUmF3ID0gcHJvamVjdD8uaWQgfHwgbGFzdFByb2plY3RNZXNzYWdlPy5wcm9qZWN0SWRcbiAgICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IGNvbnRleHRQcm9qZWN0SWRSYXcgPyBwYXJzZUludChTdHJpbmcoY29udGV4dFByb2plY3RJZFJhdyksIDEwKSA6IG51bGxcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKC9eXFwvcHJvamVjdHNcXC8oXFxkKylcXC8vKVxuICAgICAgICBjb25zdCByb3V0ZVByb2plY3RJZCA9IHBhdGhNYXRjaCA/IHBhcnNlSW50KHBhdGhNYXRjaFsxXSwgMTApIDogbnVsbFxuICAgICAgICBjb25zdCBpc09uUHJvamVjdFJvdXRlID0gY29udGV4dFByb2plY3RJZCAmJiByb3V0ZVByb2plY3RJZCAmJiBjb250ZXh0UHJvamVjdElkID09PSByb3V0ZVByb2plY3RJZFxuXG4gICAgICAgIGlmIChpc09uUHJvamVjdFJvdXRlKSB7XG4gICAgICAgICAgaWYgKHdhc1Rhc2tDcmVhdGlvbikge1xuICAgICAgICAgICAgd2luZG93Lm5ld1Byb2plY3REYXNoYm9hcmQ/LmFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkPy4odGFza0lkcylcbiAgICAgICAgICB9IGVsc2UgaWYgKHdhc1Rhc2tFZGl0KSB7XG4gICAgICAgICAgICB3aW5kb3cubmV3UHJvamVjdERhc2hib2FyZD8uZWRpdEV4aXN0aW5nVGFza0luRGFzaGJvYXJkPy4odGFza0lkcylcbiAgICAgICAgICB9IGVsc2UgaWYgKHdhc1Rhc2tEZWxldGUpIHtcbiAgICAgICAgICAgIHdpbmRvdy5uZXdQcm9qZWN0RGFzaGJvYXJkPy5kZWxldGVFeGlzdGluZ1Rhc2tGcm9tRGFzaGJvYXJkPy4odGFza0lkcylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiBgYW5zd2VyLSR7bWVtb3J5U2Vzc2lvbklkfWAsXG4gICAgICAgIG1lc3NhZ2U6IGNvbnRlbnRUb0FkZCxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICAgIHNvdXJjZXMsXG4gICAgICAgIG1lbW9yeVNlc3Npb25JZCxcbiAgICAgICAgc3VnZ2VzdGlvbnM6IHN1Z2dlc3Rpb25zIHx8IFtdLFxuICAgICAgICAuLi4oY3JlYXRlQWdlbnRGb2xsb3dVcCA/IHsgY3JlYXRlQWdlbnRGb2xsb3dVcCB9IDoge30pLFxuICAgICAgfSlcblxuICAgICAgaWYgKGNyZWF0ZUFnZW50Rm9sbG93VXA/LmFnZW50SWQpIHtcbiAgICAgICAgZmV0Y2hBZ2VudERldGFpbChjcmVhdGVBZ2VudEZvbGxvd1VwLmFnZW50SWQpXG4gICAgICAgICAgLnRoZW4oY2hhdEFnZW50ID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgnbWFpYS1tZXJnZS1jcmVhdGVkLWFnZW50LWludG8tbGlzdCcsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHsgYWdlbnQ6IGNoYXRBZ2VudCB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdXNlQ2hhdE1hbmFnZXJdIE5vIHNlIHB1ZG8gYcOxYWRpciBlbCBhZ2VudGUgcmVjacOpbiBjcmVhZG8gYWwgbGlzdGFkbycsIGVycilcbiAgICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoZWRpdEFnZW50Rm9sbG93VXA/LmFnZW50SWQpIHtcbiAgICAgICAgZmV0Y2hBZ2VudERldGFpbChlZGl0QWdlbnRGb2xsb3dVcC5hZ2VudElkKVxuICAgICAgICAgIC50aGVuKGNoYXRBZ2VudCA9PiB7XG4gICAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ21haWEtc3luYy1lZGl0ZWQtYWdlbnQtZnJvbS1jaGF0Jywge1xuICAgICAgICAgICAgICAgIGRldGFpbDogeyBhZ2VudDogY2hhdEFnZW50IH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1c2VDaGF0TWFuYWdlcl0gTm8gc2UgcHVkbyByZWZyZXNjYXIgZWwgYWdlbnRlIGVkaXRhZG8nLCBlcnIpXG4gICAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaWYgKGZpcnN0VGltZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdyZWZldGNoLXNlc3Npb24nKVxuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KVxuICAgICAgICBmaXJzdFRpbWVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBbYWRkTWVzc2FnZSwgcmVtb3ZlTWVzc2FnZSwgcHJvamVjdCwgZ2V0VGFiVGFza0RlZmF1bHRdXG4gIClcblxuICBjb25zdCBoYW5kbGVTdHJlYW1TdG9wID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgaWQ6IGBhbnN3ZXItJHtjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnR9LWNhbmNlbGxlZGAsXG4gICAgICBtZXNzYWdlOiB0KCdjaGF0LmNhbmNlbGxlZCcpLFxuICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIHVzZXI6IHsgaWQ6ICdhc3Npc3RhbnQnLCBuYW1lOiAnQXNzaXN0YW50JyB9LFxuICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ6IHRydWUsXG4gICAgfSlcbiAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBDdXN0b21FdmVudCgncmVmZXRjaC1zZXNzaW9uJylcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpXG4gICAgfSwgNTAwKVxuICB9LCBbYWRkTWVzc2FnZSwgdF0pXG5cbiAgY29uc3QgaGFuZGxlQXBwcm92YWxSZXF1aXJlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChhcHByb3ZhbDogQXBwcm92YWxSZXF1ZXN0LCBhY2N1bXVsYXRlZENvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdGVtcE1lc3NhZ2VJZCA9IGBhbnN3ZXItJHtjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnR9LXN0cmVhbWluZ2BcbiAgICAgIHJlbW92ZU1lc3NhZ2UodGVtcE1lc3NhZ2VJZClcblxuICAgICAgLy8gQWRkIGEgbWVzc2FnZSB3aXRoIHRoZSBhcHByb3ZhbCByZXF1ZXN0XG4gICAgICBhZGRNZXNzYWdlKHtcbiAgICAgICAgaWQ6IGBhcHByb3ZhbC0ke2FwcHJvdmFsLm9yaWdpbmFsX3RocmVhZF9pZH1gLFxuICAgICAgICBtZXNzYWdlOiBhY2N1bXVsYXRlZENvbnRlbnQgfHwgJycsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IHsgaWQ6ICdhc3Npc3RhbnQnLCBuYW1lOiAnQXNzaXN0YW50JyB9LFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgICBhcHByb3ZhbCxcbiAgICAgICAgYXBwcm92YWxTdGF0dXM6ICdwZW5kaW5nJyxcbiAgICAgIH0pXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfSxcbiAgICBbYWRkTWVzc2FnZSwgcmVtb3ZlTWVzc2FnZV1cbiAgKVxuXG4gIGNvbnN0IHtcbiAgICBhc2tNYWlhLFxuICAgIGlzTG9hZGluZzogd2FpdGluZ1Jlc3BvbnNlLFxuICAgIGlzV3JpdGluZyxcbiAgICBsb2FkaW5nTWVzc2FnZSxcbiAgICBzdG9wU3RyZWFtaW5nLFxuICB9ID0gdXNlT3JjaGVzdHJhdG9yU3RyZWFtKHtcbiAgICBvbkVycm9yOiBoYW5kbGVTdHJlYW1FcnJvcixcbiAgICBvblN0cmVhbVVwZGF0ZTogaGFuZGxlU3RyZWFtVXBkYXRlLFxuICAgIG9uRmluaXNoU3RyZWFtOiBoYW5kbGVTdHJlYW1GaW5pc2gsXG4gICAgb25TdG9wOiBoYW5kbGVTdHJlYW1TdG9wLFxuICAgIG9uQXBwcm92YWxSZXF1aXJlZDogaGFuZGxlQXBwcm92YWxSZXF1aXJlZCxcbiAgfSlcblxuICBjb25zdCBjdXJyZW50UHJvamVjdCA9IHByb2plY3RcblxuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGF0dGFjaG1lbnRzT3JPcHRpb25zPzogQXR0YWNobWVudEZpbGVbXSB8IFNlbmRNZXNzYWdlT3B0aW9ucyxcbiAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmIChpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCB8fCB3YWl0aW5nUmVzcG9uc2UgfHwgbG9hZGluZ01lc3NhZ2VzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGF0dGFjaG1lbnRzLCBvcHRpb25zIH0gPSBub3JtYWxpemVTZW5kTWVzc2FnZUFyZ3MoYXR0YWNobWVudHNPck9wdGlvbnMpXG5cbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgY29uc3QgbmV3TWVzc2FnZUlkID0gdXVpZHY0KClcbiAgICAgIGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCA9IG5ld01lc3NhZ2VJZFxuICAgICAgY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50ID0gbWVzc2FnZVxuXG4gICAgICBpZiAoIXJlcG9ydGVkRXZlbnQuY3VycmVudCkge1xuICAgICAgICBldmVudChFVkVOVFMucG1BaVR5cGVkVGV4dClcbiAgICAgICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICAvLyBWZXJpZmljYXIgc2kgZWwgY29udGV4dG8gZ2xvYmFsIGVzdMOhIGRlc2FjdHVhbGl6YWRvXG4gICAgICBjb25zdCBsYXN0TWVzc2FnZVdpdGhQcm9qZWN0ID0gbWVzc2FnZXNSZWYuY3VycmVudC5maWx0ZXIobXNnID0+IG1zZy5wcm9qZWN0SWQpLmF0KC0xKVxuXG4gICAgICBjb25zdCBjdXJyZW50QWdlbnRGcm9tTWVzc2FnZXMgPSBtZXNzYWdlc1JlZi5jdXJyZW50Py5bbWVzc2FnZXNSZWYuY3VycmVudC5sZW5ndGggLSAxXT8uYWdlbnRJZFxuXG4gICAgICAvLyBObyBhZ3JlZ2FyIHByb2plY3RJZCBhbCBtZW5zYWplIGRlbCB1c3VhcmlvIC0gc2UgZGV0ZXJtaW5hcsOhIGRlc3B1w6lzXG4gICAgICBhZGRNZXNzYWdlKHtcbiAgICAgICAgaWQ6IGBxdWVzdGlvbi0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH1gLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLlVTRVIsXG4gICAgICAgIHNvdXJjZXM6IGF0dGFjaG1lbnRzLFxuICAgICAgfSlcblxuICAgICAgY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50ID0gdXVpZHY0KClcbiAgICAgIGxldCBmaW5hbE1lc3NhZ2UgPSBtZXNzYWdlXG5cbiAgICAgIGlmIChtZXNzYWdlID09PSB0KCdxYS5pdGVtcy5yZW50YWJpbGlkYWRfcHJveWVjdG8nKSkge1xuICAgICAgICBmaW5hbE1lc3NhZ2UgPSBgRkFROiAke3QoJ3FhLml0ZW1zLnJlbnRhYmlsaWRhZF9wcm95ZWN0bycpfSAtIFRpcG8gZGUgcmVudGFiaWxpZGFkOiAke1xuICAgICAgICAgIG9wdGlvbnMucHJvamVjdENoYW5nZWQ/LmluY29tZVR5cGUgfHwgcHJvamVjdD8uaW5jb21lVHlwZVxuICAgICAgICB9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCBoaXN0b3J5ID0gbWVzc2FnZXNSZWYuY3VycmVudC5tYXAoaGlzdG9yeU1lc3NhZ2UgPT4gKHtcbiAgICAgICAgY29udGVudDogaGlzdG9yeU1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgcm9sZTogaGlzdG9yeU1lc3NhZ2UudXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKSA/IENoYXRIaXN0b3J5Um9sZS5VU0VSIDogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgIH0pKVxuXG4gICAgICAvLyBWZXJpZmljYXIgY29uc2lzdGVuY2lhIGVudHJlIGNvbnRleHRvIGdsb2JhbCB5IMO6bHRpbW8gbWVuc2FqZVxuICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3Q/LmlkXG4gICAgICBjb25zdCBsYXN0TWVzc2FnZVByb2plY3RJZCA9IGxhc3RNZXNzYWdlV2l0aFByb2plY3Q/LnByb2plY3RJZFxuXG4gICAgICBsZXQgcHJvamVjdFRvUmVxdWVzdDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgLy8gU2kgaGF5IMO6bHRpbW8gbWVuc2FqZSBjb24gcHJvamVjdElkLCB1c2FybG8gKG3DoXMgY29uZmlhYmxlKVxuICAgICAgaWYgKGxhc3RNZXNzYWdlUHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gTnVtYmVyKGxhc3RNZXNzYWdlUHJvamVjdElkKVxuICAgICAgICBwcm9qZWN0VG9SZXF1ZXN0ID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgPyBwYXJzZWQgOiBudWxsXG4gICAgICB9XG4gICAgICAvLyBTaSBubyBoYXkgw7psdGltbyBtZW5zYWplLCB1c2FyIGVsIGNvbnRleHRvIGdsb2JhbFxuICAgICAgZWxzZSBpZiAoY29udGV4dFByb2plY3RJZCAhPSBudWxsKSB7XG4gICAgICAgIHByb2plY3RUb1JlcXVlc3QgPSBjb250ZXh0UHJvamVjdElkXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZmV0Y2hQcm9qZWN0cyhbcHJvamVjdFRvUmVxdWVzdF0pXG5cbiAgICAgIGNvbnN0IHBheWxvYWRGYXFJZCA9IGZhcUlkID8/IG9wdGlvbnMuZmFxSWRcbiAgICAgIGNvbnN0IHBheWxvYWRBZ2VudFN1Z2dlc3Rpb25JZCA9IGFnZW50U3VnZ2VzdGlvbklkID8/IG9wdGlvbnMuYWdlbnRTdWdnZXN0aW9uSWRcblxuICAgICAgY29uc3QgcGF5bG9hZERhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6IGZpbmFsTWVzc2FnZSxcbiAgICAgICAgaGlzdG9yeSxcbiAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0VG9SZXF1ZXN0LFxuICAgICAgICBsYW5nOiBhdXRoVXNlci5sYW5nLFxuICAgICAgICB1c2VySWQ6IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCksXG4gICAgICAgIGZpcnN0TmFtZTogYXV0aFVzZXIuZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZTogYXV0aFVzZXIubGFzdE5hbWUsXG4gICAgICAgIGNvbXBhbnlJZDogYXV0aFVzZXIuY29tcGFueV9pZC50b1N0cmluZygpLFxuICAgICAgICBjaGF0SWQ6IGN1cnJlbnRDaGF0SWQuY3VycmVudCxcbiAgICAgICAgbWVzc2FnZUlkOiBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQsXG4gICAgICAgIGFnZW50TmFtZTogYWdlbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgIGFnZW50SWQ6IGN1cnJlbnRBZ2VudEZyb21NZXNzYWdlcyB8fCBhZ2VudD8uaWQhLFxuICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogaXNXZWJTZWFyY2hBY3RpdmVSZWYuY3VycmVudCxcbiAgICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlOiBpc0RlZXBTZWFyY2hBY3RpdmVSZWYuY3VycmVudCxcbiAgICAgICAgLi4uKGNsaWVudD8uaWRcbiAgICAgICAgICA/IHsgY2xpZW50SWQ6IGNsaWVudC5pZCwgLi4uKGNsaWVudC5uYW1lID8geyBjbGllbnROYW1lOiBjbGllbnQubmFtZSB9IDoge30pIH1cbiAgICAgICAgICA6IHByb2plY3Q/LmNsaWVudD8uaWRcbiAgICAgICAgICAgID8geyBjbGllbnRJZDogcHJvamVjdC5jbGllbnQuaWQsIC4uLihwcm9qZWN0LmNsaWVudC5uYW1lID8geyBjbGllbnROYW1lOiBwcm9qZWN0LmNsaWVudC5uYW1lIH0gOiB7fSkgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIC4uLihwcm9qZWN0cz8ubGVuZ3RoID8geyBwcm9qZWN0TmFtZTogcHJvamVjdHNbMF0ubmFtZSB9IDoge30pLFxuICAgICAgICAuLi4oYXR0YWNobWVudHMubGVuZ3RoID4gMCA/IHsgYXR0YWNobWVudHMgfSA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWRGYXFJZCA/IHsgZmFxSWQ6IHBheWxvYWRGYXFJZCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZEFnZW50U3VnZ2VzdGlvbklkID8geyBhZ2VudFN1Z2dlc3Rpb25JZDogcGF5bG9hZEFnZW50U3VnZ2VzdGlvbklkIH0gOiB7fSksXG4gICAgICAgIC4uLihhZ2VudD8uZW50aXR5ICE9IG51bGwgPyB7IGFnZW50RW50aXR5OiBhZ2VudC5lbnRpdHkgfSA6IHt9KSxcbiAgICAgIH1cblxuICAgICAgYXNrTWFpYShwYXlsb2FkRGF0YSlcbiAgICB9LFxuICAgIFtcbiAgICAgIGFkZE1lc3NhZ2UsXG4gICAgICBldmVudCxcbiAgICAgIGFza01haWEsXG4gICAgICBwcm9qZWN0LFxuICAgICAgY2xpZW50LFxuICAgICAgYXV0aFVzZXIsXG4gICAgICBhZ2VudCxcbiAgICAgIHQsXG4gICAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgICBsb2FkaW5nTWVzc2FnZXMsXG4gICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBdXG4gIClcblxuICBjb25zdCBjaGFuZ2VQcm9qZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgICAgaWYgKCFjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQpIHJldHVyblxuXG4gICAgICBpZiAob3B0aW9uLmlkICE9PSBwcm9qZWN0Py5pZCkge1xuICAgICAgICBzZXRQcm9qZWN0KG9wdGlvbilcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2plY3QgJiYgY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGhpc3RvcnkgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChoaXN0b3J5TWVzc2FnZSA9PiAoe1xuICAgICAgICAgIGNvbnRlbnQ6IGhpc3RvcnlNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgcm9sZTogaGlzdG9yeU1lc3NhZ2UudXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKSA/IENoYXRIaXN0b3J5Um9sZS5VU0VSIDogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgfSkpXG5cbiAgICAgICAgYXNrTWFpYSh7XG4gICAgICAgICAgbWVzc2FnZTogY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50LFxuICAgICAgICAgIGhpc3RvcnksXG4gICAgICAgICAgcHJvamVjdElkOiBvcHRpb24uaWQsXG4gICAgICAgICAgbGFuZzogYXV0aFVzZXIubGFuZyxcbiAgICAgICAgICB1c2VySWQ6IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCksXG4gICAgICAgICAgZmlyc3ROYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICAgICAgbGFzdE5hbWU6IGF1dGhVc2VyLmxhc3ROYW1lLFxuICAgICAgICAgIGNvbXBhbnlJZDogYXV0aFVzZXIuY29tcGFueV9pZC50b1N0cmluZygpLFxuICAgICAgICAgIGNoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgICAgIG1lc3NhZ2VJZDogY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50LFxuICAgICAgICAgIGFnZW50TmFtZTogYWdlbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgICAgYWdlbnRJZDogYWdlbnQ/LmlkIHx8ICcnLFxuICAgICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogaXNEZWVwU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgICAgLi4uKGFnZW50Py5lbnRpdHkgIT0gbnVsbCA/IHsgYWdlbnRFbnRpdHk6IGFnZW50LmVudGl0eSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3Byb2plY3QsIHNldFByb2plY3QsIGFza01haWEsIGF1dGhVc2VyLCBpc1dlYlNlYXJjaEFjdGl2ZSwgYWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVGZWVkYmFjayA9IHVzZUNhbGxiYWNrKGFzeW5jIChmZWVkYmFja1Byb3A6IEZlZWRiYWNrLCBjaGF0TWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1haWEuQ2hhdHMud2FzSGVscGZ1bENoYXQoY2hhdE1lc3NhZ2VJZCwgZmVlZGJhY2tQcm9wID09PSBGZWVkYmFjay5USFVNQlNfVVApXG4gICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICBtZXNzYWdlc1JlZi5jdXJyZW50ID0gbWVzc2FnZXNSZWYuY3VycmVudC5tYXAobWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBjaGF0TWVzc2FnZUlkICYmIG1lc3NhZ2Uucm9sZSA9PT0gJ2Fzc2lzdGFudCcpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5tZXNzYWdlLCB3YXNIZWxwZnVsOiBmZWVkYmFja1Byb3AgPT09IEZlZWRiYWNrLlRIVU1CU19VUCB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVBcHByb3ZhbERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKFxuICAgICAgdGhyZWFkSWRzOiBzdHJpbmdbXSxcbiAgICAgIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAncmVqZWN0JyxcbiAgICAgIGVkaXRlZEFjdGlvbnM/OiBBcnJheTx7IHRvb2xfbmFtZTogc3RyaW5nOyBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PlxuICAgICkgPT4ge1xuICAgICAgaWYgKCF0aHJlYWRJZHM/Lmxlbmd0aCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdObyB0aHJlYWRfaWRzIHByb3ZpZGVkIGZvciBhcHByb3ZhbCBkZWNpc2lvbicpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBCdXNjYXIgZWwgbWVuc2FqZSBxdWUgY29udGllbmUgYWxndW5vIGRlIGVzdG9zIHRocmVhZElkcyBlbiBzdXMgcGVuZGluZ19hY3Rpb25zXG4gICAgICBjb25zdCBtZXNzYWdlV2l0aEFwcHJvdmFsID0gbWVzc2FnZXNSZWYuY3VycmVudC5maW5kKG0gPT5cbiAgICAgICAgbS5hcHByb3ZhbD8ucGVuZGluZ19hY3Rpb25zPy5zb21lKGFjdGlvbiA9PiB0aHJlYWRJZHMuaW5jbHVkZXMoYWN0aW9uLnRocmVhZF9pZCkpXG4gICAgICApXG5cbiAgICAgIGlmICghbWVzc2FnZVdpdGhBcHByb3ZhbCB8fCAhbWVzc2FnZVdpdGhBcHByb3ZhbC5hcHByb3ZhbCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdObyBzZSBlbmNvbnRyw7MgbWVuc2FqZSBjb24gYXBwcm92YWwgcGFyYSB0aHJlYWRfaWRzOicsIHRocmVhZElkcylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgYXBwcm92YWwgfSA9IG1lc3NhZ2VXaXRoQXBwcm92YWxcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9IG1lc3NhZ2VXaXRoQXBwcm92YWwuaWRcbiAgICAgIC8vIFVzZSBmaXJzdCB0aHJlYWRJZCBhcyB0aGUgbG9hZGluZyBrZXlcbiAgICAgIGNvbnN0IGxvYWRpbmdLZXkgPSB0aHJlYWRJZHNbMF1cbiAgICAgIC8vIFVwZGF0ZSBtZXNzYWdlIHN0YXR1cyBpbW1lZGlhdGVseVxuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKG1lc3NhZ2UgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZS5pZCA9PT0gbWVzc2FnZUlkKSB7XG4gICAgICAgICAgY29uc3QgbmV3U3RhdHVzID0gZGVjaXNpb24gPT09ICdhcHByb3ZlJyA/ICdhcHByb3ZlZCcgOiAncmVqZWN0ZWQnXG4gICAgICAgICAgcmV0dXJuIHsgLi4ubWVzc2FnZSwgYXBwcm92YWxTdGF0dXM6IG5ld1N0YXR1cyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcbiAgICAgIH0pXG5cbiAgICAgIC8vIFRyaWdnZXIgcmUtcmVuZGVyXG4gICAgICBjb25zdCBleGlzdGluZ01lc3NhZ2UgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbmQobSA9PiBtLmlkID09PSBtZXNzYWdlSWQpXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXR1cyA9IGRlY2lzaW9uID09PSAnYXBwcm92ZScgPyAnYXBwcm92ZWQnIDogJ3JlamVjdGVkJ1xuICAgICAgICBhZGRNZXNzYWdlKHsgLi4uZXhpc3RpbmdNZXNzYWdlLCBhcHByb3ZhbFN0YXR1czogbmV3U3RhdHVzIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIENhbGwgY29udGludWUtdGhyZWFkIGVuZHBvaW50IHdpdGggQUxMIHRocmVhZF9pZHMgaW4gYSBzaW5nbGUgcmVxdWVzdFxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuXG4gICAgICAvLyBBZGQgbG9hZGluZ1xuICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiAoe1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBbbG9hZGluZ0tleV06IHQoJ2NoYXQucHJvY2Vzc2luZycpLFxuICAgICAgfSkpXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbWFpYS5PcmNoZXN0cmF0b3IuY29udGludWVUaHJlYWQoe1xuICAgICAgICAgIHRocmVhZElkcywgLy8gU2VuZCBhbGwgYWN0aW9uIHRocmVhZF9pZHMgYXQgb25jZVxuICAgICAgICAgIHNlc3Npb25JZDogYXBwcm92YWwuc2Vzc2lvbl9pZCxcbiAgICAgICAgICBkZWNpc2lvbjogZWRpdGVkQWN0aW9ucyA/ICdlZGl0JyA6IGRlY2lzaW9uLFxuICAgICAgICAgIGVkaXRlZEFjdGlvbnMsXG4gICAgICAgICAgYWdlbnRJZDogYWdlbnQ/LmlkIHx8ICcnLFxuICAgICAgICAgIGxhbmc6IGF1dGhVc2VyLmxhbmcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGhhbmRsZVN0cmVhbUVycm9yKClcbiAgICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0xvYWRpbmdzID0geyAuLi5wcmV2IH1cbiAgICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1tsb2FkaW5nS2V5XVxuICAgICAgICAgICAgcmV0dXJuIG5ld0xvYWRpbmdzXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgU1NFIHN0cmVhbVxuICAgICAgICBhd2FpdCBwcm9jZXNzU1NFU3RyZWFtKHJlc3BvbnNlLCBsb2FkaW5nS2V5LCB7XG4gICAgICAgICAgb25Ub2tlbjogKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaGFuZGxlU3RyZWFtVXBkYXRlKGNvbnRlbnQsIG51bGwsICcnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Ob2RlOiAobWVzc2FnZTogc3RyaW5nLCBjdXJyZW50VGhyZWFkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheU1zZyA9IG1lc3NhZ2UuaW5jbHVkZXMoJ2NyZWF0ZV90YXNrJykgPyBtZXNzYWdlIDogdCgnY2hhdC5leGVjdXRpbmdBY3Rpb24nKVxuICAgICAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbY3VycmVudFRocmVhZElkXTogZGlzcGxheU1zZyxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Db21wbGV0ZTogKFxuICAgICAgICAgICAgZmluYWxDb250ZW50OiBzdHJpbmcsXG4gICAgICAgICAgICBzb3VyY2VzOiBhbnksXG4gICAgICAgICAgICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZyxcbiAgICAgICAgICAgIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nLFxuICAgICAgICAgICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGwsXG4gICAgICAgICAgICBhZ2VudElkPzogc3RyaW5nIHwgbnVsbFxuICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlU3RyZWFtRmluaXNoKGZpbmFsQ29udGVudCwgc291cmNlcywgbWVtb3J5U2Vzc2lvbklkLCBzdWdnZXN0aW9ucywgYWdlbnRJZClcbiAgICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1tjdXJyZW50VGhyZWFkSWRdXG4gICAgICAgICAgICAgIHJldHVybiBuZXdMb2FkaW5nc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uQXBwcm92YWxSZXF1aXJlZDogKGFwcHJvdmFsUGF5bG9hZDogYW55LCBhY2N1bXVsYXRlZENvbnRlbnQ6IHN0cmluZywgY3VycmVudFRocmVhZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIC8vIE5ldyBISVRMIGludGVycnVwdGlvbiBkZXRlY3RlZCBhZnRlciByZXN1bWUgKGNoYWluZWQgYWN0aW9ucylcbiAgICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1tjdXJyZW50VGhyZWFkSWRdXG4gICAgICAgICAgICAgIHJldHVybiBuZXdMb2FkaW5nc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGhhbmRsZUFwcHJvdmFsUmVxdWlyZWQoYXBwcm92YWxQYXlsb2FkIGFzIEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50KVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25FcnJvcjogKGVycm9yOiBhbnksIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTU0UgRXJyb3I6JywgZXJyb3IpXG4gICAgICAgICAgICBoYW5kbGVTdHJlYW1FcnJvcigpXG4gICAgICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgICAgICBkZWxldGUgbmV3TG9hZGluZ3NbY3VycmVudFRocmVhZElkXVxuICAgICAgICAgICAgICByZXR1cm4gbmV3TG9hZGluZ3NcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZVN0cmVhbUVycm9yKClcbiAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1tsb2FkaW5nS2V5XVxuICAgICAgICAgIHJldHVybiBuZXdMb2FkaW5nc1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2F1dGhVc2VyLCBhZ2VudCwgYWRkTWVzc2FnZSwgaGFuZGxlU3RyZWFtRXJyb3IsIGhhbmRsZVN0cmVhbVVwZGF0ZSwgaGFuZGxlU3RyZWFtRmluaXNoLCBoYW5kbGVBcHByb3ZhbFJlcXVpcmVkXVxuICApXG5cbiAgY29uc3QgaW5pdGlhbGl6ZUNoYXQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFmaXJzdFRpbWVSZWYuY3VycmVudCkge1xuICAgICAgZmlyc3RUaW1lUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChpbml0aWFsQ2hhdElkKSB7XG4gICAgICBhd2FpdCBsb2FkTWVzc2FnZXMoKVxuICAgIH0gZWxzZSBpZiAodXNlckluaXRpYWxNZXNzYWdlKSB7XG4gICAgICBjb25zdCBoYXNJbml0aWFsTWVzc2FnZSA9IEJvb2xlYW4odXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2U/LnRyaW0oKSlcbiAgICAgIGNvbnN0IGhhc0luaXRpYWxBdHRhY2htZW50cyA9IEJvb2xlYW4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzPy5sZW5ndGgpXG4gICAgICBjb25zdCBoYXNJbml0aWFsRmFxID0gQm9vbGVhbih1c2VySW5pdGlhbE1lc3NhZ2UuZmFxSWQpXG5cbiAgICAgIGlmICghaGFzSW5pdGlhbE1lc3NhZ2UgJiYgIWhhc0luaXRpYWxBdHRhY2htZW50cyAmJiAhaGFzSW5pdGlhbEZhcSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGlzdG9yeSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKGhpc3RvcnlNZXNzYWdlID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IGhpc3RvcnlNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIHJvbGU6IGhpc3RvcnlNZXNzYWdlLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkgPyBDaGF0SGlzdG9yeVJvbGUuVVNFUiA6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICB9KSlcblxuICAgICAgYXNrTWFpYSh7XG4gICAgICAgIG1lc3NhZ2U6IHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICBoaXN0b3J5LFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3Q/LmlkIHx8IG51bGwsXG4gICAgICAgIGxhbmc6IGF1dGhVc2VyLmxhbmcsXG4gICAgICAgIHVzZXJJZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgZmlyc3ROYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lOiBhdXRoVXNlci5sYXN0TmFtZSxcbiAgICAgICAgY29tcGFueUlkOiBhdXRoVXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCksXG4gICAgICAgIGNoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgICBtZXNzYWdlSWQ6IGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCxcbiAgICAgICAgYWdlbnROYW1lOiBhZ2VudD8ubmFtZSEsXG4gICAgICAgIGFnZW50SWQ6IGFnZW50Py5pZCEsXG4gICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IGlzRGVlcFNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICAuLi4oY2xpZW50Py5pZCA/IHsgY2xpZW50SWQ6IGNsaWVudC5pZCB9IDogcHJvamVjdD8uY2xpZW50Py5pZCA/IHsgY2xpZW50SWQ6IHByb2plY3QuY2xpZW50LmlkIH0gOiB7fSksXG4gICAgICAgIC4uLihwcm9qZWN0Py5uYW1lID8geyBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihwcm9qZWN0Py5jbGllbnQ/Lm5hbWVcbiAgICAgICAgICA/IHsgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQubmFtZSB9XG4gICAgICAgICAgOiBjbGllbnQ/Lm5hbWVcbiAgICAgICAgICAgID8geyBjbGllbnROYW1lOiBjbGllbnQubmFtZSB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmZhcUlkID8geyBmYXFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLih1c2VySW5pdGlhbE1lc3NhZ2UuYWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkOiB1c2VySW5pdGlhbE1lc3NhZ2UuYWdlbnRTdWdnZXN0aW9uSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGFnZW50Py5lbnRpdHkgIT0gbnVsbCA/IHsgYWdlbnRFbnRpdHk6IGFnZW50LmVudGl0eSB9IDoge30pLFxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtcbiAgICBpbml0aWFsQ2hhdElkLFxuICAgIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgICBwcm9qZWN0LFxuICAgIGNsaWVudCxcbiAgICBhdXRoVXNlcixcbiAgICBhZ2VudCxcbiAgICBhc2tNYWlhLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgXSlcblxuICBjb25zdCByZXNldENoYXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50ID0gdXVpZHY0KClcbiAgICBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQgPSBudWxsXG4gICAgY3VycmVudENoYXRJZC5jdXJyZW50ID0gdXVpZHY0KClcbiAgICByZXBvcnRlZEV2ZW50LmN1cnJlbnQgPSBmYWxzZVxuICB9LCBbXSlcblxuICBjb25zdCBzdG9wR2VuZXJhdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzdG9wU3RyZWFtaW5nKClcbiAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gIH0sIFtzdG9wU3RyZWFtaW5nXSlcblxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2VzLFxuICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICBpc0xvYWRpbmdNb3JlTWVzc2FnZXMsXG4gICAgd2FpdGluZ1Jlc3BvbnNlLFxuICAgIGlzV3JpdGluZyxcbiAgICBsb2FkaW5nTWVzc2FnZSxcbiAgICBhY3RpdmVMb2FkaW5ncyxcbiAgICBjdXJyZW50UHJvamVjdCxcbiAgICBjdXJyZW50Q2hhdElkOiBjdXJyZW50Q2hhdElkLmN1cnJlbnQsXG4gICAgY3VycmVudE1lc3NhZ2VJZDogY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50LFxuXG4gICAgc2VuZE1lc3NhZ2UsXG4gICAgY2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVGZWVkYmFjayxcbiAgICBoYW5kbGVBcHByb3ZhbERlY2lzaW9uLFxuICAgIGhhbmRsZVNjcm9sbCxcbiAgICBpbml0aWFsaXplQ2hhdCxcbiAgICByZXNldENoYXQsXG4gICAgc3RvcEdlbmVyYXRpb24sXG5cbiAgICBpc0Rpc2FibGVkOiB3YWl0aW5nUmVzcG9uc2UgfHwgbG9hZGlu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
|
|
1037
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidjQiLCJ1dWlkdjQiLCJ1c2VDaGF0TWVzc2FnZXMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJ1c2VUIiwidXNlVXNlciIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIm1haWEiLCJGZWVkYmFjayIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVByb2plY3RzIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwiZmV0Y2hBZ2VudERldGFpbCIsIm5vcm1hbGl6ZVNlbmRNZXNzYWdlQXJncyIsImF0dGFjaG1lbnRzT3JPcHRpb25zIiwiX29wdGlvbnMkYXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJhdHRhY2htZW50cyIsIm9wdGlvbnMiLCJleHRyYWN0VGFza0lkc0Zyb21EZWxldGVQZW5kaW5nQWN0aW9ucyIsInBlbmRpbmdBY3Rpb25zIiwiaWRzIiwiZm9yRWFjaCIsImFjdGlvbiIsIl90eXBlb2YiLCJhcmdzIiwidG9vbF9hcmdzIiwicmVjIiwidG9vbF9uYW1lIiwiX3JlYyR0YXNrX2lkIiwicmF3IiwidGFza19pZCIsImlkIiwibiIsInBhcnNlSW50IiwiU3RyaW5nIiwiTnVtYmVyIiwiaXNOYU4iLCJwdXNoIiwibGlzdCIsInRhc2tfaWRzIiwidGlkIiwiZXh0cmFjdEFnZW50SWRGcm9tRWRpdEFnZW50UGVuZGluZ0FjdGlvbnMiLCJfcmVjJGFnZW50X2lkIiwiZWRpdEFjdGlvbiIsImZpbmQiLCJhIiwidG9Mb3dlckNhc2UiLCJhZ2VudF9pZCIsImFnZW50SWQiLCJleHRyYWN0QWdlbnRJZEZyb21QZW5kaW5nQWN0aW9uc0J5VG9vbE5hbWUiLCJ0b29sTmFtZSIsIl9yZWYiLCJfcmVjJGFnZW50X2lkMiIsImV4dHJhY3RUYXNrSWRzRnJvbUFzc2lzdGFudERlbGV0aW9uVGV4dCIsInRleHQiLCJsYWJlbGVkIiwibWF0Y2giLCJib2xkIiwidXNlU3RhYmxlQ2FsbGJhY2tzIiwiYXV0aFVzZXIiLCJjdXJyZW50VXNlciIsInRvU3RyaW5nIiwibmFtZSIsImZpcnN0TmFtZSIsImF2YXRhciIsInBpY3R1cmUiLCJjdXJyZW50IiwicGFyc2VTU0VMaW5lIiwibGluZSIsInRyaW0iLCJfbGluZSRzcGxpdCIsInNwbGl0IiwiX2xpbmUkc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsInJlcGxhY2UiLCJkYXRhU3RyIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBhcnNlRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzU1NFU3RyZWFtIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwidGhyZWFkSWQiLCJjYWxsYmFja3MiLCJfcmVzcG9uc2UkYm9keSIsInJlYWRlciIsImRlY29kZXIiLCJidWZmZXIiLCJhY2N1bXVsYXRlZENvbnRlbnQiLCJpc1N0cmVhbUNvbXBsZXRlIiwiaGFuZGxlTGluZSIsIl95aWVsZCRyZWFkZXIkcmVhZCIsImRvbmUiLCJ2YWx1ZSIsImxpbmVzIiwiaSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiX2hhbmRsZUxpbmUiLCJwYXJzZWQiLCJldmVudERhdGEiLCJjb250ZW50Iiwib25Ub2tlbiIsIm1lc3NhZ2UiLCJvbk5vZGUiLCJfZXZlbnREYXRhJGFnZW50X2lkIiwiZmluYWxDb250ZW50Iiwic291cmNlcyIsIm1lbW9yeVNlc3Npb25JZCIsIm1lbW9yeV9zZXNzaW9uX2lkIiwic3VnZ2VzdGlvbnMiLCJzdWdnZXN0X3JlcGx5IiwiYWdlbnRJZFJhdyIsImNvbXBsZXRlZEFnZW50SWQiLCJvbkNvbXBsZXRlIiwiX2NhbGxiYWNrcyRvbkFwcHJvdmFsIiwib25BcHByb3ZhbFJlcXVpcmVkIiwiY2FsbCIsIm9uRXJyb3IiLCJib2R5IiwiZ2V0UmVhZGVyIiwiRXJyb3IiLCJUZXh0RGVjb2RlciIsInJlYWQiLCJzZW50IiwiYWJydXB0IiwiZGVjb2RlIiwic3RyZWFtIiwicG9wIiwibGVuZ3RoIiwic3RvcCIsIl94IiwiX3gyIiwiX3gzIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VDaGF0TWFuYWdlciIsIl9yZWYzIiwiaW5pdGlhbENoYXRJZCIsImNoYXRJZCIsInVzZXJJbml0aWFsTWVzc2FnZSIsIl9yZWYzJGFnZW50cyIsImFnZW50cyIsIl91c2VUIiwidCIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsInNldFByb2plY3QiLCJjbGllbnQiLCJzZXRDbGllbnQiLCJhZ2VudCIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2hpcHNQcm9qZWN0IiwiZXZlbnQiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZVN0YWJsZUNhbGxiYWNrcyIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwiY3VycmVudE1lc3NhZ2VJZCIsImN1cnJlbnRVc2VyUXVlc3Rpb24iLCJjdXJyZW50Q2hhdElkIiwicmVwb3J0ZWRFdmVudCIsIm1lc3NhZ2VzUmVmIiwiaXNQcm9jZXNzaW5nUmVmIiwiZmlyc3RUaW1lUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUxvYWRpbmdzIiwic2V0QWN0aXZlTG9hZGluZ3MiLCJpc1dlYlNlYXJjaEFjdGl2ZVJlZiIsImlzRGVlcFNlYXJjaEFjdGl2ZVJlZiIsIl91c2VDaGF0TWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJtZXNzYWdlcyIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsImxvYWRNZXNzYWdlcyIsImFkZE1lc3NhZ2UiLCJyZW1vdmVNZXNzYWdlIiwiaGFuZGxlU2Nyb2xsIiwiY3VzdG9tRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsImxhc3RNc2dXaXRoUHJvamVjdCIsImZpbHRlciIsIm1zZyIsInByb2plY3RJZCIsImF0IiwiX3JlZjQiLCJwcm9qZWN0TmFtZSIsInRoZW4iLCJwcm9qZWN0cyIsImZvdW5kIiwicCIsIl9mb3VuZCRjbGllbnQiLCJjbGllbnROYW1lIiwibGFzdE1zZ1dpdGhDbGllbnQiLCJjbGllbnRJZCIsIl9yZWY1IiwibXNnQ2xpZW50SWQiLCJtc2dDbGllbnROYW1lIiwiaGFuZGxlU3RyZWFtRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJjb25jYXQiLCJpc0Vycm9yIiwiZGF0ZSIsIkRhdGUiLCJ1c2VyIiwicm9sZSIsIkFTU0lTVEFOVCIsImhhbmRsZVN0cmVhbVVwZGF0ZSIsInRlbXBNZXNzYWdlSWQiLCJoYW5kbGVTdHJlYW1GaW5pc2giLCJfcmVmNiIsIl9jYWxsZWUyIiwiX3ByZXZpb3VzTWVzc2FnZSRhcHByIiwiX2NyZWF0ZUFnZW50Rm9sbG93VXAiLCJfZWRpdEFnZW50Rm9sbG93VXAiLCJ0YXNrVXJsUmVnZXgiLCJtYXRjaGVzIiwiY29udGVudFRvQWRkIiwicHJldmlvdXNNZXNzYWdlIiwiaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSIsIlRBU0tfQ1JFQVRJT05fVE9PTFMiLCJUQVNLX0VESVRfVE9PTFMiLCJUQVNLX0RFTEVURV9UT09MUyIsIndhc1Rhc2tDcmVhdGlvbiIsIndhc1Rhc2tFZGl0Iiwid2FzVGFza0RlbGV0ZSIsIndhc0NyZWF0ZUFnZW50QXBwcm92ZWQiLCJ3YXNDb25maWd1cmVBZ2VudEFjY2Vzc0FwcHJvdmVkIiwiY3JlYXRlQWdlbnRGb2xsb3dVcCIsImNvbmZpZ3VyZWRBZ2VudElkIiwid2FzRWRpdEFnZW50QXBwcm92ZWQiLCJlZGl0QWdlbnRGb2xsb3dVcCIsImZyb21TdHJlYW0iLCJmcm9tQXJncyIsInJlc29sdmVkQWdlbnRJZCIsInRhc2tJZHNGcm9tVXJscyIsInRhc2tJZHNGcm9tRGVsZXRlQXBwcm92YWwiLCJ0YXNrSWRzRnJvbURlbGV0aW9uVGV4dCIsInRhc2tJZHNGb3JEYXNoYm9hcmQiLCJzaG91bGRTeW5jRGFzaGJvYXJkIiwidGFza0lkcyIsInRhYiIsInRhYlNlZ21lbnQiLCJsYXN0UHJvamVjdE1lc3NhZ2UiLCJjb250ZXh0UHJvamVjdElkUmF3IiwiY29udGV4dFByb2plY3RJZCIsInBhdGhNYXRjaCIsInJvdXRlUHJvamVjdElkIiwiaXNPblByb2plY3RSb3V0ZSIsIl93aW5kb3ckbmV3UHJvamVjdERhcyIsIl93aW5kb3ckbmV3UHJvamVjdERhczIiLCJfd2luZG93JG5ld1Byb2plY3REYXMzIiwiX3dpbmRvdyRuZXdQcm9qZWN0RGFzNCIsIl93aW5kb3ckbmV3UHJvamVjdERhczUiLCJfd2luZG93JG5ld1Byb2plY3REYXM2IiwiX2NvbnRleHQyIiwiUmVnRXhwIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWF0Y2hBbGwiLCJtIiwiYXBwcm92YWwiLCJwZW5kaW5nX2FjdGlvbnMiLCJzb21lIiwiaW5jbHVkZXMiLCJhcHByb3ZhbFN0YXR1cyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJtYXAiLCJ1cmwiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwibmV3UHJvamVjdERhc2hib2FyZCIsImFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkIiwiZWRpdEV4aXN0aW5nVGFza0luRGFzaGJvYXJkIiwiZGVsZXRlRXhpc3RpbmdUYXNrRnJvbURhc2hib2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QWdlbnQiLCJlcnIiLCJfeDQiLCJfeDUiLCJfeDYiLCJfeDciLCJfeDgiLCJoYW5kbGVTdHJlYW1TdG9wIiwiaXNGcm9udGVuZENhbmNlbGxlZCIsInNldFRpbWVvdXQiLCJoYW5kbGVBcHByb3ZhbFJlcXVpcmVkIiwib3JpZ2luYWxfdGhyZWFkX2lkIiwiX3VzZU9yY2hlc3RyYXRvclN0cmVhIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RvcCIsImFza01haWEiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc0xvYWRpbmciLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsInN0b3BTdHJlYW1pbmciLCJjdXJyZW50UHJvamVjdCIsInNlbmRNZXNzYWdlIiwiX3JlZjciLCJfY2FsbGVlMyIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsIl9wcm9qZWN0JGNsaWVudCIsIl9ub3JtYWxpemVTZW5kTWVzc2FnZSIsIm5ld01lc3NhZ2VJZCIsImxhc3RNZXNzYWdlV2l0aFByb2plY3QiLCJjdXJyZW50QWdlbnRGcm9tTWVzc2FnZXMiLCJmaW5hbE1lc3NhZ2UiLCJfb3B0aW9ucyRwcm9qZWN0Q2hhbmciLCJoaXN0b3J5IiwibGFzdE1lc3NhZ2VQcm9qZWN0SWQiLCJwcm9qZWN0VG9SZXF1ZXN0IiwicGF5bG9hZEZhcUlkIiwicGF5bG9hZEFnZW50U3VnZ2VzdGlvbklkIiwicGF5bG9hZERhdGEiLCJfY29udGV4dDMiLCJwbUFpVHlwZWRUZXh0IiwiVVNFUiIsInByb2plY3RDaGFuZ2VkIiwiaW5jb21lVHlwZSIsImhpc3RvcnlNZXNzYWdlIiwiaXNGaW5pdGUiLCJsYW5nIiwidXNlcklkIiwibGFzdE5hbWUiLCJjb21wYW55SWQiLCJjb21wYW55X2lkIiwibWVzc2FnZUlkIiwiYWdlbnROYW1lIiwiZmVlSWQiLCJlbnRpdHkiLCJhZ2VudEVudGl0eSIsIl94OSIsIl94MCIsIl94MSIsIl94MTAiLCJjaGFuZ2VQcm9qZWN0Iiwib3B0aW9uIiwiaGFuZGxlRmVlZGJhY2siLCJfcmVmOCIsIl9jYWxsZWU0IiwiZmVlZGJhY2tQcm9wIiwiY2hhdE1lc3NhZ2VJZCIsIl9jb250ZXh0NCIsIkNoYXRzIiwid2FzSGVscGZ1bENoYXQiLCJUSFVNQlNfVVAiLCJ3YXNIZWxwZnVsIiwiX3gxMSIsIl94MTIiLCJoYW5kbGVBcHByb3ZhbERlY2lzaW9uIiwiX3JlZjkiLCJfY2FsbGVlNSIsInRocmVhZElkcyIsImRlY2lzaW9uIiwiZWRpdGVkQWN0aW9ucyIsIm1lc3NhZ2VXaXRoQXBwcm92YWwiLCJsb2FkaW5nS2V5IiwiZXhpc3RpbmdNZXNzYWdlIiwibmV3U3RhdHVzIiwiX3QiLCJfY29udGV4dDUiLCJfbSRhcHByb3ZhbCIsInRocmVhZF9pZCIsIl9kZWZpbmVQcm9wZXJ0eSIsIk9yY2hlc3RyYXRvciIsImNvbnRpbnVlVGhyZWFkIiwic2Vzc2lvbklkIiwic2Vzc2lvbl9pZCIsIm9rIiwibmV3TG9hZGluZ3MiLCJjdXJyZW50VGhyZWFkSWQiLCJkaXNwbGF5TXNnIiwiYXBwcm92YWxQYXlsb2FkIiwiX3gxMyIsIl94MTQiLCJfeDE1IiwiaW5pdGlhbGl6ZUNoYXQiLCJfY2FsbGVlNiIsIl91c2VySW5pdGlhbE1lc3NhZ2UkbSIsIl91c2VySW5pdGlhbE1lc3NhZ2UkYSIsIl9wcm9qZWN0JGNsaWVudDIiLCJfcHJvamVjdCRjbGllbnQzIiwiaGFzSW5pdGlhbE1lc3NhZ2UiLCJoYXNJbml0aWFsQXR0YWNobWVudHMiLCJoYXNJbml0aWFsRmFxIiwiX2NvbnRleHQ2IiwiQm9vbGVhbiIsInJlc2V0Q2hhdCIsInN0b3BHZW5lcmF0aW9uIiwiaXNEaXNhYmxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VDaGF0TWFuYWdlci91c2VDaGF0TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByYWRpeCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRlZC1vcHRpb25hbC1jaGFpbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCdcbmltcG9ydCB7IHVzZUNoYXRNZXNzYWdlcyB9IGZyb20gJy4uL3VzZUNoYXRNZXNzYWdlcydcbmltcG9ydCB7IHVzZU9yY2hlc3RyYXRvclN0cmVhbSB9IGZyb20gJy4uL3VzZU9yY2hlc3RyYXRvclN0cmVhbSdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi91c2VUJ1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBTZW5kTWVzc2FnZU9wdGlvbnMsIFVzZUNoYXRNYW5hZ2VyUHJvcHMgfSBmcm9tICcuL3VzZUNoYXRNYW5hZ2VyLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vdXNlRXZlbnQnXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgRmVlZGJhY2sgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9NZXNzYWdlRmVlZGJhY2svTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlVXNlciwgQ2hhdEhpc3RvcnlSb2xlLCBBcHByb3ZhbFJlcXVlc3QsIFBlbmRpbmdBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IHVzZVByb2plY3RzIH0gZnJvbSAnLi4vdXNlUHJvamVjdHMnXG5pbXBvcnQgeyB1c2VUYWJUYXNrRGVmYXVsdCB9IGZyb20gJy4uL3VzZVRhYlRhc2tEZWZhdWx0J1xuaW1wb3J0IHsgVEFTS19VUkxfUkVHRVhfUEFUVEVSTiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy90YXNrVXJscydcbmltcG9ydCB7IGZldGNoQWdlbnREZXRhaWwgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9mZXRjaEFnZW50RGV0YWlsJ1xuXG50eXBlIEF0dGFjaG1lbnRzT3JPcHRpb25zID0gQXR0YWNobWVudEZpbGVbXSB8IFNlbmRNZXNzYWdlT3B0aW9uc1xuXG5jb25zdCBub3JtYWxpemVTZW5kTWVzc2FnZUFyZ3MgPSAoYXR0YWNobWVudHNPck9wdGlvbnM/OiBBdHRhY2htZW50c09yT3B0aW9ucykgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShhdHRhY2htZW50c09yT3B0aW9ucykpIHtcbiAgICByZXR1cm4geyBhdHRhY2htZW50czogYXR0YWNobWVudHNPck9wdGlvbnMsIG9wdGlvbnM6IHt9IGFzIFNlbmRNZXNzYWdlT3B0aW9ucyB9XG4gIH1cblxuICBjb25zdCBvcHRpb25zOiBTZW5kTWVzc2FnZU9wdGlvbnMgPSBhdHRhY2htZW50c09yT3B0aW9ucyA/PyB7fVxuICByZXR1cm4geyBhdHRhY2htZW50czogb3B0aW9ucy5hdHRhY2htZW50cyA/PyBbXSwgb3B0aW9ucyB9XG59XG5cbi8qKiB0YXNrX2lkIC8gdGFza19pZHMgZW4gcGVuZGluZ19hY3Rpb25zIGRlIGRlbGV0ZV8qIChsYSByZXNwdWVzdGEgcHVlZGUgbm8gaW5jbHVpciBVUkxzIC90YXNrcy/igKYvZGV0YWlsKS4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RUYXNrSWRzRnJvbURlbGV0ZVBlbmRpbmdBY3Rpb25zKHBlbmRpbmdBY3Rpb25zOiBQZW5kaW5nQWN0aW9uW10pOiBudW1iZXJbXSB7XG4gIGNvbnN0IGlkczogbnVtYmVyW10gPSBbXVxuICBwZW5kaW5nQWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgaWYgKCFhY3Rpb24gfHwgdHlwZW9mIGFjdGlvbiAhPT0gJ29iamVjdCcpIHJldHVyblxuICAgIGNvbnN0IGFyZ3MgPSBhY3Rpb24udG9vbF9hcmdzXG4gICAgaWYgKCEoYXJncyAmJiB0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoYXJncykpKSByZXR1cm5cbiAgICBjb25zdCByZWMgPSBhcmdzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgaWYgKGFjdGlvbi50b29sX25hbWUgPT09ICdkZWxldGVfdGFzaycpIHtcbiAgICAgIGNvbnN0IHJhdyA9IHJlYy50YXNrX2lkID8/IHJlYy5pZFxuICAgICAgaWYgKHJhdyAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG4gPSBwYXJzZUludChTdHJpbmcocmF3KSwgMTApXG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG4pKSBpZHMucHVzaChuKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWN0aW9uLnRvb2xfbmFtZSA9PT0gJ2RlbGV0ZV90YXNrc19iYXRjaCcpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSByZWMudGFza19pZHNcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGxpc3QpKSB7XG4gICAgICAgIGxpc3QuZm9yRWFjaCh0aWQgPT4ge1xuICAgICAgICAgIGNvbnN0IG4gPSBwYXJzZUludChTdHJpbmcodGlkKSwgMTApXG4gICAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obikpIGlkcy5wdXNoKG4pXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9KVxuICByZXR1cm4gaWRzXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBZ2VudElkRnJvbUVkaXRBZ2VudFBlbmRpbmdBY3Rpb25zKHBlbmRpbmdBY3Rpb25zOiBQZW5kaW5nQWN0aW9uW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgZWRpdEFjdGlvbiA9IHBlbmRpbmdBY3Rpb25zLmZpbmQoYSA9PiAoYS50b29sX25hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdlZGl0X2FnZW50JylcbiAgaWYgKFxuICAgICFlZGl0QWN0aW9uIHx8XG4gICAgIWVkaXRBY3Rpb24udG9vbF9hcmdzIHx8XG4gICAgdHlwZW9mIGVkaXRBY3Rpb24udG9vbF9hcmdzICE9PSAnb2JqZWN0JyB8fFxuICAgIEFycmF5LmlzQXJyYXkoZWRpdEFjdGlvbi50b29sX2FyZ3MpXG4gICkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgcmVjID0gZWRpdEFjdGlvbi50b29sX2FyZ3MgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgY29uc3QgcmF3ID0gcmVjLmFnZW50X2lkID8/IHJlYy5hZ2VudElkXG4gIHJldHVybiByYXcgIT0gbnVsbCA/IFN0cmluZyhyYXcpIDogbnVsbFxufVxuXG5mdW5jdGlvbiBleHRyYWN0QWdlbnRJZEZyb21QZW5kaW5nQWN0aW9uc0J5VG9vbE5hbWUocGVuZGluZ0FjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXSwgdG9vbE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBhY3Rpb24gPSBwZW5kaW5nQWN0aW9ucy5maW5kKGEgPT4gKGEudG9vbF9uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSB0b29sTmFtZS50b0xvd2VyQ2FzZSgpKVxuICBpZiAoIWFjdGlvbiB8fCAhYWN0aW9uLnRvb2xfYXJncyB8fCB0eXBlb2YgYWN0aW9uLnRvb2xfYXJncyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShhY3Rpb24udG9vbF9hcmdzKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgcmVjID0gYWN0aW9uLnRvb2xfYXJncyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBjb25zdCByYXcgPSByZWMuYWdlbnRfaWQgPz8gcmVjLmFnZW50SWQgPz8gcmVjLmlkXG4gIHJldHVybiByYXcgIT0gbnVsbCA/IFN0cmluZyhyYXcpIDogbnVsbFxufVxuXG4vKiogw5psdGltbyByZWN1cnNvIHNpIG5vIGhheSBsaW5rcyBuaSB0b29sX2FyZ3MgcGFyc2VhYmxlcyAocC4gZWouIFwiSUQgKio3NTk3MTA2KipcIikuICovXG5mdW5jdGlvbiBleHRyYWN0VGFza0lkc0Zyb21Bc3Npc3RhbnREZWxldGlvblRleHQodGV4dDogc3RyaW5nKTogbnVtYmVyW10ge1xuICBjb25zdCBsYWJlbGVkID0gdGV4dC5tYXRjaCgvXFxiSURcXHMqXFwqXFwqKFxcZCspXFwqXFwqL2kpXG4gIGlmIChsYWJlbGVkKSB7XG4gICAgY29uc3QgbiA9IHBhcnNlSW50KGxhYmVsZWRbMV0sIDEwKVxuICAgIHJldHVybiBOdW1iZXIuaXNOYU4obikgPyBbXSA6IFtuXVxuICB9XG4gIGNvbnN0IGJvbGQgPSB0ZXh0Lm1hdGNoKC9cXCpcXCooXFxkezUsfSlcXCpcXCovKVxuICBpZiAoYm9sZCkge1xuICAgIGNvbnN0IG4gPSBwYXJzZUludChib2xkWzFdLCAxMClcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKG4pID8gW10gOiBbbl1cbiAgfVxuICByZXR1cm4gW11cbn1cblxuY29uc3QgdXNlU3RhYmxlQ2FsbGJhY2tzID0gKGF1dGhVc2VyOiBDT1JVc2VyKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRVc2VyID0gdXNlUmVmPENoYXRNZXNzYWdlVXNlcj4oe1xuICAgIGlkOiBhdXRoVXNlci5pZC50b1N0cmluZygpLFxuICAgIG5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICBhdmF0YXI6IGF1dGhVc2VyLnBpY3R1cmUsXG4gIH0pXG5cbiAgaWYgKFxuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQuaWQgIT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkgfHxcbiAgICBjdXJyZW50VXNlci5jdXJyZW50Lm5hbWUgIT09IGF1dGhVc2VyLmZpcnN0TmFtZSB8fFxuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQuYXZhdGFyICE9PSBhdXRoVXNlci5waWN0dXJlXG4gICkge1xuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQgPSB7XG4gICAgICBpZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgIG5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICAgIGF2YXRhcjogYXV0aFVzZXIucGljdHVyZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjdXJyZW50VXNlcjogY3VycmVudFVzZXIuY3VycmVudCxcbiAgfVxufVxuXG5jb25zdCBwYXJzZVNTRUxpbmUgPSAobGluZTogc3RyaW5nKTogeyBldmVudFR5cGU6IHN0cmluZzsgZGF0YTogdW5rbm93biB9IHwgbnVsbCA9PiB7XG4gIGlmICghbGluZS50cmltKCkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgW2V2ZW50TGluZSwgZGF0YUxpbmVdID0gbGluZS5zcGxpdCgnXFxuJylcbiAgaWYgKCFldmVudExpbmUgfHwgIWRhdGFMaW5lKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGV2ZW50VHlwZSA9IGV2ZW50TGluZS5yZXBsYWNlKCdldmVudDogJywgJycpLnRyaW0oKVxuICBjb25zdCBkYXRhU3RyID0gZGF0YUxpbmUucmVwbGFjZSgnZGF0YTogJywgJycpLnRyaW0oKVxuXG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGF0YVN0cilcbiAgICByZXR1cm4geyBldmVudFR5cGUsIGRhdGEgfVxuICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBTU0UgZGF0YTonLCBwYXJzZUVycm9yLCBkYXRhU3RyKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgcHJvY2Vzc1NTRVN0cmVhbSA9IGFzeW5jIChcbiAgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICB0aHJlYWRJZDogc3RyaW5nLFxuICBjYWxsYmFja3M6IHtcbiAgICBvblRva2VuOiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkXG4gICAgb25Ob2RlOiAobWVzc2FnZTogc3RyaW5nLCB0aHJlYWRJZDogc3RyaW5nKSA9PiB2b2lkXG4gICAgb25Db21wbGV0ZTogKFxuICAgICAgZmluYWxDb250ZW50OiBzdHJpbmcsXG4gICAgICBzb3VyY2VzOiBhbnksXG4gICAgICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZyxcbiAgICAgIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nLFxuICAgICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGwsXG4gICAgICBhZ2VudElkPzogc3RyaW5nIHwgbnVsbFxuICAgICkgPT4gdm9pZFxuICAgIG9uRXJyb3I6IChlcnJvcjogYW55LCB0aHJlYWRJZDogc3RyaW5nKSA9PiB2b2lkXG4gICAgb25BcHByb3ZhbFJlcXVpcmVkPzogKGFwcHJvdmFsOiBhbnksIGFjY3VtdWxhdGVkQ29udGVudDogc3RyaW5nLCBjdXJyZW50VGhyZWFkSWQ6IHN0cmluZykgPT4gdm9pZFxuICB9XG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcmVhZGVyID0gcmVzcG9uc2UuYm9keT8uZ2V0UmVhZGVyKClcbiAgaWYgKCFyZWFkZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlYWRlciBhdmFpbGFibGUnKVxuICB9XG5cbiAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gIGxldCBidWZmZXIgPSAnJ1xuICBsZXQgYWNjdW11bGF0ZWRDb250ZW50ID0gJydcbiAgbGV0IGlzU3RyZWFtQ29tcGxldGUgPSBmYWxzZVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUxpbmUobGluZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VTU0VMaW5lKGxpbmUpXG4gICAgaWYgKCFwYXJzZWQpIHJldHVyblxuXG4gICAgY29uc3QgeyBldmVudFR5cGUsIGRhdGEgfSA9IHBhcnNlZFxuICAgIGNvbnN0IGV2ZW50RGF0YSA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuICAgIGlmIChldmVudFR5cGUgPT09ICd0b2tlbicpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBldmVudERhdGEuY29udGVudCBhcyBzdHJpbmdcbiAgICAgIGFjY3VtdWxhdGVkQ29udGVudCArPSBjb250ZW50XG4gICAgICBjYWxsYmFja3Mub25Ub2tlbihhY2N1bXVsYXRlZENvbnRlbnQpXG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdub2RlJykge1xuICAgICAgaWYgKGV2ZW50RGF0YS5tZXNzYWdlICYmIHR5cGVvZiBldmVudERhdGEubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2FsbGJhY2tzLm9uTm9kZShldmVudERhdGEubWVzc2FnZSwgdGhyZWFkSWQpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgIGNvbnN0IGZpbmFsQ29udGVudCA9IChldmVudERhdGEuY29udGVudCBhcyBzdHJpbmcpIHx8IGFjY3VtdWxhdGVkQ29udGVudFxuICAgICAgY29uc3Qgc291cmNlcyA9IChldmVudERhdGEuc291cmNlcyBhcyB1bmtub3duKSB8fCBudWxsXG4gICAgICBjb25zdCBtZW1vcnlTZXNzaW9uSWQgPSAoZXZlbnREYXRhLm1lbW9yeV9zZXNzaW9uX2lkIGFzIHN0cmluZykgfHwgJydcbiAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zID0gQXJyYXkuaXNBcnJheShldmVudERhdGEuc3VnZ2VzdF9yZXBseSlcbiAgICAgICAgPyAoZXZlbnREYXRhLnN1Z2dlc3RfcmVwbHkgYXMgc3RyaW5nW10pXG4gICAgICAgIDogQXJyYXkuaXNBcnJheShldmVudERhdGEuc3VnZ2VzdGlvbnMpXG4gICAgICAgICAgPyAoZXZlbnREYXRhLnN1Z2dlc3Rpb25zIGFzIHN0cmluZ1tdKVxuICAgICAgICAgIDogbnVsbFxuICAgICAgY29uc3QgYWdlbnRJZFJhdyA9IGV2ZW50RGF0YS5hZ2VudF9pZCA/PyBldmVudERhdGEuYWdlbnRJZFxuICAgICAgY29uc3QgY29tcGxldGVkQWdlbnRJZCA9IGFnZW50SWRSYXcgIT0gbnVsbCAmJiBTdHJpbmcoYWdlbnRJZFJhdykudHJpbSgpICE9PSAnJyA/IFN0cmluZyhhZ2VudElkUmF3KS50cmltKCkgOiBudWxsXG4gICAgICBjYWxsYmFja3Mub25Db21wbGV0ZShmaW5hbENvbnRlbnQsIHNvdXJjZXMsIG1lbW9yeVNlc3Npb25JZCwgdGhyZWFkSWQsIHN1Z2dlc3Rpb25zLCBjb21wbGV0ZWRBZ2VudElkKVxuICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSAnYXBwcm92YWxfcmVxdWlyZWQnKSB7XG4gICAgICBjYWxsYmFja3Mub25BcHByb3ZhbFJlcXVpcmVkPy4oZXZlbnREYXRhLCBhY2N1bXVsYXRlZENvbnRlbnQsIHRocmVhZElkKVxuICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSAnZXJyb3InKSB7XG4gICAgICBjYWxsYmFja3Mub25FcnJvcihldmVudERhdGEuZXJyb3IsIHRocmVhZElkKVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlICghaXNTdHJlYW1Db21wbGV0ZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgIGlmIChkb25lKSB7XG4gICAgICBpc1N0cmVhbUNvbXBsZXRlID0gdHJ1ZVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBidWZmZXIgKz0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pXG4gICAgY29uc3QgbGluZXMgPSBidWZmZXIuc3BsaXQoJ1xcblxcbicpXG4gICAgYnVmZmVyID0gbGluZXMucG9wKCkgfHwgJydcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGhhbmRsZUxpbmUobGluZXNbaV0pXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWFuYWdlciA9ICh7XG4gIGNoYXRJZDogaW5pdGlhbENoYXRJZCxcbiAgdXNlckluaXRpYWxNZXNzYWdlLFxuICBvbkVycm9yLFxuICBhZ2VudHMgPSBbXSxcbn06IFVzZUNoYXRNYW5hZ2VyUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgYXV0aFVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3Qge1xuICAgIHByb2plY3QsXG4gICAgc2V0UHJvamVjdCxcbiAgICBjbGllbnQsXG4gICAgc2V0Q2xpZW50LFxuICAgIGFnZW50LFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBjaGlwc1Byb2plY3QsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBjdXJyZW50VXNlciB9ID0gdXNlU3RhYmxlQ2FsbGJhY2tzKGF1dGhVc2VyKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IGN1cnJlbnRNZXNzYWdlSWQgPSB1c2VSZWYodXVpZHY0KCkpXG4gIGNvbnN0IGN1cnJlbnRVc2VyUXVlc3Rpb24gPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgY3VycmVudENoYXRJZCA9IHVzZVJlZihpbml0aWFsQ2hhdElkIHx8IHV1aWR2NCgpKVxuICBjb25zdCByZXBvcnRlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBtZXNzYWdlc1JlZiA9IHVzZVJlZjxDaGF0TWVzc2FnZVtdPihbXSlcbiAgY29uc3QgaXNQcm9jZXNzaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBmaXJzdFRpbWVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IFthY3RpdmVMb2FkaW5ncywgc2V0QWN0aXZlTG9hZGluZ3NdID0gdXNlU3RhdGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe30pXG5cbiAgY29uc3QgaXNXZWJTZWFyY2hBY3RpdmVSZWYgPSB1c2VSZWYoaXNXZWJTZWFyY2hBY3RpdmUpXG4gIGNvbnN0IGlzRGVlcFNlYXJjaEFjdGl2ZVJlZiA9IHVzZVJlZihpc0RlZXBTZWFyY2hBY3RpdmUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50ID0gaXNXZWJTZWFyY2hBY3RpdmVcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmVSZWYuY3VycmVudCA9IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgY29uc3QgeyBsb2FkaW5nTWVzc2FnZXMsIG1lc3NhZ2VzLCBpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIGxvYWRNZXNzYWdlcywgYWRkTWVzc2FnZSwgcmVtb3ZlTWVzc2FnZSwgaGFuZGxlU2Nyb2xsIH0gPVxuICAgIHVzZUNoYXRNZXNzYWdlcyh7XG4gICAgICBjaGF0SWQ6IGluaXRpYWxDaGF0SWQgfHwgY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgY3VycmVudFVzZXIsXG4gICAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgICBvbkVycm9yLFxuICAgICAgYWdlbnRzLFxuICAgIH0pXG5cbiAgbWVzc2FnZXNSZWYuY3VycmVudCA9IG1lc3NhZ2VzXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBDdXN0b21FdmVudCgnY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCB7XG4gICAgICBkZXRhaWw6IHsgbG9hZGluZ01lc3NhZ2VzIH0sXG4gICAgfSlcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KVxuICB9LCBbbG9hZGluZ01lc3NhZ2VzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsQ2hhdElkICYmIGluaXRpYWxDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWQuY3VycmVudCkge1xuICAgICAgLy8gTGltcGlhciBjb250ZXh0byBnbG9iYWwgYWwgY2FtYmlhciBkZSBjb252ZXJzYWNpw7NuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG5cbiAgICAgIGN1cnJlbnRDaGF0SWQuY3VycmVudCA9IGluaXRpYWxDaGF0SWRcbiAgICAgIGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCA9IHV1aWR2NCgpXG4gICAgICBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQgPSBudWxsXG4gICAgICByZXBvcnRlZEV2ZW50LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuXG4gICAgICBsb2FkTWVzc2FnZXMoKVxuICAgIH1cbiAgfSwgW2luaXRpYWxDaGF0SWQsIHByb2plY3QsIHNldFByb2plY3QsIHNldENsaWVudCwgc2V0Q2hpcHNQcm9qZWN0LCBsb2FkTWVzc2FnZXNdKVxuXG4gIC8vIFNpbmNyb25pemFyIGNoaXBzUHJvamVjdCBjdWFuZG8gaGF5IG1lbnNhamVzIGNvbiBwcm9qZWN0SWQgcGVybyBjaGlwc1Byb2plY3Qgbm8gc2UgaGEgc2V0ZWFkb1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjaGlwc1Byb2plY3QgfHwgbG9hZGluZ01lc3NhZ2VzKSByZXR1cm5cbiAgICBjb25zdCBsYXN0TXNnV2l0aFByb2plY3QgPSBtZXNzYWdlcy5maWx0ZXIobXNnID0+IG1zZy5wcm9qZWN0SWQpLmF0KC0xKVxuICAgIGNvbnN0IHsgcHJvamVjdElkLCBwcm9qZWN0TmFtZSB9ID0gbGFzdE1zZ1dpdGhQcm9qZWN0IHx8IHt9XG4gICAgaWYgKCFwcm9qZWN0SWQpIHJldHVyblxuXG4gICAgZmV0Y2hQcm9qZWN0cyhwcm9qZWN0SWQpLnRoZW4ocHJvamVjdHMgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBwcm9qZWN0cz8uZmluZChwID0+IE51bWJlcihwLmlkKSA9PT0gTnVtYmVyKHByb2plY3RJZCkpXG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0TmFtZTogZm91bmQubmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lOiBmb3VuZC5jbGllbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmQuaWQpLFxuICAgICAgICB9KVxuICAgICAgICBzZXRQcm9qZWN0KGZvdW5kKVxuICAgICAgfSBlbHNlIGlmIChwcm9qZWN0TmFtZSkge1xuICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgIHByb2plY3ROYW1lLFxuICAgICAgICAgIGNsaWVudE5hbWU6ICcnLFxuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZCksXG4gICAgICAgIH0pXG4gICAgICAgIHNldFByb2plY3QoeyBpZDogTnVtYmVyKHByb2plY3RJZCksIG5hbWU6IHByb2plY3ROYW1lIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW21lc3NhZ2VzLCBjaGlwc1Byb2plY3QsIGxvYWRpbmdNZXNzYWdlcywgZmV0Y2hQcm9qZWN0cywgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0XSlcblxuICAvLyBTaW5jcm9uaXphciBjbGllbnQgY3VhbmRvIGhheSBtZW5zYWplcyBjb24gY2xpZW50SWQgcGVybyBjbGllbnQgbm8gc2UgaGEgc2V0ZWFkb1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjbGllbnQgfHwgbG9hZGluZ01lc3NhZ2VzKSByZXR1cm5cbiAgICBjb25zdCBsYXN0TXNnV2l0aENsaWVudCA9IG1lc3NhZ2VzLmZpbHRlcihtc2cgPT4gbXNnLmNsaWVudElkICE9IG51bGwgJiYgbXNnLmNsaWVudE5hbWUpLmF0KC0xKVxuICAgIGNvbnN0IHsgY2xpZW50SWQ6IG1zZ0NsaWVudElkLCBjbGllbnROYW1lOiBtc2dDbGllbnROYW1lIH0gPSBsYXN0TXNnV2l0aENsaWVudCB8fCB7fVxuICAgIGlmIChtc2dDbGllbnRJZCA9PSBudWxsIHx8ICFtc2dDbGllbnROYW1lKSByZXR1cm5cblxuICAgIHNldENsaWVudD8uKHsgaWQ6IE51bWJlcihtc2dDbGllbnRJZCksIG5hbWU6IG1zZ0NsaWVudE5hbWUgfSlcbiAgfSwgW21lc3NhZ2VzLCBjbGllbnQsIGxvYWRpbmdNZXNzYWdlcywgc2V0Q2xpZW50XSlcblxuICBjb25zdCBoYW5kbGVTdHJlYW1FcnJvciA9IHVzZUNhbGxiYWNrKFxuICAgIChlcnJvck1lc3NhZ2U/OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICBlcnJvck1lc3NhZ2UgPT09IFwiQWNjZXNzIGRlbmllZDogWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhpcyBhZ2VudFwiXG4gICAgICAgICAgPyB0KCdjaGF0LmVycm9yQWNjZXNzRGVuaWVkJylcbiAgICAgICAgICA6IHQoJ2NoYXQuZXJyb3InKVxuXG4gICAgICBhZGRNZXNzYWdlKHtcbiAgICAgICAgaWQ6IGBhbnN3ZXItJHtjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnR9YCxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICB9KVxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0sXG4gICAgW2FkZE1lc3NhZ2UsIHRdXG4gIClcblxuICBjb25zdCBoYW5kbGVTdHJlYW1VcGRhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGVudDogc3RyaW5nLCBzb3VyY2VzOiBhbnksIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wTWVzc2FnZUlkID0gYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tc3RyZWFtaW5nYFxuXG4gICAgICBhZGRNZXNzYWdlKHtcbiAgICAgICAgaWQ6IHRlbXBNZXNzYWdlSWQsXG4gICAgICAgIG1lc3NhZ2U6IGNvbnRlbnQsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IHsgaWQ6ICdhc3Npc3RhbnQnLCBuYW1lOiAnQXNzaXN0YW50JyB9LFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgICBzb3VyY2VzLFxuICAgICAgICBtZW1vcnlTZXNzaW9uSWQsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2FkZE1lc3NhZ2VdXG4gIClcblxuICBjb25zdCBoYW5kbGVTdHJlYW1GaW5pc2ggPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoXG4gICAgICBjb250ZW50OiBzdHJpbmcsXG4gICAgICBzb3VyY2VzOiBhbnksXG4gICAgICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZyxcbiAgICAgIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsLFxuICAgICAgY29tcGxldGVkQWdlbnRJZD86IHN0cmluZyB8IG51bGxcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHRlbXBNZXNzYWdlSWQgPSBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fS1zdHJlYW1pbmdgXG4gICAgICByZW1vdmVNZXNzYWdlKHRlbXBNZXNzYWdlSWQpXG5cbiAgICAgIC8vIERldGVjdGFyIHRvZGFzIGxhcyBVUkxzIGRlIHRhcmVhcyAoLi4uL3Rhc2tzLzEyMy9kZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKVxuICAgICAgY29uc3QgdGFza1VybFJlZ2V4ID0gbmV3IFJlZ0V4cChUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCAnZycpXG4gICAgICBjb25zdCBtYXRjaGVzID0gWy4uLmNvbnRlbnQubWF0Y2hBbGwodGFza1VybFJlZ2V4KV1cblxuICAgICAgbGV0IGNvbnRlbnRUb0FkZCA9IGNvbnRlbnRcbiAgICAgIGNvbnN0IHByZXZpb3VzTWVzc2FnZSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmlsdGVyKG0gPT4gbS5pZCAhPT0gdGVtcE1lc3NhZ2VJZCkuYXQoLTEpXG4gICAgICBjb25zdCBoYXNBcHByb3ZhbEluUHJldmlvdXNNZXNzYWdlID0gcHJldmlvdXNNZXNzYWdlPy5hcHByb3ZhbCAhPSBudWxsXG4gICAgICBjb25zdCBUQVNLX0NSRUFUSU9OX1RPT0xTID0gWydjcmVhdGVfdGFzaycsICdjcmVhdGVfdGFza3NfYmF0Y2gnXVxuICAgICAgY29uc3QgVEFTS19FRElUX1RPT0xTID0gW1xuICAgICAgICAnZWRpdF90YXNrJyxcbiAgICAgICAgJ2VkaXRfdGFza3NfYmF0Y2gnLFxuICAgICAgICAndGFza19hc3NpZ24nLFxuICAgICAgICAndGFza191bmFzc2lnbicsXG4gICAgICAgICd1cGRhdGVfdGFza190eXBlJyxcbiAgICAgICAgJ3VwZGF0ZV9lc3RpbWF0ZWRfaG91cnMnLFxuICAgICAgICAnYXNzaWduX3Rhc2tfbGFiZWwnLFxuICAgICAgXVxuICAgICAgY29uc3QgVEFTS19ERUxFVEVfVE9PTFMgPSBbJ2RlbGV0ZV90YXNrJywgJ2RlbGV0ZV90YXNrc19iYXRjaCddXG4gICAgICBjb25zdCBwZW5kaW5nQWN0aW9ucyA9IHByZXZpb3VzTWVzc2FnZT8uYXBwcm92YWw/LnBlbmRpbmdfYWN0aW9ucyB8fCBbXVxuICAgICAgY29uc3Qgd2FzVGFza0NyZWF0aW9uID1cbiAgICAgICAgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSAmJlxuICAgICAgICBwZW5kaW5nQWN0aW9ucy5zb21lKChhY3Rpb246IGFueSkgPT4gVEFTS19DUkVBVElPTl9UT09MUy5pbmNsdWRlcyhhY3Rpb24udG9vbF9uYW1lKSlcbiAgICAgIGNvbnN0IHdhc1Rhc2tFZGl0ID1cbiAgICAgICAgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSAmJiBwZW5kaW5nQWN0aW9ucy5zb21lKChhY3Rpb246IGFueSkgPT4gVEFTS19FRElUX1RPT0xTLmluY2x1ZGVzKGFjdGlvbi50b29sX25hbWUpKVxuICAgICAgY29uc3Qgd2FzVGFza0RlbGV0ZSA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgcGVuZGluZ0FjdGlvbnMuc29tZSgoYWN0aW9uOiBhbnkpID0+IFRBU0tfREVMRVRFX1RPT0xTLmluY2x1ZGVzKGFjdGlvbi50b29sX25hbWUpKVxuICAgICAgY29uc3Qgd2FzQ3JlYXRlQWdlbnRBcHByb3ZlZCA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgcHJldmlvdXNNZXNzYWdlPy5hcHByb3ZhbFN0YXR1cyA9PT0gJ2FwcHJvdmVkJyAmJlxuICAgICAgICBwZW5kaW5nQWN0aW9ucy5zb21lKChhY3Rpb246IGFueSkgPT4gYWN0aW9uLnRvb2xfbmFtZSA9PT0gJ2NyZWF0ZV9hZ2VudCcpXG4gICAgICBjb25zdCB3YXNDb25maWd1cmVBZ2VudEFjY2Vzc0FwcHJvdmVkID1cbiAgICAgICAgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSAmJlxuICAgICAgICBwcmV2aW91c01lc3NhZ2U/LmFwcHJvdmFsU3RhdHVzID09PSAnYXBwcm92ZWQnICYmXG4gICAgICAgIHBlbmRpbmdBY3Rpb25zLnNvbWUoKGFjdGlvbjogYW55KSA9PiAoYWN0aW9uLnRvb2xfbmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbmZpZ3VyZV9hZ2VudF9hY2Nlc3MnKVxuICAgICAgbGV0IGNyZWF0ZUFnZW50Rm9sbG93VXA6IHsgYWdlbnRJZDogc3RyaW5nIH0gfCB1bmRlZmluZWRcbiAgICAgIGlmICh3YXNDcmVhdGVBZ2VudEFwcHJvdmVkICYmIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTICYmIGNvbXBsZXRlZEFnZW50SWQ/LnRyaW0oKSkge1xuICAgICAgICBjcmVhdGVBZ2VudEZvbGxvd1VwID0geyBhZ2VudElkOiBjb21wbGV0ZWRBZ2VudElkLnRyaW0oKSB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB3YXNDb25maWd1cmVBZ2VudEFjY2Vzc0FwcHJvdmVkICYmXG4gICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTICYmXG4gICAgICAgIChjb21wbGV0ZWRBZ2VudElkPy50cmltKCkgfHxcbiAgICAgICAgICBleHRyYWN0QWdlbnRJZEZyb21QZW5kaW5nQWN0aW9uc0J5VG9vbE5hbWUocGVuZGluZ0FjdGlvbnMsICdjb25maWd1cmVfYWdlbnRfYWNjZXNzJykpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgY29uZmlndXJlZEFnZW50SWQgPVxuICAgICAgICAgIGNvbXBsZXRlZEFnZW50SWQ/LnRyaW0oKSB8fFxuICAgICAgICAgIGV4dHJhY3RBZ2VudElkRnJvbVBlbmRpbmdBY3Rpb25zQnlUb29sTmFtZShwZW5kaW5nQWN0aW9ucywgJ2NvbmZpZ3VyZV9hZ2VudF9hY2Nlc3MnKVxuICAgICAgICBjcmVhdGVBZ2VudEZvbGxvd1VwID0ge1xuICAgICAgICAgIGFnZW50SWQ6IGNvbmZpZ3VyZWRBZ2VudElkIGFzIHN0cmluZyxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB3YXNFZGl0QWdlbnRBcHByb3ZlZCA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgcHJldmlvdXNNZXNzYWdlPy5hcHByb3ZhbFN0YXR1cyA9PT0gJ2FwcHJvdmVkJyAmJlxuICAgICAgICBwZW5kaW5nQWN0aW9ucy5zb21lKChhY3Rpb246IGFueSkgPT4gKGFjdGlvbi50b29sX25hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdlZGl0X2FnZW50JylcblxuICAgICAgbGV0IGVkaXRBZ2VudEZvbGxvd1VwOiB7IGFnZW50SWQ6IHN0cmluZyB9IHwgdW5kZWZpbmVkXG4gICAgICBpZiAod2FzRWRpdEFnZW50QXBwcm92ZWQpIHtcbiAgICAgICAgY29uc3QgZnJvbVN0cmVhbSA9IGNvbXBsZXRlZEFnZW50SWQ/LnRyaW0oKVxuICAgICAgICBjb25zdCBmcm9tQXJncyA9IGV4dHJhY3RBZ2VudElkRnJvbUVkaXRBZ2VudFBlbmRpbmdBY3Rpb25zKHBlbmRpbmdBY3Rpb25zKVxuICAgICAgICBjb25zdCByZXNvbHZlZEFnZW50SWQgPSBmcm9tU3RyZWFtIHx8IGZyb21BcmdzXG4gICAgICAgIGlmIChyZXNvbHZlZEFnZW50SWQpIHtcbiAgICAgICAgICBlZGl0QWdlbnRGb2xsb3dVcCA9IHsgYWdlbnRJZDogcmVzb2x2ZWRBZ2VudElkIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB0YXNrSWRzRnJvbVVybHMgPSBtYXRjaGVzLm1hcChtYXRjaCA9PiBwYXJzZUludChtYXRjaFsxXSwgMTApKVxuICAgICAgY29uc3QgdGFza0lkc0Zyb21EZWxldGVBcHByb3ZhbCA9IGV4dHJhY3RUYXNrSWRzRnJvbURlbGV0ZVBlbmRpbmdBY3Rpb25zKHBlbmRpbmdBY3Rpb25zKVxuICAgICAgY29uc3QgdGFza0lkc0Zyb21EZWxldGlvblRleHQgPVxuICAgICAgICB3YXNUYXNrRGVsZXRlICYmIHRhc2tJZHNGcm9tVXJscy5sZW5ndGggPT09IDAgJiYgdGFza0lkc0Zyb21EZWxldGVBcHByb3ZhbC5sZW5ndGggPT09IDBcbiAgICAgICAgICA/IGV4dHJhY3RUYXNrSWRzRnJvbUFzc2lzdGFudERlbGV0aW9uVGV4dChjb250ZW50KVxuICAgICAgICAgIDogW11cbiAgICAgIGNvbnN0IHRhc2tJZHNGb3JEYXNoYm9hcmQgPVxuICAgICAgICB0YXNrSWRzRnJvbVVybHMubGVuZ3RoID4gMFxuICAgICAgICAgID8gdGFza0lkc0Zyb21VcmxzXG4gICAgICAgICAgOiB0YXNrSWRzRnJvbURlbGV0ZUFwcHJvdmFsLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gdGFza0lkc0Zyb21EZWxldGVBcHByb3ZhbFxuICAgICAgICAgICAgOiB0YXNrSWRzRnJvbURlbGV0aW9uVGV4dFxuXG4gICAgICBjb25zdCBzaG91bGRTeW5jRGFzaGJvYXJkID1cbiAgICAgICAgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSAmJlxuICAgICAgICAod2FzVGFza0NyZWF0aW9uIHx8IHdhc1Rhc2tFZGl0IHx8IHdhc1Rhc2tEZWxldGUpICYmXG4gICAgICAgIHRhc2tJZHNGb3JEYXNoYm9hcmQubGVuZ3RoID4gMFxuXG4gICAgICBpZiAoc2hvdWxkU3luY0Rhc2hib2FyZCkge1xuICAgICAgICBjb25zdCB0YXNrSWRzID0gdGFza0lkc0ZvckRhc2hib2FyZFxuICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQodGFza0lkc1swXSlcbiAgICAgICAgICBjb25zdCB0YWJTZWdtZW50ID0gdGFiID8gYC8ke3RhYn1gIDogJy9kZXRhaWwnXG4gICAgICAgICAgY29udGVudFRvQWRkID0gY29udGVudC5yZXBsYWNlKHRhc2tVcmxSZWdleCwgdXJsID0+XG4gICAgICAgICAgICB1cmwucmVwbGFjZSgvXFwvKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpKD89JHxcXD8pLywgdGFiU2VnbWVudClcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXN0UHJvamVjdE1lc3NhZ2UgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbHRlcihtc2cgPT4gbXNnLnByb2plY3RJZCkuYXQoLTEpXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWRSYXcgPSBwcm9qZWN0Py5pZCB8fCBsYXN0UHJvamVjdE1lc3NhZ2U/LnByb2plY3RJZFxuICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gY29udGV4dFByb2plY3RJZFJhdyA/IHBhcnNlSW50KFN0cmluZyhjb250ZXh0UHJvamVjdElkUmF3KSwgMTApIDogbnVsbFxuICAgICAgICBjb25zdCBwYXRoTWF0Y2ggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL15cXC9wcm9qZWN0c1xcLyhcXGQrKVxcLy8pXG4gICAgICAgIGNvbnN0IHJvdXRlUHJvamVjdElkID0gcGF0aE1hdGNoID8gcGFyc2VJbnQocGF0aE1hdGNoWzFdLCAxMCkgOiBudWxsXG4gICAgICAgIGNvbnN0IGlzT25Qcm9qZWN0Um91dGUgPSBjb250ZXh0UHJvamVjdElkICYmIHJvdXRlUHJvamVjdElkICYmIGNvbnRleHRQcm9qZWN0SWQgPT09IHJvdXRlUHJvamVjdElkXG5cbiAgICAgICAgaWYgKGlzT25Qcm9qZWN0Um91dGUpIHtcbiAgICAgICAgICBpZiAod2FzVGFza0NyZWF0aW9uKSB7XG4gICAgICAgICAgICB3aW5kb3cubmV3UHJvamVjdERhc2hib2FyZD8uYWRkRXhpc3RpbmdUYXNrVG9EYXNoYm9hcmQ/Lih0YXNrSWRzKVxuICAgICAgICAgIH0gZWxzZSBpZiAod2FzVGFza0VkaXQpIHtcbiAgICAgICAgICAgIHdpbmRvdy5uZXdQcm9qZWN0RGFzaGJvYXJkPy5lZGl0RXhpc3RpbmdUYXNrSW5EYXNoYm9hcmQ/Lih0YXNrSWRzKVxuICAgICAgICAgIH0gZWxzZSBpZiAod2FzVGFza0RlbGV0ZSkge1xuICAgICAgICAgICAgd2luZG93Lm5ld1Byb2plY3REYXNoYm9hcmQ/LmRlbGV0ZUV4aXN0aW5nVGFza0Zyb21EYXNoYm9hcmQ/Lih0YXNrSWRzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhZGRNZXNzYWdlKHtcbiAgICAgICAgaWQ6IGBhbnN3ZXItJHttZW1vcnlTZXNzaW9uSWR9YCxcbiAgICAgICAgbWVzc2FnZTogY29udGVudFRvQWRkLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgc291cmNlcyxcbiAgICAgICAgbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgICBzdWdnZXN0aW9uczogc3VnZ2VzdGlvbnMgfHwgW10sXG4gICAgICAgIC4uLihjcmVhdGVBZ2VudEZvbGxvd1VwID8geyBjcmVhdGVBZ2VudEZvbGxvd1VwIH0gOiB7fSksXG4gICAgICB9KVxuXG4gICAgICBpZiAoY3JlYXRlQWdlbnRGb2xsb3dVcD8uYWdlbnRJZCkge1xuICAgICAgICBmZXRjaEFnZW50RGV0YWlsKGNyZWF0ZUFnZW50Rm9sbG93VXAuYWdlbnRJZClcbiAgICAgICAgICAudGhlbihjaGF0QWdlbnQgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdtYWlhLW1lcmdlLWNyZWF0ZWQtYWdlbnQtaW50by1saXN0Jywge1xuICAgICAgICAgICAgICAgIGRldGFpbDogeyBhZ2VudDogY2hhdEFnZW50IH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1c2VDaGF0TWFuYWdlcl0gTm8gc2UgcHVkbyBhw7FhZGlyIGVsIGFnZW50ZSByZWNpw6luIGNyZWFkbyBhbCBsaXN0YWRvJywgZXJyKVxuICAgICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChlZGl0QWdlbnRGb2xsb3dVcD8uYWdlbnRJZCkge1xuICAgICAgICBmZXRjaEFnZW50RGV0YWlsKGVkaXRBZ2VudEZvbGxvd1VwLmFnZW50SWQpXG4gICAgICAgICAgLnRoZW4oY2hhdEFnZW50ID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgnbWFpYS1zeW5jLWVkaXRlZC1hZ2VudC1mcm9tLWNoYXQnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7IGFnZW50OiBjaGF0QWdlbnQgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignW3VzZUNoYXRNYW5hZ2VyXSBObyBzZSBwdWRvIHJlZnJlc2NhciBlbCBhZ2VudGUgZWRpdGFkbycsIGVycilcbiAgICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBpZiAoZmlyc3RUaW1lUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3JlZmV0Y2gtc2Vzc2lvbicpXG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpXG4gICAgICAgIGZpcnN0VGltZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZGRNZXNzYWdlLCByZW1vdmVNZXNzYWdlLCBwcm9qZWN0LCBnZXRUYWJUYXNrRGVmYXVsdF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVN0cmVhbVN0b3AgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgYWRkTWVzc2FnZSh7XG4gICAgICBpZDogYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tY2FuY2VsbGVkYCxcbiAgICAgIG1lc3NhZ2U6IHQoJ2NoYXQuY2FuY2VsbGVkJyksXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgaXNGcm9udGVuZENhbmNlbGxlZDogdHJ1ZSxcbiAgICB9KVxuICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdyZWZldGNoLXNlc3Npb24nKVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudClcbiAgICB9LCA1MDApXG4gIH0sIFthZGRNZXNzYWdlLCB0XSlcblxuICBjb25zdCBoYW5kbGVBcHByb3ZhbFJlcXVpcmVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGFwcHJvdmFsOiBBcHByb3ZhbFJlcXVlc3QsIGFjY3VtdWxhdGVkQ29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wTWVzc2FnZUlkID0gYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tc3RyZWFtaW5nYFxuICAgICAgcmVtb3ZlTWVzc2FnZSh0ZW1wTWVzc2FnZUlkKVxuXG4gICAgICAvLyBBZGQgYSBtZXNzYWdlIHdpdGggdGhlIGFwcHJvdmFsIHJlcXVlc3RcbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogYGFwcHJvdmFsLSR7YXBwcm92YWwub3JpZ2luYWxfdGhyZWFkX2lkfWAsXG4gICAgICAgIG1lc3NhZ2U6IGFjY3VtdWxhdGVkQ29udGVudCB8fCAnJyxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICAgIGFwcHJvdmFsLFxuICAgICAgICBhcHByb3ZhbFN0YXR1czogJ3BlbmRpbmcnLFxuICAgICAgfSlcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9LFxuICAgIFthZGRNZXNzYWdlLCByZW1vdmVNZXNzYWdlXVxuICApXG5cbiAgY29uc3Qge1xuICAgIGFza01haWEsXG4gICAgaXNMb2FkaW5nOiB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIHN0b3BTdHJlYW1pbmcsXG4gIH0gPSB1c2VPcmNoZXN0cmF0b3JTdHJlYW0oe1xuICAgIG9uRXJyb3I6IGhhbmRsZVN0cmVhbUVycm9yLFxuICAgIG9uU3RyZWFtVXBkYXRlOiBoYW5kbGVTdHJlYW1VcGRhdGUsXG4gICAgb25GaW5pc2hTdHJlYW06IGhhbmRsZVN0cmVhbUZpbmlzaCxcbiAgICBvblN0b3A6IGhhbmRsZVN0cmVhbVN0b3AsXG4gICAgb25BcHByb3ZhbFJlcXVpcmVkOiBoYW5kbGVBcHByb3ZhbFJlcXVpcmVkLFxuICB9KVxuXG4gIGNvbnN0IGN1cnJlbnRQcm9qZWN0ID0gcHJvamVjdFxuXG4gIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKFxuICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgYXR0YWNobWVudHNPck9wdGlvbnM/OiBBdHRhY2htZW50RmlsZVtdIHwgU2VuZE1lc3NhZ2VPcHRpb25zLFxuICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICAgICkgPT4ge1xuICAgICAgaWYgKGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50IHx8IHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgYXR0YWNobWVudHMsIG9wdGlvbnMgfSA9IG5vcm1hbGl6ZVNlbmRNZXNzYWdlQXJncyhhdHRhY2htZW50c09yT3B0aW9ucylcblxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBjb25zdCBuZXdNZXNzYWdlSWQgPSB1dWlkdjQoKVxuICAgICAgY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50ID0gbmV3TWVzc2FnZUlkXG4gICAgICBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQgPSBtZXNzYWdlXG5cbiAgICAgIGlmICghcmVwb3J0ZWRFdmVudC5jdXJyZW50KSB7XG4gICAgICAgIGV2ZW50KEVWRU5UUy5wbUFpVHlwZWRUZXh0KVxuICAgICAgICByZXBvcnRlZEV2ZW50LmN1cnJlbnQgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBjb250ZXh0byBnbG9iYWwgZXN0w6EgZGVzYWN0dWFsaXphZG9cbiAgICAgIGNvbnN0IGxhc3RNZXNzYWdlV2l0aFByb2plY3QgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbHRlcihtc2cgPT4gbXNnLnByb2plY3RJZCkuYXQoLTEpXG5cbiAgICAgIGNvbnN0IGN1cnJlbnRBZ2VudEZyb21NZXNzYWdlcyA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQ/LlttZXNzYWdlc1JlZi5jdXJyZW50Lmxlbmd0aCAtIDFdPy5hZ2VudElkXG5cbiAgICAgIC8vIE5vIGFncmVnYXIgcHJvamVjdElkIGFsIG1lbnNhamUgZGVsIHVzdWFyaW8gLSBzZSBkZXRlcm1pbmFyw6EgZGVzcHXDqXNcbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogYHF1ZXN0aW9uLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fWAsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuVVNFUixcbiAgICAgICAgc291cmNlczogYXR0YWNobWVudHMsXG4gICAgICB9KVxuXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgICAgbGV0IGZpbmFsTWVzc2FnZSA9IG1lc3NhZ2VcblxuICAgICAgaWYgKG1lc3NhZ2UgPT09IHQoJ3FhLml0ZW1zLnJlbnRhYmlsaWRhZF9wcm95ZWN0bycpKSB7XG4gICAgICAgIGZpbmFsTWVzc2FnZSA9IGBGQVE6ICR7dCgncWEuaXRlbXMucmVudGFiaWxpZGFkX3Byb3llY3RvJyl9IC0gVGlwbyBkZSByZW50YWJpbGlkYWQ6ICR7XG4gICAgICAgICAgb3B0aW9ucy5wcm9qZWN0Q2hhbmdlZD8uaW5jb21lVHlwZSB8fCBwcm9qZWN0Py5pbmNvbWVUeXBlXG4gICAgICAgIH1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChoaXN0b3J5TWVzc2FnZSA9PiAoe1xuICAgICAgICBjb250ZW50OiBoaXN0b3J5TWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICByb2xlOiBoaXN0b3J5TWVzc2FnZS51c2VyLmlkID09PSBhdXRoVXNlci5pZC50b1N0cmluZygpID8gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgfSkpXG5cbiAgICAgIC8vIFZlcmlmaWNhciBjb25zaXN0ZW5jaWEgZW50cmUgY29udGV4dG8gZ2xvYmFsIHkgw7psdGltbyBtZW5zYWplXG4gICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdD8uaWRcbiAgICAgIGNvbnN0IGxhc3RNZXNzYWdlUHJvamVjdElkID0gbGFzdE1lc3NhZ2VXaXRoUHJvamVjdD8ucHJvamVjdElkXG5cbiAgICAgIGxldCBwcm9qZWN0VG9SZXF1ZXN0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAvLyBTaSBoYXkgw7psdGltbyBtZW5zYWplIGNvbiBwcm9qZWN0SWQsIHVzYXJsbyAobcOhcyBjb25maWFibGUpXG4gICAgICBpZiAobGFzdE1lc3NhZ2VQcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBOdW1iZXIobGFzdE1lc3NhZ2VQcm9qZWN0SWQpXG4gICAgICAgIHByb2plY3RUb1JlcXVlc3QgPSBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IG51bGxcbiAgICAgIH1cbiAgICAgIC8vIFNpIG5vIGhheSDDumx0aW1vIG1lbnNhamUsIHVzYXIgZWwgY29udGV4dG8gZ2xvYmFsXG4gICAgICBlbHNlIGlmIChjb250ZXh0UHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgICAgcHJvamVjdFRvUmVxdWVzdCA9IGNvbnRleHRQcm9qZWN0SWRcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKFtwcm9qZWN0VG9SZXF1ZXN0XSlcblxuICAgICAgY29uc3QgcGF5bG9hZEZhcUlkID0gZmFxSWQgPz8gb3B0aW9ucy5mYXFJZFxuICAgICAgY29uc3QgcGF5bG9hZEFnZW50U3VnZ2VzdGlvbklkID0gYWdlbnRTdWdnZXN0aW9uSWQgPz8gb3B0aW9ucy5hZ2VudFN1Z2dlc3Rpb25JZFxuXG4gICAgICBjb25zdCBwYXlsb2FkRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogZmluYWxNZXNzYWdlLFxuICAgICAgICBoaXN0b3J5LFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RUb1JlcXVlc3QsXG4gICAgICAgIGxhbmc6IGF1dGhVc2VyLmxhbmcsXG4gICAgICAgIHVzZXJJZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgZmlyc3ROYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lOiBhdXRoVXNlci5sYXN0TmFtZSxcbiAgICAgICAgY29tcGFueUlkOiBhdXRoVXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCksXG4gICAgICAgIGNoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgICBtZXNzYWdlSWQ6IGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCxcbiAgICAgICAgYWdlbnROYW1lOiBhZ2VudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgYWdlbnRJZDogY3VycmVudEFnZW50RnJvbU1lc3NhZ2VzIHx8IGFnZW50Py5pZCEsXG4gICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IGlzRGVlcFNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICAuLi4ocHJvamVjdD8uZmVlSWQgIT0gbnVsbCA/IHsgZmVlSWQ6IE51bWJlcihwcm9qZWN0LmZlZUlkKSB9IDoge30pLFxuICAgICAgICAuLi4oY2xpZW50Py5pZFxuICAgICAgICAgID8geyBjbGllbnRJZDogY2xpZW50LmlkLCAuLi4oY2xpZW50Lm5hbWUgPyB7IGNsaWVudE5hbWU6IGNsaWVudC5uYW1lIH0gOiB7fSkgfVxuICAgICAgICAgIDogcHJvamVjdD8uY2xpZW50SWQgIT0gbnVsbFxuICAgICAgICAgICAgPyB7IGNsaWVudElkOiBOdW1iZXIocHJvamVjdC5jbGllbnRJZCkgfVxuICAgICAgICAgICAgOiBwcm9qZWN0Py5jbGllbnQ/LmlkXG4gICAgICAgICAgICAgID8geyBjbGllbnRJZDogcHJvamVjdC5jbGllbnQuaWQsIC4uLihwcm9qZWN0LmNsaWVudC5uYW1lID8geyBjbGllbnROYW1lOiBwcm9qZWN0LmNsaWVudC5uYW1lIH0gOiB7fSkgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHByb2plY3RzPy5sZW5ndGggPyB7IHByb2plY3ROYW1lOiBwcm9qZWN0c1swXS5uYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihhdHRhY2htZW50cy5sZW5ndGggPiAwID8geyBhdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZEZhcUlkID8geyBmYXFJZDogcGF5bG9hZEZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkQWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkOiBwYXlsb2FkQWdlbnRTdWdnZXN0aW9uSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGFnZW50Py5lbnRpdHkgIT0gbnVsbCA/IHsgYWdlbnRFbnRpdHk6IGFnZW50LmVudGl0eSB9IDoge30pLFxuICAgICAgfVxuXG4gICAgICBhc2tNYWlhKHBheWxvYWREYXRhKVxuICAgIH0sXG4gICAgW1xuICAgICAgYWRkTWVzc2FnZSxcbiAgICAgIGV2ZW50LFxuICAgICAgYXNrTWFpYSxcbiAgICAgIHByb2plY3QsXG4gICAgICBjbGllbnQsXG4gICAgICBhdXRoVXNlcixcbiAgICAgIGFnZW50LFxuICAgICAgdCxcbiAgICAgIHdhaXRpbmdSZXNwb25zZSxcbiAgICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIF1cbiAgKVxuXG4gIGNvbnN0IGNoYW5nZVByb2plY3QgPSB1c2VDYWxsYmFjayhcbiAgICAob3B0aW9uOiBQcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoIWN1cnJlbnRVc2VyUXVlc3Rpb24uY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGlmIChvcHRpb24uaWQgIT09IHByb2plY3Q/LmlkKSB7XG4gICAgICAgIHNldFByb2plY3Qob3B0aW9uKVxuICAgICAgfVxuXG4gICAgICBpZiAocHJvamVjdCAmJiBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaGlzdG9yeSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKGhpc3RvcnlNZXNzYWdlID0+ICh7XG4gICAgICAgICAgY29udGVudDogaGlzdG9yeU1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICByb2xlOiBoaXN0b3J5TWVzc2FnZS51c2VyLmlkID09PSBhdXRoVXNlci5pZC50b1N0cmluZygpID8gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgICB9KSlcblxuICAgICAgICBhc2tNYWlhKHtcbiAgICAgICAgICBtZXNzYWdlOiBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQsXG4gICAgICAgICAgaGlzdG9yeSxcbiAgICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbi5pZCxcbiAgICAgICAgICBsYW5nOiBhdXRoVXNlci5sYW5nLFxuICAgICAgICAgIHVzZXJJZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgICBmaXJzdE5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICAgICAgICBsYXN0TmFtZTogYXV0aFVzZXIubGFzdE5hbWUsXG4gICAgICAgICAgY29tcGFueUlkOiBhdXRoVXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCksXG4gICAgICAgICAgY2hhdElkOiBjdXJyZW50Q2hhdElkLmN1cnJlbnQsXG4gICAgICAgICAgbWVzc2FnZUlkOiBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQsXG4gICAgICAgICAgYWdlbnROYW1lOiBhZ2VudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICBhZ2VudElkOiBhZ2VudD8uaWQgfHwgJycsXG4gICAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IGlzV2ViU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlOiBpc0RlZXBTZWFyY2hBY3RpdmVSZWYuY3VycmVudCxcbiAgICAgICAgICAuLi4ob3B0aW9uPy5mZWVJZCAhPSBudWxsID8geyBmZWVJZDogTnVtYmVyKG9wdGlvbi5mZWVJZCkgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ob3B0aW9uPy5jbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZDogTnVtYmVyKG9wdGlvbi5jbGllbnRJZCkgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oYWdlbnQ/LmVudGl0eSAhPSBudWxsID8geyBhZ2VudEVudGl0eTogYWdlbnQuZW50aXR5IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbcHJvamVjdCwgc2V0UHJvamVjdCwgYXNrTWFpYSwgYXV0aFVzZXIsIGlzV2ViU2VhcmNoQWN0aXZlLCBhZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrID0gdXNlQ2FsbGJhY2soYXN5bmMgKGZlZWRiYWNrUHJvcDogRmVlZGJhY2ssIGNoYXRNZXNzYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbWFpYS5DaGF0cy53YXNIZWxwZnVsQ2hhdChjaGF0TWVzc2FnZUlkLCBmZWVkYmFja1Byb3AgPT09IEZlZWRiYWNrLlRIVU1CU19VUClcbiAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChtZXNzYWdlID0+IHtcbiAgICAgICAgaWYgKG1lc3NhZ2UuaWQgPT09IGNoYXRNZXNzYWdlSWQgJiYgbWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgICAgIHJldHVybiB7IC4uLm1lc3NhZ2UsIHdhc0hlbHBmdWw6IGZlZWRiYWNrUHJvcCA9PT0gRmVlZGJhY2suVEhVTUJTX1VQIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVzc2FnZVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmFsRGVjaXNpb24gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoXG4gICAgICB0aHJlYWRJZHM6IHN0cmluZ1tdLFxuICAgICAgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdyZWplY3QnLFxuICAgICAgZWRpdGVkQWN0aW9ucz86IEFycmF5PHsgdG9vbF9uYW1lOiBzdHJpbmc7IGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+XG4gICAgKSA9PiB7XG4gICAgICBpZiAoIXRocmVhZElkcz8ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHRocmVhZF9pZHMgcHJvdmlkZWQgZm9yIGFwcHJvdmFsIGRlY2lzaW9uJylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIEJ1c2NhciBlbCBtZW5zYWplIHF1ZSBjb250aWVuZSBhbGd1bm8gZGUgZXN0b3MgdGhyZWFkSWRzIGVuIHN1cyBwZW5kaW5nX2FjdGlvbnNcbiAgICAgIGNvbnN0IG1lc3NhZ2VXaXRoQXBwcm92YWwgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbmQobSA9PlxuICAgICAgICBtLmFwcHJvdmFsPy5wZW5kaW5nX2FjdGlvbnM/LnNvbWUoYWN0aW9uID0+IHRocmVhZElkcy5pbmNsdWRlcyhhY3Rpb24udGhyZWFkX2lkKSlcbiAgICAgIClcblxuICAgICAgaWYgKCFtZXNzYWdlV2l0aEFwcHJvdmFsIHx8ICFtZXNzYWdlV2l0aEFwcHJvdmFsLmFwcHJvdmFsKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHNlIGVuY29udHLDsyBtZW5zYWplIGNvbiBhcHByb3ZhbCBwYXJhIHRocmVhZF9pZHM6JywgdGhyZWFkSWRzKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBhcHByb3ZhbCB9ID0gbWVzc2FnZVdpdGhBcHByb3ZhbFxuICAgICAgY29uc3QgbWVzc2FnZUlkID0gbWVzc2FnZVdpdGhBcHByb3ZhbC5pZFxuICAgICAgLy8gVXNlIGZpcnN0IHRocmVhZElkIGFzIHRoZSBsb2FkaW5nIGtleVxuICAgICAgY29uc3QgbG9hZGluZ0tleSA9IHRocmVhZElkc1swXVxuICAgICAgLy8gVXBkYXRlIG1lc3NhZ2Ugc3RhdHVzIGltbWVkaWF0ZWx5XG4gICAgICBtZXNzYWdlc1JlZi5jdXJyZW50ID0gbWVzc2FnZXNSZWYuY3VycmVudC5tYXAobWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBtZXNzYWdlSWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdTdGF0dXMgPSBkZWNpc2lvbiA9PT0gJ2FwcHJvdmUnID8gJ2FwcHJvdmVkJyA6ICdyZWplY3RlZCdcbiAgICAgICAgICByZXR1cm4geyAuLi5tZXNzYWdlLCBhcHByb3ZhbFN0YXR1czogbmV3U3RhdHVzIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVzc2FnZVxuICAgICAgfSlcblxuICAgICAgLy8gVHJpZ2dlciByZS1yZW5kZXJcbiAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmluZChtID0+IG0uaWQgPT09IG1lc3NhZ2VJZClcbiAgICAgIGlmIChleGlzdGluZ01lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgbmV3U3RhdHVzID0gZGVjaXNpb24gPT09ICdhcHByb3ZlJyA/ICdhcHByb3ZlZCcgOiAncmVqZWN0ZWQnXG4gICAgICAgIGFkZE1lc3NhZ2UoeyAuLi5leGlzdGluZ01lc3NhZ2UsIGFwcHJvdmFsU3RhdHVzOiBuZXdTdGF0dXMgfSlcbiAgICAgIH1cblxuICAgICAgLy8gQ2FsbCBjb250aW51ZS10aHJlYWQgZW5kcG9pbnQgd2l0aCBBTEwgdGhyZWFkX2lkcyBpbiBhIHNpbmdsZSByZXF1ZXN0XG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCA9IHV1aWR2NCgpXG5cbiAgICAgIC8vIEFkZCBsb2FkaW5nXG4gICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIFtsb2FkaW5nS2V5XTogdCgnY2hhdC5wcm9jZXNzaW5nJyksXG4gICAgICB9KSlcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5jb250aW51ZVRocmVhZCh7XG4gICAgICAgICAgdGhyZWFkSWRzLCAvLyBTZW5kIGFsbCBhY3Rpb24gdGhyZWFkX2lkcyBhdCBvbmNlXG4gICAgICAgICAgc2Vzc2lvbklkOiBhcHByb3ZhbC5zZXNzaW9uX2lkLFxuICAgICAgICAgIGRlY2lzaW9uOiBlZGl0ZWRBY3Rpb25zID8gJ2VkaXQnIDogZGVjaXNpb24sXG4gICAgICAgICAgZWRpdGVkQWN0aW9ucyxcbiAgICAgICAgICBhZ2VudElkOiBhZ2VudD8uaWQgfHwgJycsXG4gICAgICAgICAgbGFuZzogYXV0aFVzZXIubGFuZyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgaGFuZGxlU3RyZWFtRXJyb3IoKVxuICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW2xvYWRpbmdLZXldXG4gICAgICAgICAgICByZXR1cm4gbmV3TG9hZGluZ3NcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyBTU0Ugc3RyZWFtXG4gICAgICAgIGF3YWl0IHByb2Nlc3NTU0VTdHJlYW0ocmVzcG9uc2UsIGxvYWRpbmdLZXksIHtcbiAgICAgICAgICBvblRva2VuOiAoY29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVTdHJlYW1VcGRhdGUoY29udGVudCwgbnVsbCwgJycpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbk5vZGU6IChtZXNzYWdlOiBzdHJpbmcsIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5TXNnID0gbWVzc2FnZS5pbmNsdWRlcygnY3JlYXRlX3Rhc2snKSA/IG1lc3NhZ2UgOiB0KCdjaGF0LmV4ZWN1dGluZ0FjdGlvbicpXG4gICAgICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+ICh7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIFtjdXJyZW50VGhyZWFkSWRdOiBkaXNwbGF5TXNnLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbkNvbXBsZXRlOiAoXG4gICAgICAgICAgICBmaW5hbENvbnRlbnQ6IHN0cmluZyxcbiAgICAgICAgICAgIHNvdXJjZXM6IGFueSxcbiAgICAgICAgICAgIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nLFxuICAgICAgICAgICAgY3VycmVudFRocmVhZElkOiBzdHJpbmcsXG4gICAgICAgICAgICBzdWdnZXN0aW9ucz86IHN0cmluZ1tdIHwgbnVsbCxcbiAgICAgICAgICAgIGFnZW50SWQ/OiBzdHJpbmcgfCBudWxsXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVTdHJlYW1GaW5pc2goZmluYWxDb250ZW50LCBzb3VyY2VzLCBtZW1vcnlTZXNzaW9uSWQsIHN1Z2dlc3Rpb25zLCBhZ2VudElkKVxuICAgICAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0xvYWRpbmdzID0geyAuLi5wcmV2IH1cbiAgICAgICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW2N1cnJlbnRUaHJlYWRJZF1cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0xvYWRpbmdzXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25BcHByb3ZhbFJlcXVpcmVkOiAoYXBwcm92YWxQYXlsb2FkOiBhbnksIGFjY3VtdWxhdGVkQ29udGVudDogc3RyaW5nLCBjdXJyZW50VGhyZWFkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgLy8gTmV3IEhJVEwgaW50ZXJydXB0aW9uIGRldGVjdGVkIGFmdGVyIHJlc3VtZSAoY2hhaW5lZCBhY3Rpb25zKVxuICAgICAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0xvYWRpbmdzID0geyAuLi5wcmV2IH1cbiAgICAgICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW2N1cnJlbnRUaHJlYWRJZF1cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0xvYWRpbmdzXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgaGFuZGxlQXBwcm92YWxSZXF1aXJlZChhcHByb3ZhbFBheWxvYWQgYXMgQXBwcm92YWxSZXF1ZXN0LCBhY2N1bXVsYXRlZENvbnRlbnQpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbkVycm9yOiAoZXJyb3I6IGFueSwgY3VycmVudFRocmVhZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NTRSBFcnJvcjonLCBlcnJvcilcbiAgICAgICAgICAgIGhhbmRsZVN0cmVhbUVycm9yKClcbiAgICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1tjdXJyZW50VGhyZWFkSWRdXG4gICAgICAgICAgICAgIHJldHVybiBuZXdMb2FkaW5nc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlU3RyZWFtRXJyb3IoKVxuICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW2xvYWRpbmdLZXldXG4gICAgICAgICAgcmV0dXJuIG5ld0xvYWRpbmdzXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbYXV0aFVzZXIsIGFnZW50LCBhZGRNZXNzYWdlLCBoYW5kbGVTdHJlYW1FcnJvciwgaGFuZGxlU3RyZWFtVXBkYXRlLCBoYW5kbGVTdHJlYW1GaW5pc2gsIGhhbmRsZUFwcHJvdmFsUmVxdWlyZWRdXG4gIClcblxuICBjb25zdCBpbml0aWFsaXplQ2hhdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWZpcnN0VGltZVJlZi5jdXJyZW50KSB7XG4gICAgICBmaXJzdFRpbWVSZWYuY3VycmVudCA9IHRydWVcbiAgICB9XG4gICAgaWYgKGluaXRpYWxDaGF0SWQpIHtcbiAgICAgIGF3YWl0IGxvYWRNZXNzYWdlcygpXG4gICAgfSBlbHNlIGlmICh1c2VySW5pdGlhbE1lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IGhhc0luaXRpYWxNZXNzYWdlID0gQm9vbGVhbih1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZT8udHJpbSgpKVxuICAgICAgY29uc3QgaGFzSW5pdGlhbEF0dGFjaG1lbnRzID0gQm9vbGVhbih1c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICAgIGNvbnN0IGhhc0luaXRpYWxGYXEgPSBCb29sZWFuKHVzZXJJbml0aWFsTWVzc2FnZS5mYXFJZClcblxuICAgICAgaWYgKCFoYXNJbml0aWFsTWVzc2FnZSAmJiAhaGFzSW5pdGlhbEF0dGFjaG1lbnRzICYmICFoYXNJbml0aWFsRmFxKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBoaXN0b3J5ID0gbWVzc2FnZXNSZWYuY3VycmVudC5tYXAoaGlzdG9yeU1lc3NhZ2UgPT4gKHtcbiAgICAgICAgY29udGVudDogaGlzdG9yeU1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgcm9sZTogaGlzdG9yeU1lc3NhZ2UudXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKSA/IENoYXRIaXN0b3J5Um9sZS5VU0VSIDogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgIH0pKVxuXG4gICAgICBhc2tNYWlhKHtcbiAgICAgICAgbWVzc2FnZTogdXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIGhpc3RvcnksXG4gICAgICAgIHByb2plY3RJZDogcHJvamVjdD8uaWQgfHwgbnVsbCxcbiAgICAgICAgbGFuZzogYXV0aFVzZXIubGFuZyxcbiAgICAgICAgdXNlcklkOiBhdXRoVXNlci5pZC50b1N0cmluZygpLFxuICAgICAgICBmaXJzdE5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWU6IGF1dGhVc2VyLmxhc3ROYW1lLFxuICAgICAgICBjb21wYW55SWQ6IGF1dGhVc2VyLmNvbXBhbnlfaWQudG9TdHJpbmcoKSxcbiAgICAgICAgY2hhdElkOiBjdXJyZW50Q2hhdElkLmN1cnJlbnQsXG4gICAgICAgIG1lc3NhZ2VJZDogY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50LFxuICAgICAgICBhZ2VudE5hbWU6IGFnZW50Py5uYW1lISxcbiAgICAgICAgYWdlbnRJZDogYWdlbnQ/LmlkISxcbiAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IGlzV2ViU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogaXNEZWVwU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgIC4uLihwcm9qZWN0Py5mZWVJZCAhPSBudWxsID8geyBmZWVJZDogTnVtYmVyKHByb2plY3QuZmVlSWQpIH0gOiB7fSksXG4gICAgICAgIC4uLihjbGllbnQ/LmlkXG4gICAgICAgICAgPyB7IGNsaWVudElkOiBjbGllbnQuaWQgfVxuICAgICAgICAgIDogcHJvamVjdD8uY2xpZW50SWQgIT0gbnVsbFxuICAgICAgICAgICAgPyB7IGNsaWVudElkOiBOdW1iZXIocHJvamVjdC5jbGllbnRJZCkgfVxuICAgICAgICAgICAgOiBwcm9qZWN0Py5jbGllbnQ/LmlkXG4gICAgICAgICAgICAgID8geyBjbGllbnRJZDogcHJvamVjdC5jbGllbnQuaWQgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHByb2plY3Q/Lm5hbWUgPyB7IHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUgfSA6IHt9KSxcbiAgICAgICAgLi4uKHByb2plY3Q/LmNsaWVudD8ubmFtZVxuICAgICAgICAgID8geyBjbGllbnROYW1lOiBwcm9qZWN0LmNsaWVudC5uYW1lIH1cbiAgICAgICAgICA6IGNsaWVudD8ubmFtZVxuICAgICAgICAgICAgPyB7IGNsaWVudE5hbWU6IGNsaWVudC5uYW1lIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgIC4uLih1c2VySW5pdGlhbE1lc3NhZ2UuZmFxSWQgPyB7IGZhcUlkOiB1c2VySW5pdGlhbE1lc3NhZ2UuZmFxSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hZ2VudFN1Z2dlc3Rpb25JZCA/IHsgYWdlbnRTdWdnZXN0aW9uSWQ6IHVzZXJJbml0aWFsTWVzc2FnZS5hZ2VudFN1Z2dlc3Rpb25JZCB9IDoge30pLFxuICAgICAgICAuLi4oYWdlbnQ/LmVudGl0eSAhPSBudWxsID8geyBhZ2VudEVudGl0eTogYWdlbnQuZW50aXR5IH0gOiB7fSksXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW1xuICAgIGluaXRpYWxDaGF0SWQsXG4gICAgdXNlckluaXRpYWxNZXNzYWdlLFxuICAgIHByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIGF1dGhVc2VyLFxuICAgIGFnZW50LFxuICAgIGFza01haWEsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICBdKVxuXG4gIGNvbnN0IHJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgIGN1cnJlbnRVc2VyUXVlc3Rpb24uY3VycmVudCA9IG51bGxcbiAgICBjdXJyZW50Q2hhdElkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IGZhbHNlXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHN0b3BHZW5lcmF0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHN0b3BTdHJlYW1pbmcoKVxuICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgfSwgW3N0b3BTdHJlYW1pbmddKVxuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIGN1cnJlbnRQcm9qZWN0LFxuICAgIGN1cnJlbnRDaGF0SWQ6IGN1cnJlbnRDaGF0SWQuY3VycmVudCxcbiAgICBjdXJyZW50TWVzc2FnZUlkOiBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQsXG5cbiAgICBzZW5kTWVzc2FnZSxcbiAgICBjaGFuZ2VQcm9qZWN0LFxuICAgIGhhbmRsZUZlZWRiYWNrLFxuICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb24sXG4gICAgaGFuZGxlU2Nyb2xsLFxuICAgIGluaXRpYWxpemVDaGF0LFxuICAgIHJlc2V0Q2hhdCxcbiAgICBzdG9wR2VuZXJhdGlvbixcblxuICAgIGlzRGlzYWJsZWQ6IHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZXMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ2hFLFNBQVNDLEVBQUUsSUFBSUMsTUFBTSxRQUFRLE1BQU07QUFDbkMsU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFDaEUsU0FBU0MsSUFBSSxRQUFRLFNBQVM7QUFHOUIsU0FBU0MsT0FBTyxRQUFpQix3QkFBd0I7QUFDekQsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLE1BQU0s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
|
|
@@ -248,11 +248,11 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
248
248
|
}(), [t]);
|
|
249
249
|
var askMaia = /*#__PURE__*/function () {
|
|
250
250
|
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
|
|
251
|
-
var message, history, projectId, lang, userId, firstName, lastName, companyId, chatId, messageId, clientId, clientName, agentName, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, agentSuggestionId, agentEntity, _abortControllerRef$c, response, _t5;
|
|
251
|
+
var message, history, projectId, lang, userId, firstName, lastName, companyId, chatId, messageId, clientId, clientName, feeId, agentName, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, agentSuggestionId, agentEntity, _abortControllerRef$c, response, _t5;
|
|
252
252
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
253
253
|
while (1) switch (_context2.prev = _context2.next) {
|
|
254
254
|
case 0:
|
|
255
|
-
message = _ref3.message, history = _ref3.history, projectId = _ref3.projectId, lang = _ref3.lang, userId = _ref3.userId, firstName = _ref3.firstName, lastName = _ref3.lastName, companyId = _ref3.companyId, chatId = _ref3.chatId, messageId = _ref3.messageId, clientId = _ref3.clientId, clientName = _ref3.clientName, agentName = _ref3.agentName, agentId = _ref3.agentId, isWebSearchActive = _ref3.isWebSearchActive, isDeepSearchActive = _ref3.isDeepSearchActive, attachments = _ref3.attachments, projectName = _ref3.projectName, faqId = _ref3.faqId, agentSuggestionId = _ref3.agentSuggestionId, agentEntity = _ref3.agentEntity;
|
|
255
|
+
message = _ref3.message, history = _ref3.history, projectId = _ref3.projectId, lang = _ref3.lang, userId = _ref3.userId, firstName = _ref3.firstName, lastName = _ref3.lastName, companyId = _ref3.companyId, chatId = _ref3.chatId, messageId = _ref3.messageId, clientId = _ref3.clientId, clientName = _ref3.clientName, feeId = _ref3.feeId, agentName = _ref3.agentName, agentId = _ref3.agentId, isWebSearchActive = _ref3.isWebSearchActive, isDeepSearchActive = _ref3.isDeepSearchActive, attachments = _ref3.attachments, projectName = _ref3.projectName, faqId = _ref3.faqId, agentSuggestionId = _ref3.agentSuggestionId, agentEntity = _ref3.agentEntity;
|
|
256
256
|
_context2.prev = 1;
|
|
257
257
|
setLoading(true);
|
|
258
258
|
setIsWriting(false);
|
|
@@ -262,7 +262,7 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
262
262
|
|
|
263
263
|
abortControllerRef.current = new AbortController();
|
|
264
264
|
_context2.next = 2;
|
|
265
|
-
return maia.Orchestrator.orchestrator(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
265
|
+
return maia.Orchestrator.orchestrator(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
266
266
|
input: message,
|
|
267
267
|
history: history,
|
|
268
268
|
lang: lang,
|
|
@@ -275,7 +275,10 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
275
275
|
companyId: companyId,
|
|
276
276
|
chatId: chatId,
|
|
277
277
|
messageId: messageId,
|
|
278
|
-
clientId: clientId
|
|
278
|
+
clientId: clientId
|
|
279
|
+
}, feeId != null ? {
|
|
280
|
+
feeId: feeId
|
|
281
|
+
} : {}), {}, {
|
|
279
282
|
agentName: agentName,
|
|
280
283
|
agentId: agentId,
|
|
281
284
|
isWebSearchActive: isWebSearchActive,
|
|
@@ -347,4 +350,4 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
347
350
|
handleSSEStream: handleSSEStream // Exponer para poder usarlo en continue-thread
|
|
348
351
|
};
|
|
349
352
|
};
|
|
350
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJtYWlhIiwiU0VDVElPTlMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJfcmVmIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RhcnRXcml0aW5nIiwib25TdG9wIiwib25FcnJvciIsIm9uQXBwcm92YWxSZXF1aXJlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJkYXRhIiwic2V0RGF0YSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNMb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXcml0aW5nIiwic2V0SXNXcml0aW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkaW5nTWVzc2FnZSIsInNldExvYWRpbmdNZXNzYWdlIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaXNTdG9wcGVkUmVmIiwib25TdHJlYW1VcGRhdGVSZWYiLCJvbkZpbmlzaFN0cmVhbVJlZiIsIm9uU3RhcnRXcml0aW5nUmVmIiwib25TdG9wUmVmIiwib25FcnJvclJlZiIsIm9uQXBwcm92YWxSZXF1aXJlZFJlZiIsImN1cnJlbnQiLCJoYW5kbGVTU0VTdHJlYW0iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJfb25TdHJlYW1VcGRhdGVSZWYkY3UiLCJfZGF0YSRhZ2VudF9pZCIsIl9vbkZpbmlzaFN0cmVhbVJlZiRjdSIsIl9vbkFwcHJvdmFsUmVxdWlyZWRSZSIsIl9vbkVycm9yUmVmJGN1cnJlbnQiLCJfcmVzcG9uc2UkYm9keSIsInJlYWRlciIsImRlY29kZXIiLCJidWZmZXIiLCJhY2N1bXVsYXRlZENvbnRlbnQiLCJoYXNTdGFydGVkV3JpdGluZyIsIl95aWVsZCRyZWFkZXIkcmVhZCIsImRvbmUiLCJ2YWx1ZSIsImxpbmVzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJsaW5lIiwiX2xpbmUkc3BsaXQiLCJfbGluZSRzcGxpdDIiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsImRhdGFTdHIiLCJfZGF0YSIsIl9vblN0YXJ0V3JpdGluZ1JlZiRjdSIsIm5vZGVNZXNzYWdlIiwiZmluYWxDb250ZW50Iiwic291cmNlcyIsIm1lbW9yeVNlc3Npb25JZCIsInN1Z2dlc3Rpb25zIiwiYWdlbnRJZFJhdyIsImNvbXBsZXRlZEFnZW50SWQiLCJfb25FcnJvclJlZiRjdXJyZW50MiIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJib2R5IiwiZ2V0UmVhZGVyIiwiRXJyb3IiLCJUZXh0RGVjb2RlciIsImNhbmNlbCIsImFicnVwdCIsInJlYWQiLCJzZW50IiwiZGVjb2RlIiwic3RyZWFtIiwic3BsaXQiLCJwb3AiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInMiLCJuIiwidHJpbSIsInJlcGxhY2UiLCJKU09OIiwicGFyc2UiLCJjYWxsIiwiY29udGVudCIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsIm1lbW9yeV9zZXNzaW9uX2lkIiwiQXJyYXkiLCJpc0FycmF5Iiwic3VnZ2VzdF9yZXBseSIsImFnZW50X2lkIiwiYWdlbnRJZCIsIlN0cmluZyIsImNvbnNvbGUiLCJlcnJvciIsIndhcm4iLCJlIiwiZiIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiYXNrTWFpYSIsIl9yZWY0IiwiX2NhbGxlZTIiLCJfcmVmMyIsImhpc3RvcnkiLCJwcm9qZWN0SWQiLCJsYW5nIiwidXNlcklkIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJjb21wYW55SWQiLCJjaGF0SWQiLCJtZXNzYWdlSWQiLCJjbGllbnRJZCIsImNsaWVudE5hbWUiLCJhZ2VudE5hbWUiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImF0dGFjaG1lbnRzIiwicHJvamVjdE5hbWUiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiYWdlbnRFbnRpdHkiLCJfYWJvcnRDb250cm9sbGVyUmVmJGMiLCJfdDUiLCJfY29udGV4dDIiLCJBYm9ydENvbnRyb2xsZXIiLCJPcmNoZXN0cmF0b3IiLCJvcmNoZXN0cmF0b3IiLCJfb2JqZWN0U3ByZWFkIiwiaW5wdXQiLCJzaWduYWwiLCJfeDIiLCJzdG9wU3RyZWFtaW5nIiwiX29uU3RvcFJlZiRjdXJyZW50IiwiYWJvcnQiLCJyZXNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VPcmNoZXN0cmF0b3JTdHJlYW0vdXNlT3JjaGVzdHJhdG9yU3RyZWFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnN0YW50LWNvbmRpdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNhc2UtZGVjbGFyYXRpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IENoYXRIaXN0b3J5IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEFnZW50RW50aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcyB9IGZyb20gJy4vdXNlT3JjaGVzdHJhdG9yU3RyZWFtLmludGVyZmFjZSdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcblxuZXhwb3J0IGNvbnN0IHVzZU9yY2hlc3RyYXRvclN0cmVhbSA9ICh7XG4gIG9uU3RyZWFtVXBkYXRlLFxuICBvbkZpbmlzaFN0cmVhbSxcbiAgb25TdGFydFdyaXRpbmcsXG4gIG9uU3RvcCxcbiAgb25FcnJvcixcbiAgb25BcHByb3ZhbFJlcXVpcmVkLFxufTogVXNlT3JjaGVzdHJhdG9yU3RyZWFtUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgW2RhdGEsIHNldERhdGFdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzV3JpdGluZywgc2V0SXNXcml0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01lc3NhZ2UsIHNldExvYWRpbmdNZXNzYWdlXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFib3J0Q29udHJvbGxlclJlZiA9IHVzZVJlZjxBYm9ydENvbnRyb2xsZXIgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1N0b3BwZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3Qgb25TdHJlYW1VcGRhdGVSZWYgPSB1c2VSZWYob25TdHJlYW1VcGRhdGUpXG4gIGNvbnN0IG9uRmluaXNoU3RyZWFtUmVmID0gdXNlUmVmKG9uRmluaXNoU3RyZWFtKVxuICBjb25zdCBvblN0YXJ0V3JpdGluZ1JlZiA9IHVzZVJlZihvblN0YXJ0V3JpdGluZylcbiAgY29uc3Qgb25TdG9wUmVmID0gdXNlUmVmKG9uU3RvcClcbiAgY29uc3Qgb25FcnJvclJlZiA9IHVzZVJlZihvbkVycm9yKVxuICBjb25zdCBvbkFwcHJvdmFsUmVxdWlyZWRSZWYgPSB1c2VSZWYob25BcHByb3ZhbFJlcXVpcmVkKVxuXG4gIG9uU3RyZWFtVXBkYXRlUmVmLmN1cnJlbnQgPSBvblN0cmVhbVVwZGF0ZVxuICBvbkZpbmlzaFN0cmVhbVJlZi5jdXJyZW50ID0gb25GaW5pc2hTdHJlYW1cbiAgb25TdGFydFdyaXRpbmdSZWYuY3VycmVudCA9IG9uU3RhcnRXcml0aW5nXG4gIG9uU3RvcFJlZi5jdXJyZW50ID0gb25TdG9wXG4gIG9uRXJyb3JSZWYuY3VycmVudCA9IG9uRXJyb3JcbiAgb25BcHByb3ZhbFJlcXVpcmVkUmVmLmN1cnJlbnQgPSBvbkFwcHJvdmFsUmVxdWlyZWRcblxuICBjb25zdCBoYW5kbGVTU0VTdHJlYW0gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5Py5nZXRSZWFkZXIoKVxuICAgICAgICBpZiAoIXJlYWRlcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVhZGVyIGF2YWlsYWJsZScpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKClcbiAgICAgICAgbGV0IGJ1ZmZlciA9ICcnXG4gICAgICAgIGxldCBhY2N1bXVsYXRlZENvbnRlbnQgPSAnJ1xuICAgICAgICBsZXQgaGFzU3RhcnRlZFdyaXRpbmcgPSBmYWxzZVxuXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgaWYgKGlzU3RvcHBlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICByZWFkZXIuY2FuY2VsKClcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc1N0b3BwZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgcmVhZGVyLmNhbmNlbCgpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06IHRydWUgfSlcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdCgnXFxuXFxuJylcbiAgICAgICAgICBidWZmZXIgPSBsaW5lcy5wb3AoKSB8fCAnJ1xuXG4gICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBbZXZlbnRMaW5lLCBkYXRhTGluZV0gPSBsaW5lLnNwbGl0KCdcXG4nKVxuICAgICAgICAgICAgaWYgKCFldmVudExpbmUgfHwgIWRhdGFMaW5lKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCBldmVudFR5cGUgPSBldmVudExpbmUucmVwbGFjZSgnZXZlbnQ6ICcsICcnKS50cmltKClcbiAgICAgICAgICAgIGNvbnN0IGRhdGFTdHIgPSBkYXRhTGluZS5yZXBsYWNlKCdkYXRhOiAnLCAnJykudHJpbSgpXG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpXG5cbiAgICAgICAgICAgICAgc3dpdGNoIChldmVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd0b2tlbic6XG4gICAgICAgICAgICAgICAgICBpZiAoIWhhc1N0YXJ0ZWRXcml0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1N0YXJ0ZWRXcml0aW5nID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UodCgnY2hhdC53cml0aW5nJykpXG4gICAgICAgICAgICAgICAgICAgIG9uU3RhcnRXcml0aW5nUmVmLmN1cnJlbnQ/LigpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlZENvbnRlbnQgKz0gZGF0YS5jb250ZW50XG4gICAgICAgICAgICAgICAgICBzZXREYXRhKGFjY3VtdWxhdGVkQ29udGVudClcbiAgICAgICAgICAgICAgICAgIG9uU3RyZWFtVXBkYXRlUmVmLmN1cnJlbnQ/LihhY2N1bXVsYXRlZENvbnRlbnQsIG51bGwsICcnKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGNhc2UgJ25vZGUnOlxuICAgICAgICAgICAgICAgICAgLy8gU2kgZWwgZXZlbnRvIG5vZGUgdGllbmUgdW4gbWVuc2FqZSwgYWN0dWFsaXphcmxvIHBhcmEgbW9zdHJhcmxvIGVuIGVsIGxvYWRlclxuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubWVzc2FnZSAmJiB0eXBlb2YgZGF0YS5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBBc2VndXJhciBxdWUgaXNMb2FkaW5nIGVzdMOpIGVuIHRydWUgcGFyYSBtb3N0cmFyIGVsIGxvYWRlclxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICAgICAgICAgICAgICAgIC8vIE1vc3RyYXIgbm9tYnJlIHNvbG8gcGFyYSBjcmVhdGVfdGFzaywgZWwgcmVzdG8gbXVlc3RyYSBnZW7DqXJpY29cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZU1lc3NhZ2UgPSBkYXRhLm1lc3NhZ2UuaW5jbHVkZXMoJ2NyZWF0ZV90YXNrJykgPyBkYXRhLm1lc3NhZ2UgOiB0KCdjaGF0LmV4ZWN1dGluZ0FjdGlvbicpXG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmdNZXNzYWdlKG5vZGVNZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBsZXRlJzpcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsQ29udGVudCA9IGRhdGEuY29udGVudCB8fCBhY2N1bXVsYXRlZENvbnRlbnRcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZXMgPSBkYXRhLnNvdXJjZXMgfHwgbnVsbFxuICAgICAgICAgICAgICAgICAgY29uc3QgbWVtb3J5U2Vzc2lvbklkID0gZGF0YS5tZW1vcnlfc2Vzc2lvbl9pZCB8fCAnJ1xuICAgICAgICAgICAgICAgICAgbGV0IHN1Z2dlc3Rpb25zID0gbnVsbFxuICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YS5zdWdnZXN0X3JlcGx5KSkge1xuICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucyA9IGRhdGEuc3VnZ2VzdF9yZXBseVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEuc3VnZ2VzdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zID0gZGF0YS5zdWdnZXN0aW9uc1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgYWdlbnRJZFJhdyA9IGRhdGEuYWdlbnRfaWQgPz8gZGF0YS5hZ2VudElkXG4gICAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZWRBZ2VudElkID1cbiAgICAgICAgICAgICAgICAgICAgYWdlbnRJZFJhdyAhPSBudWxsICYmIFN0cmluZyhhZ2VudElkUmF3KS50cmltKCkgIT09ICcnID8gU3RyaW5nKGFnZW50SWRSYXcpLnRyaW0oKSA6IG51bGxcbiAgICAgICAgICAgICAgICAgIHNldERhdGEoZmluYWxDb250ZW50KVxuICAgICAgICAgICAgICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbCkgLy8gTGltcGlhciBtZW5zYWplIGN1YW5kbyBzZSBjb21wbGV0YVxuICAgICAgICAgICAgICAgICAgb25GaW5pc2hTdHJlYW1SZWYuY3VycmVudD8uKGZpbmFsQ29udGVudCwgc291cmNlcywgbWVtb3J5U2Vzc2lvbklkLCBzdWdnZXN0aW9ucywgY29tcGxldGVkQWdlbnRJZClcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICBjYXNlICdhcHByb3ZhbF9yZXF1aXJlZCc6XG4gICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbCkgLy8gTGltcGlhciBtZW5zYWplIGN1YW5kbyBzZSByZXF1aWVyZSBhcHJvYmFjacOzblxuICAgICAgICAgICAgICAgICAgb25BcHByb3ZhbFJlcXVpcmVkUmVmLmN1cnJlbnQ/LihkYXRhLCBhY2N1bXVsYXRlZENvbnRlbnQpXG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU1NFIEVycm9yOicsIGRhdGEuZXJyb3IpXG4gICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKSAvLyBMaW1waWFyIG1lbnNhamUgY3VhbmRvIGhheSBlcnJvclxuICAgICAgICAgICAgICAgICAgb25FcnJvclJlZi5jdXJyZW50Py4oKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gU1NFIGV2ZW50IHR5cGU6JywgZXZlbnRUeXBlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgU1NFIGRhdGE6JywgcGFyc2VFcnJvciwgZGF0YVN0cilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcblxuICAgICAgICAvLyBTb2xvIGVqZWN1dGFyIG9uRXJyb3Igc2kgbm8gZnVlIHVuIHN0b3AgaW50ZW5jaW9uYWxcbiAgICAgICAgaWYgKCFpc1N0b3BwZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgIG9uRXJyb3JSZWYuY3VycmVudD8uKClcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3RdXG4gIClcblxuICBjb25zdCBhc2tNYWlhID0gYXN5bmMgKHtcbiAgICBtZXNzYWdlLFxuICAgIGhpc3RvcnksXG4gICAgcHJvamVjdElkLFxuICAgIGxhbmcsXG4gICAgdXNlcklkLFxuICAgIGZpcnN0TmFtZSxcbiAgICBsYXN0TmFtZSxcbiAgICBjb21wYW55SWQsXG4gICAgY2hhdElkLFxuICAgIG1lc3NhZ2VJZCxcbiAgICBjbGllbnRJZCxcbiAgICBjbGllbnROYW1lLFxuICAgIGFnZW50TmFtZSxcbiAgICBhZ2VudElkLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBhdHRhY2htZW50cyxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBmYXFJZCxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZCxcbiAgICBhZ2VudEVudGl0eSxcbiAgfToge1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICAgIGhpc3Rvcnk6IENoYXRIaXN0b3J5W11cbiAgICBwcm9qZWN0SWQ6IG51bWJlciB8IG51bGxcbiAgICBsYW5nOiBzdHJpbmdcbiAgICB1c2VySWQ6IHN0cmluZ1xuICAgIGZpcnN0TmFtZT86IHN0cmluZ1xuICAgIGxhc3ROYW1lPzogc3RyaW5nXG4gICAgY29tcGFueUlkOiBzdHJpbmdcbiAgICBjaGF0SWQ6IHN0cmluZ1xuICAgIG1lc3NhZ2VJZDogc3RyaW5nXG4gICAgY2xpZW50SWQ/OiBudW1iZXJcbiAgICBjbGllbnROYW1lPzogc3RyaW5nXG4gICAgYWdlbnROYW1lOiBzdHJpbmdcbiAgICBhZ2VudElkOiBzdHJpbmdcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gICAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgICBmYXFJZD86IHN0cmluZ1xuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgYWdlbnRFbnRpdHk/OiBBZ2VudEVudGl0eVxuICB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgIHNldERhdGEobnVsbClcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpXG4gICAgICBpc1N0b3BwZWRSZWYuY3VycmVudCA9IGZhbHNlIC8vIFJlc2V0ZWFyIGZsYWcgYWwgaW5pY2lhciBudWV2YSBwZXRpY2nDs25cblxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5vcmNoZXN0cmF0b3IoXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dDogbWVzc2FnZSxcbiAgICAgICAgICBoaXN0b3J5LFxuICAgICAgICAgIGxhbmcsXG4gICAgICAgICAgdXNlcklkLFxuICAgICAgICAgIC4uLihmaXJzdE5hbWUgPyB7IGZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgICAgIC4uLihsYXN0TmFtZSA/IHsgbGFzdE5hbWUgfSA6IHt9KSxcbiAgICAgICAgICBjb21wYW55SWQsXG4gICAgICAgICAgY2hhdElkLFxuICAgICAgICAgIG1lc3NhZ2VJZCxcbiAgICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgICBhZ2VudE5hbWUsXG4gICAgICAgICAgYWdlbnRJZCxcbiAgICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgIC4uLihwcm9qZWN0TmFtZSA/IHsgcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oY2xpZW50TmFtZSA/IHsgY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgICAgIC4uLihmYXFJZCA/IHsgZmFxSWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oYWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGFnZW50RW50aXR5ICE9IG51bGwgPyB7IGFnZW50RW50aXR5IH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50Py5zaWduYWxcbiAgICAgIClcblxuICAgICAgYXdhaXQgaGFuZGxlU1NFU3RyZWFtKHJlc3BvbnNlKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yPy4oKVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzdG9wU3RyZWFtaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCkge1xuICAgICAgaXNTdG9wcGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5hYm9ydCgpXG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKVxuICAgICAgb25TdG9wUmVmLmN1cnJlbnQ/LigpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCByZXNldCA9ICgpID0+IHtcbiAgICBzZXREYXRhKG51bGwpXG4gICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbClcbiAgICBpc1N0b3BwZWRSZWYuY3VycmVudCA9IGZhbHNlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFza01haWEsXG4gICAgcmVzcG9uc2U6IGRhdGEsXG4gICAgaXNMb2FkaW5nLFxuICAgIGlzV3JpdGluZyxcbiAgICBsb2FkaW5nTWVzc2FnZSxcbiAgICByZXNldCxcbiAgICBzdG9wU3RyZWFtaW5nLFxuICAgIGhhbmRsZVNTRVN0cmVhbSwgLy8gRXhwb25lciBwYXJhIHBvZGVyIHVzYXJsbyBlbiBjb250aW51ZS10aHJl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
|
|
353
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJtYWlhIiwiU0VDVElPTlMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJfcmVmIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RhcnRXcml0aW5nIiwib25TdG9wIiwib25FcnJvciIsIm9uQXBwcm92YWxSZXF1aXJlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJkYXRhIiwic2V0RGF0YSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNMb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXcml0aW5nIiwic2V0SXNXcml0aW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkaW5nTWVzc2FnZSIsInNldExvYWRpbmdNZXNzYWdlIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaXNTdG9wcGVkUmVmIiwib25TdHJlYW1VcGRhdGVSZWYiLCJvbkZpbmlzaFN0cmVhbVJlZiIsIm9uU3RhcnRXcml0aW5nUmVmIiwib25TdG9wUmVmIiwib25FcnJvclJlZiIsIm9uQXBwcm92YWxSZXF1aXJlZFJlZiIsImN1cnJlbnQiLCJoYW5kbGVTU0VTdHJlYW0iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJfb25TdHJlYW1VcGRhdGVSZWYkY3UiLCJfZGF0YSRhZ2VudF9pZCIsIl9vbkZpbmlzaFN0cmVhbVJlZiRjdSIsIl9vbkFwcHJvdmFsUmVxdWlyZWRSZSIsIl9vbkVycm9yUmVmJGN1cnJlbnQiLCJfcmVzcG9uc2UkYm9keSIsInJlYWRlciIsImRlY29kZXIiLCJidWZmZXIiLCJhY2N1bXVsYXRlZENvbnRlbnQiLCJoYXNTdGFydGVkV3JpdGluZyIsIl95aWVsZCRyZWFkZXIkcmVhZCIsImRvbmUiLCJ2YWx1ZSIsImxpbmVzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJsaW5lIiwiX2xpbmUkc3BsaXQiLCJfbGluZSRzcGxpdDIiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsImRhdGFTdHIiLCJfZGF0YSIsIl9vblN0YXJ0V3JpdGluZ1JlZiRjdSIsIm5vZGVNZXNzYWdlIiwiZmluYWxDb250ZW50Iiwic291cmNlcyIsIm1lbW9yeVNlc3Npb25JZCIsInN1Z2dlc3Rpb25zIiwiYWdlbnRJZFJhdyIsImNvbXBsZXRlZEFnZW50SWQiLCJfb25FcnJvclJlZiRjdXJyZW50MiIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJib2R5IiwiZ2V0UmVhZGVyIiwiRXJyb3IiLCJUZXh0RGVjb2RlciIsImNhbmNlbCIsImFicnVwdCIsInJlYWQiLCJzZW50IiwiZGVjb2RlIiwic3RyZWFtIiwic3BsaXQiLCJwb3AiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInMiLCJuIiwidHJpbSIsInJlcGxhY2UiLCJKU09OIiwicGFyc2UiLCJjYWxsIiwiY29udGVudCIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsIm1lbW9yeV9zZXNzaW9uX2lkIiwiQXJyYXkiLCJpc0FycmF5Iiwic3VnZ2VzdF9yZXBseSIsImFnZW50X2lkIiwiYWdlbnRJZCIsIlN0cmluZyIsImNvbnNvbGUiLCJlcnJvciIsIndhcm4iLCJlIiwiZiIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiYXNrTWFpYSIsIl9yZWY0IiwiX2NhbGxlZTIiLCJfcmVmMyIsImhpc3RvcnkiLCJwcm9qZWN0SWQiLCJsYW5nIiwidXNlcklkIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJjb21wYW55SWQiLCJjaGF0SWQiLCJtZXNzYWdlSWQiLCJjbGllbnRJZCIsImNsaWVudE5hbWUiLCJmZWVJZCIsImFnZW50TmFtZSIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYXR0YWNobWVudHMiLCJwcm9qZWN0TmFtZSIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJhZ2VudEVudGl0eSIsIl9hYm9ydENvbnRyb2xsZXJSZWYkYyIsIl90NSIsIl9jb250ZXh0MiIsIkFib3J0Q29udHJvbGxlciIsIk9yY2hlc3RyYXRvciIsIm9yY2hlc3RyYXRvciIsIl9vYmplY3RTcHJlYWQiLCJpbnB1dCIsInNpZ25hbCIsIl94MiIsInN0b3BTdHJlYW1pbmciLCJfb25TdG9wUmVmJGN1cnJlbnQiLCJhYm9ydCIsInJlc2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZU9yY2hlc3RyYXRvclN0cmVhbS91c2VPcmNoZXN0cmF0b3JTdHJlYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc3RhbnQtY29uZGl0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY2FzZS1kZWNsYXJhdGlvbnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgQ2hhdEhpc3RvcnkgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgQWdlbnRFbnRpdHkgfSBmcm9tICcuLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IFVzZU9yY2hlc3RyYXRvclN0cmVhbVByb3BzIH0gZnJvbSAnLi91c2VPcmNoZXN0cmF0b3JTdHJlYW0uaW50ZXJmYWNlJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuXG5leHBvcnQgY29uc3QgdXNlT3JjaGVzdHJhdG9yU3RyZWFtID0gKHtcbiAgb25TdHJlYW1VcGRhdGUsXG4gIG9uRmluaXNoU3RyZWFtLFxuICBvblN0YXJ0V3JpdGluZyxcbiAgb25TdG9wLFxuICBvbkVycm9yLFxuICBvbkFwcHJvdmFsUmVxdWlyZWQsXG59OiBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUldKVxuICBjb25zdCBbZGF0YSwgc2V0RGF0YV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNXcml0aW5nLCBzZXRJc1dyaXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZSwgc2V0TG9hZGluZ01lc3NhZ2VdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYWJvcnRDb250cm9sbGVyUmVmID0gdXNlUmVmPEFib3J0Q29udHJvbGxlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGlzU3RvcHBlZFJlZiA9IHVzZVJlZihmYWxzZSlcblxuICBjb25zdCBvblN0cmVhbVVwZGF0ZVJlZiA9IHVzZVJlZihvblN0cmVhbVVwZGF0ZSlcbiAgY29uc3Qgb25GaW5pc2hTdHJlYW1SZWYgPSB1c2VSZWYob25GaW5pc2hTdHJlYW0pXG4gIGNvbnN0IG9uU3RhcnRXcml0aW5nUmVmID0gdXNlUmVmKG9uU3RhcnRXcml0aW5nKVxuICBjb25zdCBvblN0b3BSZWYgPSB1c2VSZWYob25TdG9wKVxuICBjb25zdCBvbkVycm9yUmVmID0gdXNlUmVmKG9uRXJyb3IpXG4gIGNvbnN0IG9uQXBwcm92YWxSZXF1aXJlZFJlZiA9IHVzZVJlZihvbkFwcHJvdmFsUmVxdWlyZWQpXG5cbiAgb25TdHJlYW1VcGRhdGVSZWYuY3VycmVudCA9IG9uU3RyZWFtVXBkYXRlXG4gIG9uRmluaXNoU3RyZWFtUmVmLmN1cnJlbnQgPSBvbkZpbmlzaFN0cmVhbVxuICBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50ID0gb25TdGFydFdyaXRpbmdcbiAgb25TdG9wUmVmLmN1cnJlbnQgPSBvblN0b3BcbiAgb25FcnJvclJlZi5jdXJyZW50ID0gb25FcnJvclxuICBvbkFwcHJvdmFsUmVxdWlyZWRSZWYuY3VycmVudCA9IG9uQXBwcm92YWxSZXF1aXJlZFxuXG4gIGNvbnN0IGhhbmRsZVNTRVN0cmVhbSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHk/LmdldFJlYWRlcigpXG4gICAgICAgIGlmICghcmVhZGVyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZWFkZXIgYXZhaWxhYmxlJylcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICAgICAgICBsZXQgYnVmZmVyID0gJydcbiAgICAgICAgbGV0IGFjY3VtdWxhdGVkQ29udGVudCA9ICcnXG4gICAgICAgIGxldCBoYXNTdGFydGVkV3JpdGluZyA9IGZhbHNlXG5cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICBpZiAoaXNTdG9wcGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG4gICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzU3RvcHBlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICByZWFkZXIuY2FuY2VsKClcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnVmZmVyICs9IGRlY29kZXIuZGVjb2RlKHZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KVxuICAgICAgICAgIGNvbnN0IGxpbmVzID0gYnVmZmVyLnNwbGl0KCdcXG5cXG4nKVxuICAgICAgICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IFtldmVudExpbmUsIGRhdGFMaW5lXSA9IGxpbmUuc3BsaXQoJ1xcbicpXG4gICAgICAgICAgICBpZiAoIWV2ZW50TGluZSB8fCAhZGF0YUxpbmUpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50VHlwZSA9IGV2ZW50TGluZS5yZXBsYWNlKCdldmVudDogJywgJycpLnRyaW0oKVxuICAgICAgICAgICAgY29uc3QgZGF0YVN0ciA9IGRhdGFMaW5lLnJlcGxhY2UoJ2RhdGE6ICcsICcnKS50cmltKClcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGF0YVN0cilcblxuICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3Rva2VuJzpcbiAgICAgICAgICAgICAgICAgIGlmICghaGFzU3RhcnRlZFdyaXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzU3RhcnRlZFdyaXRpbmcgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIHNldElzV3JpdGluZyh0cnVlKVxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZSh0KCdjaGF0LndyaXRpbmcnKSlcbiAgICAgICAgICAgICAgICAgICAgb25TdGFydFdyaXRpbmdSZWYuY3VycmVudD8uKClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVkQ29udGVudCArPSBkYXRhLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIHNldERhdGEoYWNjdW11bGF0ZWRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgb25TdHJlYW1VcGRhdGVSZWYuY3VycmVudD8uKGFjY3VtdWxhdGVkQ29udGVudCwgbnVsbCwgJycpXG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbm9kZSc6XG4gICAgICAgICAgICAgICAgICAvLyBTaSBlbCBldmVudG8gbm9kZSB0aWVuZSB1biBtZW5zYWplLCBhY3R1YWxpemFybG8gcGFyYSBtb3N0cmFybG8gZW4gZWwgbG9hZGVyXG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YS5tZXNzYWdlICYmIHR5cGVvZiBkYXRhLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFzZWd1cmFyIHF1ZSBpc0xvYWRpbmcgZXN0w6kgZW4gdHJ1ZSBwYXJhIG1vc3RyYXIgZWwgbG9hZGVyXG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLy8gTW9zdHJhciBub21icmUgc29sbyBwYXJhIGNyZWF0ZV90YXNrLCBlbCByZXN0byBtdWVzdHJhIGdlbsOpcmljb1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlTWVzc2FnZSA9IGRhdGEubWVzc2FnZS5pbmNsdWRlcygnY3JlYXRlX3Rhc2snKSA/IGRhdGEubWVzc2FnZSA6IHQoJ2NoYXQuZXhlY3V0aW5nQWN0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2Uobm9kZU1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnY29tcGxldGUnOlxuICAgICAgICAgICAgICAgICAgY29uc3QgZmluYWxDb250ZW50ID0gZGF0YS5jb250ZW50IHx8IGFjY3VtdWxhdGVkQ29udGVudFxuICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlcyA9IGRhdGEuc291cmNlcyB8fCBudWxsXG4gICAgICAgICAgICAgICAgICBjb25zdCBtZW1vcnlTZXNzaW9uSWQgPSBkYXRhLm1lbW9yeV9zZXNzaW9uX2lkIHx8ICcnXG4gICAgICAgICAgICAgICAgICBsZXQgc3VnZ2VzdGlvbnMgPSBudWxsXG4gICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhLnN1Z2dlc3RfcmVwbHkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zID0gZGF0YS5zdWdnZXN0X3JlcGx5XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YS5zdWdnZXN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMgPSBkYXRhLnN1Z2dlc3Rpb25zXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBhZ2VudElkUmF3ID0gZGF0YS5hZ2VudF9pZCA/PyBkYXRhLmFnZW50SWRcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZEFnZW50SWQgPVxuICAgICAgICAgICAgICAgICAgICBhZ2VudElkUmF3ICE9IG51bGwgJiYgU3RyaW5nKGFnZW50SWRSYXcpLnRyaW0oKSAhPT0gJycgPyBTdHJpbmcoYWdlbnRJZFJhdykudHJpbSgpIDogbnVsbFxuICAgICAgICAgICAgICAgICAgc2V0RGF0YShmaW5hbENvbnRlbnQpXG4gICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKSAvLyBMaW1waWFyIG1lbnNhamUgY3VhbmRvIHNlIGNvbXBsZXRhXG4gICAgICAgICAgICAgICAgICBvbkZpbmlzaFN0cmVhbVJlZi5jdXJyZW50Py4oZmluYWxDb250ZW50LCBzb3VyY2VzLCBtZW1vcnlTZXNzaW9uSWQsIHN1Z2dlc3Rpb25zLCBjb21wbGV0ZWRBZ2VudElkKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2FwcHJvdmFsX3JlcXVpcmVkJzpcbiAgICAgICAgICAgICAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKSAvLyBMaW1waWFyIG1lbnNhamUgY3VhbmRvIHNlIHJlcXVpZXJlIGFwcm9iYWNpw7NuXG4gICAgICAgICAgICAgICAgICBvbkFwcHJvdmFsUmVxdWlyZWRSZWYuY3VycmVudD8uKGRhdGEsIGFjY3VtdWxhdGVkQ29udGVudClcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTU0UgRXJyb3I6JywgZGF0YS5lcnJvcilcbiAgICAgICAgICAgICAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpIC8vIExpbXBpYXIgbWVuc2FqZSBjdWFuZG8gaGF5IGVycm9yXG4gICAgICAgICAgICAgICAgICBvbkVycm9yUmVmLmN1cnJlbnQ/LigpXG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignVW5rbm93biBTU0UgZXZlbnQgdHlwZTonLCBldmVudFR5cGUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBTU0UgZGF0YTonLCBwYXJzZUVycm9yLCBkYXRhU3RyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuXG4gICAgICAgIC8vIFNvbG8gZWplY3V0YXIgb25FcnJvciBzaSBubyBmdWUgdW4gc3RvcCBpbnRlbmNpb25hbFxuICAgICAgICBpZiAoIWlzU3RvcHBlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgb25FcnJvclJlZi5jdXJyZW50Py4oKVxuICAgICAgICB9XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdF1cbiAgKVxuXG4gIGNvbnN0IGFza01haWEgPSBhc3luYyAoe1xuICAgIG1lc3NhZ2UsXG4gICAgaGlzdG9yeSxcbiAgICBwcm9qZWN0SWQsXG4gICAgbGFuZyxcbiAgICB1c2VySWQsXG4gICAgZmlyc3ROYW1lLFxuICAgIGxhc3ROYW1lLFxuICAgIGNvbXBhbnlJZCxcbiAgICBjaGF0SWQsXG4gICAgbWVzc2FnZUlkLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudE5hbWUsXG4gICAgZmVlSWQsXG4gICAgYWdlbnROYW1lLFxuICAgIGFnZW50SWQsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIHByb2plY3ROYW1lLFxuICAgIGZhcUlkLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkLFxuICAgIGFnZW50RW50aXR5LFxuICB9OiB7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICAgIHByb2plY3RJZDogbnVtYmVyIHwgbnVsbFxuICAgIGxhbmc6IHN0cmluZ1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgZmlyc3ROYW1lPzogc3RyaW5nXG4gICAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgICBjb21wYW55SWQ6IHN0cmluZ1xuICAgIGNoYXRJZDogc3RyaW5nXG4gICAgbWVzc2FnZUlkOiBzdHJpbmdcbiAgICBjbGllbnRJZD86IG51bWJlclxuICAgIGNsaWVudE5hbWU/OiBzdHJpbmdcbiAgICBmZWVJZD86IG51bWJlclxuICAgIGFnZW50TmFtZTogc3RyaW5nXG4gICAgYWdlbnRJZDogc3RyaW5nXG4gICAgaXNXZWJTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICAgIHByb2plY3ROYW1lPzogc3RyaW5nXG4gICAgZmFxSWQ/OiBzdHJpbmdcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICAgIGFnZW50RW50aXR5PzogQWdlbnRFbnRpdHlcbiAgfSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICBzZXREYXRhKG51bGwpXG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKVxuICAgICAgaXNTdG9wcGVkUmVmLmN1cnJlbnQgPSBmYWxzZSAvLyBSZXNldGVhciBmbGFnIGFsIGluaWNpYXIgbnVldmEgcGV0aWNpw7NuXG5cbiAgICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50ID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbWFpYS5PcmNoZXN0cmF0b3Iub3JjaGVzdHJhdG9yKFxuICAgICAgICB7XG4gICAgICAgICAgaW5wdXQ6IG1lc3NhZ2UsXG4gICAgICAgICAgaGlzdG9yeSxcbiAgICAgICAgICBsYW5nLFxuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAuLi4oZmlyc3ROYW1lID8geyBmaXJzdE5hbWUgfSA6IHt9KSxcbiAgICAgICAgICAuLi4obGFzdE5hbWUgPyB7IGxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAgICAgY29tcGFueUlkLFxuICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICBtZXNzYWdlSWQsXG4gICAgICAgICAgY2xpZW50SWQsXG4gICAgICAgICAgLi4uKGZlZUlkICE9IG51bGwgPyB7IGZlZUlkIH0gOiB7fSksXG4gICAgICAgICAgYWdlbnROYW1lLFxuICAgICAgICAgIGFnZW50SWQsXG4gICAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIC4uLihwcm9qZWN0SWQgPyB7IHByb2plY3RJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihhdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHMgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3ROYW1lIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudE5hbWUgPyB7IGNsaWVudE5hbWUgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oZmFxSWQgPyB7IGZhcUlkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGFnZW50U3VnZ2VzdGlvbklkID8geyBhZ2VudFN1Z2dlc3Rpb25JZCB9IDoge30pLFxuICAgICAgICAgIC4uLihhZ2VudEVudGl0eSAhPSBudWxsID8geyBhZ2VudEVudGl0eSB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudD8uc2lnbmFsXG4gICAgICApXG5cbiAgICAgIGF3YWl0IGhhbmRsZVNTRVN0cmVhbShyZXNwb25zZSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcj8uKClcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RvcFN0cmVhbWluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlzU3RvcHBlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQuYWJvcnQoKVxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbClcbiAgICAgIG9uU3RvcFJlZi5jdXJyZW50Py4oKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgcmVzZXQgPSAoKSA9PiB7XG4gICAgc2V0RGF0YShudWxsKVxuICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpXG4gICAgaXNTdG9wcGVkUmVmLmN1cnJlbnQgPSBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhc2tNYWlhLFxuICAgIHJlc3BvbnNlOiBkYXRhLFxuICAgIGlzTG9hZGluZyxcbiAgICBpc1dyaXRpbmcsXG4gICAgbG9hZGluZ01lc3NhZ2UsXG4gICAgcmVzZXQsXG4gICAgc3RvcFN0cmVhbWluZyxcbiAgICBoYW5kbGVTU0VTdHJlYW0sIC8vIEV4cG9uZXIgcGFyYSBwb2RlciB1c2FybG8gZW4gY29udGludWUtdGhyZWFkXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUNyRCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUU5QyxPQUFPQyxJQUFJLE1BQU0scUJBQXFCO0FBSXRDLFNBQVNDLFFBQVEsUUFBUSx3QkFBd0I7QUFFakQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBQyxJQUFBLEVBT0E7RUFBQSxJQU5oQ0MsY0FBYyxHQUFBRCxJQUFBLENBQWRDLGNBQWM7SUFDZEMsY0FBYyxHQUFBRixJQUFBLENBQWRFLGNBQWM7SUFDZEMsY0FBYyxHQUFBSCxJQUFBLENBQWRHLGNBQWM7SUFDZEMsTUFBTSxHQUFBSixJQUFBLENBQU5JLE1BQU07SUFDTkMsT0FBTyxHQUFBTCxJQUFBLENBQVBLLE9BQU87SUFDUEMsa0JBQWtCLEdBQUFOLElBQUEsQ0FBbEJNLGtCQUFrQjtFQUVsQixJQUFBQyxlQUFBLEdBQWNYLGNBQWMsQ0FBQyxDQUFDRSxRQUFRLENBQUNVLE1BQU0sQ0FBQyxDQUFDO0lBQXZDQyxDQUFDLEdBQUFGLGVBQUEsQ0FBREUsQ0FBQztFQUNULElBQUFDLFNBQUEsR0FBd0JqQixRQUFRLENBQWdCLElBQUksQ0FBQztJQUFBa0IsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBOUNHLElBQUksR0FBQUYsVUFBQTtJQUFFRyxPQUFPLEdBQUFILFVBQUE7RUFDcEIsSUFBQUksVUFBQSxHQUFnQ3RCLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXVCLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQXhDRSxTQUFTLEdBQUFELFVBQUE7SUFBRUUsVUFB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
|
|
@@ -15,13 +15,16 @@ var TYPE_PROJECT = {
|
|
|
15
15
|
};
|
|
16
16
|
var mapperProjectsSearch = function mapperProjectsSearch(values) {
|
|
17
17
|
return values === null || values === void 0 ? void 0 : values.map(function (value) {
|
|
18
|
+
var _value$clientId, _value$feeId;
|
|
18
19
|
return {
|
|
19
20
|
id: value.id,
|
|
20
21
|
title: value.title,
|
|
21
22
|
clientName: value.clientName,
|
|
22
23
|
productName: value.productName,
|
|
23
24
|
brandName: value.brandName,
|
|
24
|
-
incomeType: ''
|
|
25
|
+
incomeType: '',
|
|
26
|
+
clientId: (_value$clientId = value.clientId) !== null && _value$clientId !== void 0 ? _value$clientId : null,
|
|
27
|
+
feeId: (_value$feeId = value.feeId) !== null && _value$feeId !== void 0 ? _value$feeId : null
|
|
25
28
|
};
|
|
26
29
|
});
|
|
27
30
|
};
|
|
@@ -45,13 +48,17 @@ export var DataParsedToProjects = function DataParsedToProjects() {
|
|
|
45
48
|
length: searchValue.length
|
|
46
49
|
};
|
|
47
50
|
}
|
|
48
|
-
return _objectSpread(_objectSpread({
|
|
51
|
+
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
49
52
|
id: arg.id,
|
|
50
53
|
name: arg.title,
|
|
51
54
|
title: projectName
|
|
52
55
|
}, titleHighlight && {
|
|
53
56
|
titleHighlight: titleHighlight
|
|
54
|
-
}),
|
|
57
|
+
}), arg.clientId != null ? {
|
|
58
|
+
clientId: arg.clientId
|
|
59
|
+
} : {}), arg.feeId != null ? {
|
|
60
|
+
feeId: arg.feeId
|
|
61
|
+
} : {}), {}, {
|
|
55
62
|
client: {
|
|
56
63
|
name: (_arg$clientName = arg.clientName) !== null && _arg$clientName !== void 0 ? _arg$clientName : null
|
|
57
64
|
},
|
|
@@ -195,4 +202,4 @@ export var useProjectSearch = function useProjectSearch() {
|
|
|
195
202
|
updateSearchValue: updateSearchValue
|
|
196
203
|
};
|
|
197
204
|
};
|
|
198
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwibWFpYSIsIlNFQVJDSF9QUk9KRUNUUyIsInVzZURlYm91bmNlIiwiVFlQRV9QUk9KRUNUIiwicHJvamVjdCIsImFyY2hpdmVkIiwibWFwcGVyUHJvamVjdHNTZWFyY2giLCJ2YWx1ZXMiLCJtYXAiLCJ2YWx1ZSIsImlkIiwidGl0bGUiLCJjbGllbnROYW1lIiwicHJvZHVjdE5hbWUiLCJicmFuZE5hbWUiLCJpbmNvbWVUeXBlIiwiRGF0YVBhcnNlZFRvUHJvamVjdHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJwcm9qZWN0cyIsInNldFByb2plY3RzIiwic2V0dGVyRGF0YSIsImFyZ3MiLCJzZWFyY2hWYWx1ZSIsImxlbmd0aCIsImFyZyIsIl9hcmckY2xpZW50TmFtZSIsInByb2plY3ROYW1lIiwidGl0bGVIaWdobGlnaHQiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwic3RhcnQiLCJfb2JqZWN0U3ByZWFkIiwibmFtZSIsImNsaWVudCIsInVzZVByb2plY3RTZWFyY2giLCJfRGF0YVBhcnNlZFRvUHJvamVjdHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaXNRdWVyeUluUHJvZ3Jlc3MiLCJzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwicmVjZW50UHJvamVjdHNEYXRhIiwic2V0UmVjZW50UHJvamVjdHNEYXRhIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImxvYWRpbmdSZWNlbnRQcm9qZWN0cyIsInNldExvYWRpbmdSZWNlbnRQcm9qZWN0cyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJyZWNlbnRFcnJvciIsInNldFJlY2VudEVycm9yIiwiZmV0Y2hSZWNlbnRQcm9qZWN0c1dpdGhMb2FkaW5nIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJkYXRhIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIlJlY2VudFByb2plY3RzIiwiZ2V0UmVjZW50UHJvamVjdHMiLCJzZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiZmluaXNoIiwic3RvcCIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJsaW1pdCIsIl91c2VMYXp5UXVlcnkyIiwiZmV0Y2hTZWFyY2hQcm9qZWN0cyIsIl91c2VMYXp5UXVlcnkyJCIsInNlYXJjaERhdGEiLCJsb2FkaW5nU2VhcmNoUHJvamVjdHMiLCJzZWFyY2hFcnJvciIsImhhbmRsZUZldGNoU2VhcmNoUHJvamVjdHMiLCJxIiwiZmlsdGVycyIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZWFyY2giLCJ0cmltIiwibWFwcGVkUHJvamVjdHMiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsIm5ld1NlYXJjaFZhbHVlIiwiZmV0Y2hSZWNlbnRQcm9qZWN0cyIsInJlY2VudFByb2plY3RzTG9hZGluZyIsInJlY2VudFByb2plY3RzRXJyb3IiLCJyZWNlbnRQcm9qZWN0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VQcm9qZWN0U2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBtYWlhIGZyb20gJy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBTRUFSQ0hfUFJPSkVDVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS9wcm9qZWN0U2VhcmNoQnlWYWx1ZVF1ZXJ5J1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuXG5leHBvcnQgdHlwZSBQcm9qZWN0R3JhcGhRTCA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICB0aXRsZTogc3RyaW5nXG4gIGNsaWVudE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2R1Y3ROYW1lPzogc3RyaW5nXG4gIGJyYW5kTmFtZT86IHN0cmluZ1xuICBpbmNvbWVUeXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFByb2plY3RTZXR0ZXIgPSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgLyoqIFJhbmdvIGRlbCB0w6lybWlubyBidXNjYWRvIGRlbnRybyBkZSBgdGl0bGVgIChzb2xvIHJlc3VsdGFkb3MgZGUgYsO6c3F1ZWRhKSAqL1xuICB0aXRsZUhpZ2hsaWdodD86IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfVxuICBjbGllbnQ/OiB7XG4gICAgbmFtZTogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHByb2R1Y3ROYW1lPzogc3RyaW5nXG4gIGJyYW5kTmFtZT86IHN0cmluZ1xuICBpbmNvbWVUeXBlPzogc3RyaW5nXG59XG5cbnR5cGUgUHJvamVjdFNlYXJjaFJlc3VsdCA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICB0aXRsZTogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICBjbGllbnROYW1lOiBzdHJpbmdcbiAgYnJhbmROYW1lOiBzdHJpbmdcbiAgcHJvZHVjdE5hbWU6IHN0cmluZ1xuICBwcm9qZWN0TmFtZTogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIGRlYWRsaW5lOiBzdHJpbmdcbiAgZGF0ZXRpbWU6IHN0cmluZ1xuICBhcmNoaXZlZDogYm9vbGVhblxuICBfX3R5cGVuYW1lOiBzdHJpbmdcbn1cblxudHlwZSBRdWVyeVNlYXJjaFByb2plY3REYXRhID0geyBzZWFyY2g6IFByb2plY3RTZWFyY2hSZXN1bHRbXSB8IG51bGwgfVxuXG5jb25zdCBUWVBFX1BST0pFQ1QgPSB7IHByb2plY3Q6ICd0cnVlJywgYXJjaGl2ZWQ6ICdhbGwnIH1cblxuY29uc3QgbWFwcGVyUHJvamVjdHNTZWFyY2ggPSAodmFsdWVzOiBQcm9qZWN0U2VhcmNoUmVzdWx0W10pOiBQcm9qZWN0R3JhcGhRTFtdID0+IHtcbiAgcmV0dXJuIHZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IHZhbHVlLmlkLFxuICAgIHRpdGxlOiB2YWx1ZS50aXRsZSxcbiAgICBjbGllbnROYW1lOiB2YWx1ZS5jbGllbnROYW1lLFxuICAgIHByb2R1Y3ROYW1lOiB2YWx1ZS5wcm9kdWN0TmFtZSxcbiAgICBicmFuZE5hbWU6IHZhbHVlLmJyYW5kTmFtZSxcbiAgICBpbmNvbWVUeXBlOiAnJyxcbiAgfSkpXG59XG5cbmV4cG9ydCBjb25zdCBEYXRhUGFyc2VkVG9Qcm9qZWN0cyA9ICgpID0+IHtcbiAgY29uc3QgW3Byb2plY3RzLCBzZXRQcm9qZWN0c10gPSB1c2VTdGF0ZTxQcm9qZWN0U2V0dGVyW10+KFtdKVxuICBjb25zdCBzZXR0ZXJEYXRhID0gKGFyZ3M6IFByb2plY3RHcmFwaFFMW10sIHNlYXJjaFZhbHVlPzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgc2V0UHJvamVjdHMoW10pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFByb2plY3RzKFxuICAgICAgICBhcmdzLm1hcChhcmcgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gYXJnLnRpdGxlIHx8ICcnXG4gICAgICAgICAgbGV0IHRpdGxlSGlnaGxpZ2h0OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH0gfCB1bmRlZmluZWRcbiAgICAgICAgICBpZiAoc2VhcmNoVmFsdWUgJiYgcHJvamVjdE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgY29uc3QgdGV4dEluZGV4ID0gcHJvamVjdE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICB0aXRsZUhpZ2hsaWdodCA9IHsgc3RhcnQ6IHRleHRJbmRleCwgbGVuZ3RoOiBzZWFyY2hWYWx1ZS5sZW5ndGggfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGFyZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFyZy50aXRsZSxcbiAgICAgICAgICAgIHRpdGxlOiBwcm9qZWN0TmFtZSxcbiAgICAgICAgICAgIC4uLih0aXRsZUhpZ2hsaWdodCAmJiB7IHRpdGxlSGlnaGxpZ2h0IH0pLFxuICAgICAgICAgICAgY2xpZW50OiB7XG4gICAgICAgICAgICAgIG5hbWU6IGFyZy5jbGllbnROYW1lID8/IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvZHVjdE5hbWU6IGFyZy5wcm9kdWN0TmFtZSB8fCAnJyxcbiAgICAgICAgICAgIGJyYW5kTmFtZTogYXJnLmJyYW5kTmFtZSB8fCAnJyxcbiAgICAgICAgICAgIGluY29tZVR5cGU6IGFyZy5pbmNvbWVUeXBlIHx8ICcnLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcHJvamVjdHMsIHNldHRlckRhdGEgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlUHJvamVjdFNlYXJjaCA9ICgpID0+IHtcbiAgY29uc3QgeyBwcm9qZWN0cywgc2V0dGVyRGF0YSB9ID0gRGF0YVBhcnNlZFRvUHJvamVjdHMoKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbaXNRdWVyeUluUHJvZ3Jlc3MsIHNldElzUXVlcnlJblByb2dyZXNzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIDUwMClcblxuICBjb25zdCBbcmVjZW50UHJvamVjdHNEYXRhLCBzZXRSZWNlbnRQcm9qZWN0c0RhdGFdID0gdXNlU3RhdGU8UHJvamVjdEdyYXBoUUxbXSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsb2FkaW5nUmVjZW50UHJvamVjdHMsIHNldExvYWRpbmdSZWNlbnRQcm9qZWN0c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3JlY2VudEVycm9yLCBzZXRSZWNlbnRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBmZXRjaFJlY2VudFByb2plY3RzV2l0aExvYWRpbmcgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0TG9hZGluZyh0cnVlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICAgIHNldFJlY2VudEVycm9yKGZhbHNlKVxuICAgIHNldElzUXVlcnlJblByb2dyZXNzKHRydWUpXG4gICAgc2V0TG9hZGluZ1JlY2VudFByb2plY3RzKHRydWUpXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBtYWlhLlJlY2VudFByb2plY3RzLmdldFJlY2VudFByb2plY3RzKClcbiAgICAgIHNldFJlY2VudFByb2plY3RzRGF0YShBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtdKVxuICAgIH0gY2F0Y2gge1xuICAgICAgc2V0UmVjZW50RXJyb3IodHJ1ZSlcbiAgICAgIHNldFJlY2VudFByb2plY3RzRGF0YShudWxsKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nUmVjZW50UHJvamVjdHMoZmFsc2UpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBbZmV0Y2hTZWFyY2hQcm9qZWN0cywgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBsb2FkaW5nU2VhcmNoUHJvamVjdHMsIGVycm9yOiBzZWFyY2hFcnJvciB9XSA9XG4gICAgdXNlTGF6eVF1ZXJ5PFF1ZXJ5U2VhcmNoUHJvamVjdERhdGE+KFNFQVJDSF9QUk9KRUNUUywge1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGxpbWl0OiAyMCxcbiAgICAgIH0sXG4gICAgfSlcblxuICBjb25zdCBoYW5kbGVGZXRjaFNlYXJjaFByb2plY3RzID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBmZXRjaFNlYXJjaFByb2plY3RzKHsgdmFyaWFibGVzOiB7IHE6IHZhbHVlLCBmaWx0ZXJzOiBKU09OLnN0cmluZ2lmeShUWVBFX1BST0pFQ1QpIH0gfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxvYWRpbmdSZWNlbnRQcm9qZWN0cyB8fCBsb2FkaW5nU2VhcmNoUHJvamVjdHMpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgICBpZiAocmVjZW50RXJyb3IgfHwgc2VhcmNoRXJyb3IpIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3MoZmFsc2UpXG4gICAgfVxuICB9LCBbc2VhcmNoRXJyb3IsIGxvYWRpbmdTZWFyY2hQcm9qZWN0cywgbG9hZGluZ1JlY2VudFByb2plY3RzLCByZWNlbnRFcnJvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmdSZWNlbnRQcm9qZWN0cyAmJiAhbG9hZGluZ1NlYXJjaFByb2plY3RzICYmIGlzUXVlcnlJblByb2dyZXNzKSB7XG4gICAgICBzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyhmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoRGF0YT8uc2VhcmNoICYmIGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSAmJiAhbG9hZGluZ1NlYXJjaFByb2plY3RzKSB7XG4gICAgICBjb25zdCBtYXBwZWRQcm9qZWN0cyA9IG1hcHBlclByb2plY3RzU2VhcmNoKHNlYXJjaERhdGEuc2VhcmNoKVxuICAgICAgc2V0dGVyRGF0YShtYXBwZWRQcm9qZWN0cywgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRQcm9qZWN0c0RhdGEgIT09IG51bGwgJiYgIWRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSAmJiAhbG9hZGluZ1JlY2VudFByb2plY3RzICYmICFpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0dGVyRGF0YShyZWNlbnRQcm9qZWN0c0RhdGEpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbXG4gICAgc2VhcmNoRGF0YSxcbiAgICByZWNlbnRQcm9qZWN0c0RhdGEsXG4gICAgZGVib3VuY2VkU2VhcmNoVmFsdWUsXG4gICAgbG9hZGluZ1JlY2VudFByb2plY3RzLFxuICAgIGxvYWRpbmdTZWFyY2hQcm9qZWN0cyxcbiAgICBpc1F1ZXJ5SW5Qcm9ncmVzcyxcbiAgXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGhhbmRsZUZldGNoU2VhcmNoUHJvamVjdHMoZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWUsIHJlY2VudFByb2plY3RzRGF0YV0pXG5cbiAgY29uc3QgdXBkYXRlU2VhcmNoVmFsdWUgPSAobmV3U2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKG5ld1NlYXJjaFZhbHVlKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmZXRjaFJlY2VudFByb2plY3RzOiBmZXRjaFJlY2VudFByb2plY3RzV2l0aExvYWRpbmcsXG4gICAgcmVjZW50UHJvamVjdHNMb2FkaW5nOiBsb2FkaW5nLFxuICAgIHJlY2VudFByb2plY3RzRXJyb3I6IGVycm9yLFxuICAgIHJlY2VudFByb2plY3RzOiBwcm9qZWN0cyxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxZQUFZLFFBQVEsZ0JBQWdCO0FBQzdDLFNBQVNDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUN4RCxPQUFPQyxJQUFJLE1BQU0sa0JBQWtCO0FBQ25DLFNBQVNDLGVBQWUsUUFBUSw2Q0FBNkM7QUFDN0UsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUEwQzNDLElBQU1DLFlBQVksR0FBRztFQUFFQyxPQUFPLEVBQUUsTUFBTTtFQUFFQyxRQUFRLEVBQUU7QUFBTSxDQUFDO0FBRXpELElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLE1BQTZCLEVBQXVCO0VBQ2hGLE9BQU9BLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFQyxHQUFHLENBQUMsVUFBQUMsS0FBSztJQUFBLE9BQUs7TUFDM0JDLEVBQUUsRUFBRUQsS0FBSyxDQUFDQyxFQUFFO01BQ1pDLEtBQUssRUFBRUYsS0FBSyxDQUFDRSxLQUFLO01BQ2xCQyxVQUFVLEVBQUVILEtBQUssQ0FBQ0csVUFBVTtNQUM1QkMsV0FBVyxFQUFFSixLQUFLLENBQUNJLFdBQVc7TUFDOUJDLFNBQVMsRUFBRUwsS0FBSyxDQUFDSyxTQUFTO01BQzFCQyxVQUFVLEVBQUU7SUFDZCxDQUFDO0VBQUEsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE9B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
|
|
205
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwibWFpYSIsIlNFQVJDSF9QUk9KRUNUUyIsInVzZURlYm91bmNlIiwiVFlQRV9QUk9KRUNUIiwicHJvamVjdCIsImFyY2hpdmVkIiwibWFwcGVyUHJvamVjdHNTZWFyY2giLCJ2YWx1ZXMiLCJtYXAiLCJ2YWx1ZSIsIl92YWx1ZSRjbGllbnRJZCIsIl92YWx1ZSRmZWVJZCIsImlkIiwidGl0bGUiLCJjbGllbnROYW1lIiwicHJvZHVjdE5hbWUiLCJicmFuZE5hbWUiLCJpbmNvbWVUeXBlIiwiY2xpZW50SWQiLCJmZWVJZCIsIkRhdGFQYXJzZWRUb1Byb2plY3RzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicHJvamVjdHMiLCJzZXRQcm9qZWN0cyIsInNldHRlckRhdGEiLCJhcmdzIiwic2VhcmNoVmFsdWUiLCJsZW5ndGgiLCJhcmciLCJfYXJnJGNsaWVudE5hbWUiLCJwcm9qZWN0TmFtZSIsInRpdGxlSGlnaGxpZ2h0IiwidG9Mb2NhbGVMb3dlckNhc2UiLCJpbmNsdWRlcyIsInRleHRJbmRleCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsInN0YXJ0IiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJjbGllbnQiLCJ1c2VQcm9qZWN0U2VhcmNoIiwiX0RhdGFQYXJzZWRUb1Byb2plY3RzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2V0U2VhcmNoVmFsdWUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzUXVlcnlJblByb2dyZXNzIiwic2V0SXNRdWVyeUluUHJvZ3Jlc3MiLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInJlY2VudFByb2plY3RzRGF0YSIsInNldFJlY2VudFByb2plY3RzRGF0YSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJsb2FkaW5nUmVjZW50UHJvamVjdHMiLCJzZXRMb2FkaW5nUmVjZW50UHJvamVjdHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwicmVjZW50RXJyb3IiLCJzZXRSZWNlbnRFcnJvciIsImZldGNoUmVjZW50UHJvamVjdHNXaXRoTG9hZGluZyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZGF0YSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJSZWNlbnRQcm9qZWN0cyIsImdldFJlY2VudFByb2plY3RzIiwic2VudCIsIkFycmF5IiwiaXNBcnJheSIsImZpbmlzaCIsInN0b3AiLCJfdXNlTGF6eVF1ZXJ5IiwidmFyaWFibGVzIiwibGltaXQiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoUHJvamVjdHMiLCJfdXNlTGF6eVF1ZXJ5MiQiLCJzZWFyY2hEYXRhIiwibG9hZGluZ1NlYXJjaFByb2plY3RzIiwic2VhcmNoRXJyb3IiLCJoYW5kbGVGZXRjaFNlYXJjaFByb2plY3RzIiwicSIsImZpbHRlcnMiLCJKU09OIiwic3RyaW5naWZ5Iiwic2VhcmNoIiwidHJpbSIsIm1hcHBlZFByb2plY3RzIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImZldGNoUmVjZW50UHJvamVjdHMiLCJyZWNlbnRQcm9qZWN0c0xvYWRpbmciLCJyZWNlbnRQcm9qZWN0c0Vycm9yIiwicmVjZW50UHJvamVjdHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlUHJvamVjdFNlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMYXp5UXVlcnkgfSBmcm9tICdAYXBvbGxvL2NsaWVudCdcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgbWFpYSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgU0VBUkNIX1BST0pFQ1RTIH0gZnJvbSAnLi4vc2VydmljZXMvcXVlcnkvcHJvamVjdFNlYXJjaEJ5VmFsdWVRdWVyeSdcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi91c2VEZWJvdW5jZSdcblxuZXhwb3J0IHR5cGUgUHJvamVjdEdyYXBoUUwgPSB7XG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgdGl0bGU6IHN0cmluZ1xuICBjbGllbnROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBwcm9kdWN0TmFtZT86IHN0cmluZ1xuICBicmFuZE5hbWU/OiBzdHJpbmdcbiAgaW5jb21lVHlwZT86IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbiAgZmVlSWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIFByb2plY3RTZXR0ZXIgPSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgLyoqIFJhbmdvIGRlbCB0w6lybWlubyBidXNjYWRvIGRlbnRybyBkZSBgdGl0bGVgIChzb2xvIHJlc3VsdGFkb3MgZGUgYsO6c3F1ZWRhKSAqL1xuICB0aXRsZUhpZ2hsaWdodD86IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfVxuICBjbGllbnRJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbiAgZmVlSWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG4gIGNsaWVudD86IHtcbiAgICBuYW1lOiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgcHJvZHVjdE5hbWU/OiBzdHJpbmdcbiAgYnJhbmROYW1lPzogc3RyaW5nXG4gIGluY29tZVR5cGU/OiBzdHJpbmdcbn1cblxudHlwZSBQcm9qZWN0U2VhcmNoUmVzdWx0ID0ge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gIHRpdGxlOiBzdHJpbmdcbiAgdHlwZTogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuICBmZWVJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbiAgY2xpZW50TmFtZTogc3RyaW5nXG4gIGJyYW5kTmFtZTogc3RyaW5nXG4gIHByb2R1Y3ROYW1lOiBzdHJpbmdcbiAgcHJvamVjdE5hbWU6IHN0cmluZ1xuICBzdGF0dXM6IHN0cmluZ1xuICBkZWFkbGluZTogc3RyaW5nXG4gIGRhdGV0aW1lOiBzdHJpbmdcbiAgYXJjaGl2ZWQ6IGJvb2xlYW5cbiAgX190eXBlbmFtZTogc3RyaW5nXG59XG5cbnR5cGUgUXVlcnlTZWFyY2hQcm9qZWN0RGF0YSA9IHsgc2VhcmNoOiBQcm9qZWN0U2VhcmNoUmVzdWx0W10gfCBudWxsIH1cblxuY29uc3QgVFlQRV9QUk9KRUNUID0geyBwcm9qZWN0OiAndHJ1ZScsIGFyY2hpdmVkOiAnYWxsJyB9XG5cbmNvbnN0IG1hcHBlclByb2plY3RzU2VhcmNoID0gKHZhbHVlczogUHJvamVjdFNlYXJjaFJlc3VsdFtdKTogUHJvamVjdEdyYXBoUUxbXSA9PiB7XG4gIHJldHVybiB2YWx1ZXM/Lm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiB2YWx1ZS5pZCxcbiAgICB0aXRsZTogdmFsdWUudGl0bGUsXG4gICAgY2xpZW50TmFtZTogdmFsdWUuY2xpZW50TmFtZSxcbiAgICBwcm9kdWN0TmFtZTogdmFsdWUucHJvZHVjdE5hbWUsXG4gICAgYnJhbmROYW1lOiB2YWx1ZS5icmFuZE5hbWUsXG4gICAgaW5jb21lVHlwZTogJycsXG4gICAgY2xpZW50SWQ6IHZhbHVlLmNsaWVudElkID8/IG51bGwsXG4gICAgZmVlSWQ6IHZhbHVlLmZlZUlkID8/IG51bGwsXG4gIH0pKVxufVxuXG5leHBvcnQgY29uc3QgRGF0YVBhcnNlZFRvUHJvamVjdHMgPSAoKSA9PiB7XG4gIGNvbnN0IFtwcm9qZWN0cywgc2V0UHJvamVjdHNdID0gdXNlU3RhdGU8UHJvamVjdFNldHRlcltdPihbXSlcbiAgY29uc3Qgc2V0dGVyRGF0YSA9IChhcmdzOiBQcm9qZWN0R3JhcGhRTFtdLCBzZWFyY2hWYWx1ZT86IHN0cmluZykgPT4ge1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHNldFByb2plY3RzKFtdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRQcm9qZWN0cyhcbiAgICAgICAgYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9qZWN0TmFtZSA9IGFyZy50aXRsZSB8fCAnJ1xuICAgICAgICAgIGxldCB0aXRsZUhpZ2hsaWdodDogeyBzdGFydDogbnVtYmVyOyBsZW5ndGg6IG51bWJlciB9IHwgdW5kZWZpbmVkXG4gICAgICAgICAgaWYgKHNlYXJjaFZhbHVlICYmIHByb2plY3ROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRJbmRleCA9IHByb2plY3ROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgdGl0bGVIaWdobGlnaHQgPSB7IHN0YXJ0OiB0ZXh0SW5kZXgsIGxlbmd0aDogc2VhcmNoVmFsdWUubGVuZ3RoIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBhcmcuaWQsXG4gICAgICAgICAgICBuYW1lOiBhcmcudGl0bGUsXG4gICAgICAgICAgICB0aXRsZTogcHJvamVjdE5hbWUsXG4gICAgICAgICAgICAuLi4odGl0bGVIaWdobGlnaHQgJiYgeyB0aXRsZUhpZ2hsaWdodCB9KSxcbiAgICAgICAgICAgIC4uLihhcmcuY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQ6IGFyZy5jbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGFyZy5mZWVJZCAhPSBudWxsID8geyBmZWVJZDogYXJnLmZlZUlkIH0gOiB7fSksXG4gICAgICAgICAgICBjbGllbnQ6IHtcbiAgICAgICAgICAgICAgbmFtZTogYXJnLmNsaWVudE5hbWUgPz8gbnVsbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9kdWN0TmFtZTogYXJnLnByb2R1Y3ROYW1lIHx8ICcnLFxuICAgICAgICAgICAgYnJhbmROYW1lOiBhcmcuYnJhbmROYW1lIHx8ICcnLFxuICAgICAgICAgICAgaW5jb21lVHlwZTogYXJnLmluY29tZVR5cGUgfHwgJycsXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBwcm9qZWN0cywgc2V0dGVyRGF0YSB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VQcm9qZWN0U2VhcmNoID0gKCkgPT4ge1xuICBjb25zdCB7IHByb2plY3RzLCBzZXR0ZXJEYXRhIH0gPSBEYXRhUGFyc2VkVG9Qcm9qZWN0cygpXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWFyY2hWYWx1ZSwgc2V0U2VhcmNoVmFsdWVdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc1F1ZXJ5SW5Qcm9ncmVzcywgc2V0SXNRdWVyeUluUHJvZ3Jlc3NdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZGVib3VuY2VkU2VhcmNoVmFsdWUgPSB1c2VEZWJvdW5jZShzZWFyY2hWYWx1ZSwgNTAwKVxuXG4gIGNvbnN0IFtyZWNlbnRQcm9qZWN0c0RhdGEsIHNldFJlY2VudFByb2plY3RzRGF0YV0gPSB1c2VTdGF0ZTxQcm9qZWN0R3JhcGhRTFtdIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xvYWRpbmdSZWNlbnRQcm9qZWN0cywgc2V0TG9hZGluZ1JlY2VudFByb2plY3RzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcmVjZW50RXJyb3IsIHNldFJlY2VudEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGZldGNoUmVjZW50UHJvamVjdHNXaXRoTG9hZGluZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgc2V0UmVjZW50RXJyb3IoZmFsc2UpXG4gICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3ModHJ1ZSlcbiAgICBzZXRMb2FkaW5nUmVjZW50UHJvamVjdHModHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IG1haWEuUmVjZW50UHJvamVjdHMuZ2V0UmVjZW50UHJvamVjdHMoKVxuICAgICAgc2V0UmVjZW50UHJvamVjdHNEYXRhKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pXG4gICAgfSBjYXRjaCB7XG4gICAgICBzZXRSZWNlbnRFcnJvcih0cnVlKVxuICAgICAgc2V0UmVjZW50UHJvamVjdHNEYXRhKG51bGwpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmdSZWNlbnRQcm9qZWN0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IFtmZXRjaFNlYXJjaFByb2plY3RzLCB7IGRhdGE6IHNlYXJjaERhdGEsIGxvYWRpbmc6IGxvYWRpbmdTZWFyY2hQcm9qZWN0cywgZXJyb3I6IHNlYXJjaEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8UXVlcnlTZWFyY2hQcm9qZWN0RGF0YT4oU0VBUkNIX1BST0pFQ1RTLCB7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgbGltaXQ6IDIwLFxuICAgICAgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGhhbmRsZUZldGNoU2VhcmNoUHJvamVjdHMgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGZldGNoU2VhcmNoUHJvamVjdHMoeyB2YXJpYWJsZXM6IHsgcTogdmFsdWUsIGZpbHRlcnM6IEpTT04uc3RyaW5naWZ5KFRZUEVfUFJPSkVDVCkgfSB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9hZGluZ1JlY2VudFByb2plY3RzIHx8IGxvYWRpbmdTZWFyY2hQcm9qZWN0cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRFcnJvciB8fCBzZWFyY2hFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtzZWFyY2hFcnJvciwgbG9hZGluZ1NlYXJjaFByb2plY3RzLCBsb2FkaW5nUmVjZW50UHJvamVjdHMsIHJlY2VudEVycm9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbG9hZGluZ1JlY2VudFByb2plY3RzICYmICFsb2FkaW5nU2VhcmNoUHJvamVjdHMgJiYgaXNRdWVyeUluUHJvZ3Jlc3MpIHtcbiAgICAgIHNldElzUXVlcnlJblByb2dyZXNzKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChzZWFyY2hEYXRhPy5zZWFyY2ggJiYgZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nU2VhcmNoUHJvamVjdHMpIHtcbiAgICAgIGNvbnN0IG1hcHBlZFByb2plY3RzID0gbWFwcGVyUHJvamVjdHNTZWFyY2goc2VhcmNoRGF0YS5zZWFyY2gpXG4gICAgICBzZXR0ZXJEYXRhKG1hcHBlZFByb2plY3RzLCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gICAgaWYgKHJlY2VudFByb2plY3RzRGF0YSAhPT0gbnVsbCAmJiAhZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nUmVjZW50UHJvamVjdHMgJiYgIWlzUXVlcnlJblByb2dyZXNzKSB7XG4gICAgICBzZXR0ZXJEYXRhKHJlY2VudFByb2plY3RzRGF0YSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtcbiAgICBzZWFyY2hEYXRhLFxuICAgIHJlY2VudFByb2plY3RzRGF0YSxcbiAgICBkZWJvdW5jZWRTZWFyY2hWYWx1ZSxcbiAgICBsb2FkaW5nUmVjZW50UHJvamVjdHMsXG4gICAgbG9hZGluZ1NlYXJjaFByb2plY3RzLFxuICAgIGlzUXVlcnlJblByb2dyZXNzLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hTZWFyY2hQcm9qZWN0cyhkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZSwgcmVjZW50UHJvamVjdHNEYXRhXSlcblxuICBjb25zdCB1cGRhdGVTZWFyY2hWYWx1ZSA9IChuZXdTZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VhcmNoVmFsdWUobmV3U2VhcmNoVmFsdWUpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoUmVjZW50UHJvamVjdHM6IGZldGNoUmVjZW50UHJvamVjdHNXaXRoTG9hZGluZyxcbiAgICByZWNlbnRQcm9qZWN0c0xvYWRpbmc6IGxvYWRpbmcsXG4gICAgcmVjZW50UHJvamVjdHNFcnJvcjogZXJyb3IsXG4gICAgcmVjZW50UHJvamVjdHM6IHByb2plY3RzLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBQ3hELE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFDbkMsU0FBU0Ms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
|
|
@@ -79,11 +79,11 @@ export var continueThread = /*#__PURE__*/function () {
|
|
|
79
79
|
}();
|
|
80
80
|
export var orchestrator = /*#__PURE__*/function () {
|
|
81
81
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(body, signal) {
|
|
82
|
-
var input, projectId, lang, userId, firstName, lastName, chatId, clientId, clientName, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, agentSuggestionId, agentEntity, formData, metadata, path, headers;
|
|
82
|
+
var input, projectId, lang, userId, firstName, lastName, chatId, clientId, clientName, feeId, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, agentSuggestionId, agentEntity, formData, metadata, hasFee, path, headers;
|
|
83
83
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
84
84
|
while (1) switch (_context2.prev = _context2.next) {
|
|
85
85
|
case 0:
|
|
86
|
-
input = body.input, projectId = body.projectId, lang = body.lang, userId = body.userId, firstName = body.firstName, lastName = body.lastName, chatId = body.chatId, clientId = body.clientId, clientName = body.clientName, agentId = body.agentId, isWebSearchActive = body.isWebSearchActive, isDeepSearchActive = body.isDeepSearchActive, attachments = body.attachments, projectName = body.projectName, faqId = body.faqId, agentSuggestionId = body.agentSuggestionId, agentEntity = body.agentEntity;
|
|
86
|
+
input = body.input, projectId = body.projectId, lang = body.lang, userId = body.userId, firstName = body.firstName, lastName = body.lastName, chatId = body.chatId, clientId = body.clientId, clientName = body.clientName, feeId = body.feeId, agentId = body.agentId, isWebSearchActive = body.isWebSearchActive, isDeepSearchActive = body.isDeepSearchActive, attachments = body.attachments, projectName = body.projectName, faqId = body.faqId, agentSuggestionId = body.agentSuggestionId, agentEntity = body.agentEntity;
|
|
87
87
|
formData = new FormData();
|
|
88
88
|
formData.append('input', input);
|
|
89
89
|
formData.append('session_id', chatId);
|
|
@@ -98,6 +98,7 @@ export var orchestrator = /*#__PURE__*/function () {
|
|
|
98
98
|
if (agentEntity === 'global') {
|
|
99
99
|
metadata = {};
|
|
100
100
|
} else {
|
|
101
|
+
hasFee = feeId != null;
|
|
101
102
|
metadata = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
102
103
|
lang: mapCORLang(lang)
|
|
103
104
|
}, userId ? {
|
|
@@ -106,7 +107,8 @@ export var orchestrator = /*#__PURE__*/function () {
|
|
|
106
107
|
first_name: firstName
|
|
107
108
|
} : {}), lastName ? {
|
|
108
109
|
last_name: lastName
|
|
109
|
-
} : {}), clientId ? {
|
|
110
|
+
} : {}), hasFee && clientId != null ? {
|
|
111
|
+
fee_id: feeId,
|
|
110
112
|
client_id: clientId
|
|
111
113
|
} : {}), clientName ? {
|
|
112
114
|
client_name: clientName
|
|
@@ -152,4 +154,4 @@ export var orchestrator = /*#__PURE__*/function () {
|
|
|
152
154
|
return _ref2.apply(this, arguments);
|
|
153
155
|
};
|
|
154
156
|
}();
|
|
155
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMiLCJGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9GSUxFUyIsIk1BWF9GSUxFX1NJWkVfQllURVNfT0xEIiwiTUFYX0ZJTEVfU0laRV9CWVRFU19ORVciLCJNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPIiwiQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMiLCJ2YWxpZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJFcnJvciIsImNvbmNhdCIsImZvckVhY2giLCJhdHRhY2htZW50IiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jbHVkZXMiLCJqb2luIiwiZmlsZVNpemUiLCJzaXplIiwiTnVtYmVyIiwiY29udGludWVUaHJlYWQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJib2R5Iiwic2lnbmFsIiwidGhyZWFkSWRzIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJyZXF1ZXN0Qm9keSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidGhyZWFkX2lkcyIsInNlc3Npb25faWQiLCJlZGl0ZWRfYWN0aW9ucyIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwidG9TdHJpbmciLCJzdG9wIiwiX3giLCJfeDIiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9yY2hlc3RyYXRvciIsIl9yZWYyIiwiX2NhbGxlZTIiLCJpbnB1dCIsInByb2plY3RJZCIsInVzZXJJZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY2hhdElkIiwiY2xpZW50SWQiLCJjbGllbnROYW1lIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJwcm9qZWN0TmFtZSIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJhZ2VudEVudGl0eSIsImZvcm1EYXRhIiwibWV0YWRhdGEiLCJfY29udGV4dDIiLCJGb3JtRGF0YSIsImFwcGVuZCIsImZpbGVUb1NlbmQiLCJvcmlnaW5hbEZpbGUiLCJmaWxlIiwiX29iamVjdFNwcmVhZCIsInVzZXJfaWQiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwiY2xpZW50X2lkIiwiY2xpZW50X25hbWUiLCJwcm9qZWN0X2lkIiwicHJvamVjdF9uYW1lIiwic3ViZG9tYWluIiwid2luZG93IiwibG9jYXRpb24iLCJob3N0bmFtZSIsInNwbGl0IiwiSlNPTiIsInN0cmluZ2lmeSIsIl94MyIsIl94NCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL09yY2hlc3RyYXRvci9vcmNoZXN0cmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgQ2hhdEhpc3RvcnkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgQWdlbnRFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7XG4gIEZJTEVfRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OLFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcblxudHlwZSBPcmNoZXN0cmF0b3JSZXF1ZXN0ID0ge1xuICBpbnB1dDogc3RyaW5nXG4gIHByb2plY3RJZD86IG51bWJlclxuICBsYW5nOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgZmlyc3ROYW1lPzogc3RyaW5nXG4gIGxhc3ROYW1lPzogc3RyaW5nXG4gIGNvbXBhbnlJZDogc3RyaW5nXG4gIGNoYXRJZDogc3RyaW5nXG4gIGhpc3Rvcnk6IENoYXRIaXN0b3J5W11cbiAgbWVzc2FnZUlkOiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXJcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICBhZ2VudE5hbWU6IHN0cmluZ1xuICBhZ2VudElkOiBudW1iZXIgfCBzdHJpbmdcbiAgaXNXZWJTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGZhcUlkPzogc3RyaW5nXG4gIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gIGFnZW50RW50aXR5PzogQWdlbnRFbnRpdHlcbn1cblxuY29uc3QgTUFYX0ZJTEVTID0gNVxuY29uc3QgTUFYX0ZJTEVfU0laRV9CWVRFU19PTEQgPSBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX05FVyA9IE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04gKiAxMDI0ICogMTAyNFxuY29uc3QgTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTyA9IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNFxuY29uc3QgQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMgPSBbXG4gICcudHh0JyxcbiAgJy5tZCcsXG4gICcuY3N2JyxcbiAgJy5kb2MnLFxuICAnLmRvY3gnLFxuICAnLnBuZycsXG4gICcuanBnJyxcbiAgJy5qcGVnJyxcbiAgJy5wZGYnLFxuICAnLnhsc3gnLFxuICAnLnhscycsXG4gICcuZmxhYycsXG4gICcubTRhJyxcbiAgJy5tcDMnLFxuICAnLm1wNCcsXG4gICcub2dhJyxcbiAgJy5vZ2cnLFxuICAnLndhdicsXG4gICcud2VibScsXG5dXG5cbmNvbnN0IHZhbGlkYXRlQXR0YWNobWVudHMgPSAoYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW10pOiB2b2lkID0+IHtcbiAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCA+IE1BWF9GSUxFUykge1xuICAgIHRocm93IG5ldyBFcnJvcihgTcOheGltbyAke01BWF9GSUxFU30gYXJjaGl2b3MgcGVybWl0aWRvc2ApXG4gIH1cblxuICBhdHRhY2htZW50cy5mb3JFYWNoKGF0dGFjaG1lbnQgPT4ge1xuICAgIC8vIFZhbGlkYXIgZXh0ZW5zacOzbiBkZWwgYXJjaGl2b1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBhdHRhY2htZW50Lm5hbWUudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoYXR0YWNobWVudC5uYW1lLmxhc3RJbmRleE9mKCcuJykpXG4gICAgaWYgKCFBTExPV0VEX0ZJTEVfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIG5vIHRpZW5lIHVuIGZvcm1hdG8gc29wb3J0YWRvLiBGb3JtYXRvcyBwZXJtaXRpZG9zOiAke0FMTE9XRURfRklMRV9FWFRFTlNJT05TLmpvaW4oJywgJyl9YFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXIgdGFtYcOxbyBkZWwgYXJjaGl2byBzZWfDum4gZWwgdGlwb1xuICAgIGNvbnN0IGZpbGVTaXplID0gdHlwZW9mIGF0dGFjaG1lbnQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHRhY2htZW50LnNpemUgOiBOdW1iZXIoYXR0YWNobWVudC5zaXplKVxuICAgIGlmIChGSUxFX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX09MRCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9PTER9TUJgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGZpbGVTaXplID4gTUFYX0ZJTEVfU0laRV9CWVRFU19ORVcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke01BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT059TUJgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoRklMRV9BVURJT19GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGZpbGVTaXplID4gTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9BVURJT31NQmApXG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG50eXBlIENvbnRpbnVlVGhyZWFkUmVxdWVzdCA9IHtcbiAgdGhyZWFkSWRzOiBzdHJpbmdbXVxuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBkZWNpc2lvbjogJ2FwcHJvdmUnIHwgJ2VkaXQnIHwgJ3JlamVjdCdcbiAgZWRpdGVkQWN0aW9ucz86IEFycmF5PHsgdG9vbF9uYW1lOiBzdHJpbmc7IGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+XG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBsYW5nOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRpbnVlVGhyZWFkID0gYXN5bmMgKGJvZHk6IENvbnRpbnVlVGhyZWFkUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHsgdGhyZWFkSWRzLCBzZXNzaW9uSWQsIGRlY2lzaW9uLCBlZGl0ZWRBY3Rpb25zLCBhZ2VudElkLCBsYW5nIH0gPSBib2R5XG5cbiAgY29uc3QgcmVxdWVzdEJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHRocmVhZF9pZHM6IHRocmVhZElkcyxcbiAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQsXG4gICAgZGVjaXNpb24sXG4gIH1cblxuICBpZiAoZGVjaXNpb24gPT09ICdlZGl0JyAmJiBlZGl0ZWRBY3Rpb25zKSB7XG4gICAgcmVxdWVzdEJvZHkuZWRpdGVkX2FjdGlvbnMgPSBlZGl0ZWRBY3Rpb25zXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnb3JjaGVzdHJhdG9yL2NvbnRpbnVlLXRocmVhZD9tb2RlPXN0cmVhbScsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgICAnQWNjZXB0LUxhbmd1YWdlJzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICB9LFxuICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IG9yY2hlc3RyYXRvciA9IGFzeW5jIChib2R5OiBPcmNoZXN0cmF0b3JSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3Qge1xuICAgIGlucHV0LFxuICAgIHByb2plY3RJZCxcbiAgICBsYW5nLFxuICAgIHVzZXJJZCxcbiAgICBmaXJzdE5hbWUsXG4gICAgbGFzdE5hbWUsXG4gICAgY2hhdElkLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudE5hbWUsXG4gICAgYWdlbnRJZCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgYXR0YWNobWVudHMsXG4gICAgcHJvamVjdE5hbWUsXG4gICAgZmFxSWQsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQsXG4gICAgYWdlbnRFbnRpdHksXG4gIH0gPSBib2R5XG5cbiAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKVxuICBmb3JtRGF0YS5hcHBlbmQoJ2lucHV0JywgaW5wdXQpXG4gIGZvcm1EYXRhLmFwcGVuZCgnc2Vzc2lvbl9pZCcsIGNoYXRJZClcblxuICBpZiAoYXR0YWNobWVudHM/Lmxlbmd0aCkge1xuICAgIHZhbGlkYXRlQXR0YWNobWVudHMoYXR0YWNobWVudHMpXG5cbiAgICBhdHRhY2htZW50cy5mb3JFYWNoKGF0dGFjaG1lbnQgPT4ge1xuICAgICAgLy8gVXNhciBlbCBhcmNoaXZvIG9yaWdpbmFsIHNpIGV4aXN0ZSAocGFyYSBpbcOhZ2VuZXMgcHJvY2VzYWRhcyksIHNpbm8gdXNhciBlbCBhcmNoaXZvIG5vcm1hbFxuICAgICAgY29uc3QgZmlsZVRvU2VuZCA9IGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIHx8IGF0dGFjaG1lbnQuZmlsZVxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGVUb1NlbmQpXG4gICAgfSlcbiAgfVxuXG4gIGxldCBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgaWYgKGFnZW50RW50aXR5ID09PSAnZ2xvYmFsJykge1xuICAgIG1ldGFkYXRhID0ge31cbiAgfSBlbHNlIHtcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgIGxhbmc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgICAuLi4odXNlcklkID8geyB1c2VyX2lkOiB1c2VySWQgfSA6IHt9KSxcbiAgICAgIC4uLihmaXJzdE5hbWUgPyB7IGZpcnN0X25hbWU6IGZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgLi4uKGxhc3ROYW1lID8geyBsYXN0X25hbWU6IGxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAuLi4oY2xpZW50SWQgPyB7IGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihjbGllbnROYW1lID8geyBjbGllbnRfbmFtZTogY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdF9pZDogcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgIHN1YmRvbWFpbjogd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJylbMF0sXG4gICAgfVxuICB9XG4gIGZvcm1EYXRhLmFwcGVuZCgnbWV0YWRhdGEnLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpXG5cbiAgbGV0IHBhdGggPSAnb3JjaGVzdHJhdG9yP21vZGU9c3RyZWFtJ1xuICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJ1xuICB9XG4gIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJmRlcHRoPXRydWUnXG4gIH1cblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICdYLUFnZW50LUlkJzogYWdlbnRJZC50b1N0cmluZygpLFxuICB9XG5cbiAgaWYgKGZhcUlkKSB7XG4gICAgaGVhZGVyc1snWC1GYXEtSWQnXSA9IGZhcUlkXG4gIH1cblxuICBpZiAoYWdlbnRTdWdnZXN0aW9uSWQpIHtcbiAgICBoZWFkZXJzWydYLUFnZW50LVN1Z2dlc3Rpb24nXSA9IGFnZW50U3VnZ2VzdGlvbklkXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keTogZm9ybURhdGEsXG4gICAgc2lnbmFsLFxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBU0EsVUFBVSxRQUFRLHFCQUFxQjtBQUdoRCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUNFQyxzQkFBc0IsRUFDdEJDLGtDQUFrQyxFQUNsQ0MsNEJBQTRCLEVBQzVCQyxvQkFBb0IsRUFDcEJDLDRCQUE0QixFQUM1QkMsc0JBQXNCLFFBQ2pCLHFDQUFxQztBQTBCNUMsSUFBTUMsU0FBUyxHQUFHLENBQUM7QUFDbkIsSUFBTUMsdUJBQXVCLEdBQUdKLG9CQUFvQixHQUFHLElBQUksR0FBRyxJQUFJO0FBQ2xFLElBQU1LLHVCQUF1QixHQUFHSiw0QkFBNEIsR0FBRyxJQUFJLEdBQUcsSUFBSTtBQUMxRSxJQUFNSyx5QkFBeUIsR0FBR0osc0JBQXNCLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFDdEUsSUFBTUssdUJBQXVCLEdBQUcsQ0FDOUIsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFN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
|
|
157
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMiLCJGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9GSUxFUyIsIk1BWF9GSUxFX1NJWkVfQllURVNfT0xEIiwiTUFYX0ZJTEVfU0laRV9CWVRFU19ORVciLCJNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPIiwiQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMiLCJ2YWxpZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJFcnJvciIsImNvbmNhdCIsImZvckVhY2giLCJhdHRhY2htZW50IiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jbHVkZXMiLCJqb2luIiwiZmlsZVNpemUiLCJzaXplIiwiTnVtYmVyIiwiY29udGludWVUaHJlYWQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJib2R5Iiwic2lnbmFsIiwidGhyZWFkSWRzIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJyZXF1ZXN0Qm9keSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidGhyZWFkX2lkcyIsInNlc3Npb25faWQiLCJlZGl0ZWRfYWN0aW9ucyIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwidG9TdHJpbmciLCJzdG9wIiwiX3giLCJfeDIiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9yY2hlc3RyYXRvciIsIl9yZWYyIiwiX2NhbGxlZTIiLCJpbnB1dCIsInByb2plY3RJZCIsInVzZXJJZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY2hhdElkIiwiY2xpZW50SWQiLCJjbGllbnROYW1lIiwiZmVlSWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInByb2plY3ROYW1lIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImFnZW50RW50aXR5IiwiZm9ybURhdGEiLCJtZXRhZGF0YSIsImhhc0ZlZSIsIl9jb250ZXh0MiIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZmlsZVRvU2VuZCIsIm9yaWdpbmFsRmlsZSIsImZpbGUiLCJfb2JqZWN0U3ByZWFkIiwidXNlcl9pZCIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJmZWVfaWQiLCJjbGllbnRfaWQiLCJjbGllbnRfbmFtZSIsInByb2plY3RfaWQiLCJwcm9qZWN0X25hbWUiLCJzdWJkb21haW4iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwic3BsaXQiLCJKU09OIiwic3RyaW5naWZ5IiwiX3gzIiwiX3g0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvT3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBDaGF0SGlzdG9yeSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBBZ2VudEVudGl0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHtcbiAgRklMRV9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9BVURJT19GT1JNQVRfRVhURU5TSU9OUyxcbiAgTUFYX0ZJTEVfU0laRV9NQl9PTEQsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfQVVESU8sXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuXG50eXBlIE9yY2hlc3RyYXRvclJlcXVlc3QgPSB7XG4gIGlucHV0OiBzdHJpbmdcbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIGxhbmc6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBmaXJzdE5hbWU/OiBzdHJpbmdcbiAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgY29tcGFueUlkOiBzdHJpbmdcbiAgY2hhdElkOiBzdHJpbmdcbiAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBjbGllbnROYW1lPzogc3RyaW5nXG4gIGZlZUlkPzogbnVtYmVyXG4gIGFnZW50TmFtZTogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZWVwU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgZmFxSWQ/OiBzdHJpbmdcbiAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgYWdlbnRFbnRpdHk/OiBBZ2VudEVudGl0eVxufVxuXG5jb25zdCBNQVhfRklMRVMgPSA1XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX09MRCA9IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjRcbmNvbnN0IE1BWF9GSUxFX1NJWkVfQllURVNfTkVXID0gTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiAqIDEwMjQgKiAxMDI0XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPID0gTUFYX0ZJTEVfU0laRV9NQl9BVURJTyAqIDEwMjQgKiAxMDI0XG5jb25zdCBBTExPV0VEX0ZJTEVfRVhURU5TSU9OUyA9IFtcbiAgJy50eHQnLFxuICAnLm1kJyxcbiAgJy5jc3YnLFxuICAnLmRvYycsXG4gICcuZG9jeCcsXG4gICcucG5nJyxcbiAgJy5qcGcnLFxuICAnLmpwZWcnLFxuICAnLnBkZicsXG4gICcueGxzeCcsXG4gICcueGxzJyxcbiAgJy5mbGFjJyxcbiAgJy5tNGEnLFxuICAnLm1wMycsXG4gICcubXA0JyxcbiAgJy5vZ2EnLFxuICAnLm9nZycsXG4gICcud2F2JyxcbiAgJy53ZWJtJyxcbl1cblxuY29uc3QgdmFsaWRhdGVBdHRhY2htZW50cyA9IChhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXSk6IHZvaWQgPT4ge1xuICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID4gTUFYX0ZJTEVTKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNw6F4aW1vICR7TUFYX0ZJTEVTfSBhcmNoaXZvcyBwZXJtaXRpZG9zYClcbiAgfVxuXG4gIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgLy8gVmFsaWRhciBleHRlbnNpw7NuIGRlbCBhcmNoaXZvXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGF0dGFjaG1lbnQubmFtZS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZyhhdHRhY2htZW50Lm5hbWUubGFzdEluZGV4T2YoJy4nKSlcbiAgICBpZiAoIUFMTE9XRURfRklMRV9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgbm8gdGllbmUgdW4gZm9ybWF0byBzb3BvcnRhZG8uIEZvcm1hdG9zIHBlcm1pdGlkb3M6ICR7QUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMuam9pbignLCAnKX1gXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVmFsaWRhciB0YW1hw7FvIGRlbCBhcmNoaXZvIHNlZ8O6biBlbCB0aXBvXG4gICAgY29uc3QgZmlsZVNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgaWYgKEZJTEVfRk9STUFUX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChmaWxlU2l6ZSA+IE1BWF9GSUxFX1NJWkVfQllURVNfT0xEKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIGV4Y2VkZSBlbCB0YW1hw7FvIG3DoXhpbW8gZGUgJHtNQVhfRklMRV9TSVpFX01CX09MRH1NQmApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChGSUxFX01BSUFfVklTSU9OX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX05FVykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTn1NQmApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIGV4Y2VkZSBlbCB0YW1hw7FvIG3DoXhpbW8gZGUgJHtNQVhfRklMRV9TSVpFX01CX0FVRElPfU1CYClcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbnR5cGUgQ29udGludWVUaHJlYWRSZXF1ZXN0ID0ge1xuICB0aHJlYWRJZHM6IHN0cmluZ1tdXG4gIHNlc3Npb25JZDogc3RyaW5nXG4gIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAnZWRpdCcgfCAncmVqZWN0J1xuICBlZGl0ZWRBY3Rpb25zPzogQXJyYXk8eyB0b29sX25hbWU6IHN0cmluZzsgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfT5cbiAgYWdlbnRJZDogbnVtYmVyIHwgc3RyaW5nXG4gIGxhbmc6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgY29udGludWVUaHJlYWQgPSBhc3luYyAoYm9keTogQ29udGludWVUaHJlYWRSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgeyB0aHJlYWRJZHMsIHNlc3Npb25JZCwgZGVjaXNpb24sIGVkaXRlZEFjdGlvbnMsIGFnZW50SWQsIGxhbmcgfSA9IGJvZHlcblxuICBjb25zdCByZXF1ZXN0Qm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgdGhyZWFkX2lkczogdGhyZWFkSWRzLFxuICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZCxcbiAgICBkZWNpc2lvbixcbiAgfVxuXG4gIGlmIChkZWNpc2lvbiA9PT0gJ2VkaXQnICYmIGVkaXRlZEFjdGlvbnMpIHtcbiAgICByZXF1ZXN0Qm9keS5lZGl0ZWRfYWN0aW9ucyA9IGVkaXRlZEFjdGlvbnNcbiAgfVxuXG4gIHJldHVybiBmZXRjaE1haWEoe1xuICAgIHBhdGg6ICdvcmNoZXN0cmF0b3IvY29udGludWUtdGhyZWFkP21vZGU9c3RyZWFtJyxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1BZ2VudC1JZCc6IGFnZW50SWQudG9TdHJpbmcoKSxcbiAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBtYXBDT1JMYW5nKGxhbmcpLFxuICAgIH0sXG4gICAgYm9keTogcmVxdWVzdEJvZHksXG4gICAgc2lnbmFsLFxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgb3JjaGVzdHJhdG9yID0gYXN5bmMgKGJvZHk6IE9yY2hlc3RyYXRvclJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZXNwb25zZT4gPT4ge1xuICBjb25zdCB7XG4gICAgaW5wdXQsXG4gICAgcHJvamVjdElkLFxuICAgIGxhbmcsXG4gICAgdXNlcklkLFxuICAgIGZpcnN0TmFtZSxcbiAgICBsYXN0TmFtZSxcbiAgICBjaGF0SWQsXG4gICAgY2xpZW50SWQsXG4gICAgY2xpZW50TmFtZSxcbiAgICBmZWVJZCxcbiAgICBhZ2VudElkLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBhdHRhY2htZW50cyxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBmYXFJZCxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZCxcbiAgICBhZ2VudEVudGl0eSxcbiAgfSA9IGJvZHlcblxuICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gIGZvcm1EYXRhLmFwcGVuZCgnaW5wdXQnLCBpbnB1dClcbiAgZm9ybURhdGEuYXBwZW5kKCdzZXNzaW9uX2lkJywgY2hhdElkKVxuXG4gIGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgdmFsaWRhdGVBdHRhY2htZW50cyhhdHRhY2htZW50cylcblxuICAgIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgICAvLyBVc2FyIGVsIGFyY2hpdm8gb3JpZ2luYWwgc2kgZXhpc3RlIChwYXJhIGltw6FnZW5lcyBwcm9jZXNhZGFzKSwgc2lubyB1c2FyIGVsIGFyY2hpdm8gbm9ybWFsXG4gICAgICBjb25zdCBmaWxlVG9TZW5kID0gYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgfHwgYXR0YWNobWVudC5maWxlXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzJywgZmlsZVRvU2VuZClcbiAgICB9KVxuICB9XG5cbiAgbGV0IG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBpZiAoYWdlbnRFbnRpdHkgPT09ICdnbG9iYWwnKSB7XG4gICAgbWV0YWRhdGEgPSB7fVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGhhc0ZlZSA9IGZlZUlkICE9IG51bGxcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgIGxhbmc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgICAuLi4odXNlcklkID8geyB1c2VyX2lkOiB1c2VySWQgfSA6IHt9KSxcbiAgICAgIC4uLihmaXJzdE5hbWUgPyB7IGZpcnN0X25hbWU6IGZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgLi4uKGxhc3ROYW1lID8geyBsYXN0X25hbWU6IGxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAuLi4oaGFzRmVlICYmIGNsaWVudElkICE9IG51bGwgPyB7IGZlZV9pZDogZmVlSWQsIGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihjbGllbnROYW1lID8geyBjbGllbnRfbmFtZTogY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdF9pZDogcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgIHN1YmRvbWFpbjogd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJylbMF0sXG4gICAgfVxuICB9XG4gIGZvcm1EYXRhLmFwcGVuZCgnbWV0YWRhdGEnLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpXG5cbiAgbGV0IHBhdGggPSAnb3JjaGVzdHJhdG9yP21vZGU9c3RyZWFtJ1xuICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJ1xuICB9XG4gIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJmRlcHRoPXRydWUnXG4gIH1cblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICdYLUFnZW50LUlkJzogYWdlbnRJZC50b1N0cmluZygpLFxuICB9XG5cbiAgaWYgKGZhcUlkKSB7XG4gICAgaGVhZGVyc1snWC1GYXEtSWQnXSA9IGZhcUlkXG4gIH1cblxuICBpZiAoYWdlbnRTdWdnZXN0aW9uSWQpIHtcbiAgICBoZWFkZXJzWydYLUFnZW50LVN1Z2dlc3Rpb24nXSA9IGFnZW50U3VnZ2VzdGlvbklkXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keTogZm9ybURhdGEsXG4gICAgc2lnbmFsLFxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBU0EsVUFBVSxRQUFRLHFCQUFxQjtBQUdoRCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUNFQyxzQkFBc0IsRUFDdEJDLGtDQUFrQyxFQUNsQ0MsNEJBQTRCLEVBQzVCQyxvQkFBb0IsRUFDcEJDLDRCQUE0QixFQUM1QkMsc0JBQXNCLFFBQ2pCLHFDQUFxQztBQTJCNUMsSUFBTUMsU0FBUyxHQUFHLENBQUM7QUFDbkIsSUFBTUMsdUJBQXVCLEdBQUdKLG9CQUFvQixHQUFHLElBQUksR0FBRyxJQUFJO0FBQ2xFLElBQU1LLHVCQUF1QixHQUFHSiw0QkFBNEIsR0FBRyxJQUFJLEdBQUcsSUFBSTtBQUMxRSxJQUFNSyx5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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
2
|
var _templateObject;
|
|
3
3
|
import { gql } from '@apollo/client';
|
|
4
|
-
export var SEARCH_PROJECTS = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query search($q: String, $filters: String, $extra: String, $limit: Int) {\n search(q: $q, filters: $filters, extra: $extra, limit: $limit) {\n id\n title\n type\n clientName\n brandName\n productName\n projectName\n status\n deadline\n datetime\n archived\n __typename\n }\n }\n"])));
|
|
5
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
4
|
+
export var SEARCH_PROJECTS = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query search($q: String, $filters: String, $extra: String, $limit: Int) {\n search(q: $q, filters: $filters, extra: $extra, limit: $limit) {\n id\n title\n type\n clientId\n feeId\n clientName\n brandName\n productName\n projectName\n status\n deadline\n datetime\n archived\n __typename\n }\n }\n"])));
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJncWwiLCJTRUFSQ0hfUFJPSkVDVFMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3F1ZXJ5L3Byb2plY3RTZWFyY2hCeVZhbHVlUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3FsIH0gZnJvbSAnQGFwb2xsby9jbGllbnQnXG5cbmV4cG9ydCBjb25zdCBTRUFSQ0hfUFJPSkVDVFMgPSBncWxgXG4gIHF1ZXJ5IHNlYXJjaCgkcTogU3RyaW5nLCAkZmlsdGVyczogU3RyaW5nLCAkZXh0cmE6IFN0cmluZywgJGxpbWl0OiBJbnQpIHtcbiAgICBzZWFyY2gocTogJHEsIGZpbHRlcnM6ICRmaWx0ZXJzLCBleHRyYTogJGV4dHJhLCBsaW1pdDogJGxpbWl0KSB7XG4gICAgICBpZFxuICAgICAgdGl0bGVcbiAgICAgIHR5cGVcbiAgICAgIGNsaWVudElkXG4gICAgICBmZWVJZFxuICAgICAgY2xpZW50TmFtZVxuICAgICAgYnJhbmROYW1lXG4gICAgICBwcm9kdWN0TmFtZVxuICAgICAgcHJvamVjdE5hbWVcbiAgICAgIHN0YXR1c1xuICAgICAgZGVhZGxpbmVcbiAgICAgIGRhdGV0aW1lXG4gICAgICBhcmNoaXZlZFxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsUUFBUSxnQkFBZ0I7QUFFcEMsT0FBTyxJQUFNQyxlQUFlLEdBQUdELEdBQUcsQ0FBQUUsZUFBQSxLQUFBQSxlQUFBLEdBQUFDLHNCQUFBLGtZQW1CakMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/types/Project.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1Byb2plY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJvamVjdCA9IHtcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG4gIGZlZUlkPzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuICBjbGllbnQ/OiB7XG4gICAgaWQ6IG51bWJlclxuICAgIG5hbWU6IHN0cmluZ1xuICB9XG4gIGluY29tZVR5cGU/OiBzdHJpbmdcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|