@projectcor/maia-components 2.11.10 → 2.11.11-1

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 (70) hide show
  1. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +69 -0
  2. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  3. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  4. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  5. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  6. package/lib/components/atoms/Chip/Chip.js +4 -3
  7. package/lib/components/atoms/Chip/styles.js +3 -3
  8. package/lib/components/atoms/EntitySelector/EntitySelector.js +181 -0
  9. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +57 -0
  10. package/lib/components/atoms/EntitySelector/index.js +2 -0
  11. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +5 -3
  12. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +81 -58
  13. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +67 -7
  14. package/lib/components/atoms/MAIAInput/MAIAInput.js +363 -18
  15. package/lib/components/atoms/MAIAInput/styles.js +99 -33
  16. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +56 -193
  17. package/lib/components/atoms/index.js +2 -1
  18. package/lib/components/index.js +2 -1
  19. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +56 -0
  20. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  21. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -1
  22. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +2 -3
  23. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +1 -1
  24. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +29 -11
  25. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +6 -3
  26. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
  27. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  28. package/lib/components/molecules/ChatFooter/ChatFooter.js +30 -10
  29. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +156 -0
  30. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  31. package/lib/components/molecules/ChatFooter/styles.js +5 -1
  32. package/lib/components/organisms/ChatAI/ChatAI.js +11 -3
  33. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +26 -0
  34. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  35. package/lib/constants/config.js +3 -2
  36. package/lib/context/global-context.js +1 -1
  37. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  38. package/lib/hooks/useChatManager/useChatManager.js +62 -40
  39. package/lib/hooks/useChatMessages/useChatMessages.js +72 -38
  40. package/lib/hooks/useFrequentlyAskedQuestions.js +68 -53
  41. package/lib/hooks/useFrequentlyUsedActions.js +73 -0
  42. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -4
  43. package/lib/hooks/useProjectSummaryConfig.js +35 -7
  44. package/lib/hooks/useRecentClientsSearch.js +176 -0
  45. package/lib/lang/br/index.js +36 -3
  46. package/lib/lang/en/index.js +36 -3
  47. package/lib/lang/es/index.js +36 -3
  48. package/lib/lang/fr/index.js +21 -2
  49. package/lib/services/cor/getProjectTasks.js +71 -0
  50. package/lib/services/maia/Agents/getAgents.js +6 -4
  51. package/lib/services/maia/Chats/getChatMessages.js +27 -14
  52. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  53. package/lib/services/maia/FrequentlyUsedActions/getFrequentlyUsedActions.js +48 -0
  54. package/lib/services/maia/FrequentlyUsedActions/index.js +5 -0
  55. package/lib/services/maia/Orchestrator/orchestrator.js +6 -4
  56. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  57. package/lib/services/maia/RecentClients/index.js +6 -0
  58. package/lib/services/maia/index.js +4 -2
  59. package/lib/services/query/getTaskFamilyProjectsQuery.js +5 -0
  60. package/lib/services/utils/mapChatMessages.js +12 -4
  61. package/lib/store/chatsStore.types.js +1 -1
  62. package/lib/store/faqsStore.types.js +2 -0
  63. package/lib/store/index.js +2 -1
  64. package/lib/store/useFaqsStore.js +27 -0
  65. package/lib/types/Chat.js +1 -1
  66. package/lib/types/Client.js +2 -0
  67. package/lib/types/FrequentlyAskedQuestion.js +1 -1
  68. package/lib/types/FrequentlyUsedAction.js +2 -0
  69. package/lib/types/agent.js +1 -1
  70. package/package.json +1 -1
@@ -52,7 +52,7 @@ var homeMenu = {
52
52
  },
53
53
  createdBy: 'Created by'
54
54
  };
55
- export default _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
55
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
56
56
  homeMenu: homeMenu,
57
57
  button: 'IA',
58
58
  title: 'Bonjour, {{name}}!',
@@ -156,6 +156,10 @@ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty({
156
156
  success: 'Conversation renamed successfully',
157
157
  error: 'An unexpected error occurred. Please, try again.'
158
158
  }
159
+ },
160
+ clientSelector: {
161
+ project: 'projet',
162
+ projects: 'projets'
159
163
  }
160
164
  })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
161
165
  accessibilitySection: {
@@ -192,5 +196,20 @@ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty({
192
196
  withoutClient: 'No client',
193
197
  withoutTitle: 'No title'
194
198
  }
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
+ }
195
214
  }));
