@projectcor/maia-components 2.11.10-1 → 2.11.10-2

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.
Files changed (57) hide show
  1. package/lib/App.js +28 -10
  2. package/lib/components/atoms/Chip/Chip.js +4 -5
  3. package/lib/components/atoms/Chip/styles.js +2 -2
  4. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +3 -5
  5. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +3 -4
  6. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +193 -56
  7. package/lib/components/index.js +1 -2
  8. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -9
  9. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +49 -5
  10. package/lib/components/molecules/ChatAIHome/styles.js +25 -13
  11. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +1 -1
  12. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +13 -21
  13. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +10 -7
  14. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +6 -3
  15. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +3 -5
  16. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  17. package/lib/components/molecules/ChatFooter/ChatFooter.js +47 -8
  18. package/lib/components/molecules/ChatFooter/styles.js +10 -1
  19. package/lib/components/molecules/Sidebar/Sidebar.js +2 -8
  20. package/lib/components/organisms/ChatAI/ChatAI.js +18 -15
  21. package/lib/constants/config.js +2 -2
  22. package/lib/context/global-context.js +1 -1
  23. package/lib/dev/DevChatAIActionsTasks.js +54 -0
  24. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  25. package/lib/hooks/useChatManager/useChatManager.js +48 -60
  26. package/lib/hooks/useChatMessages/useChatMessages.js +41 -79
  27. package/lib/hooks/useChats/useChats.js +11 -10
  28. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +22 -6
  29. package/lib/hooks/useProjectSummaryConfig.js +23 -36
  30. package/lib/lang/br/index.js +7 -25
  31. package/lib/lang/en/index.js +7 -25
  32. package/lib/lang/es/index.js +7 -25
  33. package/lib/lang/fr/index.js +7 -21
  34. package/lib/services/maia/Agents/getAgents.js +7 -10
  35. package/lib/services/maia/Chats/getChatMessages.js +16 -30
  36. package/lib/services/maia/Chats/getChatsByUserId.js +3 -4
  37. package/lib/services/maia/Orchestrator/orchestrator.js +21 -6
  38. package/lib/services/maia/index.js +2 -4
  39. package/lib/services/utils/mapChatMessages.js +4 -12
  40. package/lib/store/chatsStore.types.js +1 -1
  41. package/lib/store/useChatsStore.js +13 -9
  42. package/lib/types/Chat.js +1 -1
  43. package/lib/types/agent.js +1 -1
  44. package/package.json +1 -1
  45. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +0 -69
  46. package/lib/components/atoms/ChatClientSelector/index.js +0 -2
  47. package/lib/components/atoms/EntitySelector/EntitySelector.js +0 -181
  48. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +0 -57
  49. package/lib/components/atoms/EntitySelector/index.js +0 -2
  50. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +0 -56
  51. package/lib/components/molecules/ChatAIClientSelector/index.js +0 -2
  52. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +0 -26
  53. package/lib/components/organisms/ClientAIButton/index.js +0 -2
  54. package/lib/hooks/useRecentClientsSearch.js +0 -176
  55. package/lib/services/maia/RecentClients/getRecentClients.js +0 -43
  56. package/lib/services/maia/RecentClients/index.js +0 -6
  57. package/lib/types/Client.js +0 -2
@@ -50,9 +50,14 @@ var homeMenu = {
50
50
  title: 'Résumé du projet',
51
51
  description: "Générez des rapports avec l'IA à partir de votre projet"
52
52
  },
53
+ actionsTasks: {
54
+ title: 'Actions des tâches',
55
+ description: 'Projet lié à cette conversation. Actions disponibles pour les tâches.',
56
+ emptyList: 'Aucune action chargée'
57
+ },
53
58
  createdBy: 'Created by'
54
59
  };
55
- export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
60
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
56
61
  homeMenu: homeMenu,
57
62
  button: 'IA',
58
63
  title: 'Bonjour, {{name}}!',
@@ -156,10 +161,6 @@ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_
156
161
  success: 'Conversation renamed successfully',
157
162
  error: 'An unexpected error occurred. Please, try again.'
158
163
  }
159
- },
160
- clientSelector: {
161
- project: 'projet',
162
- projects: 'projets'
163
164
  }
164
165
  })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
165
166
  accessibilitySection: {
@@ -196,20 +197,5 @@ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_
196
197
  withoutClient: 'No client',
197
198
  withoutTitle: 'No title'
198
199
  }