196
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsImhvd1dvcmtzIiwiYnJhbmROYW1lIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJnb0JhY2siLCJjb3B5IiwiY29waWVkIiwic2F2ZWQiLCJzZWxlY3RQcm9qZWN0Iiwic2F2ZSIsImNhbmNlbCIsImVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInRyeUFnYWluIiwiZ2VuZXJpY1NlY3Rpb24iLCJwcm9qZWN0U3VtbWFyeVNlY3Rpb24iLCJyZXN1bWUiLCJoZWxsbyIsIndlbGNvbWUiLCJmZWVkYmFjayIsInRodW1ic1VwIiwidGh1bWJzRG93biIsInNvdXJjZXMiLCJjb25maWciLCJwcm9qZWN0U3VtbWFyeSIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiY3JlYXRlZEJ5IiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJoaXN0b3J5IiwidG9vbHRpcCIsIml0ZW0iLCJkYXRlIiwibWVudSIsInJlbmFtZSIsImxvYWRpbmdNb3JlIiwib25ib2FyZGluZyIsIm1haWEiLCJhZ2VudEN1c3RvbSIsImhvd0NyZWF0ZUFnZW50IiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsImVycm9yQWNjZXNzRGVuaWVkIiwiY2hhbmdlUHJvamVjdCIsInNlYXJjaFdlYiIsImRlZXBTZWFyY2giLCJhdHRhY2hGaWxlIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImVkaXRRdWVzdGlvbk1vZGFsIiwibmV3TmFtZSIsIm1heExlbmd0aCIsIm1vZGFsRmlsZUV4Y2VlZHMiLCJsaW1pdEZpbGVzVGl0bGUiLCJsaW1pdFNpemVUaXRsZSIsImxpbWl0RmlsZXNEZXNjcmlwdGlvbiIsImxpbWl0U2l6ZURlc2NyaXB0aW9uIiwiYWNjZXB0IiwibGltaXQiLCJzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCIsImFnZW50cyIsIm5ld0FnZW50IiwiZWRpdCIsImFkZEZhdm9yaXRlIiwicmVtb3ZlRmF2b3JpdGUiLCJmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzcyIsImZhdm9yaXRlVG9nZ2xlZEVycm9yIiwiY29udmVyc2F0aW9ucyIsImVtcHR5IiwiZW1wdHlMYWJlbCIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImFibUFnZW50IiwiYWNjZXNzaWJpbGl0eVNlY3Rpb24iLCJ0aXRsZVRhYiIsInRpdGxlU2VjdGlvbiIsInN1YnRpdGxlU2VjdGlvbiIsIndob0NhbkFjY2VzcyIsImFsbENvbXBhbnlUaXRsZSIsImFsbENvbXBhbnlEZXNjcmlwdGlvbiIsImNsaWVudFRpdGxlIiwiY2xpZW50RGVzY3JpcHRpb24iLCJvd25UaXRsZSIsIm93bkRlc2NyaXB0aW9uIiwiY2xpZW50c1NlbGVjdGVkIiwic2VhcmNoRXJyb3IiLCJzZWFyY2hFbXB0eSIsInNlYXJjaEluaXRpYWwiLCJzZWFyY2hQbGFjZWhvbGRlciIsImNsaWVudEluYWN0aXZlIiwiY2xpZW50RGVsZXRlZFRvb2x0aXAiLCJjbGllbnREZWxldGVkIiwicHJvamVjdFNlbGVjdG9yIiwic3VidGl0bGUiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsImVycm9yTWVzc2FnZSIsImVtcHR5UmVjZW50UHJvamVjdHMiLCJlbXB0eVN0YXRlIiwid2l0aG91dENsaWVudCIsIndpdGhvdXRUaXRsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2ZyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIGhvd1dvcmtzOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICBicmFuZE5hbWU6ICdNQUlBJyxcbiAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gIGdvQmFjazogJ0dvIGJhY2sgdG8gdGhlIHN0YXJ0JyxcbiAgY29weTogJ0NvcHknLFxuICBjb3BpZWQ6ICdDb3BpZWQnLFxuICBzYXZlZDogJ1NhdmVkJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgc2F2ZTogJ1NhdmUnLFxuICBjYW5jZWw6ICdDYW5jZWwnLFxufVxuXG5jb25zdCBlcnJvciA9IHtcbiAgdGl0bGU6IFwiVW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZVwiLFxuICBkZXNjcmlwdGlvbjogJ05vdXMgcmVuY29udHJvbnMgYWN0dWVsbGVtZW50IHF1ZWxxdWVzIHByb2Jsw6htZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIHRyeUFnYWluOiAnUsOpZXNzYXllcicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1LDqXN1bcOpIGR1IHByb2pldCcsXG4gICAgZGVzY3JpcHRpb246IFwiR8OpbsOpcmV6IGRlcyByYXBwb3J0cyBhdmVjIGwnSUEgw6AgcGFydGlyIGRlIHZvdHJlIHByb2pldFwiLFxuICB9LFxuICBjcmVhdGVkQnk6ICdDcmVhdGVkIGJ5Jyxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ0JvbmpvdXIsIHt7bmFtZX19IScsXG4gICAgZGVzY3JpcHRpb246IFwiSmUgc3VpcyBNQUlBLCB0b24gYXNzaXN0YW50ZSwgZXQgamUgc3VpcyBsw6AgcG91ciB0J2FpZGVyIGF2ZWMgdGVzIHF1ZXN0aW9ucy5cIixcbiAgICBuZXdDaGF0OiAnTm91dmVhdSBjaGF0JyxcbiAgICBoaXN0b3J5OiB7XG4gICAgICB0b29sdGlwOiAnSGlzdG9yaXF1ZScsXG4gICAgICB0aXRsZTogJ0hpc3RvcmlxdWUgdmlkZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1Y3VuZSBjb252ZXJzYXRpb24gdHJvdXbDqWUnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnRGVybmnDqHJlIG1pc2Ugw6Agam91ciB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbW1lcicsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBjb252ZXJzYXRpb25zJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQ3VzdG9tIGFnZW50cycsXG4gICAgICBob3dDcmVhdGVBZ2VudDogJ0hvdyB0byBjcmVhdGUgYW4gYWdlbnQ/JyxcbiAgICAgIHRvb2x0aXA6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdRdWVzdGlvbnMgRnLDqXF1ZW1tZW50IFBvc8OpZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVlbGxlIGVzdCBsYSByZW50YWJpbGl0w6kgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWVsIGVzdCBsZSBwcm9ncsOocyBkZSBjZSBwcm9qZXQgPycsXG4gICAgICAgIHRhcmVhc19wcm95ZWN0bzogJ1F1ZWxsZXMgc29udCBsZXMgdMOiY2hlcyDDoCB2ZW5pciDDoCB2ZW5pciA/JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjaGF0OiB7XG4gICAgICBnZW5lcmF0aW5nOiAnQW5hbHlzZSBkdSBtZXNzYWdlJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiBcIkFuYWx5c2UgZGUgbCdhdHRhY2hlbWVudFwiLFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBtZXNzYWdlcycsXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IFwiQ29tbWVudCBwdWlzLWplIHQnYWlkZXIgYXVqb3VyZCdodWkgP1wiLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBnw6luw6lyYXRpb24gZGUgdm90cmUgcsOpcG9uc2UsIHZldWlsbGV6IHLDqWVzc2F5ZXIuJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICBcIllvdSBkb24ndCBoYXZlIGFjY2VzcyB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYWdlbnQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgeW91ciBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gUGxlYXNlIGNvbnRhY3QgdGhlIHBlcnNvbiBpbiB5b3VyIG9yZ2FuaXphdGlvbiB3aG8gbWFuYWdlcyBhZ2VudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIsXG4gICAgICBjaGFuZ2VQcm9qZWN0OlxuICAgICAgICBcIkonYWkgZMOpdGVjdMOpIHF1ZSB2b3VzIHNvdWhhaXRleiBjaGFuZ2VyIGRlIFByb2pldC5cXG5cXG4qKlPDqWxlY3Rpb25uZXogbGUgcHJvamV0IHBvdXIgY29udGludWVyIDoqKlwiLFxuICAgICAgc2VhcmNoV2ViOiAnU2VhcmNoIHRoZSB3ZWInLFxuICAgICAgZGVlcFNlYXJjaDogJ0luLWRlcHRoIHJlc2VhcmNoJyxcbiAgICAgIGF0dGFjaEZpbGU6ICdBdHRhY2ggZmlsZScsXG4gICAgICBzZW5kOiAnU2VuZCcsXG4gICAgICBsaW1pdEZpbGVzOiAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIGF0dGFjaG1lbnQgbGltaXQnLFxuICAgICAgc3RvcDogJ0NhbmNlbCBzZWFyY2gnLFxuICAgICAgY2FuY2VsbGVkOiAnVGhlIHNlYXJjaCBoYXMgYmVlbiBjYW5jZWxsZWQuJyxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnVm91bGV6LXZvdXMgc3VwcHJpbWVyIGNldHRlIGNvbnZlcnNhdGlvbj8nLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOZXcgbmFtZScsXG4gICAgICB0aXRsZTogJ1JlbmFtZSBjb252ZXJzYXRpb24nLFxuICAgICAgcmVuYW1lOiAnUmVuYW1lJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBtYXhMZW5ndGg6ICdZb3UgY2Fubm90IGVudGVyIG1vcmUgdGhhbiAxNTAgY2hhcmFjdGVycy4nLFxuICAgIH0sXG4gICAgbW9kYWxGaWxlRXhjZWVkczoge1xuICAgICAgbGltaXRGaWxlc1RpdGxlOiAnTWF4aW11bSBhdHRhY2htZW50cyBleGNlZWRlZC4nLFxuICAgICAgbGltaXRTaXplVGl0bGU6IFwiWW91J3ZlIGV4Y2VlZGVkIHRoZSBhbGxvd2VkIGZpbGUgc2l6ZSBsaW1pdFwiLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnWW91IGNhbiBhdHRhY2ggYSBtYXhpbXVtIG9mIDUgZmlsZXMgcGVyIG1lc3NhZ2UuIFRoZSBmb2xsb3dpbmcgZmlsZXMgY291bGQgbm90IGJlIGF0dGFjaGVkOicsXG4gICAgICBsaW1pdFNpemVEZXNjcmlwdGlvbjpcbiAgICAgICAgJ09uZSBvciBtb3JlIGZpbGVzIGV4Y2VlZCB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgYnkgdHlwZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGFjY2VwdDogJ0FjY2VwdCcsXG4gICAgICBsaW1pdDogJ2xpbWl0JyxcbiAgICAgIHN0b3A6ICdDYW5jZWwgc2VhcmNoJyxcbiAgICB9LFxuICAgIHNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1NvdXJjZXM6JyxcbiAgICB9LFxuICAgIGFnZW50czoge1xuICAgICAgdGl0bGU6ICdBZ2VudHMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3V2ZWwgYWdlbnQnLFxuICAgICAgZWRpdDogJ8OJZGl0ZXInLFxuICAgICAgbWFpYTogJyhTcMOpY2lhbGlzdGUgZGUgcHJvamV0KScsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkZCB0byBmYXZvcml0ZXMnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmUgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnQgYWRkZWQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRTdWNjZXNzOiAnQWdlbnQgcmVtb3ZlZCBmcm9tIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRFcnJvcjogJ0NvdWxkIG5vdCBzYXZlIHlvdXIgZmF2b3JpdGUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnQ29udmVyc2F0aW9ucycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiBcIllvdSBoYXZlbid0IHN0YXJ0ZWQgYW55IGNvbnZlcnNhdGlvbnMgeWV0XCIsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgICAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgICAgIG5ld0NoYXQ6ICdOZXcgY2hhdCcsXG4gICAgfSxcbiAgICBzbmFja2Jhcjoge1xuICAgICAgZGVsZXRlQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ2hhdCBkZWxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgICByZW5hbWVkQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ29udmVyc2F0aW9uIHJlbmFtZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBbU0VDVElPTlMuYWJtQWdlbnRdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnQWNjZXNzaWJpbGl0eScsXG4gICAgICB0aXRsZVNlY3Rpb246ICdBZ2VudCBhY2Nlc3NpYmlsaXR5JyxcbiAgICAgIHN1YnRpdGxlU2VjdGlvbjogJ0RlZmluZSB0aGUgbGV2ZWwgb2YgYWNjZXNzIGFuZCB2aXNpYmlsaXR5IG9mIHRoZSBhZ2VudCB3aXRoaW4geW91ciBvcmdhbml6YXRpb24uJyxcbiAgICAgIHdob0NhbkFjY2VzczogJ1dobyBjYW4gdXNlIHRoaXMgYWdlbnQ/JyxcbiAgICAgIGFsbENvbXBhbnlUaXRsZTogJ1Zpc2libGUgZm9yIHRoZSBlbnRpcmUgY29tcGFueScsXG4gICAgICBhbGxDb21wYW55RGVzY3JpcHRpb246ICdBbGwgdXNlcnMgb2YgeW91ciBvcmdhbml6YXRpb24gd2lsbCBiZSBhYmxlIHRvIHNlZSBhbmQgdXNlIHRoaXMgYWdlbnQuJyxcbiAgICAgIGNsaWVudFRpdGxlOiAnTGlua2VkIHRvIHNwZWNpZmljIGNsaWVudHMnLFxuICAgICAgY2xpZW50RGVzY3JpcHRpb246XG4gICAgICAgICdBc3NvY2lhdGUgdGhpcyBhZ2VudCB3aXRoIG9uZSBvciBtb3JlIGNsaWVudHMuIEFsbCB1c2VycyB3aWxsIGJlIGFibGUgdG8gc2VlIHdoaWNoIGNsaWVudHMgYXJlIGxpbmtlZC4nLFxuICAgICAgb3duVGl0bGU6ICdPbmx5IHZpc2libGUgZm9yIG1lJyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnVGhpcyBhZ2VudCB3aWxsIGJlIHByaXZhdGUgYW5kIG5vdCBhdmFpbGFibGUgZm9yIG90aGVyIHVzZXJzLicsXG4gICAgICBjbGllbnRzU2VsZWN0ZWQ6ICdDbGllbnRzIHNlbGVjdGVkOicsXG4gICAgICBzZWFyY2hFcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGxpc3Qgb2YgY2xpZW50cywgcGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLicsXG4gICAgICBzZWFyY2hFbXB0eTogJ09vcHMhIE5vIGNsaWVudHMgd2VyZSBmb3VuZCB0aGF0IG1hdGNoIHlvdXIgc2VhcmNoLicsXG4gICAgICBzZWFyY2hJbml0aWFsOiAnV3JpdGUgYSB3b3JkIHRvIHN0YXJ0IHlvdXIgc2VhcmNoJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIGNsaWVudCcsXG4gICAgICBjbGllbnRJbmFjdGl2ZTogJ1RoaXMgY2xpZW50IGlzIGluYWN0aXZlLiBXZSByZWNvbW1lbmQgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgbGlzdC4nLFxuICAgICAgY2xpZW50RGVsZXRlZFRvb2x0aXA6ICdUaGlzIGNsaWVudCB3YXMgZGVsZXRlZC4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWQ6ICdDbGllbnQgZGVsZXRlZCcsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLnByb2plY3RTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBwcm9qZWN0U2VsZWN0b3I6IHtcbiAgICAgIHRpdGxlOiAnV2hpY2ggcHJvamVjdCB3b3VsZCB5b3UgbGlrZSBoZWxwIHdpdGg/JyxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWN0IGEgcHJvamVjdCBzbyBNQUlBIGNhbiByZXNwb25kIGluIGNvbnRleHQuJyxcbiAgICAgIGxhYmVsUHJvamVjdDogJ1NFTEVDVCBQUk9KRUNUJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdDaGFuZ2UgcHJvamVjdCcsXG4gICAgICByZWNlbnRQcm9qZWN0czogJ1JlY2VudCBwcm9qZWN0cycsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdTZWFyY2ggZXJyb3IhIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbW9tZW50cy4nLFxuICAgICAgZW1wdHlSZWNlbnRQcm9qZWN0czogJ05vIHJlY2VudCBwcm9qZWN0cy4gRW50ZXIgdGhlIG5hbWUgaW4gdGhlIHNlYXJjaCBiYXIgdG8gZ2V0IHJlc3VsdHMuJyxcbiAgICAgIGVtcHR5U3RhdGU6ICdPb3BzISB0aGVyZSBhcmUgbm8gcmVzdWx0cyBmb3IgeW91ciBzZWFyY2gnLFxuICAgICAgd2l0aG91dENsaWVudDogJ05vIGNsaWVudCcsXG4gICAgICB3aXRob3V0VGl0bGU6ICdObyB0aXRsZScsXG4gICAgfSxcbiAgfSxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHdCQUF3QjtBQUNqRCxTQUFTQyx3QkFBd0IsUUFBUSxzQ0FBc0M7QUFFL0UsSUFBTUMsT0FBTyxHQUFHO0VBQ2RDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLFFBQVEsRUFBRSxtQkFBbUI7RUFDN0JDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLE1BQU0sRUFBRSxzQkFBc0I7RUFDOUJDLElBQUksRUFBRSxNQUFNO0VBQ1pDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxhQUFhLEVBQUUsZ0JBQWdCO0VBQy9CQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxNQUFNLEVBQUU7QUFDVixDQUFDO0FBRUQsSUFBTUMsS0FBSyxHQUFHO0VBQ1pDLEtBQUssRUFBRSwyQkFBMkI7RUFDbENDLFdBQVcsRUFBRSw2RkFBNkY7RUFDMUdDLFFBQVEsRUFBRTtBQUNaLENBQUM7QUFFRCxJQUFNQyxjQUFjLEdBQUc7RUFDckJKLEtBQUssRUFBTEEsS0FBSztFQUNMYixPQUFPLEVBQVBBO0FBQ0YsQ0FBQztBQUVELElBQU1rQixxQkFBcUIsR0FBRztFQUM1QkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLEtBQUssRUFBRSxlQUFlO0VBQ3RCQyxPQUFPLEVBQUUsaUNBQWlDO0VBRTFDQyxRQUFRLEVBQUU7SUFDUkMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQkMsVUFBVSxFQUFFLG1CQUFtQjtJQUMvQkMsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUVEQyxNQUFNLEVBQUU7SUFD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
215
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsImhvd1dvcmtzIiwiYnJhbmROYW1lIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJnb0JhY2siLCJjb3B5IiwiY29waWVkIiwic2F2ZWQiLCJzZWxlY3RQcm9qZWN0Iiwic2F2ZSIsImNhbmNlbCIsImVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInRyeUFnYWluIiwiZ2VuZXJpY1NlY3Rpb24iLCJwcm9qZWN0U3VtbWFyeVNlY3Rpb24iLCJyZXN1bWUiLCJoZWxsbyIsIndlbGNvbWUiLCJmZWVkYmFjayIsInRodW1ic1VwIiwidGh1bWJzRG93biIsInNvdXJjZXMiLCJjb25maWciLCJwcm9qZWN0U3VtbWFyeSIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiY3JlYXRlZEJ5IiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJoaXN0b3J5IiwidG9vbHRpcCIsIml0ZW0iLCJkYXRlIiwibWVudSIsInJlbmFtZSIsImxvYWRpbmdNb3JlIiwib25ib2FyZGluZyIsIm1haWEiLCJhZ2VudEN1c3RvbSIsImhvd0NyZWF0ZUFnZW50IiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsImVycm9yQWNjZXNzRGVuaWVkIiwiY2hhbmdlUHJvamVjdCIsInNlYXJjaFdlYiIsImRlZXBTZWFyY2giLCJhdHRhY2hGaWxlIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImVkaXRRdWVzdGlvbk1vZGFsIiwibmV3TmFtZSIsIm1heExlbmd0aCIsIm1vZGFsRmlsZUV4Y2VlZHMiLCJsaW1pdEZpbGVzVGl0bGUiLCJsaW1pdFNpemVUaXRsZSIsImxpbWl0RmlsZXNEZXNjcmlwdGlvbiIsImxpbWl0U2l6ZURlc2NyaXB0aW9uIiwiYWNjZXB0IiwibGltaXQiLCJzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCIsImFnZW50cyIsIm5ld0FnZW50IiwiZWRpdCIsImFkZEZhdm9yaXRlIiwicmVtb3ZlRmF2b3JpdGUiLCJmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzcyIsImZhdm9yaXRlVG9nZ2xlZEVycm9yIiwiY29udmVyc2F0aW9ucyIsImVtcHR5IiwiZW1wdHlMYWJlbCIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImNsaWVudFNlbGVjdG9yIiwicHJvamVjdCIsInByb2plY3RzIiwiYWJtQWdlbnQiLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwid2hvQ2FuQWNjZXNzIiwiYWxsQ29tcGFueVRpdGxlIiwiYWxsQ29tcGFueURlc2NyaXB0aW9uIiwiY2xpZW50VGl0bGUiLCJjbGllbnREZXNjcmlwdGlvbiIsIm93blRpdGxlIiwib3duRGVzY3JpcHRpb24iLCJjbGllbnRzU2VsZWN0ZWQiLCJzZWFyY2hFcnJvciIsInNlYXJjaEVtcHR5Iiwic2VhcmNoSW5pdGlhbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJwcm9qZWN0U2VsZWN0b3IiLCJzdWJ0aXRsZSIsImxhYmVsUHJvamVjdCIsInJlY2VudFByb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2ZyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIGhvd1dvcmtzOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICBicmFuZE5hbWU6ICdNQUlBJyxcbiAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gIGdvQmFjazogJ0dvIGJhY2sgdG8gdGhlIHN0YXJ0JyxcbiAgY29weTogJ0NvcHknLFxuICBjb3BpZWQ6ICdDb3BpZWQnLFxuICBzYXZlZDogJ1NhdmVkJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgc2F2ZTogJ1NhdmUnLFxuICBjYW5jZWw6ICdDYW5jZWwnLFxufVxuXG5jb25zdCBlcnJvciA9IHtcbiAgdGl0bGU6IFwiVW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZVwiLFxuICBkZXNjcmlwdGlvbjogJ05vdXMgcmVuY29udHJvbnMgYWN0dWVsbGVtZW50IHF1ZWxxdWVzIHByb2Jsw6htZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIHRyeUFnYWluOiAnUsOpZXNzYXllcicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1LDqXN1bcOpIGR1IHByb2pldCcsXG4gICAgZGVzY3JpcHRpb246IFwiR8OpbsOpcmV6IGRlcyByYXBwb3J0cyBhdmVjIGwnSUEgw6AgcGFydGlyIGRlIHZvdHJlIHByb2pldFwiLFxuICB9LFxuICBjcmVhdGVkQnk6ICdDcmVhdGVkIGJ5Jyxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ0JvbmpvdXIsIHt7bmFtZX19IScsXG4gICAgZGVzY3JpcHRpb246IFwiSmUgc3VpcyBNQUlBLCB0b24gYXNzaXN0YW50ZSwgZXQgamUgc3VpcyBsw6AgcG91ciB0J2FpZGVyIGF2ZWMgdGVzIHF1ZXN0aW9ucy5cIixcbiAgICBuZXdDaGF0OiAnTm91dmVhdSBjaGF0JyxcbiAgICBoaXN0b3J5OiB7XG4gICAgICB0b29sdGlwOiAnSGlzdG9yaXF1ZScsXG4gICAgICB0aXRsZTogJ0hpc3RvcmlxdWUgdmlkZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1Y3VuZSBjb252ZXJzYXRpb24gdHJvdXbDqWUnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnRGVybmnDqHJlIG1pc2Ugw6Agam91ciB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbW1lcicsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBjb252ZXJzYXRpb25zJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQ3VzdG9tIGFnZW50cycsXG4gICAgICBob3dDcmVhdGVBZ2VudDogJ0hvdyB0byBjcmVhdGUgYW4gYWdlbnQ/JyxcbiAgICAgIHRvb2x0aXA6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdRdWVzdGlvbnMgRnLDqXF1ZW1tZW50IFBvc8OpZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVlbGxlIGVzdCBsYSByZW50YWJpbGl0w6kgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWVsIGVzdCBsZSBwcm9ncsOocyBkZSBjZSBwcm9qZXQgPycsXG4gICAgICAgIHRhcmVhc19wcm95ZWN0bzogJ1F1ZWxsZXMgc29udCBsZXMgdMOiY2hlcyDDoCB2ZW5pciDDoCB2ZW5pciA/JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjaGF0OiB7XG4gICAgICBnZW5lcmF0aW5nOiAnQW5hbHlzZSBkdSBtZXNzYWdlJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiBcIkFuYWx5c2UgZGUgbCdhdHRhY2hlbWVudFwiLFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBtZXNzYWdlcycsXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IFwiQ29tbWVudCBwdWlzLWplIHQnYWlkZXIgYXVqb3VyZCdodWkgP1wiLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBnw6luw6lyYXRpb24gZGUgdm90cmUgcsOpcG9uc2UsIHZldWlsbGV6IHLDqWVzc2F5ZXIuJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICBcIllvdSBkb24ndCBoYXZlIGFjY2VzcyB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYWdlbnQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgeW91ciBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gUGxlYXNlIGNvbnRhY3QgdGhlIHBlcnNvbiBpbiB5b3VyIG9yZ2FuaXphdGlvbiB3aG8gbWFuYWdlcyBhZ2VudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIsXG4gICAgICBjaGFuZ2VQcm9qZWN0OlxuICAgICAgICBcIkonYWkgZMOpdGVjdMOpIHF1ZSB2b3VzIHNvdWhhaXRleiBjaGFuZ2VyIGRlIFByb2pldC5cXG5cXG4qKlPDqWxlY3Rpb25uZXogbGUgcHJvamV0IHBvdXIgY29udGludWVyIDoqKlwiLFxuICAgICAgc2VhcmNoV2ViOiAnU2VhcmNoIHRoZSB3ZWInLFxuICAgICAgZGVlcFNlYXJjaDogJ0luLWRlcHRoIHJlc2VhcmNoJyxcbiAgICAgIGF0dGFjaEZpbGU6ICdBdHRhY2ggZmlsZScsXG4gICAgICBzZW5kOiAnU2VuZCcsXG4gICAgICBsaW1pdEZpbGVzOiAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIGF0dGFjaG1lbnQgbGltaXQnLFxuICAgICAgc3RvcDogJ0NhbmNlbCBzZWFyY2gnLFxuICAgICAgY2FuY2VsbGVkOiAnVGhlIHNlYXJjaCBoYXMgYmVlbiBjYW5jZWxsZWQuJyxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnVm91bGV6LXZvdXMgc3VwcHJpbWVyIGNldHRlIGNvbnZlcnNhdGlvbj8nLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOZXcgbmFtZScsXG4gICAgICB0aXRsZTogJ1JlbmFtZSBjb252ZXJzYXRpb24nLFxuICAgICAgcmVuYW1lOiAnUmVuYW1lJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBtYXhMZW5ndGg6ICdZb3UgY2Fubm90IGVudGVyIG1vcmUgdGhhbiAxNTAgY2hhcmFjdGVycy4nLFxuICAgIH0sXG4gICAgbW9kYWxGaWxlRXhjZWVkczoge1xuICAgICAgbGltaXRGaWxlc1RpdGxlOiAnTWF4aW11bSBhdHRhY2htZW50cyBleGNlZWRlZC4nLFxuICAgICAgbGltaXRTaXplVGl0bGU6IFwiWW91J3ZlIGV4Y2VlZGVkIHRoZSBhbGxvd2VkIGZpbGUgc2l6ZSBsaW1pdFwiLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnWW91IGNhbiBhdHRhY2ggYSBtYXhpbXVtIG9mIDUgZmlsZXMgcGVyIG1lc3NhZ2UuIFRoZSBmb2xsb3dpbmcgZmlsZXMgY291bGQgbm90IGJlIGF0dGFjaGVkOicsXG4gICAgICBsaW1pdFNpemVEZXNjcmlwdGlvbjpcbiAgICAgICAgJ09uZSBvciBtb3JlIGZpbGVzIGV4Y2VlZCB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgYnkgdHlwZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGFjY2VwdDogJ0FjY2VwdCcsXG4gICAgICBsaW1pdDogJ2xpbWl0JyxcbiAgICAgIHN0b3A6ICdDYW5jZWwgc2VhcmNoJyxcbiAgICB9LFxuICAgIHNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1NvdXJjZXM6JyxcbiAgICB9LFxuICAgIGFnZW50czoge1xuICAgICAgdGl0bGU6ICdBZ2VudHMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3V2ZWwgYWdlbnQnLFxuICAgICAgZWRpdDogJ8OJZGl0ZXInLFxuICAgICAgbWFpYTogJyhTcMOpY2lhbGlzdGUgZGUgcHJvamV0KScsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkZCB0byBmYXZvcml0ZXMnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmUgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnQgYWRkZWQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRTdWNjZXNzOiAnQWdlbnQgcmVtb3ZlZCBmcm9tIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRFcnJvcjogJ0NvdWxkIG5vdCBzYXZlIHlvdXIgZmF2b3JpdGUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnQ29udmVyc2F0aW9ucycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiBcIllvdSBoYXZlbid0IHN0YXJ0ZWQgYW55IGNvbnZlcnNhdGlvbnMgeWV0XCIsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgICAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgICAgIG5ld0NoYXQ6ICdOZXcgY2hhdCcsXG4gICAgfSxcbiAgICBzbmFja2Jhcjoge1xuICAgICAgZGVsZXRlQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ2hhdCBkZWxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgICByZW5hbWVkQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ29udmVyc2F0aW9uIHJlbmFtZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNsaWVudFNlbGVjdG9yOiB7XG4gICAgICBwcm9qZWN0OiAncHJvamV0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamV0cycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGFjY2Vzc2liaWxpdHlTZWN0aW9uOiB7XG4gICAgICB0aXRsZVRhYjogJ0FjY2Vzc2liaWxpdHknLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnQWdlbnQgYWNjZXNzaWJpbGl0eScsXG4gICAgICBzdWJ0aXRsZVNlY3Rpb246ICdEZWZpbmUgdGhlIGxldmVsIG9mIGFjY2VzcyBhbmQgdmlzaWJpbGl0eSBvZiB0aGUgYWdlbnQgd2l0aGluIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdXaG8gY2FuIHVzZSB0aGlzIGFnZW50PycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6ICdWaXNpYmxlIGZvciB0aGUgZW50aXJlIGNvbXBhbnknLFxuICAgICAgYWxsQ29tcGFueURlc2NyaXB0aW9uOiAnQWxsIHVzZXJzIG9mIHlvdXIgb3JnYW5pemF0aW9uIHdpbGwgYmUgYWJsZSB0byBzZWUgYW5kIHVzZSB0aGlzIGFnZW50LicsXG4gICAgICBjbGllbnRUaXRsZTogJ0xpbmtlZCB0byBzcGVjaWZpYyBjbGllbnRzJyxcbiAgICAgIGNsaWVudERlc2NyaXB0aW9uOlxuICAgICAgICAnQXNzb2NpYXRlIHRoaXMgYWdlbnQgd2l0aCBvbmUgb3IgbW9yZSBjbGllbnRzLiBBbGwgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIHNlZSB3aGljaCBjbGllbnRzIGFyZSBsaW5rZWQuJyxcbiAgICAgIG93blRpdGxlOiAnT25seSB2aXNpYmxlIGZvciBtZScsXG4gICAgICBvd25EZXNjcmlwdGlvbjogJ1RoaXMgYWdlbnQgd2lsbCBiZSBwcml2YXRlIGFuZCBub3QgYXZhaWxhYmxlIGZvciBvdGhlciB1c2Vycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBsaXN0IG9mIGNsaWVudHMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgc2VhcmNoRW1wdHk6ICdPb3BzISBObyBjbGllbnRzIHdlcmUgZm91bmQgdGhhdCBtYXRjaCB5b3VyIHNlYXJjaC4nLFxuICAgICAgc2VhcmNoSW5pdGlhbDogJ1dyaXRlIGEgd29yZCB0byBzdGFydCB5b3VyIHNlYXJjaCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTRUxFQ1QgUFJPSkVDVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnQgcHJvamVjdHMnLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnU2VhcmNoIGVycm9yISBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1vbWVudHMuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdObyByZWNlbnQgcHJvamVjdHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdObyBjbGllbnQnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnTm8gdGl0bGUnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5jbGllbnRTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgdGl0bGU6ICdXaGljaCBjbGllbnQgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIGNsaWVudCBzbyBNQUlBIGNhbiByZXNwb25kIGluIGNvbnRleHQuJyxcbiAgICAgIGxhYmVsQ2xpZW50OiAnU0VMRUNUIENMSUVOVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VDbGllbnQ6ICdDaGFuZ2UgY2xpZW50JyxcbiAgICAgIHJlY2VudENsaWVudHM6ICdSZWNlbnQgY2xpZW50cycsXG4gICAgICBzZWFyY2hpbmdDbGllbnRzOiAnU2VhcmNoaW5nIHlvdXIgY2xpZW50cy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdTZWFyY2ggZXJyb3IhIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbW9tZW50cy4nLFxuICAgICAgZW1wdHlSZWNlbnRDbGllbnRzOiAnTm8gcmVjZW50IGNsaWVudHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHByb2plY3Q6ICdwcm9qZXQnLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRzJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLE9BQU87RUFDZEMsUUFBUSxFQUFFLG1CQUFtQjtFQUM3QkMsU0FBUyxFQUFFLE1BQU07RUFDakJDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsTUFBTSxFQUFFLHNCQUFzQjtFQUM5QkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLGFBQWEsRUFBRSxnQkFBZ0I7RUFDL0JDLElBQUksRUFBRSxNQUFNO0VBQ1pDLE1BQU0sRUFBRTtBQUNWLENBQUM7QUFFRCxJQUFNQyxLQUFLLEdBQUc7RUFDWkMsS0FBSyxFQUFFLDJCQUEyQjtFQUNsQ0MsV0FBVyxFQUFFLDZGQUE2RjtFQUMxR0MsUUFBUSxFQUFFO0FBQ1osQ0FBQztBQUVELElBQU1DLGNBQWMsR0FBRztFQUNyQkosS0FBSyxFQUFMQSxLQUFLO0VBQ0xiLE9BQU8sRUFBUEE7QUFDRixDQUFDO0FBRUQsSUFBTWtCLHFCQUFxQixHQUFHO0VBQzVCQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsS0FBSyxFQUFFLGVBQWU7RUFDdEJDLE9BQU8sRUFBRSxpQ0FBaUM7RUFFMUNDLFFBQVEsRUFBRTtJQUNSQyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCQyxVQUFVLEVBQUUsbUJBQW1CO0lBQy9CQyxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBRURD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
@@ -0,0 +1,71 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ import gqlClient from '../../constants/gqlClient';
7
+ import { GET_TASK_FAMILY_PROJECTS } from '../query/getTaskFamilyProjectsQuery';
8
+ var PAGE_SIZE = 10;
9
+ export var getProjectTasks = /*#__PURE__*/function () {
10
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(projectId, signal, title) {
11
+ var _data$taskFamilyProje, _data$taskFamilyProje2, _data$taskFamilyProje3, _data$taskFamilyProje4;
12
+ var offset,
13
+ _yield$gqlClient$quer,
14
+ data,
15
+ rawTasks,
16
+ tasks,
17
+ _args = arguments;
18
+ return _regeneratorRuntime.wrap(function (_context) {
19
+ while (1) switch (_context.prev = _context.next) {
20
+ case 0:
21
+ offset = _args.length > 3 && _args[3] !== undefined ? _args[3] : 0;
22
+ _context.next = 1;
23
+ return gqlClient.query({
24
+ query: GET_TASK_FAMILY_PROJECTS,
25
+ variables: {
26
+ project_ids: [projectId],
27
+ filter: _objectSpread({
28
+ archived: false
29
+ }, title ? {
30
+ title: title
31
+ } : {}),
32
+ pagination: {
33
+ offset: offset,
34
+ size: PAGE_SIZE
35
+ }
36
+ },
37
+ fetchPolicy: 'network-only',
38
+ context: signal ? {
39
+ fetchOptions: {
40
+ signal: signal
41
+ }
42
+ } : undefined
43
+ });
44
+ case 1:
45
+ _yield$gqlClient$quer = _context.sent;
46
+ data = _yield$gqlClient$quer.data;
47
+ // eslint-disable-next-line no-underscore-dangle
48
+ rawTasks = (_data$taskFamilyProje = data === null || data === void 0 || (_data$taskFamilyProje2 = data.taskFamilyProjects) === null || _data$taskFamilyProje2 === void 0 || (_data$taskFamilyProje2 = _data$taskFamilyProje2[0]) === null || _data$taskFamilyProje2 === void 0 ? void 0 : _data$taskFamilyProje2.tasks) !== null && _data$taskFamilyProje !== void 0 ? _data$taskFamilyProje : [];
49
+ tasks = rawTasks.map(function (t) {
50
+ return {
51
+ // eslint-disable-next-line no-underscore-dangle
52
+ id: String(t._id || ''),
53
+ title: String(t.title || '')
54
+ };
55
+ });
56
+ return _context.abrupt("return", {
57
+ tasks: tasks,
58
+ hasMore: tasks.length === PAGE_SIZE,
59
+ total: (_data$taskFamilyProje3 = data === null || data === void 0 || (_data$taskFamilyProje4 = data.taskFamilyProjects) === null || _data$taskFamilyProje4 === void 0 || (_data$taskFamilyProje4 = _data$taskFamilyProje4[0]) === null || _data$taskFamilyProje4 === void 0 ? void 0 : _data$taskFamilyProje4.totalTasks) !== null && _data$taskFamilyProje3 !== void 0 ? _data$taskFamilyProje3 : 0
60
+ });
61
+ case 2:
62
+ case "end":
63
+ return _context.stop();
64
+ }
65
+ }, _callee);
66
+ }));
67
+ return function getProjectTasks(_x, _x2, _x3) {
68
+ return _ref.apply(this, arguments);
69
+ };
70
+ }();
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJncWxDbGllbnQiLCJHRVRfVEFTS19GQU1JTFlfUFJPSkVDVFMiLCJQQUdFX1NJWkUiLCJnZXRQcm9qZWN0VGFza3MiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJwcm9qZWN0SWQiLCJzaWduYWwiLCJ0aXRsZSIsIl9kYXRhJHRhc2tGYW1pbHlQcm9qZSIsIl9kYXRhJHRhc2tGYW1pbHlQcm9qZTIiLCJfZGF0YSR0YXNrRmFtaWx5UHJvamUzIiwiX2RhdGEkdGFza0ZhbWlseVByb2plNCIsIm9mZnNldCIsIl95aWVsZCRncWxDbGllbnQkcXVlciIsImRhdGEiLCJyYXdUYXNrcyIsInRhc2tzIiwiX2FyZ3MiLCJhcmd1bWVudHMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsInVuZGVmaW5lZCIsInF1ZXJ5IiwidmFyaWFibGVzIiwicHJvamVjdF9pZHMiLCJmaWx0ZXIiLCJfb2JqZWN0U3ByZWFkIiwiYXJjaGl2ZWQiLCJwYWdpbmF0aW9uIiwic2l6ZSIsImZldGNoUG9saWN5IiwiY29udGV4dCIsImZldGNoT3B0aW9ucyIsInNlbnQiLCJ0YXNrRmFtaWx5UHJvamVjdHMiLCJtYXAiLCJ0IiwiaWQiLCJTdHJpbmciLCJfaWQiLCJhYnJ1cHQiLCJoYXNNb3JlIiwidG90YWwiLCJ0b3RhbFRhc2tzIiwic3RvcCIsIl94IiwiX3gyIiwiX3gzIiwiYXBwbHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY29yL2dldFByb2plY3RUYXNrcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ3FsQ2xpZW50IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ncWxDbGllbnQnXG5pbXBvcnQgeyBHRVRfVEFTS19GQU1JTFlfUFJPSkVDVFMgfSBmcm9tICcuLi9xdWVyeS9nZXRUYXNrRmFtaWx5UHJvamVjdHNRdWVyeSdcblxuZXhwb3J0IHR5cGUgUHJvamVjdFRhc2tJdGVtID0ge1xuICBpZDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQcm9qZWN0VGFza3NSZXN1bHQge1xuICB0YXNrczogUHJvamVjdFRhc2tJdGVtW11cbiAgaGFzTW9yZTogYm9vbGVhblxuICB0b3RhbDogbnVtYmVyXG59XG5cbmNvbnN0IFBBR0VfU0laRSA9IDEwXG5cbmV4cG9ydCBjb25zdCBnZXRQcm9qZWN0VGFza3MgPSBhc3luYyAoXG4gIHByb2plY3RJZDogc3RyaW5nLFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbiAgdGl0bGU/OiBzdHJpbmcsXG4gIG9mZnNldCA9IDBcbik6IFByb21pc2U8R2V0UHJvamVjdFRhc2tzUmVzdWx0PiA9PiB7XG4gIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZ3FsQ2xpZW50LnF1ZXJ5KHtcbiAgICBxdWVyeTogR0VUX1RBU0tfRkFNSUxZX1BST0pFQ1RTLFxuICAgIHZhcmlhYmxlczoge1xuICAgICAgcHJvamVjdF9pZHM6IFtwcm9qZWN0SWRdLFxuICAgICAgZmlsdGVyOiB7IGFyY2hpdmVkOiBmYWxzZSwgLi4uKHRpdGxlID8geyB0aXRsZSB9IDoge30pIH0sXG4gICAgICBwYWdpbmF0aW9uOiB7IG9mZnNldCwgc2l6ZTogUEFHRV9TSVpFIH0sXG4gICAgfSxcbiAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgY29udGV4dDogc2lnbmFsID8geyBmZXRjaE9wdGlvbnM6IHsgc2lnbmFsIH0gfSA6IHVuZGVmaW5lZCxcbiAgfSlcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgY29uc3QgcmF3VGFza3M6IEFycmF5PHsgX2lkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfT4gPSBkYXRhPy50YXNrRmFtaWx5UHJvamVjdHM/LlswXT8udGFza3MgPz8gW11cblxuICBjb25zdCB0YXNrczogUHJvamVjdFRhc2tJdGVtW10gPSByYXdUYXNrcy5tYXAodCA9PiAoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIGlkOiBTdHJpbmcodC5faWQgfHwgJycpLFxuICAgIHRpdGxlOiBTdHJpbmcodC50aXRsZSB8fCAnJyksXG4gIH0pKVxuXG4gIHJldHVybiB7IHRhc2tzLCBoYXNNb3JlOiB0YXNrcy5sZW5ndGggPT09IFBBR0VfU0laRSwgdG90YWw6IGRhdGE/LnRhc2tGYW1pbHlQcm9qZWN0cz8uWzBdPy50b3RhbFRhc2tzID8/IDAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU9BLFNBQVMsTUFBTSwyQkFBMkI7QUFDakQsU0FBU0Msd0JBQXdCLFFBQVEscUNBQXFDO0FBYTlFLElBQU1DLFNBQVMsR0FBRyxFQUFFO0FBRXBCLE9BQU8sSUFBTUMsZUFBZTtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQzdCQyxTQUFpQixFQUNqQkMsTUFBb0IsRUFDcEJDLEtBQWM7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQTtJQUFBLElBQUFDLE1BQUE7TUFBQUMscUJBQUE7TUFBQUMsSUFBQTtNQUFBQyxRQUFBO01BQUFDLEtBQUE7TUFBQUMsS0FBQSxHQUFBQyxTQUFBO0lBQUEsT0FBQWhCLG1CQUFBLENBQUFpQixJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQ2RWLE1BQU0sR0FBQUssS0FBQSxDQUFBTSxNQUFBLFFBQUFOLEtBQUEsUUFBQU8sU0FBQSxHQUFBUCxLQUFBLE1BQUcsQ0FBQztVQUFBRyxRQUFBLENBQUFFLElBQUE7VUFBQSxPQUVhMUIsU0FBUyxDQUFDNkIsS0FBSyxDQUFDO1lBQ3JDQSxLQUFLLEVBQUU1Qix3QkFBd0I7WUFDL0I2QixTQUFTLEVBQUU7Y0FDVEMsV0FBVyxFQUFFLENBQUN0QixTQUFTLENBQUM7Y0FDeEJ1QixNQUFNLEVBQUFDLGFBQUE7Z0JBQUlDLFFBQVEsRUFBRTtjQUFLLEdBQU12QixLQUFLLEdBQUc7Z0JBQUVBLEtBQUssRUFBTEE7Y0FBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUc7Y0FDeER3QixVQUFVLEVBQUU7Z0JBQUVuQixNQUFNLEVBQU5BLE1BQU07Z0JBQUVvQixJQUFJLEVBQUVsQztjQUFVO1lBQ3hDLENBQUM7WUFDRG1DLFdBQVcsRUFBRSxjQUFjO1lBQzNCQyxPQUFPLEVBQUU1QixNQUFNLEdBQUc7Y0FBRTZCLFlBQVksRUFBRTtnQkFBRTdCLE1BQU0sRUFBTkE7Y0FBTztZQUFFLENBQUMsR0FBR2tCO1VBQ25ELENBQUMsQ0FBQztRQUFBO1VBQUFYLHFCQUFBLEdBQUFPLFFBQUEsQ0FBQWdCLElBQUE7VUFUTXRCLElBQUksR0FBQUQscUJBQUEsQ0FBSkMsSUFBSTtVQVdaO1VBQ01DLFFBQStDLElBQUFQLHFCQUFBLEdBQUdNLElBQUksYUFBSkEsSUFBSSxnQkFBQUwsc0JBQUEsR0FBSkssSUFBSSxDQUFFdUIsa0JBQWtCLGNBQUE1QixzQkFBQSxnQkFBQUEsc0JBQUEsR0FBeEJBLHNCQUFBLENBQTJCLENBQUMsQ0FBQyxjQUFBQSxzQkFBQSx1QkFBN0JBLHNCQUFBLENBQStCTyxLQUFLLGNBQUFSLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksRUFBRTtVQUU1RlEsS0FBd0IsR0FBR0QsUUFBUSxDQUFDdUIsR0FBRyxDQUFDLFVBQUFDLENBQUM7WUFBQSxPQUFLO2NBQ2xEO2NBQ0FDLEVBQUUsRUFBRUMsTUFBTSxDQUFDRixDQUFDLENBQUNHLEdBQUcsSUFBSSxFQUFFLENBQUM7Y0FDdkJuQyxLQUFLLEVBQUVrQyxNQUFNLENBQUNGLENBQUMsQ0FBQ2hDLEtBQUssSUFBSSxFQUFFO1lBQzdCLENBQUM7VUFBQSxDQUFDLENBQUM7VUFBQSxPQUFBYSxRQUFBLENBQUF1QixNQUFBLFdBRUk7WUFBRTNCLEtBQUssRUFBTEEsS0FBSztZQUFFNEIsT0FBTyxFQUFFNUIsS0FBSyxDQUFDTyxNQUFNLEtBQUt6QixTQUFTO1lBQUUrQyxLQUFLLEdBQUFuQyxzQkFBQSxHQUFFSSxJQUFJLGFBQUpBLElBQUksZ0JBQUFILHNCQUFBLEdBQUpHLElBQUksQ0FBRXVCLGtCQUFrQixjQUFBMUIsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQXhCQSxzQkFBQSxDQUEyQixDQUFDLENBQUMsY0FBQUEsc0JBQUEsdUJBQTdCQSxzQkFBQSxDQUErQm1DLFVBQVUsY0FBQXBDLHNCQUFBLGNBQUFBLHNCQUFBLEdBQUk7VUFBRSxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFVLFFBQUEsQ0FBQTJCLElBQUE7TUFBQTtJQUFBLEdBQUEzQyxPQUFBO0VBQUEsQ0FDN0c7RUFBQSxnQkEzQllMLGVBQWVBLENBQUFpRCxFQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQTtJQUFBLE9BQUFsRCxJQUFBLENBQUFtRCxLQUFBLE9BQUFqQyxTQUFBO0VBQUE7QUFBQSxHQTJCM0IiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -176,7 +176,7 @@ export var useGetAgents = function useGetAgents(_ref) {
176
176
  var handleGetAgents = useCallback(/*#__PURE__*/function () {
177
177
  var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(agentToSelect) {
178
178
  var _agentToSelect$id;
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;
179
+ 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;
180
180
  return _regeneratorRuntime.wrap(function (_context) {
181
181
  while (1) switch (_context.prev = _context.next) {
182
182
  case 0:
@@ -213,9 +213,10 @@ export var useGetAgents = function useGetAgents(_ref) {
213
213
  break;
214
214
  }
215
215
  _context.prev = 4;
216
+ orderParam = section === 'client' ? '&order=client,project' : section === 'project' ? '&order=project,client' : '';
216
217
  _context.next = 5;
217
218
  return fetchMaia({
218
- path: "agents?agent_type=clone&lang=".concat(i18n.language),
219
+ path: "agents?agent_type=clone&lang=".concat(i18n.language).concat(orderParam),
219
220
  method: 'GET'
220
221
  });
221
222
  case 5:
@@ -318,9 +319,10 @@ export var useGetAgents = function useGetAgents(_ref) {
318
319
  case 16:
319
320
  // Lógica para project o header sin multiAgents
320
321
  queryParams = new URLSearchParams();
321
- if (section === 'project') {
322
+ if (section === 'project' || section === 'client') {
322
323
  queryParams.append('agent_type', 'clone');
323
324
  queryParams.append('lang', i18n.language);
325
+ queryParams.append('order', section === 'client' ? 'client,project' : 'project,client');
324
326
  } else if (section === 'header' && !isMultiAgents) {
325
327
  // Header sin multiAgents: solo listar agentes clone (Maia)
326
328
  queryParams.append('agent_type', 'clone');
@@ -560,4 +562,4 @@ export var useGetAgents = function useGetAgents(_ref) {
560
562
  sortAgentsList: sortAgentsList
561
563
  };
562
564
  };
563
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJzb3J0QWdlbnRzIiwiYWdlbnRzIiwiY2xvbmVBZ2VudHMiLCJmaWx0ZXIiLCJhZyIsInR5cGUiLCJvdGhlckFnZW50cyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiYWdlbnQiLCJoYW5kbGVHb0hvbWUiLCJ1c2VyIiwiX3VzZVN0YXRlIiwiZGF0YSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldEFnZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmdNb3JlIiwic2V0TG9hZGluZ01vcmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsImFkZEFnZW50IiwibmV3QWdlbnQiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsImlkIiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwibWFwIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsIm1lc3NhZ2UiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJjdXJyZW50IiwiaGFuZGxlR2V0QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsIl9tYWlhRGF0YSRkYXRhIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJfbWFpYUVycm9yJHJlc3BvbnNlIiwiX21haWFFcnJvciRtZXNzYWdlIiwiX21haWFFcnJvciRtZXNzYWdlMiIsImlzNDAzRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJjdXN0b21IYXNNb3JlIiwiY3VzdG9tTmV4dE9mZnNldCIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl9jdXN0b21FcnJvciRyZXNwb25zZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UyIiwiX2lzNDAzRXJyb3IiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsIl9pczQwM0Vycm9yMiIsIl9hZ2VudFBhcnNlZCIsIl9hZ2VudFBhcnNlZDIiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYyIiwiYXZhaWxhYmxlQWdlbnRzIiwiX2F2YWlsYWJsZUFnZW50cyIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjMiLCJfYXZhaWxhYmxlQWdlbnRzMiIsIl9hdmFpbGFibGVBZ2VudHMzIiwiZmlyc3RBdmFpbGFibGVBZ2VudCIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwic3RhdHVzIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWUyIiwiY2FuTG9hZE1vcmUiLCJfdDUiLCJfY29udGV4dDIiLCJleGlzdGluZ0Nsb25lQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJuZXdBZ2VudHMiLCJoYXMiLCJoYXNOb0FnZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlVXNlciwgQ09SVXNlclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogYWdlbnRlcyBjbG9uZSBwcmltZXJvIChzaSBleGlzdGVuKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIC8vIFNlcGFyYXIgYWdlbnRlcyBjbG9uZSBkZWwgcmVzdG9cbiAgY29uc3QgY2xvbmVBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlICE9PSAnY2xvbmUnKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICAvLyBDb21iaW5hcjogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcywgbHVlZ28gbm8gZmF2b3JpdG9zXG4gIHJldHVybiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcidcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGFuZGxlR29Ib21lKClcbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBRdWVyeSAxOiBBZ2VudGVzIGNsb25lIChNYWlhKSAtIFNvbG8gcGFyYSByb2xlcyBwZXJtaXRpZG9zLiBQdWVkZW4gdmVuaXIgbcO6bHRpcGxlcyBhZ2VudGVzIHRpcG8gY2xvbmVcbiAgICAgICAgICBsZXQgY2xvbmVBZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGlmICghdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgbWFpYVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke2kxOG4ubGFuZ3VhZ2V9YCxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBtYWlhRGF0YSA9IGF3YWl0IG1haWFSZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgICAgY2xvbmVBZ2VudHMgPSBtYWlhRGF0YS5kYXRhPy5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJykgfHwgW11cbiAgICAgICAgICAgIH0gY2F0Y2ggKG1haWFFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjbG9uZUFnZW50c1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgICAgdGhyb3cgbWFpYUVycm9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBRdWVyeSAyOiBBZ2VudGVzIGN1c3RvbSBjb24gcGFnaW5hY2nDs25cbiAgICAgICAgICBsZXQgY3VzdG9tQWdlbnRzOiBBZ2VudFtdID0gW11cbiAgICAgICAgICBsZXQgY3VzdG9tSGFzTW9yZSA9IGZhbHNlXG4gICAgICAgICAgbGV0IGN1c3RvbU5leHRPZmZzZXQ6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoOiAnYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTcmb2Zmc2V0PTAnLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbURhdGEgPSBhd2FpdCBjdXN0b21SZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIGN1c3RvbUFnZW50cyA9IGN1c3RvbURhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgY3VzdG9tSGFzTW9yZSA9IGN1c3RvbURhdGEuaGFzX21vcmUgfHwgZmFsc2VcbiAgICAgICAgICAgIGN1c3RvbU5leHRPZmZzZXQgPSBjdXN0b21EYXRhLm5leHRfb2Zmc2V0IHx8IG51bGxcbiAgICAgICAgICB9IGNhdGNoIChjdXN0b21FcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGN1c3RvbUFnZW50cyAoY3VzdG9tQWdlbnRzIHF1ZWRhIGNvbW8gYXJyYXkgdmFjw61vKVxuICAgICAgICAgICAgICAvLyBFc3RvIHB1ZWRlIG9jdXJyaXIgZW4gZG9zIGVzY2VuYXJpb3M6XG4gICAgICAgICAgICAgIC8vIDEuIFVzdWFyaW8gTk8gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IHRlbmRyw6Egc29sbyBsb3MgY2xvbmVBZ2VudHMgKHNpIGxhIHF1ZXJ5IGNsb25lIGZ1ZSBleGl0b3NhKVxuICAgICAgICAgICAgICAvLyAyLiBVc3VhcmlvIFPDjSBlcyBkZSB1c2VyUm9sZXNEaXNhYmxlZDogZWwgbGlzdGFkbyBxdWVkYXLDoSB2YWPDrW8gKHBvcnF1ZSBubyBoYXkgY2xvbmVBZ2VudHMpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICB0aHJvdyBjdXN0b21FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENvbWJpbmFyOiBhZ2VudGVzIGNsb25lIHByaW1lcm8sIGx1ZWdvIGxvcyBjdXN0b20gKHNpIGV4aXN0ZW4pXG4gICAgICAgICAgLy8gU2kgZWwgdXN1YXJpbyB0aWVuZSB1biByb2wgZGVzaGFiaWxpdGFkbywgbm8gaW5jbHVpciBjbG9uZUFnZW50c1xuICAgICAgICAgIGlmICh1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIGRlIHJvbGVzIGRpc2FibGVkOiBzb2xvIGN1c3RvbUFnZW50c1xuICAgICAgICAgICAgLy8gU2kgY3VzdG9tQWdlbnRzIGVzdMOhIHZhY8OtbyAocG9yIDQwMyksIGFnZW50UGFyc2VkIHNlcsOhIFtdIHkgc2UgbW9zdHJhcsOhIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFVzdWFyaW8gbm9ybWFsOiBjbG9uZUFnZW50cyArIGN1c3RvbUFnZW50c1xuICAgICAgICAgICAgLy8gU2kgY3VzdG9tQWdlbnRzIGVzdMOhIHZhY8OtbyAocG9yIDQwMykgcGVybyBoYXkgY2xvbmVBZ2VudHMsIGFnZW50UGFyc2VkIHRlbmRyw6EgbG9zIGNsb25lc1xuICAgICAgICAgICAgLy8gU2kgbm8gaGF5IGNsb25lQWdlbnRzIG5pIGN1c3RvbUFnZW50cywgYWdlbnRQYXJzZWQgc2Vyw6EgW10geSBzZSBtb3N0cmFyw6EgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmN1c3RvbUFnZW50c10gOiBjdXN0b21BZ2VudHNcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBhZ2VudFBhcnNlZCA9IHNvcnRBZ2VudHMoYWdlbnRQYXJzZWQpXG4gICAgICAgICAgaGFzTW9yZSA9IGN1c3RvbUhhc01vcmVcbiAgICAgICAgICBuZXh0T2Zmc2V0ID0gY3VzdG9tTmV4dE9mZnNldFxuXG4gICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgaGFzX21vcmU6IGhhc01vcmUsXG4gICAgICAgICAgICBuZXh0X29mZnNldDogbmV4dE9mZnNldCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8gU2kgbm8gaGF5IGFnZW50ZXMgZGVzcHXDqXMgZGUgcHJvY2VzYXIgbGFzIHF1ZXJpZXMsIGxpbXBpYXIgZWwgZXJyb3JcbiAgICAgICAgICAvLyBwYXJhIHF1ZSBoYXNOb0FnZW50cyBwdWVkYSBzZXIgdHJ1ZSB5IHNlIG11ZXN0cmUgZWwgZW1wdHlTdGF0ZVxuICAgICAgICAgIGlmIChhZ2VudFBhcnNlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBwcm9qZWN0IG8gaGVhZGVyIHNpbiBtdWx0aUFnZW50c1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0Jykge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAhaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gSGVhZGVyIHNpbiBtdWx0aUFnZW50czogc29sbyBsaXN0YXIgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPWNsb25lXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gZGF0YS5uZXh0X29mZnNldFxuXG4gICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIExpbXBpYXIgZWwgZXJyb3IgcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIGNsb25lIHkgY3VzdG9tXG4gICAgICAgICAgLy8gTWFudGVuZXIgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZXhpc3RlbnRlcyBhbCBpbmljaW9cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0Nsb25lQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBjbG9uZXMpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJykubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcblxuICAgICAgICAgIC8vIEZpbHRyYXIgbnVldm9zIGFnZW50cyBxdWUgbm8gZXN0w6luIHlhIGVuIGxhIGxpc3RhICh5IHF1ZSBubyBzZWFuIGNsb25lKVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IGRhdGEuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcblxuICAgICAgICAgIC8vIENvbnN0cnVpciBlbCBudWV2byBhcnJheTogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGxvcyBhZ2VudHMgZXhpc3RlbnRlcyBxdWUgbm8gc2VhbiBjbG9uZSwgbHVlZ28gbG9zIG51ZXZvc1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBleGlzdGluZ0Nsb25lQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdDbG9uZUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IHRvZG9zIGxvcyBhZ2VudGVzIHNvbiBjbG9uZSwgc2ltcGxlbWVudGUgYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgY29uc3QgaGFzTm9BZ2VudHMgPSAhbG9hZGluZyAmJiAhbG9hZGluZ01vcmUgJiYgIWVycm9yICYmIGFnZW50cy5kYXRhLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtC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
565
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJzb3J0QWdlbnRzIiwiYWdlbnRzIiwiY2xvbmVBZ2VudHMiLCJmaWx0ZXIiLCJhZyIsInR5cGUiLCJvdGhlckFnZW50cyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiYWdlbnQiLCJoYW5kbGVHb0hvbWUiLCJ1c2VyIiwiX3VzZVN0YXRlIiwiZGF0YSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldEFnZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmdNb3JlIiwic2V0TG9hZGluZ01vcmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsImFkZEFnZW50IiwibmV3QWdlbnQiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsImlkIiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwibWFwIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsIm1lc3NhZ2UiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJjdXJyZW50IiwiaGFuZGxlR2V0QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsIl9tYWlhRGF0YSRkYXRhIiwib3JkZXJQYXJhbSIsIm1haWFSZXNwb25zZSIsIm1haWFEYXRhIiwiX21haWFFcnJvciRyZXNwb25zZSIsIl9tYWlhRXJyb3IkbWVzc2FnZSIsIl9tYWlhRXJyb3IkbWVzc2FnZTIiLCJpczQwM0Vycm9yIiwiY3VzdG9tQWdlbnRzIiwiY3VzdG9tSGFzTW9yZSIsImN1c3RvbU5leHRPZmZzZXQiLCJjdXN0b21SZXNwb25zZSIsImN1c3RvbURhdGEiLCJfY3VzdG9tRXJyb3IkcmVzcG9uc2UiLCJfY3VzdG9tRXJyb3IkbWVzc2FnZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlMiIsIl9pczQwM0Vycm9yIiwicXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsInBhdGgiLCJyZXNwb25zZSIsIl9yZXNwb25zZUVycm9yJHJlc3BvbiIsIl9yZXNwb25zZUVycm9yJG1lc3NhZyIsIl9yZXNwb25zZUVycm9yJG1lc3NhZzIiLCJfaXM0MDNFcnJvcjIiLCJfYWdlbnRQYXJzZWQiLCJfYWdlbnRQYXJzZWQyIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMiIsImF2YWlsYWJsZUFnZW50cyIsIl9hdmFpbGFibGVBZ2VudHMiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYzIiwiX2F2YWlsYWJsZUFnZW50czIiLCJfYXZhaWxhYmxlQWdlbnRzMyIsImZpcnN0QXZhaWxhYmxlQWdlbnQiLCJfdCIsIl90MiIsIl90MyIsIl90NCIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJhYnJ1cHQiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiaW5jbHVkZXMiLCJyb2xlX2lkIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsInN0YXR1cyIsImhhc19tb3JlIiwibmV4dF9vZmZzZXQiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJhZ2VudFRvUmVxdWVzdCIsImFnZW50SXRlbSIsIkVycm9yIiwic2V0VGltZW91dCIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwibG9hZE1vcmVBZ2VudHMiLCJfY2FsbGVlMiIsImNhbkxvYWRNb3JlIiwiX3Q1IiwiX2NvbnRleHQyIiwiZXhpc3RpbmdDbG9uZUFnZW50cyIsImV4aXN0aW5nSWRzIiwiU2V0IiwibmV3QWdlbnRzIiwiaGFzIiwiaGFzTm9BZ2VudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuLyoqXG4gKiBPcmRlbmEgbG9zIGFnZW50ZXM6IGFnZW50ZXMgY2xvbmUgcHJpbWVybyAoc2kgZXhpc3RlbiksIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICovXG5jb25zdCBzb3J0QWdlbnRzID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICAvLyBTZXBhcmFyIGFnZW50ZXMgY2xvbmUgZGVsIHJlc3RvXG4gIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICBjb25zdCBvdGhlckFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWcgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJylcblxuICAvLyBTZXBhcmFyIGZhdm9yaXRvcyB5IG5vIGZhdm9yaXRvc1xuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG5cbiAgLy8gQ29tYmluYXI6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MsIGx1ZWdvIG5vIGZhdm9yaXRvc1xuICByZXR1cm4gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbnR5cGUgVXNlR2V0QWdlbnRzUHJvcHMgPSB7XG4gIHNlbGVjdEFnZW50OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCdcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGFuZGxlR29Ib21lKClcbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBRdWVyeSAxOiBBZ2VudGVzIGNsb25lIChNYWlhKSAtIFNvbG8gcGFyYSByb2xlcyBwZXJtaXRpZG9zLiBQdWVkZW4gdmVuaXIgbcO6bHRpcGxlcyBhZ2VudGVzIHRpcG8gY2xvbmVcbiAgICAgICAgICBsZXQgY2xvbmVBZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGlmICghdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JkZXJQYXJhbSA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnJm9yZGVyPWNsaWVudCxwcm9qZWN0JyA6IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/ICcmb3JkZXI9cHJvamVjdCxjbGllbnQnIDogJydcbiAgICAgICAgICAgICAgY29uc3QgbWFpYVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke2kxOG4ubGFuZ3VhZ2V9JHtvcmRlclBhcmFtfWAsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgbWFpYURhdGEgPSBhd2FpdCBtYWlhUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIGNsb25lQWdlbnRzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpIHx8IFtdXG4gICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY2xvbmVBZ2VudHNcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICAgIHRocm93IG1haWFFcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUXVlcnkgMjogQWdlbnRlcyBjdXN0b20gY29uIHBhZ2luYWNpw7NuXG4gICAgICAgICAgbGV0IGN1c3RvbUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgbGV0IGN1c3RvbUhhc01vcmUgPSBmYWxzZVxuICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICBjdXN0b21BZ2VudHMgPSBjdXN0b21EYXRhLmRhdGEgfHwgW11cbiAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICAgICAgfSBjYXRjaCAoY3VzdG9tRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKGN1c3RvbUFnZW50cyBxdWVkYSBjb21vIGFycmF5IHZhY8OtbylcbiAgICAgICAgICAgICAgLy8gRXN0byBwdWVkZSBvY3VycmlyIGVuIGRvcyBlc2NlbmFyaW9zOlxuICAgICAgICAgICAgICAvLyAxLiBVc3VhcmlvIE5PIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiB0ZW5kcsOhIHNvbG8gbG9zIGNsb25lQWdlbnRzIChzaSBsYSBxdWVyeSBjbG9uZSBmdWUgZXhpdG9zYSlcbiAgICAgICAgICAgICAgLy8gMi4gVXN1YXJpbyBTw40gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IGVsIGxpc3RhZG8gcXVlZGFyw6EgdmFjw61vIChwb3JxdWUgbm8gaGF5IGNsb25lQWdlbnRzKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDb21iaW5hcjogYWdlbnRlcyBjbG9uZSBwcmltZXJvLCBsdWVnbyBsb3MgY3VzdG9tIChzaSBleGlzdGVuKVxuICAgICAgICAgIC8vIFNpIGVsIHVzdWFyaW8gdGllbmUgdW4gcm9sIGRlc2hhYmlsaXRhZG8sIG5vIGluY2x1aXIgY2xvbmVBZ2VudHNcbiAgICAgICAgICBpZiAodXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBkZSByb2xlcyBkaXNhYmxlZDogc29sbyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdIHkgc2UgbW9zdHJhcsOhIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgLy8gcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgcHJvamVjdCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvcmRlcicsIHNlY3Rpb24gPT09ICdjbGllbnQnID8gJ2NsaWVudCxwcm9qZWN0JyA6ICdwcm9qZWN0LGNsaWVudCcpXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAhaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gSGVhZGVyIHNpbiBtdWx0aUFnZW50czogc29sbyBsaXN0YXIgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPWNsb25lXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gZGF0YS5uZXh0X29mZnNldFxuXG4gICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIExpbXBpYXIgZWwgZXJyb3IgcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIGNsb25lIHkgY3VzdG9tXG4gICAgICAgICAgLy8gTWFudGVuZXIgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZXhpc3RlbnRlcyBhbCBpbmljaW9cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0Nsb25lQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBjbG9uZXMpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJykubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcblxuICAgICAgICAgIC8vIEZpbHRyYXIgbnVldm9zIGFnZW50cyBxdWUgbm8gZXN0w6luIHlhIGVuIGxhIGxpc3RhICh5IHF1ZSBubyBzZWFuIGNsb25lKVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IGRhdGEuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcblxuICAgICAgICAgIC8vIENvbnN0cnVpciBlbCBudWV2byBhcnJheTogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGxvcyBhZ2VudHMgZXhpc3RlbnRlcyBxdWUgbm8gc2VhbiBjbG9uZSwgbHVlZ28gbG9zIG51ZXZvc1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBleGlzdGluZ0Nsb25lQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdDbG9uZUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IHRvZG9zIGxvcyBhZ2VudGVzIHNvbiBjbG9uZSwgc2ltcGxlbWVudGUgYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgY29uc3QgaGFzTm9BZ2VudHMgPSAhbG9hZGluZyAmJiAhbG9hZGluZ01vcmUgJiYgIWVycm9yICYmIGFnZW50cy5kYXRhLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxNQUFlLEVBQWM7RUFDL0M7RUFDQSxJQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQztFQUM1RCxJQUFNQyxXQUFXLEdBQUdMLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQzs7RUFFNUQ7RUFDQSxJQUFNRSxTQUFTLEdBQUdELFdBQVcsQ0FBQ0gsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNJLFdBQVc7RUFBQSxFQUFDLENBQUNDLElBQUksQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUM7SUFBQSxPQUFLRCxDQUFDLENBQUNFLElBQUksQ0FBQ0MsYUFBYSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQztFQUFBLEVBQUM7RUFDdkcsSUFBTUUsWUFB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