199
- })), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
200
- clientSelector: {
201
- title: 'Which client would you like help with?',
202
- subtitle: 'Select a client so MAIA can respond in context.',
203
- labelClient: 'SELECT CLIENT',
204
- placeholder: 'Search',
205
- changeClient: 'Change client',
206
- recentClients: 'Recent clients',
207
- searchingClients: 'Searching your clients...',
208
- errorMessage: 'Search error! Please try again in a few moments.',
209
- emptyRecentClients: 'No recent clients. Enter the name in the search bar to get results.',
210
- emptyState: 'Oops! there are no results for your search',
211
- project: 'projet',
212
- projects: 'projets'
213
- }
214
200
  }));
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsImhvd1dvcmtzIiwiYnJhbmROYW1lIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJnb0JhY2siLCJjb3B5IiwiY29waWVkIiwic2F2ZWQiLCJzZWxlY3RQcm9qZWN0Iiwic2F2ZSIsImNhbmNlbCIsImVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInRyeUFnYWluIiwiZ2VuZXJpY1NlY3Rpb24iLCJwcm9qZWN0U3VtbWFyeVNlY3Rpb24iLCJyZXN1bWUiLCJoZWxsbyIsIndlbGNvbWUiLCJmZWVkYmFjayIsInRodW1ic1VwIiwidGh1bWJzRG93biIsInNvdXJjZXMiLCJjb25maWciLCJwcm9qZWN0U3VtbWFyeSIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiY3JlYXRlZEJ5IiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJoaXN0b3J5IiwidG9vbHRpcCIsIml0ZW0iLCJkYXRlIiwibWVudSIsInJlbmFtZSIsImxvYWRpbmdNb3JlIiwib25ib2FyZGluZyIsIm1haWEiLCJhZ2VudEN1c3RvbSIsImhvd0NyZWF0ZUFnZW50IiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsImVycm9yQWNjZXNzRGVuaWVkIiwiY2hhbmdlUHJvamVjdCIsInNlYXJjaFdlYiIsImRlZXBTZWFyY2giLCJhdHRhY2hGaWxlIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImVkaXRRdWVzdGlvbk1vZGFsIiwibmV3TmFtZSIsIm1heExlbmd0aCIsIm1vZGFsRmlsZUV4Y2VlZHMiLCJsaW1pdEZpbGVzVGl0bGUiLCJsaW1pdFNpemVUaXRsZSIsImxpbWl0RmlsZXNEZXNjcmlwdGlvbiIsImxpbWl0U2l6ZURlc2NyaXB0aW9uIiwiYWNjZXB0IiwibGltaXQiLCJzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCIsImFnZW50cyIsIm5ld0FnZW50IiwiZWRpdCIsImFkZEZhdm9yaXRlIiwicmVtb3ZlRmF2b3JpdGUiLCJmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzcyIsImZhdm9yaXRlVG9nZ2xlZEVycm9yIiwiY29udmVyc2F0aW9ucyIsImVtcHR5IiwiZW1wdHlMYWJlbCIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImNsaWVudFNlbGVjdG9yIiwicHJvamVjdCIsInByb2plY3RzIiwiYWJtQWdlbnQiLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwid2hvQ2FuQWNjZXNzIiwiYWxsQ29tcGFueVRpdGxlIiwiYWxsQ29tcGFueURlc2NyaXB0aW9uIiwiY2xpZW50VGl0bGUiLCJjbGllbnREZXNjcmlwdGlvbiIsIm93blRpdGxlIiwib3duRGVzY3JpcHRpb24iLCJjbGllbnRzU2VsZWN0ZWQiLCJzZWFyY2hFcnJvciIsInNlYXJjaEVtcHR5Iiwic2VhcmNoSW5pdGlhbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJwcm9qZWN0U2VsZWN0b3IiLCJzdWJ0aXRsZSIsImxhYmVsUHJvamVjdCIsInJlY2VudFByb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2ZyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIGhvd1dvcmtzOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICBicmFuZE5hbWU6ICdNQUlBJyxcbiAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gIGdvQmFjazogJ0dvIGJhY2sgdG8gdGhlIHN0YXJ0JyxcbiAgY29weTogJ0NvcHknLFxuICBjb3BpZWQ6ICdDb3BpZWQnLFxuICBzYXZlZDogJ1NhdmVkJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgc2F2ZTogJ1NhdmUnLFxuICBjYW5jZWw6ICdDYW5jZWwnLFxufVxuXG5jb25zdCBlcnJvciA9IHtcbiAgdGl0bGU6IFwiVW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZVwiLFxuICBkZXNjcmlwdGlvbjogJ05vdXMgcmVuY29udHJvbnMgYWN0dWVsbGVtZW50IHF1ZWxxdWVzIHByb2Jsw6htZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIHRyeUFnYWluOiAnUsOpZXNzYXllcicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1LDqXN1bcOpIGR1IHByb2pldCcsXG4gICAgZGVzY3JpcHRpb246IFwiR8OpbsOpcmV6IGRlcyByYXBwb3J0cyBhdmVjIGwnSUEgw6AgcGFydGlyIGRlIHZvdHJlIHByb2pldFwiLFxuICB9LFxuICBjcmVhdGVkQnk6ICdDcmVhdGVkIGJ5Jyxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ0JvbmpvdXIsIHt7bmFtZX19IScsXG4gICAgZGVzY3JpcHRpb246IFwiSmUgc3VpcyBNQUlBLCB0b24gYXNzaXN0YW50ZSwgZXQgamUgc3VpcyBsw6AgcG91ciB0J2FpZGVyIGF2ZWMgdGVzIHF1ZXN0aW9ucy5cIixcbiAgICBuZXdDaGF0OiAnTm91dmVhdSBjaGF0JyxcbiAgICBoaXN0b3J5OiB7XG4gICAgICB0b29sdGlwOiAnSGlzdG9yaXF1ZScsXG4gICAgICB0aXRsZTogJ0hpc3RvcmlxdWUgdmlkZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1Y3VuZSBjb252ZXJzYXRpb24gdHJvdXbDqWUnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnRGVybmnDqHJlIG1pc2Ugw6Agam91ciB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbW1lcicsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBjb252ZXJzYXRpb25zJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQ3VzdG9tIGFnZW50cycsXG4gICAgICBob3dDcmVhdGVBZ2VudDogJ0hvdyB0byBjcmVhdGUgYW4gYWdlbnQ/JyxcbiAgICAgIHRvb2x0aXA6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdRdWVzdGlvbnMgRnLDqXF1ZW1tZW50IFBvc8OpZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVlbGxlIGVzdCBsYSByZW50YWJpbGl0w6kgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWVsIGVzdCBsZSBwcm9ncsOocyBkZSBjZSBwcm9qZXQgPycsXG4gICAgICAgIHRhcmVhc19wcm95ZWN0bzogJ1F1ZWxsZXMgc29udCBsZXMgdMOiY2hlcyDDoCB2ZW5pciDDoCB2ZW5pciA/JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjaGF0OiB7XG4gICAgICBnZW5lcmF0aW5nOiAnQW5hbHlzZSBkdSBtZXNzYWdlJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiBcIkFuYWx5c2UgZGUgbCdhdHRhY2hlbWVudFwiLFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBtZXNzYWdlcycsXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IFwiQ29tbWVudCBwdWlzLWplIHQnYWlkZXIgYXVqb3VyZCdodWkgP1wiLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBnw6luw6lyYXRpb24gZGUgdm90cmUgcsOpcG9uc2UsIHZldWlsbGV6IHLDqWVzc2F5ZXIuJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICBcIllvdSBkb24ndCBoYXZlIGFjY2VzcyB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYWdlbnQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgeW91ciBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gUGxlYXNlIGNvbnRhY3QgdGhlIHBlcnNvbiBpbiB5b3VyIG9yZ2FuaXphdGlvbiB3aG8gbWFuYWdlcyBhZ2VudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIsXG4gICAgICBjaGFuZ2VQcm9qZWN0OlxuICAgICAgICBcIkonYWkgZMOpdGVjdMOpIHF1ZSB2b3VzIHNvdWhhaXRleiBjaGFuZ2VyIGRlIFByb2pldC5cXG5cXG4qKlPDqWxlY3Rpb25uZXogbGUgcHJvamV0IHBvdXIgY29udGludWVyIDoqKlwiLFxuICAgICAgc2VhcmNoV2ViOiAnU2VhcmNoIHRoZSB3ZWInLFxuICAgICAgZGVlcFNlYXJjaDogJ0luLWRlcHRoIHJlc2VhcmNoJyxcbiAgICAgIGF0dGFjaEZpbGU6ICdBdHRhY2ggZmlsZScsXG4gICAgICBzZW5kOiAnU2VuZCcsXG4gICAgICBsaW1pdEZpbGVzOiAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIGF0dGFjaG1lbnQgbGltaXQnLFxuICAgICAgc3RvcDogJ0NhbmNlbCBzZWFyY2gnLFxuICAgICAgY2FuY2VsbGVkOiAnVGhlIHNlYXJjaCBoYXMgYmVlbiBjYW5jZWxsZWQuJyxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnVm91bGV6LXZvdXMgc3VwcHJpbWVyIGNldHRlIGNvbnZlcnNhdGlvbj8nLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOZXcgbmFtZScsXG4gICAgICB0aXRsZTogJ1JlbmFtZSBjb252ZXJzYXRpb24nLFxuICAgICAgcmVuYW1lOiAnUmVuYW1lJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBtYXhMZW5ndGg6ICdZb3UgY2Fubm90IGVudGVyIG1vcmUgdGhhbiAxNTAgY2hhcmFjdGVycy4nLFxuICAgIH0sXG4gICAgbW9kYWxGaWxlRXhjZWVkczoge1xuICAgICAgbGltaXRGaWxlc1RpdGxlOiAnTWF4aW11bSBhdHRhY2htZW50cyBleGNlZWRlZC4nLFxuICAgICAgbGltaXRTaXplVGl0bGU6IFwiWW91J3ZlIGV4Y2VlZGVkIHRoZSBhbGxvd2VkIGZpbGUgc2l6ZSBsaW1pdFwiLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnWW91IGNhbiBhdHRhY2ggYSBtYXhpbXVtIG9mIDUgZmlsZXMgcGVyIG1lc3NhZ2UuIFRoZSBmb2xsb3dpbmcgZmlsZXMgY291bGQgbm90IGJlIGF0dGFjaGVkOicsXG4gICAgICBsaW1pdFNpemVEZXNjcmlwdGlvbjpcbiAgICAgICAgJ09uZSBvciBtb3JlIGZpbGVzIGV4Y2VlZCB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgYnkgdHlwZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGFjY2VwdDogJ0FjY2VwdCcsXG4gICAgICBsaW1pdDogJ2xpbWl0JyxcbiAgICAgIHN0b3A6ICdDYW5jZWwgc2VhcmNoJyxcbiAgICB9LFxuICAgIHNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1NvdXJjZXM6JyxcbiAgICB9LFxuICAgIGFnZW50czoge1xuICAgICAgdGl0bGU6ICdBZ2VudHMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3V2ZWwgYWdlbnQnLFxuICAgICAgZWRpdDogJ8OJZGl0ZXInLFxuICAgICAgbWFpYTogJyhTcMOpY2lhbGlzdGUgZGUgcHJvamV0KScsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkZCB0byBmYXZvcml0ZXMnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmUgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnQgYWRkZWQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRTdWNjZXNzOiAnQWdlbnQgcmVtb3ZlZCBmcm9tIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRFcnJvcjogJ0NvdWxkIG5vdCBzYXZlIHlvdXIgZmF2b3JpdGUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnQ29udmVyc2F0aW9ucycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiBcIllvdSBoYXZlbid0IHN0YXJ0ZWQgYW55IGNvbnZlcnNhdGlvbnMgeWV0XCIsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgICAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgICAgIG5ld0NoYXQ6ICdOZXcgY2hhdCcsXG4gICAgfSxcbiAgICBzbmFja2Jhcjoge1xuICAgICAgZGVsZXRlQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ2hhdCBkZWxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgICByZW5hbWVkQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ29udmVyc2F0aW9uIHJlbmFtZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNsaWVudFNlbGVjdG9yOiB7XG4gICAgICBwcm9qZWN0OiAncHJvamV0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamV0cycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGFjY2Vzc2liaWxpdHlTZWN0aW9uOiB7XG4gICAgICB0aXRsZVRhYjogJ0FjY2Vzc2liaWxpdHknLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnQWdlbnQgYWNjZXNzaWJpbGl0eScsXG4gICAgICBzdWJ0aXRsZVNlY3Rpb246ICdEZWZpbmUgdGhlIGxldmVsIG9mIGFjY2VzcyBhbmQgdmlzaWJpbGl0eSBvZiB0aGUgYWdlbnQgd2l0aGluIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdXaG8gY2FuIHVzZSB0aGlzIGFnZW50PycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6ICdWaXNpYmxlIGZvciB0aGUgZW50aXJlIGNvbXBhbnknLFxuICAgICAgYWxsQ29tcGFueURlc2NyaXB0aW9uOiAnQWxsIHVzZXJzIG9mIHlvdXIgb3JnYW5pemF0aW9uIHdpbGwgYmUgYWJsZSB0byBzZWUgYW5kIHVzZSB0aGlzIGFnZW50LicsXG4gICAgICBjbGllbnRUaXRsZTogJ0xpbmtlZCB0byBzcGVjaWZpYyBjbGllbnRzJyxcbiAgICAgIGNsaWVudERlc2NyaXB0aW9uOlxuICAgICAgICAnQXNzb2NpYXRlIHRoaXMgYWdlbnQgd2l0aCBvbmUgb3IgbW9yZSBjbGllbnRzLiBBbGwgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIHNlZSB3aGljaCBjbGllbnRzIGFyZSBsaW5rZWQuJyxcbiAgICAgIG93blRpdGxlOiAnT25seSB2aXNpYmxlIGZvciBtZScsXG4gICAgICBvd25EZXNjcmlwdGlvbjogJ1RoaXMgYWdlbnQgd2lsbCBiZSBwcml2YXRlIGFuZCBub3QgYXZhaWxhYmxlIGZvciBvdGhlciB1c2Vycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBsaXN0IG9mIGNsaWVudHMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgc2VhcmNoRW1wdHk6ICdPb3BzISBObyBjbGllbnRzIHdlcmUgZm91bmQgdGhhdCBtYXRjaCB5b3VyIHNlYXJjaC4nLFxuICAgICAgc2VhcmNoSW5pdGlhbDogJ1dyaXRlIGEgd29yZCB0byBzdGFydCB5b3VyIHNlYXJjaCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTRUxFQ1QgUFJPSkVDVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnQgcHJvamVjdHMnLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnU2VhcmNoIGVycm9yISBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1vbWVudHMuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdObyByZWNlbnQgcHJvamVjdHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdObyBjbGllbnQnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnTm8gdGl0bGUnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5jbGllbnRTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgdGl0bGU6ICdXaGljaCBjbGllbnQgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIGNsaWVudCBzbyBNQUlBIGNhbiByZXNwb25kIGluIGNvbnRleHQuJyxcbiAgICAgIGxhYmVsQ2xpZW50OiAnU0VMRUNUIENMSUVOVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VDbGllbnQ6ICdDaGFuZ2UgY2xpZW50JyxcbiAgICAgIHJlY2VudENsaWVudHM6ICdSZWNlbnQgY2xpZW50cycsXG4gICAgICBzZWFyY2hpbmdDbGllbnRzOiAnU2VhcmNoaW5nIHlvdXIgY2xpZW50cy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdTZWFyY2ggZXJyb3IhIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbW9tZW50cy4nLFxuICAgICAgZW1wdHlSZWNlbnRDbGllbnRzOiAnTm8gcmVjZW50IGNsaWVudHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHByb2plY3Q6ICdwcm9qZXQnLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRzJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLE9BQU87RUFDZEMsUUFBUSxFQUFFLG1CQUFtQjtFQUM3QkMsU0FBUyxFQUFFLE1BQU07RUFDakJDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsTUFBTSxFQUFFLHNCQUFzQjtFQUM5QkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLGFBQWEsRUFBRSxnQkFBZ0I7RUFDL0JDLElBQUksRUFBRSxNQUFNO0VBQ1pDLE1BQU0sRUFBRTtBQUNWLENBQUM7QUFFRCxJQUFNQyxLQUFLLEdBQUc7RUFDWkMsS0FBSyxFQUFFLDJCQUEyQjtFQUNsQ0MsV0FBVyxFQUFFLDZGQUE2RjtFQUMxR0MsUUFBUSxFQUFFO0FBQ1osQ0FBQztBQUVELElBQU1DLGNBQWMsR0FBRztFQUNyQkosS0FBSyxFQUFMQSxLQUFLO0VBQ0xiLE9BQU8sRUFBUEE7QUFDRixDQUFDO0FBRUQsSUFBTWtCLHFCQUFxQixHQUFHO0VBQzVCQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsS0FBSyxFQUFFLGVBQWU7RUFDdEJDLE9BQU8sRUFBRSxpQ0FBaUM7RUFFMUNDLFFBQVEsRUFBRTtJQUNSQyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCQyxVQUFVLEVBQUUsbUJBQW1CO0lBQy9CQyxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBRURD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
201
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsImhvd1dvcmtzIiwiYnJhbmROYW1lIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJnb0JhY2siLCJjb3B5IiwiY29waWVkIiwic2F2ZWQiLCJzZWxlY3RQcm9qZWN0Iiwic2F2ZSIsImNhbmNlbCIsImVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInRyeUFnYWluIiwiZ2VuZXJpY1NlY3Rpb24iLCJwcm9qZWN0U3VtbWFyeVNlY3Rpb24iLCJyZXN1bWUiLCJoZWxsbyIsIndlbGNvbWUiLCJmZWVkYmFjayIsInRodW1ic1VwIiwidGh1bWJzRG93biIsInNvdXJjZXMiLCJjb25maWciLCJwcm9qZWN0U3VtbWFyeSIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiYWN0aW9uc1Rhc2tzIiwiZW1wdHlMaXN0IiwiY3JlYXRlZEJ5IiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJoaXN0b3J5IiwidG9vbHRpcCIsIml0ZW0iLCJkYXRlIiwibWVudSIsInJlbmFtZSIsImxvYWRpbmdNb3JlIiwib25ib2FyZGluZyIsIm1haWEiLCJhZ2VudEN1c3RvbSIsImhvd0NyZWF0ZUFnZW50IiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsImVycm9yQWNjZXNzRGVuaWVkIiwiY2hhbmdlUHJvamVjdCIsInNlYXJjaFdlYiIsImRlZXBTZWFyY2giLCJhdHRhY2hGaWxlIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImVkaXRRdWVzdGlvbk1vZGFsIiwibmV3TmFtZSIsIm1heExlbmd0aCIsIm1vZGFsRmlsZUV4Y2VlZHMiLCJsaW1pdEZpbGVzVGl0bGUiLCJsaW1pdFNpemVUaXRsZSIsImxpbWl0RmlsZXNEZXNjcmlwdGlvbiIsImxpbWl0U2l6ZURlc2NyaXB0aW9uIiwiYWNjZXB0IiwibGltaXQiLCJzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCIsImFnZW50cyIsIm5ld0FnZW50IiwiZWRpdCIsImFkZEZhdm9yaXRlIiwicmVtb3ZlRmF2b3JpdGUiLCJmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzcyIsImZhdm9yaXRlVG9nZ2xlZEVycm9yIiwiY29udmVyc2F0aW9ucyIsImVtcHR5IiwiZW1wdHlMYWJlbCIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImFibUFnZW50IiwiYWNjZXNzaWJpbGl0eVNlY3Rpb24iLCJ0aXRsZVRhYiIsInRpdGxlU2VjdGlvbiIsInN1YnRpdGxlU2VjdGlvbiIsIndob0NhbkFjY2VzcyIsImFsbENvbXBhbnlUaXRsZSIsImFsbENvbXBhbnlEZXNjcmlwdGlvbiIsImNsaWVudFRpdGxlIiwiY2xpZW50RGVzY3JpcHRpb24iLCJvd25UaXRsZSIsIm93bkRlc2NyaXB0aW9uIiwiY2xpZW50c1NlbGVjdGVkIiwic2VhcmNoRXJyb3IiLCJzZWFyY2hFbXB0eSIsInNlYXJjaEluaXRpYWwiLCJzZWFyY2hQbGFjZWhvbGRlciIsImNsaWVudEluYWN0aXZlIiwiY2xpZW50RGVsZXRlZFRvb2x0aXAiLCJjbGllbnREZWxldGVkIiwicHJvamVjdFNlbGVjdG9yIiwic3VidGl0bGUiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsImVycm9yTWVzc2FnZSIsImVtcHR5UmVjZW50UHJvamVjdHMiLCJlbXB0eVN0YXRlIiwid2l0aG91dENsaWVudCIsIndpdGhvdXRUaXRsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2ZyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIGhvd1dvcmtzOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICBicmFuZE5hbWU6ICdNQUlBJyxcbiAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gIGdvQmFjazogJ0dvIGJhY2sgdG8gdGhlIHN0YXJ0JyxcbiAgY29weTogJ0NvcHknLFxuICBjb3BpZWQ6ICdDb3BpZWQnLFxuICBzYXZlZDogJ1NhdmVkJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgc2F2ZTogJ1NhdmUnLFxuICBjYW5jZWw6ICdDYW5jZWwnLFxufVxuXG5jb25zdCBlcnJvciA9IHtcbiAgdGl0bGU6IFwiVW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZVwiLFxuICBkZXNjcmlwdGlvbjogJ05vdXMgcmVuY29udHJvbnMgYWN0dWVsbGVtZW50IHF1ZWxxdWVzIHByb2Jsw6htZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIHRyeUFnYWluOiAnUsOpZXNzYXllcicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1LDqXN1bcOpIGR1IHByb2pldCcsXG4gICAgZGVzY3JpcHRpb246IFwiR8OpbsOpcmV6IGRlcyByYXBwb3J0cyBhdmVjIGwnSUEgw6AgcGFydGlyIGRlIHZvdHJlIHByb2pldFwiLFxuICB9LFxuICBhY3Rpb25zVGFza3M6IHtcbiAgICB0aXRsZTogJ0FjdGlvbnMgZGVzIHTDomNoZXMnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvamV0IGxpw6kgw6AgY2V0dGUgY29udmVyc2F0aW9uLiBBY3Rpb25zIGRpc3BvbmlibGVzIHBvdXIgbGVzIHTDomNoZXMuJyxcbiAgICBlbXB0eUxpc3Q6ICdBdWN1bmUgYWN0aW9uIGNoYXJnw6llJyxcbiAgfSxcbiAgY3JlYXRlZEJ5OiAnQ3JlYXRlZCBieScsXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgW1NFQ1RJT05TLnByb2plY3RTdW1tYXJ5XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgfSxcbiAgW1NFQ1RJT05TLmNoYXRBSV06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICAuLi5wcm9qZWN0U3VtbWFyeVNlY3Rpb24sXG4gICAgaG9tZU1lbnUsXG5cbiAgICBidXR0b246ICdJQScsXG4gICAgdGl0bGU6ICdCb25qb3VyLCB7e25hbWV9fSEnLFxuICAgIGRlc2NyaXB0aW9uOiBcIkplIHN1aXMgTUFJQSwgdG9uIGFzc2lzdGFudGUsIGV0IGplIHN1aXMgbMOgIHBvdXIgdCdhaWRlciBhdmVjIHRlcyBxdWVzdGlvbnMuXCIsXG4gICAgbmV3Q2hhdDogJ05vdXZlYXUgY2hhdCcsXG4gICAgaGlzdG9yeToge1xuICAgICAgdG9vbHRpcDogJ0hpc3RvcmlxdWUnLFxuICAgICAgdGl0bGU6ICdIaXN0b3JpcXVlIHZpZGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdBdWN1bmUgY29udmVyc2F0aW9uIHRyb3V2w6llJyxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgZGF0ZTogJ0Rlcm5pw6hyZSBtaXNlIMOgIGpvdXIge3tkYXRlfX0nLFxuICAgICAgfSxcbiAgICAgIG1lbnU6IHtcbiAgICAgICAgcmVuYW1lOiAnUmVub21tZXInLFxuICAgICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnQ2hhcmdlbWVudCBkZXMgY29udmVyc2F0aW9ucycsXG4gICAgfSxcbiAgICBvbmJvYXJkaW5nOiB7XG4gICAgICBtYWlhOiAnTUFJQScsXG4gICAgICBhZ2VudEN1c3RvbTogJ0N1c3RvbSBhZ2VudHMnLFxuICAgICAgaG93Q3JlYXRlQWdlbnQ6ICdIb3cgdG8gY3JlYXRlIGFuIGFnZW50PycsXG4gICAgICB0b29sdGlwOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICAgIH0sXG4gICAgcWE6IHtcbiAgICAgIHRpdGxlOiAnUXVlc3Rpb25zIEZyw6lxdWVtbWVudCBQb3PDqWVzJyxcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIHJlbnRhYmlsaWRhZF9wcm95ZWN0bzogJ1F1ZWxsZSBlc3QgbGEgcmVudGFiaWxpdMOpIGRlIGNlIHByb2pldCA/JyxcbiAgICAgICAgYXZhbmNlX3Byb3llY3RvOiAnUXVlbCBlc3QgbGUgcHJvZ3LDqHMgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICB0YXJlYXNfcHJveWVjdG86ICdRdWVsbGVzIHNvbnQgbGVzIHTDomNoZXMgw6AgdmVuaXIgw6AgdmVuaXIgPycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hhdDoge1xuICAgICAgZ2VuZXJhdGluZzogJ0FuYWx5c2UgZHUgbWVzc2FnZScsXG4gICAgICBnZW5lcmF0aW5nQXR0YWNobWVudDogXCJBbmFseXNlIGRlIGwnYXR0YWNoZW1lbnRcIixcbiAgICAgIGxvYWRpbmdNb3JlOiAnQ2hhcmdlbWVudCBkZXMgbWVzc2FnZXMnLFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBcIkNvbW1lbnQgcHVpcy1qZSB0J2FpZGVyIGF1am91cmQnaHVpID9cIixcbiAgICAgIH0sXG4gICAgICBlcnJvcjogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgZ8OpbsOpcmF0aW9uIGRlIHZvdHJlIHLDqXBvbnNlLCB2ZXVpbGxleiByw6llc3NheWVyLicsXG4gICAgICBlcnJvckFjY2Vzc0RlbmllZDpcbiAgICAgICAgXCJZb3UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGFnZW50LiBJdCBpcyBwb3NzaWJsZSB0aGF0IHlvdXIgYWNjZXNzaWJpbGl0eSBzZXR0aW5ncyBoYXZlIGNoYW5nZWQuIFBsZWFzZSBjb250YWN0IHRoZSBwZXJzb24gaW4geW91ciBvcmdhbml6YXRpb24gd2hvIG1hbmFnZXMgYWdlbnRzIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiLFxuICAgICAgY2hhbmdlUHJvamVjdDpcbiAgICAgICAgXCJKJ2FpIGTDqXRlY3TDqSBxdWUgdm91cyBzb3VoYWl0ZXogY2hhbmdlciBkZSBQcm9qZXQuXFxuXFxuKipTw6lsZWN0aW9ubmV6IGxlIHByb2pldCBwb3VyIGNvbnRpbnVlciA6KipcIixcbiAgICAgIHNlYXJjaFdlYjogJ1NlYXJjaCB0aGUgd2ViJyxcbiAgICAgIGRlZXBTZWFyY2g6ICdJbi1kZXB0aCByZXNlYXJjaCcsXG4gICAgICBhdHRhY2hGaWxlOiAnQXR0YWNoIGZpbGUnLFxuICAgICAgc2VuZDogJ1NlbmQnLFxuICAgICAgbGltaXRGaWxlczogJ1lvdSBoYXZlIGV4Y2VlZGVkIHRoZSBhdHRhY2htZW50IGxpbWl0JyxcbiAgICAgIHN0b3A6ICdDYW5jZWwgc2VhcmNoJyxcbiAgICAgIGNhbmNlbGxlZDogJ1RoZSBzZWFyY2ggaGFzIGJlZW4gY2FuY2VsbGVkLicsXG4gICAgfSxcbiAgICBkZWxldGVRdWVzdGlvbk1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1ZvdWxlei12b3VzIHN1cHByaW1lciBjZXR0ZSBjb252ZXJzYXRpb24/JyxcbiAgICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICB9LFxuICAgIGVkaXRRdWVzdGlvbk1vZGFsOiB7XG4gICAgICBuZXdOYW1lOiAnTmV3IG5hbWUnLFxuICAgICAgdGl0bGU6ICdSZW5hbWUgY29udmVyc2F0aW9uJyxcbiAgICAgIHJlbmFtZTogJ1JlbmFtZScsXG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgbWF4TGVuZ3RoOiAnWW91IGNhbm5vdCBlbnRlciBtb3JlIHRoYW4gMTUwIGNoYXJhY3RlcnMuJyxcbiAgICB9LFxuICAgIG1vZGFsRmlsZUV4Y2VlZHM6IHtcbiAgICAgIGxpbWl0RmlsZXNUaXRsZTogJ01heGltdW0gYXR0YWNobWVudHMgZXhjZWVkZWQuJyxcbiAgICAgIGxpbWl0U2l6ZVRpdGxlOiBcIllvdSd2ZSBleGNlZWRlZCB0aGUgYWxsb3dlZCBmaWxlIHNpemUgbGltaXRcIixcbiAgICAgIGxpbWl0RmlsZXNEZXNjcmlwdGlvbjpcbiAgICAgICAgJ1lvdSBjYW4gYXR0YWNoIGEgbWF4aW11bSBvZiA1IGZpbGVzIHBlciBtZXNzYWdlLiBUaGUgZm9sbG93aW5nIGZpbGVzIGNvdWxkIG5vdCBiZSBhdHRhY2hlZDonLFxuICAgICAgbGltaXRTaXplRGVzY3JpcHRpb246XG4gICAgICAgICdPbmUgb3IgbW9yZSBmaWxlcyBleGNlZWQgdGhlIG1heGltdW0gYWxsb3dlZCBzaXplIGJ5IHR5cGUuIFRoZSBmb2xsb3dpbmcgZmlsZXMgY291bGQgbm90IGJlIGF0dGFjaGVkOicsXG4gICAgICBhY2NlcHQ6ICdBY2NlcHQnLFxuICAgICAgbGltaXQ6ICdsaW1pdCcsXG4gICAgICBzdG9wOiAnQ2FuY2VsIHNlYXJjaCcsXG4gICAgfSxcbiAgICBzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbDoge1xuICAgICAgdGl0bGU6ICdTb3VyY2VzOicsXG4gICAgfSxcbiAgICBhZ2VudHM6IHtcbiAgICAgIHRpdGxlOiAnQWdlbnRzJyxcbiAgICAgIG5ld0FnZW50OiAnTm91dmVsIGFnZW50JyxcbiAgICAgIGVkaXQ6ICfDiWRpdGVyJyxcbiAgICAgIG1haWE6ICcoU3DDqWNpYWxpc3RlIGRlIHByb2pldCknLFxuICAgICAgYWRkRmF2b3JpdGU6ICdBZGQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIHJlbW92ZUZhdm9yaXRlOiAnUmVtb3ZlIGZyb20gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZEFkZGVkU3VjY2VzczogJ0FnZW50IGFkZGVkIHRvIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzczogJ0FnZW50IHJlbW92ZWQgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkRXJyb3I6ICdDb3VsZCBub3Qgc2F2ZSB5b3VyIGZhdm9yaXRlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgfSxcbiAgICBjb252ZXJzYXRpb25zOiB7XG4gICAgICB0aXRsZTogJ0NvbnZlcnNhdGlvbnMnLFxuICAgICAgZXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBjb252ZXJzYXRpb24gaGlzdG9yeScsXG4gICAgICBlbXB0eTogXCJZb3UgaGF2ZW4ndCBzdGFydGVkIGFueSBjb252ZXJzYXRpb25zIHlldFwiLFxuICAgICAgZW1wdHlMYWJlbDogJ01lc3NhZ2Ugd2l0aCBhdHRhY2htZW50cycsXG4gICAgICBjb2xsYXBzZTogJ0NvbGxhcHNlJyxcbiAgICAgIGV4cGFuZDogJ0V4cGFuZCcsXG4gICAgICBuZXdDaGF0OiAnTmV3IGNoYXQnLFxuICAgIH0sXG4gICAgc25hY2tiYXI6IHtcbiAgICAgIGRlbGV0ZUNoYXQ6IHtcbiAgICAgICAgc3VjY2VzczogJ0NoYXQgZGVsZXRlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICBlcnJvcjogJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSwgdHJ5IGFnYWluLicsXG4gICAgICB9LFxuICAgICAgcmVuYW1lZENoYXQ6IHtcbiAgICAgICAgc3VjY2VzczogJ0NvbnZlcnNhdGlvbiByZW5hbWVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGFjY2Vzc2liaWxpdHlTZWN0aW9uOiB7XG4gICAgICB0aXRsZVRhYjogJ0FjY2Vzc2liaWxpdHknLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnQWdlbnQgYWNjZXNzaWJpbGl0eScsXG4gICAgICBzdWJ0aXRsZVNlY3Rpb246ICdEZWZpbmUgdGhlIGxldmVsIG9mIGFjY2VzcyBhbmQgdmlzaWJpbGl0eSBvZiB0aGUgYWdlbnQgd2l0aGluIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdXaG8gY2FuIHVzZSB0aGlzIGFnZW50PycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6ICdWaXNpYmxlIGZvciB0aGUgZW50aXJlIGNvbXBhbnknLFxuICAgICAgYWxsQ29tcGFueURlc2NyaXB0aW9uOiAnQWxsIHVzZXJzIG9mIHlvdXIgb3JnYW5pemF0aW9uIHdpbGwgYmUgYWJsZSB0byBzZWUgYW5kIHVzZSB0aGlzIGFnZW50LicsXG4gICAgICBjbGllbnRUaXRsZTogJ0xpbmtlZCB0byBzcGVjaWZpYyBjbGllbnRzJyxcbiAgICAgIGNsaWVudERlc2NyaXB0aW9uOlxuICAgICAgICAnQXNzb2NpYXRlIHRoaXMgYWdlbnQgd2l0aCBvbmUgb3IgbW9yZSBjbGllbnRzLiBBbGwgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIHNlZSB3aGljaCBjbGllbnRzIGFyZSBsaW5rZWQuJyxcbiAgICAgIG93blRpdGxlOiAnT25seSB2aXNpYmxlIGZvciBtZScsXG4gICAgICBvd25EZXNjcmlwdGlvbjogJ1RoaXMgYWdlbnQgd2lsbCBiZSBwcml2YXRlIGFuZCBub3QgYXZhaWxhYmxlIGZvciBvdGhlciB1c2Vycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBsaXN0IG9mIGNsaWVudHMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgc2VhcmNoRW1wdHk6ICdPb3BzISBObyBjbGllbnRzIHdlcmUgZm91bmQgdGhhdCBtYXRjaCB5b3VyIHNlYXJjaC4nLFxuICAgICAgc2VhcmNoSW5pdGlhbDogJ1dyaXRlIGEgd29yZCB0byBzdGFydCB5b3VyIHNlYXJjaCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTRUxFQ1QgUFJPSkVDVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnQgcHJvamVjdHMnLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnU2VhcmNoIGVycm9yISBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1vbWVudHMuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdObyByZWNlbnQgcHJvamVjdHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdObyBjbGllbnQnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnTm8gdGl0bGUnLFxuICAgIH0sXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx3QkFBd0I7QUFDakQsU0FBU0Msd0JBQXdCLFFBQVEsc0NBQXNDO0FBRS9FLElBQU1DLE9BQU8sR0FBRztFQUNkQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxTQUFTLEVBQUUsTUFBTTtFQUNqQkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLFFBQVEsRUFBRSxVQUFVO0VBQ3BCQyxNQUFNLEVBQUUsc0JBQXNCO0VBQzlCQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsS0FBSyxFQUFFLE9BQU87RUFDZEMsYUFBYSxFQUFFLGdCQUFnQjtFQUMvQkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsTUFBTSxFQUFFO0FBQ1YsQ0FBQztBQUVELElBQU1DLEtBQUssR0FBRztFQUNaQyxLQUFLLEVBQUUsMkJBQTJCO0VBQ2xDQyxXQUFXLEVBQUUsNkZBQTZGO0VBQzFHQyxRQUFRLEVBQUU7QUFDWixDQUFDO0FBRUQsSUFBTUMsY0FBYyxHQUFHO0VBQ3JCSixLQUFLLEVBQUxBLEtBQUs7RUFDTGIs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
@@ -18,7 +18,6 @@ import { useTranslation } from 'react-i18next';
18
18
  import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
19
19
  import { fetchMaia } from '../client';
20
20
  import { useUser, CORUserRole } from '../../../context/cor-user';
21
- import { mapCORLang } from '../../../lang/utils';
22
21
 
23
22
  /**
24
23
  * Ordena los agentes: agentes clone primero (si existen), luego favoritos alfabéticamente, luego no favoritos alfabéticamente
@@ -177,7 +176,7 @@ export var useGetAgents = function useGetAgents(_ref) {
177
176
  var handleGetAgents = useCallback(/*#__PURE__*/function () {
178
177
  var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(agentToSelect) {
179
178
  var _agentToSelect$id;
180
- var requestKey, isMultiAgents, agentParsed, hasMore, nextOffset, cloneAgents, _maiaData$data, orderParam, maiaResponse, maiaData, _maiaError$response, _maiaError$message, _maiaError$message2, is403Error, customAgents, customHasMore, customNextOffset, customResponse, customData, _customError$response, _customError$message, _customError$message2, _is403Error, queryParams, queryString, path, response, data, _responseError$respon, _responseError$messag, _responseError$messag2, _is403Error2, _agentParsed, _agentParsed2, _lastSelectedAgentRef, _lastSelectedAgentRef2, availableAgents, _availableAgents, firstAgent, _lastSelectedAgentRef3, _availableAgents2, _availableAgents3, firstAvailableAgent, _t, _t2, _t3, _t4;
179
+ var requestKey, isMultiAgents, agentParsed, hasMore, nextOffset, cloneAgents, _maiaData$data, maiaResponse, maiaData, _maiaError$response, _maiaError$message, _maiaError$message2, is403Error, customAgents, customHasMore, customNextOffset, customResponse, customData, _customError$response, _customError$message, _customError$message2, _is403Error, queryParams, queryString, path, response, data, _responseError$respon, _responseError$messag, _responseError$messag2, _is403Error2, _agentParsed, _agentParsed2, _lastSelectedAgentRef, _lastSelectedAgentRef2, availableAgents, _availableAgents, firstAgent, _lastSelectedAgentRef3, _availableAgents2, _availableAgents3, firstAvailableAgent, _t, _t2, _t3, _t4;
181
180
  return _regeneratorRuntime.wrap(function (_context) {
182
181
  while (1) switch (_context.prev = _context.next) {
183
182
  case 0:
@@ -214,10 +213,9 @@ export var useGetAgents = function useGetAgents(_ref) {
214
213
  break;
215
214
  }
216
215
  _context.prev = 4;
217
- orderParam = section === 'client' ? '&order=client,project' : section === 'project' ? '&order=project,client' : '';
218
216
  _context.next = 5;
219
217
  return fetchMaia({
220
- path: "agents?agent_type=clone&lang=".concat(mapCORLang(i18n.language)).concat(orderParam),
218
+ path: "agents?agent_type=clone&lang=".concat(i18n.language),
221
219
  method: 'GET'
222
220
  });
223
221
  case 5:
@@ -320,14 +318,13 @@ export var useGetAgents = function useGetAgents(_ref) {
320
318
  case 16:
321
319
  // Lógica para project o header sin multiAgents
322
320
  queryParams = new URLSearchParams();
323
- if (section === 'project' || section === 'client') {
321
+ if (section === 'project' || section === 'actionsTasks') {
324
322
  queryParams.append('agent_type', 'clone');
325
- queryParams.append('lang', mapCORLang(i18n.language));
326
- queryParams.append('order', section === 'client' ? 'client,project' : 'project,client');
323
+ queryParams.append('lang', i18n.language);
327
324
  } else if (section === 'header' && !isMultiAgents) {
328
325
  // Header sin multiAgents: solo listar agentes clone (Maia)
329
326
  queryParams.append('agent_type', 'clone');
330
- queryParams.append('lang', mapCORLang(i18n.language));
327
+ queryParams.append('lang', i18n.language);
331
328
  queryParams.append('limit', '7');
332
329
  queryParams.append('offset', '0');
333
330
  }
@@ -463,7 +460,7 @@ export var useGetAgents = function useGetAgents(_ref) {
463
460
  // Si no es multiAgents, cargar más agentes clone (Maia)
464
461
  queryParams = new URLSearchParams();
465
462
  queryParams.append('agent_type', 'clone');
466
- queryParams.append('lang', mapCORLang(i18n.language));
463
+ queryParams.append('lang', i18n.language);
467
464
  queryParams.append('limit', '7');
468
465
  queryParams.append('offset', agents.next_offset.toString());
469
466
  path = "agents?".concat(queryParams.toString());
@@ -563,4 +560,4 @@ export var useGetAgents = function useGetAgents(_ref) {
563
560
  sortAgentsList: sortAgentsList
564
561
  };
565
562
  };
566
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJtYXBDT1JMYW5nIiwic29ydEFnZW50cyIsImFnZW50cyIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJ0eXBlIiwib3RoZXJBZ2VudHMiLCJmYXZvcml0ZXMiLCJpc19mYXZvcml0ZSIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwibm9uRmF2b3JpdGVzIiwibGVuZ3RoIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidXNlR2V0QWdlbnRzIiwiX3JlZiIsInNlbGVjdEFnZW50Iiwic2VjdGlvbiIsImFnZW50IiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaTE4biIsImxhc3RTZWxlY3RlZEFnZW50UmVmIiwiaXNSZWZyZXNoaW5nUmVmIiwibGFzdFJlcXVlc3RSZWYiLCJ1c2VyUm9sZXNEaXNhYmxlZCIsIkNPTExBQk9SQVRPUiIsIkZSRUVMQU5DRVIiLCJDTElFTlQiLCJhZGRBZ2VudCIsIm5ld0FnZW50IiwicHJldiIsImFnZW50RXhpc3RzIiwic29tZSIsImV4aXN0aW5nQWdlbnQiLCJpZCIsIm5ld0RhdGEiLCJzb3J0ZWREYXRhIiwiX29iamVjdFNwcmVhZCIsInJlbW92ZUFnZW50IiwiYWdlbnRJZCIsInRvU3RyaW5nIiwidXBkYXRlQWdlbnQiLCJ1cGRhdGVkQWdlbnQiLCJ1cGRhdGVkRGF0YSIsIm1hcCIsInVwZGF0ZUFnZW50RmF2b3JpdGUiLCJzaG91bGRTb3J0IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX3JlZjIiLCJtZXNzYWdlIiwiYWdlbnRGaWVsZHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJtZXJnZWRBZ2VudCIsImZpbmFsRGF0YSIsImZpbmQiLCJfcmVmMyIsIl9leGNsdWRlZDIiLCJfcmVmNCIsIl9leGNsdWRlZDMiLCJzb3J0QWdlbnRzTGlzdCIsInNlbGVjdEZpcnN0QWdlbnQiLCJmaXJzdEFnZW50IiwiZmluZEluZGV4IiwiYWdlbnREYXRhIiwiY3VycmVudCIsImhhbmRsZUdldEFnZW50cyIsIl9yZWY1IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJhZ2VudFRvU2VsZWN0IiwiX2FnZW50VG9TZWxlY3QkaWQiLCJyZXF1ZXN0S2V5IiwiaXNNdWx0aUFnZW50cyIsImFnZW50UGFyc2VkIiwiaGFzTW9yZSIsIm5leHRPZmZzZXQiLCJfbWFpYURhdGEkZGF0YSIsIm9yZGVyUGFyYW0iLCJtYWlhUmVzcG9uc2UiLCJtYWlhRGF0YSIsIl9tYWlhRXJyb3IkcmVzcG9uc2UiLCJfbWFpYUVycm9yJG1lc3NhZ2UiLCJfbWFpYUVycm9yJG1lc3NhZ2UyIiwiaXM0MDNFcnJvciIsImN1c3RvbUFnZW50cyIsImN1c3RvbUhhc01vcmUiLCJjdXN0b21OZXh0T2Zmc2V0IiwiY3VzdG9tUmVzcG9uc2UiLCJjdXN0b21EYXRhIiwiX2N1c3RvbUVycm9yJHJlc3BvbnNlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UiLCJfY3VzdG9tRXJyb3IkbWVzc2FnZTIiLCJfaXM0MDNFcnJvciIsInF1ZXJ5UGFyYW1zIiwicXVlcnlTdHJpbmciLCJwYXRoIiwicmVzcG9uc2UiLCJfcmVzcG9uc2VFcnJvciRyZXNwb24iLCJfcmVzcG9uc2VFcnJvciRtZXNzYWciLCJfcmVzcG9uc2VFcnJvciRtZXNzYWcyIiwiX2lzNDAzRXJyb3IyIiwiX2FnZW50UGFyc2VkIiwiX2FnZW50UGFyc2VkMiIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZiIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjIiLCJhdmFpbGFibGVBZ2VudHMiLCJfYXZhaWxhYmxlQWdlbnRzIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMyIsIl9hdmFpbGFibGVBZ2VudHMyIiwiX2F2YWlsYWJsZUFnZW50czMiLCJmaXJzdEF2YWlsYWJsZUFnZW50IiwiX3QiLCJfdDIiLCJfdDMiLCJfdDQiLCJ3cmFwIiwiX2NvbnRleHQiLCJuZXh0IiwiYWJydXB0Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImluY2x1ZGVzIiwicm9sZV9pZCIsImxhbmd1YWdlIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJzdGF0dXMiLCJoYXNfbW9yZSIsIm5leHRfb2Zmc2V0IiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiYWdlbnRUb1JlcXVlc3QiLCJhZ2VudEl0ZW0iLCJFcnJvciIsInNldFRpbWVvdXQiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImxvYWRNb3JlQWdlbnRzIiwiX2NhbGxlZTIiLCJjYW5Mb2FkTW9yZSIsIl90NSIsIl9jb250ZXh0MiIsImV4aXN0aW5nQ2xvbmVBZ2VudHMiLCJleGlzdGluZ0lkcyIsIlNldCIsIm5ld0FnZW50cyIsImhhcyIsImhhc05vQWdlbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyB1c2VVc2VyLCBDT1JVc2VyUm9sZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcblxuLyoqXG4gKiBPcmRlbmEgbG9zIGFnZW50ZXM6IGFnZW50ZXMgY2xvbmUgcHJpbWVybyAoc2kgZXhpc3RlbiksIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICovXG5jb25zdCBzb3J0QWdlbnRzID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICAvLyBTZXBhcmFyIGFnZW50ZXMgY2xvbmUgZGVsIHJlc3RvXG4gIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICBjb25zdCBvdGhlckFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWcgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJylcblxuICAvLyBTZXBhcmFyIGZhdm9yaXRvcyB5IG5vIGZhdm9yaXRvc1xuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG5cbiAgLy8gQ29tYmluYXI6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MsIGx1ZWdvIG5vIGZhdm9yaXRvc1xuICByZXR1cm4gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbnR5cGUgVXNlR2V0QWdlbnRzUHJvcHMgPSB7XG4gIHNlbGVjdEFnZW50OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCdcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGFuZGxlR29Ib21lKClcbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBRdWVyeSAxOiBBZ2VudGVzIGNsb25lIChNYWlhKSAtIFNvbG8gcGFyYSByb2xlcyBwZXJtaXRpZG9zLiBQdWVkZW4gdmVuaXIgbcO6bHRpcGxlcyBhZ2VudGVzIHRpcG8gY2xvbmVcbiAgICAgICAgICBsZXQgY2xvbmVBZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGlmICghdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JkZXJQYXJhbSA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnJm9yZGVyPWNsaWVudCxwcm9qZWN0JyA6IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/ICcmb3JkZXI9cHJvamVjdCxjbGllbnQnIDogJydcbiAgICAgICAgICAgICAgY29uc3QgbWFpYVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9JHtvcmRlclBhcmFtfWAsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgbWFpYURhdGEgPSBhd2FpdCBtYWlhUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIGNsb25lQWdlbnRzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpIHx8IFtdXG4gICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY2xvbmVBZ2VudHNcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICAgIHRocm93IG1haWFFcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUXVlcnkgMjogQWdlbnRlcyBjdXN0b20gY29uIHBhZ2luYWNpw7NuXG4gICAgICAgICAgbGV0IGN1c3RvbUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgbGV0IGN1c3RvbUhhc01vcmUgPSBmYWxzZVxuICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICBjdXN0b21BZ2VudHMgPSBjdXN0b21EYXRhLmRhdGEgfHwgW11cbiAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICAgICAgfSBjYXRjaCAoY3VzdG9tRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKGN1c3RvbUFnZW50cyBxdWVkYSBjb21vIGFycmF5IHZhY8OtbylcbiAgICAgICAgICAgICAgLy8gRXN0byBwdWVkZSBvY3VycmlyIGVuIGRvcyBlc2NlbmFyaW9zOlxuICAgICAgICAgICAgICAvLyAxLiBVc3VhcmlvIE5PIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiB0ZW5kcsOhIHNvbG8gbG9zIGNsb25lQWdlbnRzIChzaSBsYSBxdWVyeSBjbG9uZSBmdWUgZXhpdG9zYSlcbiAgICAgICAgICAgICAgLy8gMi4gVXN1YXJpbyBTw40gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IGVsIGxpc3RhZG8gcXVlZGFyw6EgdmFjw61vIChwb3JxdWUgbm8gaGF5IGNsb25lQWdlbnRzKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDb21iaW5hcjogYWdlbnRlcyBjbG9uZSBwcmltZXJvLCBsdWVnbyBsb3MgY3VzdG9tIChzaSBleGlzdGVuKVxuICAgICAgICAgIC8vIFNpIGVsIHVzdWFyaW8gdGllbmUgdW4gcm9sIGRlc2hhYmlsaXRhZG8sIG5vIGluY2x1aXIgY2xvbmVBZ2VudHNcbiAgICAgICAgICBpZiAodXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBkZSByb2xlcyBkaXNhYmxlZDogc29sbyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdIHkgc2UgbW9zdHJhcsOhIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgLy8gcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgcHJvamVjdCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvcmRlcicsIHNlY3Rpb24gPT09ICdjbGllbnQnID8gJ2NsaWVudCxwcm9qZWN0JyA6ICdwcm9qZWN0LGNsaWVudCcpXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAhaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gSGVhZGVyIHNpbiBtdWx0aUFnZW50czogc29sbyBsaXN0YXIgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPWNsb25lXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gZGF0YS5uZXh0X29mZnNldFxuXG4gICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIExpbXBpYXIgZWwgZXJyb3IgcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIGNsb25lIHkgY3VzdG9tXG4gICAgICAgICAgLy8gTWFudGVuZXIgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZXhpc3RlbnRlcyBhbCBpbmljaW9cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0Nsb25lQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBjbG9uZXMpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJykubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcblxuICAgICAgICAgIC8vIEZpbHRyYXIgbnVldm9zIGFnZW50cyBxdWUgbm8gZXN0w6luIHlhIGVuIGxhIGxpc3RhICh5IHF1ZSBubyBzZWFuIGNsb25lKVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IGRhdGEuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcblxuICAgICAgICAgIC8vIENvbnN0cnVpciBlbCBudWV2byBhcnJheTogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGxvcyBhZ2VudHMgZXhpc3RlbnRlcyBxdWUgbm8gc2VhbiBjbG9uZSwgbHVlZ28gbG9zIG51ZXZvc1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBleGlzdGluZ0Nsb25lQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdDbG9uZUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IHRvZG9zIGxvcyBhZ2VudGVzIHNvbiBjbG9uZSwgc2ltcGxlbWVudGUgYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgY29uc3QgaGFzTm9BZ2VudHMgPSAhbG9hZGluZyAmJiAhbG9hZGluZ01vcmUgJiYgIWVycm9yICYmIGFnZW50cy5kYXRhLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7QUFDaEUsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLE1BQWUsRUFBYztFQUMvQztFQUNBLElBQU1DLFdBQVcsR0FBR0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDO0VBQzVELElBQU1DLFdBQVcsR0FBR0wsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDOztFQUU1RDtFQUNBLElBQU1FLFNBQVMsR0FBR0QsV0FBVyxDQUFDSCxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0ksV0FB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
563
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJzb3J0QWdlbnRzIiwiYWdlbnRzIiwiY2xvbmVBZ2VudHMiLCJmaWx0ZXIiLCJhZyIsInR5cGUiLCJvdGhlckFnZW50cyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiYWdlbnQiLCJoYW5kbGVHb0hvbWUiLCJ1c2VyIiwiX3VzZVN0YXRlIiwiZGF0YSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldEFnZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmdNb3JlIiwic2V0TG9hZGluZ01vcmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsImFkZEFnZW50IiwibmV3QWdlbnQiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsImlkIiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwibWFwIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsIm1lc3NhZ2UiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJjdXJyZW50IiwiaGFuZGxlR2V0QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsIl9tYWlhRGF0YSRkYXRhIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJfbWFpYUVycm9yJHJlc3BvbnNlIiwiX21haWFFcnJvciRtZXNzYWdlIiwiX21haWFFcnJvciRtZXNzYWdlMiIsImlzNDAzRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJjdXN0b21IYXNNb3JlIiwiY3VzdG9tTmV4dE9mZnNldCIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl9jdXN0b21FcnJvciRyZXNwb25zZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UyIiwiX2lzNDAzRXJyb3IiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsIl9pczQwM0Vycm9yMiIsIl9hZ2VudFBhcnNlZCIsIl9hZ2VudFBhcnNlZDIiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYyIiwiYXZhaWxhYmxlQWdlbnRzIiwiX2F2YWlsYWJsZUFnZW50cyIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjMiLCJfYXZhaWxhYmxlQWdlbnRzMiIsIl9hdmFpbGFibGVBZ2VudHMzIiwiZmlyc3RBdmFpbGFibGVBZ2VudCIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwic3RhdHVzIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWUyIiwiY2FuTG9hZE1vcmUiLCJfdDUiLCJfY29udGV4dDIiLCJleGlzdGluZ0Nsb25lQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJuZXdBZ2VudHMiLCJoYXMiLCJoYXNOb0FnZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlVXNlciwgQ09SVXNlclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogYWdlbnRlcyBjbG9uZSBwcmltZXJvIChzaSBleGlzdGVuKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIC8vIFNlcGFyYXIgYWdlbnRlcyBjbG9uZSBkZWwgcmVzdG9cbiAgY29uc3QgY2xvbmVBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlICE9PSAnY2xvbmUnKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICAvLyBDb21iaW5hcjogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcywgbHVlZ28gbm8gZmF2b3JpdG9zXG4gIHJldHVybiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnYWN0aW9uc1Rhc2tzJ1xuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgdXNlR2V0QWdlbnRzID0gKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWUgfTogVXNlR2V0QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBbYWdlbnRzLCBzZXRBZ2VudHNdID0gdXNlU3RhdGU8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9Pih7IGRhdGE6IFtdIH0pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01vcmUsIHNldExvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbignY2hhdF9haV9zZWN0aW9uJylcbiAgY29uc3QgbGFzdFNlbGVjdGVkQWdlbnRSZWYgPSB1c2VSZWY8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1JlZnJlc2hpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGxhc3RSZXF1ZXN0UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgYWRkQWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3QWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBhZ2VudGUgeWEgZXhpc3RlIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgYWdlbnRFeGlzdHMgPSBwcmV2LmRhdGEuc29tZShleGlzdGluZ0FnZW50ID0+IGV4aXN0aW5nQWdlbnQuaWQgPT09IG5ld0FnZW50LmlkKVxuICAgICAgICBpZiAoYWdlbnRFeGlzdHMpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCBuZXdBZ2VudF1cbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBoYW5kbGVHb0hvbWUoKVxuICAgIH0sXG4gICAgW2hhbmRsZUdvSG9tZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SWQ6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgZGF0YTogcHJldi5kYXRhLmZpbHRlcihhID0+IGEuaWQgIT09IGFnZW50SWQudG9TdHJpbmcoKSksXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PlxuICAgICAgICBleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQgPyB1cGRhdGVkQWdlbnQgOiBleGlzdGluZ0FnZW50XG4gICAgICApXG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyh1cGRhdGVkRGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnRGYXZvcml0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh1cGRhdGVkQWdlbnQ6IEFnZW50LCBzaG91bGRTb3J0OiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT4ge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkQWdlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQWdlbnRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb2xvIG9yZGVuYXIgc2kgc2hvdWxkU29ydCBlcyB0cnVlXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0YSA9IHNob3VsZFNvcnQgPyBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKSA6IHVwZGF0ZWREYXRhXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gQWN0dWFsaXphciBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIHNpIGVzIGVsIHF1ZSBzZSBlc3TDoSBhY3R1YWxpemFuZG9cbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0FnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhID0+IGEuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZClcbiAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICBzZWxlY3RBZ2VudChtZXJnZWRBZ2VudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRGaWVsZHMgYXMgQWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50cy5kYXRhXVxuICApXG5cbiAgY29uc3Qgc29ydEFnZW50c0xpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMocHJldi5kYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RGaXJzdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChhZ2VudHMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmRJbmRleChhZ2VudERhdGEgPT4gYWdlbnREYXRhLmlkID09PSBhZ2VudElkKVxuICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXVxuICAgICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50cy5kYXRhLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudFRvU2VsZWN0PzogQWdlbnQpID0+IHtcbiAgICAgIGlmIChpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdEtleSA9IGFnZW50VG9TZWxlY3Q/LmlkPy50b1N0cmluZygpIHx8ICdkZWZhdWx0J1xuICAgICAgaWYgKGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPT09IHJlcXVlc3RLZXkgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IHJlcXVlc3RLZXlcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG5cbiAgICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgYWdlbnRQYXJzZWQ6IEFnZW50W10gPSBbXVxuICAgICAgICBsZXQgaGFzTW9yZSA9IGZhbHNlXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgIC8vIFNpIHRpZW5lIGZlYXR1cmUgYWNjZXNzIG11bHRpIGFnZW50cywgaGFjZXIgZG9zIHF1ZXJpZXMgKE1haWEgKyBjdXN0b20pIGVuIGN1YWxxdWllciBzZWNjacOzblxuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIFF1ZXJ5IDE6IEFnZW50ZXMgY2xvbmUgKE1haWEpIC0gU29sbyBwYXJhIHJvbGVzIHBlcm1pdGlkb3MuIFB1ZWRlbiB2ZW5pciBtw7psdGlwbGVzIGFnZW50ZXMgdGlwbyBjbG9uZVxuICAgICAgICAgIGxldCBjbG9uZUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgaWYgKCF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBtYWlhUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7aTE4bi5sYW5ndWFnZX1gLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnN0IG1haWFEYXRhID0gYXdhaXQgbWFpYVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICBjbG9uZUFnZW50cyA9IG1haWFEYXRhLmRhdGE/LmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKSB8fCBbXVxuICAgICAgICAgICAgfSBjYXRjaCAobWFpYUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGNsb25lQWdlbnRzXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgICB0aHJvdyBtYWlhRXJyb3JcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFF1ZXJ5IDI6IEFnZW50ZXMgY3VzdG9tIGNvbiBwYWdpbmFjacOzblxuICAgICAgICAgIGxldCBjdXN0b21BZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGxldCBjdXN0b21IYXNNb3JlID0gZmFsc2VcbiAgICAgICAgICBsZXQgY3VzdG9tTmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21SZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgIHBhdGg6ICdhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9MCcsXG4gICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgY3VzdG9tRGF0YSA9IGF3YWl0IGN1c3RvbVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgY3VzdG9tQWdlbnRzID0gY3VzdG9tRGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICBjdXN0b21IYXNNb3JlID0gY3VzdG9tRGF0YS5oYXNfbW9yZSB8fCBmYWxzZVxuICAgICAgICAgICAgY3VzdG9tTmV4dE9mZnNldCA9IGN1c3RvbURhdGEubmV4dF9vZmZzZXQgfHwgbnVsbFxuICAgICAgICAgIH0gY2F0Y2ggKGN1c3RvbUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY3VzdG9tQWdlbnRzIChjdXN0b21BZ2VudHMgcXVlZGEgY29tbyBhcnJheSB2YWPDrW8pXG4gICAgICAgICAgICAgIC8vIEVzdG8gcHVlZGUgb2N1cnJpciBlbiBkb3MgZXNjZW5hcmlvczpcbiAgICAgICAgICAgICAgLy8gMS4gVXN1YXJpbyBOTyBlcyBkZSB1c2VyUm9sZXNEaXNhYmxlZDogdGVuZHLDoSBzb2xvIGxvcyBjbG9uZUFnZW50cyAoc2kgbGEgcXVlcnkgY2xvbmUgZnVlIGV4aXRvc2EpXG4gICAgICAgICAgICAgIC8vIDIuIFVzdWFyaW8gU8ONIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiBlbCBsaXN0YWRvIHF1ZWRhcsOhIHZhY8OtbyAocG9ycXVlIG5vIGhheSBjbG9uZUFnZW50cylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IGN1c3RvbUVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ29tYmluYXI6IGFnZW50ZXMgY2xvbmUgcHJpbWVybywgbHVlZ28gbG9zIGN1c3RvbSAoc2kgZXhpc3RlbilcbiAgICAgICAgICAvLyBTaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHJvbCBkZXNoYWJpbGl0YWRvLCBubyBpbmNsdWlyIGNsb25lQWdlbnRzXG4gICAgICAgICAgaWYgKHVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZCkpIHtcbiAgICAgICAgICAgIC8vIFVzdWFyaW8gZGUgcm9sZXMgZGlzYWJsZWQ6IHNvbG8gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAvLyBTaSBjdXN0b21BZ2VudHMgZXN0w6EgdmFjw61vIChwb3IgNDAzKSwgYWdlbnRQYXJzZWQgc2Vyw6EgW10geSBzZSBtb3N0cmFyw6EgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBjdXN0b21BZ2VudHNcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBub3JtYWw6IGNsb25lQWdlbnRzICsgY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAvLyBTaSBjdXN0b21BZ2VudHMgZXN0w6EgdmFjw61vIChwb3IgNDAzKSBwZXJvIGhheSBjbG9uZUFnZW50cywgYWdlbnRQYXJzZWQgdGVuZHLDoSBsb3MgY2xvbmVzXG4gICAgICAgICAgICAvLyBTaSBubyBoYXkgY2xvbmVBZ2VudHMgbmkgY3VzdG9tQWdlbnRzLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGNsb25lQWdlbnRzLmxlbmd0aCA/IFsuLi5jbG9uZUFnZW50cywgLi4uY3VzdG9tQWdlbnRzXSA6IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICBoYXNNb3JlID0gY3VzdG9tSGFzTW9yZVxuICAgICAgICAgIG5leHRPZmZzZXQgPSBjdXN0b21OZXh0T2Zmc2V0XG5cbiAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICBoYXNfbW9yZTogaGFzTW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBuZXh0T2Zmc2V0LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBTaSBubyBoYXkgYWdlbnRlcyBkZXNwdcOpcyBkZSBwcm9jZXNhciBsYXMgcXVlcmllcywgbGltcGlhciBlbCBlcnJvclxuICAgICAgICAgIC8vIHBhcmEgcXVlIGhhc05vQWdlbnRzIHB1ZWRhIHNlciB0cnVlIHkgc2UgbXVlc3RyZSBlbCBlbXB0eVN0YXRlXG4gICAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIHByb2plY3QgbyBoZWFkZXIgc2luIG11bHRpQWdlbnRzXG4gICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgICAgICBpZiAoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICdhY3Rpb25zVGFza3MnKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnY2xvbmUnKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsYW5nJywgaTE4bi5sYW5ndWFnZSlcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICFpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgICAvLyBIZWFkZXIgc2luIG11bHRpQWdlbnRzOiBzb2xvIGxpc3RhciBhZ2VudGVzIGNsb25lIChNYWlhKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCAnMCcpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVBhcmFtcy50b1N0cmluZygpXG4gICAgICAgICAgY29uc3QgcGF0aCA9IGBhZ2VudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgLy8gZGF0YS5kYXRhIHlhIGNvbnRpZW5lIHRvZG9zIGxvcyBhZ2VudGVzIGNsb25lIGRlIGxhIHF1ZXJ5IGFnZW50X3R5cGU9Y2xvbmVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gZGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgICAgaGFzTW9yZSA9IGRhdGEuaGFzX21vcmVcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBkYXRhLm5leHRfb2Zmc2V0XG5cbiAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGNhdGNoIChyZXNwb25zZUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBlc3RhYmxlY2VyIGFnZW50ZXMgdmFjw61vcyB5IGNvbnRpbnVhclxuICAgICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgICAgICAgIGhhc19tb3JlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLy8gTGltcGlhciBlbCBlcnJvciBwYXJhIHF1ZSBoYXNOb0FnZW50cyBwdWVkYSBzZXIgdHJ1ZSB5IHNlIG11ZXN0cmUgZWwgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VFcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEzDs2dpY2EgZGUgc2VsZWN0IGFnZW50IC0gU29sbyBzZWxlY2Npb25hciBzaSBoYXkgYWdlbnRlcyBkaXNwb25pYmxlc1xuICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkLmZpbmQoKGFnZW50VG9SZXF1ZXN0OiBBZ2VudCkgPT4gYWdlbnRUb1JlcXVlc3QuaWQgPT09IGFnZW50VG9TZWxlY3QuaWQpKSB7XG4gICAgICAgICAgICBpZiAobGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudD8uaWQgIT09IGFnZW50VG9TZWxlY3QuaWQpIHtcbiAgICAgICAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50VG9TZWxlY3RcbiAgICAgICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRUb1NlbGVjdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGFnZW50UGFyc2VkPy5bMF0gJiYgKCFhZ2VudCB8fCAhYWdlbnRQYXJzZWQuZmluZCgoYTogQWdlbnQpID0+IGEuaWQgPT09IGFnZW50LmlkKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIXVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlICE9PSAnY2xvbmUnKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIXVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlICE9PSAnY2xvbmUnKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBdmFpbGFibGVBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEF2YWlsYWJsZUFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEF2YWlsYWJsZUFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEF2YWlsYWJsZUFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QXZhaWxhYmxlQWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnKVxuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWlzUmVmcmVzaGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgbG9hZGluZ11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNb3JlQWdlbnRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICAgIC8vIENhcmdhciBtw6FzOiBlbiBoZWFkZXIgc2llbXByZTsgZW4gcHJvamVjdCBzb2xvIHNpIGlzTXVsdGlBZ2VudHMgKHBvcnF1ZSBzb2xvIGVudG9uY2VzIGhheSBwYWdpbmFjacOzbiBkZSBjdXN0b20pXG4gICAgY29uc3QgY2FuTG9hZE1vcmUgPSBzZWN0aW9uID09PSAnaGVhZGVyJyB8fCBpc011bHRpQWdlbnRzXG4gICAgaWYgKCFjYW5Mb2FkTW9yZSB8fCAhYWdlbnRzLmhhc19tb3JlIHx8ICFhZ2VudHMubmV4dF9vZmZzZXQgfHwgbG9hZGluZ01vcmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmdNb3JlKHRydWUpXG4gICAgc2V0RXJyb3IobnVsbClcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcGF0aDogc3RyaW5nXG5cbiAgICAgIC8vIFNpIGVzIG11bHRpQWdlbnRzLCBzb2xvIGNhcmdhciBhZ2VudHMgY3VzdG9tIChNYWlhIHlhIGVzdMOhIGNhcmdhZG8pXG4gICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICBwYXRoID0gYGFnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0ke2FnZW50cy5uZXh0X29mZnNldH1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaSBubyBlcyBtdWx0aUFnZW50cywgY2FyZ2FyIG3DoXMgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsYW5nJywgaTE4bi5sYW5ndWFnZSlcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCBhZ2VudHMubmV4dF9vZmZzZXQudG9TdHJpbmcoKSlcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWBcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gICAgICAvLyBBY3VtdWxhciBhZ2VudGVzLCBleGNsdXllbmRvIGR1cGxpY2Fkb3NcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgbXVsdGlBZ2VudHM6IHNlcGFyYXIgY2xvbmUgeSBjdXN0b21cbiAgICAgICAgICAvLyBNYW50ZW5lciB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBleGlzdGVudGVzIGFsIGluaWNpb1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ2xvbmVBZ2VudHMgPSBwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG5cbiAgICAgICAgICAvLyBPYnRlbmVyIElEcyBleGlzdGVudGVzIChleGNsdXllbmRvIGNsb25lcylcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuXG4gICAgICAgICAgLy8gRmlsdHJhciBudWV2b3MgYWdlbnRzIHF1ZSBubyBlc3TDqW4geWEgZW4gbGEgbGlzdGEgKHkgcXVlIG5vIHNlYW4gY2xvbmUpXG4gICAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gZGF0YS5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnICYmICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuXG4gICAgICAgICAgLy8gQ29uc3RydWlyIGVsIG51ZXZvIGFycmF5OiBjbG9uZXMgcHJpbWVybywgbHVlZ28gbG9zIGFnZW50cyBleGlzdGVudGVzIHF1ZSBubyBzZWFuIGNsb25lLCBsdWVnbyBsb3MgbnVldm9zXG4gICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGV4aXN0aW5nQ2xvbmVBZ2VudHMubGVuZ3RoXG4gICAgICAgICAgICA/IFsuLi5leGlzdGluZ0Nsb25lQWdlbnRzLCAuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLCAuLi5uZXdBZ2VudHNdXG4gICAgICAgICAgICA6IFsuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEzDs2dpY2EgcGFyYSAhaXNNdWx0aUFnZW50czogdG9kb3MgbG9zIGFnZW50ZXMgc29uIGNsb25lLCBzaW1wbGVtZW50ZSBhZ3JlZ2FyIGV2aXRhbmRvIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSAoZGF0YS5kYXRhIHx8IFtdKS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgaGFzX21vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5sb2FkTW9yZUFnZW50cy5lcnJvcicpKVxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgYWdlbnRzLmhhc19tb3JlLCBhZ2VudHMubmV4dF9vZmZzZXQsIGxvYWRpbmdNb3JlLCBpMThuLmxhbmd1YWdlXSlcblxuICBjb25zdCBoYXNOb0FnZW50cyA9ICFsb2FkaW5nICYmICFsb2FkaW5nTW9yZSAmJiAhZXJyb3IgJiYgYWdlbnRzLmRhdGEubGVuZ3RoID09PSAwXG5cbiAgcmV0dXJuIHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcixcbiAgICBoYXNOb0FnZW50cyxcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICAgIHNvcnRBZ2VudHNMaXN0LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxRQUFR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
@@ -7,15 +7,14 @@ import { fetchMaia } from '../client';
7
7
  export var getChatMessages = /*#__PURE__*/function () {
8
8
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
9
9
  var _data$data;
10
- var chatId, _ref$offset, offset, currentUser, cancelledText, lang, langParam, response, data, agentIsDeleted, firstMessage, agentNoPermission, projectId, projectName, projectDeleted, clientId, clientName, normalizeId, i, _message$project_meta, _message$client_metad, _message$client_metad2, message, rawProjectId, normalized, rawClientId, _normalized;
10
+ var chatId, _ref$offset, offset, currentUser, cancelledText, response, data, agentIsDeleted, firstMessage, agentNoPermission, projectId, projectName, projectDeleted, normalizeProjectId, i, _message$project_meta, message, rawId, normalized;
11
11
  return _regeneratorRuntime.wrap(function (_context) {
12
12
  while (1) switch (_context.prev = _context.next) {
13
13
  case 0:
14
- chatId = _ref.chatId, _ref$offset = _ref.offset, offset = _ref$offset === void 0 ? 0 : _ref$offset, currentUser = _ref.currentUser, cancelledText = _ref.cancelledText, lang = _ref.lang;
15
- langParam = lang ? "&lang=".concat(lang) : '';
14
+ chatId = _ref.chatId, _ref$offset = _ref.offset, offset = _ref$offset === void 0 ? 0 : _ref$offset, currentUser = _ref.currentUser, cancelledText = _ref.cancelledText;
16
15
  _context.next = 1;
17
16
  return fetchMaia({
18
- path: "sessions/".concat(chatId, "?limit=20&offset=").concat(offset).concat(langParam)
17
+ path: "sessions/".concat(chatId, "?limit=20&offset=").concat(offset)
19
18
  });
20
19
  case 1:
21
20
  response = _context.sent;
@@ -32,9 +31,10 @@ export var getChatMessages = /*#__PURE__*/function () {
32
31
  name: firstMessage.agent_name,
33
32
  emoji: firstMessage.emoji || '🤖',
34
33
  type: firstMessage.agent_type || 'custom'
35
- } : undefined; // Buscar project_metadata y client_metadata en todos los mensajes, desde el más reciente hacia atrás
36
- // project_metadata.id / client_metadata.id pueden venir como string o number desde el backend
37
- normalizeId = function normalizeId(id) {
34
+ } : undefined; // Buscar project_metadata en todos los mensajes, desde el más reciente hacia atrás
35
+ // Esto asegura que encontremos el contexto del proyecto incluso si el último mensaje no lo tiene
36
+ // project_metadata.id puede venir como string o number desde el backend; normalizamos a number
37
+ normalizeProjectId = function normalizeProjectId(id) {
38
38
  if (id == null) return undefined;
39
39
  var num = typeof id === 'number' ? id : parseInt(String(id), 10);
40
40
  return Number.isNaN(num) ? undefined : num;
@@ -42,16 +42,16 @@ export var getChatMessages = /*#__PURE__*/function () {
42
42
  i = data.data.length - 1;
43
43
  case 3:
44
44
  if (!(i >= 0)) {
45
- _context.next = 6;
45
+ _context.next = 5;
46
46
  break;
47
47
  }
48
48
  message = data.data[i];
49
- rawProjectId = message === null || message === void 0 || (_message$project_meta = message.project_metadata) === null || _message$project_meta === void 0 ? void 0 : _message$project_meta.id;
50
- if (!(rawProjectId != null)) {
49
+ rawId = message === null || message === void 0 || (_message$project_meta = message.project_metadata) === null || _message$project_meta === void 0 ? void 0 : _message$project_meta.id;
50
+ if (!(rawId != null)) {
51
51
  _context.next = 4;
52
52
  break;
53
53
  }
54
- normalized = normalizeId(rawProjectId);
54
+ normalized = normalizeProjectId(rawId);
55
55
  if (normalized !== undefined) {
56
56
  projectId = normalized;
57
57
  projectName = message.project_metadata.name;
@@ -61,24 +61,12 @@ export var getChatMessages = /*#__PURE__*/function () {
61
61
  };
62
62
  }
63
63
  }
64
- return _context.abrupt("continue", 6);
64
+ return _context.abrupt("continue", 5);
65
65
  case 4:
66
- rawClientId = message === null || message === void 0 || (_message$client_metad = message.client_metadata) === null || _message$client_metad === void 0 ? void 0 : _message$client_metad.id;
67
- if (!(rawClientId != null && message !== null && message !== void 0 && (_message$client_metad2 = message.client_metadata) !== null && _message$client_metad2 !== void 0 && _message$client_metad2.name)) {
68
- _context.next = 5;
69
- break;
70
- }
71
- _normalized = normalizeId(rawClientId);
72
- if (_normalized !== undefined) {
73
- clientId = _normalized;
74
- clientName = message.client_metadata.name;
75
- }
76
- return _context.abrupt("continue", 6);
77
- case 5:
78
66
  i -= 1;
79
67
  _context.next = 3;
80
68
  break;
81
- case 6:
69
+ case 5:
82
70
  return _context.abrupt("return", {
83
71
  items: mapChatMessages(data.data, currentUser, cancelledText),
84
72
  nextItem: data.next_offset,
@@ -94,11 +82,9 @@ export var getChatMessages = /*#__PURE__*/function () {
94
82
  hasAgentPermission: data.has_agent_permission,
95
83
  projectId: projectId,
96
84
  projectName: projectName,
97
- projectDeleted: projectDeleted,
98
- clientId: clientId,
99
- clientName: clientName
85
+ projectDeleted: projectDeleted
100
86
  });
101
- case 7:
87
+ case 6:
102
88
  case "end":
103
89
  return _context.stop();
104
90
  }
@@ -108,4 +94,4 @@ export var getChatMessages = /*#__PURE__*/function () {
108
94
  return _ref2.apply(this, arguments);
109
95
  };
110
96
  }();
111
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDaGF0TWVzc2FnZXMiLCJmZXRjaE1haWEiLCJnZXRDaGF0TWVzc2FnZXMiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZiIsIl9kYXRhJGRhdGEiLCJjaGF0SWQiLCJfcmVmJG9mZnNldCIsIm9mZnNldCIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsImxhbmciLCJsYW5nUGFyYW0iLCJyZXNwb25zZSIsImRhdGEiLCJhZ2VudElzRGVsZXRlZCIsImZpcnN0TWVzc2FnZSIsImFnZW50Tm9QZXJtaXNzaW9uIiwicHJvamVjdElkIiwicHJvamVjdE5hbWUiLCJwcm9qZWN0RGVsZXRlZCIsImNsaWVudElkIiwiY2xpZW50TmFtZSIsIm5vcm1hbGl6ZUlkIiwiaSIsIl9tZXNzYWdlJHByb2plY3RfbWV0YSIsIl9tZXNzYWdlJGNsaWVudF9tZXRhZCIsIl9tZXNzYWdlJGNsaWVudF9tZXRhZDIiLCJtZXNzYWdlIiwicmF3UHJvamVjdElkIiwibm9ybWFsaXplZCIsInJhd0NsaWVudElkIiwiX25vcm1hbGl6ZWQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImNvbmNhdCIsInBhdGgiLCJzZW50IiwianNvbiIsImZpbmQiLCJpdGVtIiwiYWdlbnRfaXNfZGVsZXRlZCIsImFnZW50X2lkIiwiYWdlbnRfbmFtZSIsImlkIiwibmFtZSIsImVtb2ppIiwidHlwZSIsImFnZW50X3R5cGUiLCJ1bmRlZmluZWQiLCJudW0iLCJwYXJzZUludCIsIlN0cmluZyIsIk51bWJlciIsImlzTmFOIiwibGVuZ3RoIiwicHJvamVjdF9tZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJhYnJ1cHQiLCJjbGllbnRfbWV0YWRhdGEiLCJpdGVtcyIsIm5leHRJdGVtIiwibmV4dF9vZmZzZXQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJhZ2VudERlbGV0ZWQiLCJkZWxldGVkQXQiLCJhZ2VudF9kZWxldGVkX2F0IiwiaGFzQWdlbnRBY2Nlc3MiLCJoYXNfYWdlbnRfYWNjZXNzIiwiaGFzQWdlbnRQZXJtaXNzaW9uIiwiaGFzX2FnZW50X3Blcm1pc3Npb24iLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0NoYXRzL2dldENoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IG1hcENoYXRNZXNzYWdlcyB9IGZyb20gJy4uLy4uL3V0aWxzL21hcENoYXRNZXNzYWdlcydcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcblxudHlwZSBHZXRDaGF0TWVzc2FnZXNQYXJhbXMgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIG9mZnNldD86IG51bWJlclxuICBjdXJyZW50VXNlcjogQ2hhdE1lc3NhZ2VVc2VyXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbiAgbGFuZz86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q2hhdE1lc3NhZ2VzID0gYXN5bmMgKHtcbiAgY2hhdElkLFxuICBvZmZzZXQgPSAwLFxuICBjdXJyZW50VXNlcixcbiAgY2FuY2VsbGVkVGV4dCxcbiAgbGFuZyxcbn06IEdldENoYXRNZXNzYWdlc1BhcmFtcyk6IFByb21pc2U8e1xuICBpdGVtczogQ2hhdE1lc3NhZ2VbXVxuICBuZXh0SXRlbTogbnVtYmVyXG4gIGhhc01vcmU6IGJvb2xlYW5cbiAgYWdlbnREZWxldGVkPzoge1xuICAgIGlkOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBlbW9qaTogc3RyaW5nXG4gICAgZGVsZXRlZEF0OiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgYWdlbnROb1Blcm1pc3Npb24/OiB7XG4gICAgaWQ6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIGVtb2ppOiBzdHJpbmdcbiAgICB0eXBlOiBzdHJpbmdcbiAgfVxuICBoYXNBZ2VudEFjY2Vzcz86IGJvb2xlYW5cbiAgaGFzQWdlbnRQZXJtaXNzaW9uPzogYm9vbGVhblxuICBwcm9qZWN0SWQ/OiBudW1iZXJcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgcHJvamVjdERlbGV0ZWQ/OiB7IG5hbWU6IHN0cmluZyB9XG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbn0+ID0+IHtcbiAgY29uc3QgbGFuZ1BhcmFtID0gbGFuZyA/IGAmbGFuZz0ke2xhbmd9YCA6ICcnXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgc2Vzc2lvbnMvJHtjaGF0SWR9P2xpbWl0PTIwJm9mZnNldD0ke29mZnNldH0ke2xhbmdQYXJhbX1gLFxuICB9KVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICBjb25zdCBhZ2VudElzRGVsZXRlZCA9IGRhdGEuZGF0YS5maW5kKGl0ZW0gPT4gISFpdGVtPy5hZ2VudF9pc19kZWxldGVkKVxuXG4gIC8vIEV4dHJhZXIgZGF0YSBkZWwgYWdlbnRlIGRlbCBwcmltZXIgbWVuc2FqZSBwYXJhIGNhc29zIHNpbiBwZXJtaXNvc1xuICBjb25zdCBmaXJzdE1lc3NhZ2UgPSBkYXRhLmRhdGE/LlswXVxuICBjb25zdCBhZ2VudE5vUGVybWlzc2lvbiA9XG4gICAgZmlyc3RNZXNzYWdlPy5hZ2VudF9pZCAmJiBmaXJzdE1lc3NhZ2U/LmFnZW50X25hbWVcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBmaXJzdE1lc3NhZ2UuYWdlbnRfaWQsXG4gICAgICAgICAgbmFtZTogZmlyc3RNZXNzYWdlLmFnZW50X25hbWUsXG4gICAgICAgICAgZW1vamk6IGZpcnN0TWVzc2FnZS5lbW9qaSB8fCAn8J+klicsXG4gICAgICAgICAgdHlwZTogZmlyc3RNZXNzYWdlLmFnZW50X3R5cGUgfHwgJ2N1c3RvbScsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG5cbiAgLy8gQnVzY2FyIHByb2plY3RfbWV0YWRhdGEgeSBjbGllbnRfbWV0YWRhdGEgZW4gdG9kb3MgbG9zIG1lbnNhamVzLCBkZXNkZSBlbCBtw6FzIHJlY2llbnRlIGhhY2lhIGF0csOhc1xuICAvLyBwcm9qZWN0X21ldGFkYXRhLmlkIC8gY2xpZW50X21ldGFkYXRhLmlkIHB1ZWRlbiB2ZW5pciBjb21vIHN0cmluZyBvIG51bWJlciBkZXNkZSBlbCBiYWNrZW5kXG4gIGxldCBwcm9qZWN0SWQ6IG51bWJlciB8IHVuZGVmaW5lZFxuICBsZXQgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBsZXQgcHJvamVjdERlbGV0ZWQ6IHsgbmFtZTogc3RyaW5nIH0gfCB1bmRlZmluZWRcbiAgbGV0IGNsaWVudElkOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgbGV0IGNsaWVudE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0IG5vcm1hbGl6ZUlkID0gKGlkOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChpZCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgY29uc3QgbnVtID0gdHlwZW9mIGlkID09PSAnbnVtYmVyJyA/IGlkIDogcGFyc2VJbnQoU3RyaW5nKGlkKSwgMTApXG4gICAgcmV0dXJuIE51bWJlci5pc05hTihudW0pID8gdW5kZWZpbmVkIDogbnVtXG4gIH1cblxuICBmb3IgKGxldCBpID0gZGF0YS5kYXRhLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGRhdGEuZGF0YVtpXVxuICAgIGNvbnN0IHJhd1Byb2plY3RJZCA9IG1lc3NhZ2U/LnByb2plY3RfbWV0YWRhdGE/LmlkXG4gICAgaWYgKHJhd1Byb2plY3RJZCAhPSBudWxsKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSWQocmF3UHJvamVjdElkKVxuICAgICAgaWYgKG5vcm1hbGl6ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9qZWN0SWQgPSBub3JtYWxpemVkXG4gICAgICAgIHByb2plY3ROYW1lID0gbWVzc2FnZS5wcm9qZWN0X21ldGFkYXRhIS5uYW1lXG4gICAgICAgIGlmIChtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLmlzX2RlbGV0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgICBwcm9qZWN0RGVsZXRlZCA9IHsgbmFtZTogbWVzc2FnZS5wcm9qZWN0X21ldGFkYXRhIS5uYW1lIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgcmF3Q2xpZW50SWQgPSBtZXNzYWdlPy5jbGllbnRfbWV0YWRhdGE/LmlkXG4gICAgaWYgKHJhd0NsaWVudElkICE9IG51bGwgJiYgbWVzc2FnZT8uY2xpZW50X21ldGFkYXRhPy5uYW1lKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSWQocmF3Q2xpZW50SWQpXG4gICAgICBpZiAobm9ybWFsaXplZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNsaWVudElkID0gbm9ybWFsaXplZFxuICAgICAgICBjbGllbnROYW1lID0gbWVzc2FnZS5jbGllbnRfbWV0YWRhdGEubmFtZVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGl0ZW1zOiBtYXBDaGF0TWVzc2FnZXMoZGF0YS5kYXRhLCBjdXJyZW50VXNlciwgY2FuY2VsbGVkVGV4dCksXG4gICAgbmV4dEl0ZW06IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgaGFzTW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICBhZ2VudERlbGV0ZWQ6IGFnZW50SXNEZWxldGVkPy5hZ2VudF9pc19kZWxldGVkXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogYWdlbnRJc0RlbGV0ZWQuYWdlbnRfaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnRJc0RlbGV0ZWQuYWdlbnRfbmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnRJc0RlbGV0ZWQuZW1vamksXG4gICAgICAgICAgZGVsZXRlZEF0OiBhZ2VudElzRGVsZXRlZC5hZ2VudF9kZWxldGVkX2F0LFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICBoYXNBZ2VudEFjY2VzczogZGF0YS5oYXNfYWdlbnRfYWNjZXNzLFxuICAgIGhhc0FnZW50UGVybWlzc2lvbjogZGF0YS5oYXNfYWdlbnRfcGVybWlzc2lvbixcbiAgICBwcm9qZWN0SWQsXG4gICAgcHJvamVjdE5hbWUsXG4gICAgcHJvamVjdERlbGV0ZWQsXG4gICAgY2xpZW50SWQsXG4gICAgY2xpZW50TmFtZSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBLFNBQVNBLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFVckMsT0FBTyxJQUFNQyxlQUFlO0VBQUEsSUFBQUMsS0FBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFBQUMsSUFBQTtJQUFBLElBQUFDLFVBQUE7SUFBQSxJQUFBQyxNQUFBLEVBQUFDLFdBQUEsRUFBQUMsTUFBQSxFQUFBQyxXQUFBLEVBQUFDLGFBQUEsRUFBQUMsSUFBQSxFQUFBQyxTQUFBLEVBQUFDLFFBQUEsRUFBQUMsSUFBQSxFQUFBQyxjQUFBLEVBQUFDLFlBQUEsRUFBQUMsaUJBQUEsRUFBQUMsU0FBQSxFQUFBQyxXQUFBLEVBQUFDLGNBQUEsRUFBQUMsUUFBQSxFQUFBQyxVQUFBLEVBQUFDLFdBQUEsRUFBQUMsQ0FBQSxFQUFBQyxxQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxPQUFBLEVB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
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDaGF0TWVzc2FnZXMiLCJmZXRjaE1haWEiLCJnZXRDaGF0TWVzc2FnZXMiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZiIsIl9kYXRhJGRhdGEiLCJjaGF0SWQiLCJfcmVmJG9mZnNldCIsIm9mZnNldCIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsInJlc3BvbnNlIiwiZGF0YSIsImFnZW50SXNEZWxldGVkIiwiZmlyc3RNZXNzYWdlIiwiYWdlbnROb1Blcm1pc3Npb24iLCJwcm9qZWN0SWQiLCJwcm9qZWN0TmFtZSIsInByb2plY3REZWxldGVkIiwibm9ybWFsaXplUHJvamVjdElkIiwiaSIsIl9tZXNzYWdlJHByb2plY3RfbWV0YSIsIm1lc3NhZ2UiLCJyYXdJZCIsIm5vcm1hbGl6ZWQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJjb25jYXQiLCJzZW50IiwianNvbiIsImZpbmQiLCJpdGVtIiwiYWdlbnRfaXNfZGVsZXRlZCIsImFnZW50X2lkIiwiYWdlbnRfbmFtZSIsImlkIiwibmFtZSIsImVtb2ppIiwidHlwZSIsImFnZW50X3R5cGUiLCJ1bmRlZmluZWQiLCJudW0iLCJwYXJzZUludCIsIlN0cmluZyIsIk51bWJlciIsImlzTmFOIiwibGVuZ3RoIiwicHJvamVjdF9tZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJhYnJ1cHQiLCJpdGVtcyIsIm5leHRJdGVtIiwibmV4dF9vZmZzZXQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJhZ2VudERlbGV0ZWQiLCJkZWxldGVkQXQiLCJhZ2VudF9kZWxldGVkX2F0IiwiaGFzQWdlbnRBY2Nlc3MiLCJoYXNfYWdlbnRfYWNjZXNzIiwiaGFzQWdlbnRQZXJtaXNzaW9uIiwiaGFzX2FnZW50X3Blcm1pc3Npb24iLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0NoYXRzL2dldENoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IG1hcENoYXRNZXNzYWdlcyB9IGZyb20gJy4uLy4uL3V0aWxzL21hcENoYXRNZXNzYWdlcydcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcblxudHlwZSBHZXRDaGF0TWVzc2FnZXNQYXJhbXMgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIG9mZnNldD86IG51bWJlclxuICBjdXJyZW50VXNlcjogQ2hhdE1lc3NhZ2VVc2VyXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGdldENoYXRNZXNzYWdlcyA9IGFzeW5jICh7XG4gIGNoYXRJZCxcbiAgb2Zmc2V0ID0gMCxcbiAgY3VycmVudFVzZXIsXG4gIGNhbmNlbGxlZFRleHQsXG59OiBHZXRDaGF0TWVzc2FnZXNQYXJhbXMpOiBQcm9taXNlPHtcbiAgaXRlbXM6IENoYXRNZXNzYWdlW11cbiAgbmV4dEl0ZW06IG51bWJlclxuICBoYXNNb3JlOiBib29sZWFuXG4gIGFnZW50RGVsZXRlZD86IHtcbiAgICBpZDogc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gICAgZW1vamk6IHN0cmluZ1xuICAgIGRlbGV0ZWRBdDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIGFnZW50Tm9QZXJtaXNzaW9uPzoge1xuICAgIGlkOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBlbW9qaTogc3RyaW5nXG4gICAgdHlwZTogc3RyaW5nXG4gIH1cbiAgaGFzQWdlbnRBY2Nlc3M/OiBib29sZWFuXG4gIGhhc0FnZW50UGVybWlzc2lvbj86IGJvb2xlYW5cbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIHByb2plY3REZWxldGVkPzogeyBuYW1lOiBzdHJpbmcgfVxufT4gPT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYHNlc3Npb25zLyR7Y2hhdElkfT9saW1pdD0yMCZvZmZzZXQ9JHtvZmZzZXR9YCxcbiAgfSlcblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgY29uc3QgYWdlbnRJc0RlbGV0ZWQgPSBkYXRhLmRhdGEuZmluZChpdGVtID0+ICEhaXRlbT8uYWdlbnRfaXNfZGVsZXRlZClcblxuICAvLyBFeHRyYWVyIGRhdGEgZGVsIGFnZW50ZSBkZWwgcHJpbWVyIG1lbnNhamUgcGFyYSBjYXNvcyBzaW4gcGVybWlzb3NcbiAgY29uc3QgZmlyc3RNZXNzYWdlID0gZGF0YS5kYXRhPy5bMF1cbiAgY29uc3QgYWdlbnROb1Blcm1pc3Npb24gPVxuICAgIGZpcnN0TWVzc2FnZT8uYWdlbnRfaWQgJiYgZmlyc3RNZXNzYWdlPy5hZ2VudF9uYW1lXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogZmlyc3RNZXNzYWdlLmFnZW50X2lkLFxuICAgICAgICAgIG5hbWU6IGZpcnN0TWVzc2FnZS5hZ2VudF9uYW1lLFxuICAgICAgICAgIGVtb2ppOiBmaXJzdE1lc3NhZ2UuZW1vamkgfHwgJ/CfpJYnLFxuICAgICAgICAgIHR5cGU6IGZpcnN0TWVzc2FnZS5hZ2VudF90eXBlIHx8ICdjdXN0b20nLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuXG4gIC8vIEJ1c2NhciBwcm9qZWN0X21ldGFkYXRhIGVuIHRvZG9zIGxvcyBtZW5zYWplcywgZGVzZGUgZWwgbcOhcyByZWNpZW50ZSBoYWNpYSBhdHLDoXNcbiAgLy8gRXN0byBhc2VndXJhIHF1ZSBlbmNvbnRyZW1vcyBlbCBjb250ZXh0byBkZWwgcHJveWVjdG8gaW5jbHVzbyBzaSBlbCDDumx0aW1vIG1lbnNhamUgbm8gbG8gdGllbmVcbiAgLy8gcHJvamVjdF9tZXRhZGF0YS5pZCBwdWVkZSB2ZW5pciBjb21vIHN0cmluZyBvIG51bWJlciBkZXNkZSBlbCBiYWNrZW5kOyBub3JtYWxpemFtb3MgYSBudW1iZXJcbiAgbGV0IHByb2plY3RJZDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGxldCBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGxldCBwcm9qZWN0RGVsZXRlZDogeyBuYW1lOiBzdHJpbmcgfSB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0IG5vcm1hbGl6ZVByb2plY3RJZCA9IChpZDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoaWQgPT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IG51bSA9IHR5cGVvZiBpZCA9PT0gJ251bWJlcicgPyBpZCA6IHBhcnNlSW50KFN0cmluZyhpZCksIDEwKVxuICAgIHJldHVybiBOdW1iZXIuaXNOYU4obnVtKSA/IHVuZGVmaW5lZCA6IG51bVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IGRhdGEuZGF0YS5sZW5ndGggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhLmRhdGFbaV1cbiAgICBjb25zdCByYXdJZCA9IG1lc3NhZ2U/LnByb2plY3RfbWV0YWRhdGE/LmlkXG4gICAgaWYgKHJhd0lkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVQcm9qZWN0SWQocmF3SWQpXG4gICAgICBpZiAobm9ybWFsaXplZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb2plY3RJZCA9IG5vcm1hbGl6ZWRcbiAgICAgICAgcHJvamVjdE5hbWUgPSBtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLm5hbWVcbiAgICAgICAgaWYgKG1lc3NhZ2UucHJvamVjdF9tZXRhZGF0YSEuaXNfZGVsZXRlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHByb2plY3REZWxldGVkID0geyBuYW1lOiBtZXNzYWdlLnByb2plY3RfbWV0YWRhdGEhLm5hbWUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaXRlbXM6IG1hcENoYXRNZXNzYWdlcyhkYXRhLmRhdGEsIGN1cnJlbnRVc2VyLCBjYW5jZWxsZWRUZXh0KSxcbiAgICBuZXh0SXRlbTogZGF0YS5uZXh0X29mZnNldCxcbiAgICBoYXNNb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgIGFnZW50RGVsZXRlZDogYWdlbnRJc0RlbGV0ZWQ/LmFnZW50X2lzX2RlbGV0ZWRcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBhZ2VudElzRGVsZXRlZC5hZ2VudF9pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudElzRGVsZXRlZC5hZ2VudF9uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudElzRGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICBkZWxldGVkQXQ6IGFnZW50SXNEZWxldGVkLmFnZW50X2RlbGV0ZWRfYXQsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgIGhhc0FnZW50QWNjZXNzOiBkYXRhLmhhc19hZ2VudF9hY2Nlc3MsXG4gICAgaGFzQWdlbnRQZXJtaXNzaW9uOiBkYXRhLmhhc19hZ2VudF9wZXJtaXNzaW9uLFxuICAgIHByb2plY3RJZCxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBwcm9qZWN0RGVsZXRlZCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBLFNBQVNBLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFTckMsT0FBTyxJQUFNQyxlQUFlO0VBQUEsSUFBQUMsS0FBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFBQUMsSUFB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