@projectcor/maia-components 2.11.66 → 2.11.67-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
  2. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +4 -2
  3. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  4. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +26 -6
  6. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  7. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  8. package/lib/components/atoms/icons/index.js +3 -1
  9. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
  10. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +34 -4
  11. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -2
  12. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  13. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  14. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  15. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  16. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  17. package/lib/components/molecules/Sidebar/Sidebar.js +16 -4
  18. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
  19. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  20. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  21. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
  22. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  23. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  24. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
  25. package/lib/constants/config.js +4 -1
  26. package/lib/constants/permissions/index.js +2 -2
  27. package/lib/constants/permissions/utils.js +4 -1
  28. package/lib/hooks/useChatMessages/useChatMessages.js +4 -2
  29. package/lib/hooks/useContextMentions.js +60 -15
  30. package/lib/hooks/useEntitySearch.js +294 -108
  31. package/lib/hooks/useMentionAllowedTypes.js +45 -10
  32. package/lib/hooks/useMentionPopover.js +54 -48
  33. package/lib/lang/br/index.js +54 -3
  34. package/lib/lang/en/index.js +54 -3
  35. package/lib/lang/es/index.js +54 -3
  36. package/lib/lang/fr/index.js +54 -3
  37. package/lib/services/maia/Agents/getAgents.js +10 -8
  38. package/lib/services/maia/Chats/getChatMessages.js +4 -22
  39. package/lib/services/maia/Skills/createSkill.js +39 -0
  40. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  41. package/lib/services/maia/Skills/generateSkill.js +41 -0
  42. package/lib/services/maia/Skills/getSkills.js +90 -0
  43. package/lib/services/maia/Skills/updateSkill.js +39 -0
  44. package/lib/types/contextMention.js +1 -1
  45. package/lib/types/skill.js +2 -0
  46. package/lib/utils/contextMentionIcons.js +29 -1
  47. package/lib/utils/contextMentionTriggers.js +53 -0
  48. package/lib/utils/corConnectorMentionTypes.js +37 -0
  49. package/lib/utils/normalizeAgentConnectors.js +32 -0
  50. package/lib/utils/renderContextMentions.js +9 -4
  51. package/package.json +1 -1
@@ -0,0 +1,98 @@
1
+ import styled from 'styled-components';
2
+ export var SCASMWrapper = styled.div.withConfig({
3
+ displayName: "AbmSkillModalstyles__SCASMWrapper",
4
+ componentId: "sc-x2stxd-0"
5
+ })(["background-color:#fff;padding:24px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12);width:760px;max-width:calc(100vw - 48px);max-height:calc(100vh - 96px);z-index:1001;position:relative;display:flex;flex-direction:column;gap:20px;overflow-y:auto;"]);
6
+ export var SCASMHeader = styled.div.withConfig({
7
+ displayName: "AbmSkillModalstyles__SCASMHeader",
8
+ componentId: "sc-x2stxd-1"
9
+ })(["display:flex;align-items:center;justify-content:space-between;gap:8px;"]);
10
+ export var SCASMHeaderTitle = styled.span.withConfig({
11
+ displayName: "AbmSkillModalstyles__SCASMHeaderTitle",
12
+ componentId: "sc-x2stxd-2"
13
+ })(["font-family:'Work Sans',sans-serif;font-size:16px;font-weight:500;line-height:122%;color:#20201f;"]);
14
+ export var SCASMCloseButton = styled.button.withConfig({
15
+ displayName: "AbmSkillModalstyles__SCASMCloseButton",
16
+ componentId: "sc-x2stxd-3"
17
+ })(["display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:4px;border-radius:4px;&:hover{background:#f9f9f9;}"]);
18
+ export var SCASMContent = styled.div.withConfig({
19
+ displayName: "AbmSkillModalstyles__SCASMContent",
20
+ componentId: "sc-x2stxd-4"
21
+ })(["display:flex;flex-direction:column;gap:16px;"]);
22
+ export var SCASMField = styled.div.withConfig({
23
+ displayName: "AbmSkillModalstyles__SCASMField",
24
+ componentId: "sc-x2stxd-5"
25
+ })(["display:flex;flex-direction:column;gap:6px;"]);
26
+ export var SCASMFieldHeader = styled.div.withConfig({
27
+ displayName: "AbmSkillModalstyles__SCASMFieldHeader",
28
+ componentId: "sc-x2stxd-6"
29
+ })(["display:flex;align-items:center;justify-content:space-between;gap:8px;"]);
30
+ export var SCASMHeaderActions = styled.div.withConfig({
31
+ displayName: "AbmSkillModalstyles__SCASMHeaderActions",
32
+ componentId: "sc-x2stxd-7"
33
+ })(["display:flex;align-items:center;gap:12px;"]);
34
+ export var SCASMToggleGroup = styled.div.withConfig({
35
+ displayName: "AbmSkillModalstyles__SCASMToggleGroup",
36
+ componentId: "sc-x2stxd-8"
37
+ })(["display:flex;gap:4px;"]);
38
+ export var SCASMUploadButton = styled.button.withConfig({
39
+ displayName: "AbmSkillModalstyles__SCASMUploadButton",
40
+ componentId: "sc-x2stxd-9"
41
+ })(["display:inline-flex;align-items:center;gap:6px;border:1px solid #d9d9d9;background:#fff;color:#20201f;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;padding:5px 10px;border-radius:4px;cursor:pointer;&:hover{background:#f9f9f9;}&:disabled{opacity:0.5;cursor:not-allowed;}"]);
42
+
43
+ /* Visually-hidden but still focusable/clickable via ref. Avoids relying on
44
+ display:none, which a global input style in the host app can override. */
45
+ export var SCASMHiddenFileInput = styled.input.withConfig({
46
+ displayName: "AbmSkillModalstyles__SCASMHiddenFileInput",
47
+ componentId: "sc-x2stxd-10"
48
+ })(["position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;"]);
49
+ export var SCASMToggleButton = styled.button.withConfig({
50
+ displayName: "AbmSkillModalstyles__SCASMToggleButton",
51
+ componentId: "sc-x2stxd-11"
52
+ })(["border:none;background:", ";color:", ";font-family:'Work Sans',sans-serif;font-size:12px;font-weight:", ";padding:4px 10px;border-radius:4px;cursor:pointer;&:hover{background:#f0f0f0;}"], function (_ref) {
53
+ var $active = _ref.$active;
54
+ return $active ? '#f0f0f0' : 'transparent';
55
+ }, function (_ref2) {
56
+ var $active = _ref2.$active;
57
+ return $active ? '#20201f' : '#999';
58
+ }, function (_ref3) {
59
+ var $active = _ref3.$active;
60
+ return $active ? 500 : 400;
61
+ });
62
+ export var SCASMPreview = styled.div.withConfig({
63
+ displayName: "AbmSkillModalstyles__SCASMPreview",
64
+ componentId: "sc-x2stxd-12"
65
+ })(["width:100%;box-sizing:border-box;min-height:360px;max-height:50vh;overflow-y:auto;padding:12px;border-radius:6px;border:1px solid #d9d9d9;background:#fbfbfb;font-family:'Work Sans',sans-serif;font-size:14px;line-height:1.5;color:#20201f;word-break:break-word;& > *:first-child{margin-top:0;}& > *:last-child{margin-bottom:0;}pre{overflow-x:auto;}code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:13px;}"]);
66
+ export var SCASMPreviewEmpty = styled.span.withConfig({
67
+ displayName: "AbmSkillModalstyles__SCASMPreviewEmpty",
68
+ componentId: "sc-x2stxd-13"
69
+ })(["color:#999;font-style:italic;font-size:13px;"]);
70
+ export var SCASMLabel = styled.label.withConfig({
71
+ displayName: "AbmSkillModalstyles__SCASMLabel",
72
+ componentId: "sc-x2stxd-14"
73
+ })(["font-family:'Work Sans',sans-serif;font-size:12px;font-weight:500;color:#666;"]);
74
+ export var SCASMInput = styled.input.withConfig({
75
+ displayName: "AbmSkillModalstyles__SCASMInput",
76
+ componentId: "sc-x2stxd-15"
77
+ })(["width:100%;box-sizing:border-box;padding:10px 12px;border-radius:6px;border:1px solid #d9d9d9;font-family:'Work Sans',sans-serif;font-size:14px;color:#20201f;outline:none;&:focus{border-color:#2d77bd;}&::placeholder{color:#999;}"]);
78
+ export var SCASMTextarea = styled.textarea.withConfig({
79
+ displayName: "AbmSkillModalstyles__SCASMTextarea",
80
+ componentId: "sc-x2stxd-16"
81
+ })(["width:100%;box-sizing:border-box;min-height:360px;resize:vertical;padding:10px 12px;border-radius:6px;border:1px solid #d9d9d9;font-family:'Work Sans',sans-serif;font-size:14px;line-height:140%;color:#20201f;outline:none;&:focus{border-color:#2d77bd;}&::placeholder{color:#999;}"]);
82
+ export var SCASMFooter = styled.div.withConfig({
83
+ displayName: "AbmSkillModalstyles__SCASMFooter",
84
+ componentId: "sc-x2stxd-17"
85
+ })(["display:flex;gap:12px;justify-content:flex-end;align-items:center;"]);
86
+ export var SCASMDeleteSlot = styled.div.withConfig({
87
+ displayName: "AbmSkillModalstyles__SCASMDeleteSlot",
88
+ componentId: "sc-x2stxd-18"
89
+ })(["margin-right:auto;button{color:#c70505 !important;}"]);
90
+ export var SCASMSaveButton = styled.button.withConfig({
91
+ displayName: "AbmSkillModalstyles__SCASMSaveButton",
92
+ componentId: "sc-x2stxd-19"
93
+ })(["display:flex;min-width:80px;padding:10px 16px;justify-content:center;align-items:center;gap:8px;border-radius:4px;border:none;cursor:pointer;box-sizing:border-box;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);color:#fff;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:disabled{opacity:0.5;cursor:not-allowed;}&:not(:disabled):hover{opacity:0.92;}"]);
94
+ export var SCASMCancelButton = styled.button.withConfig({
95
+ displayName: "AbmSkillModalstyles__SCASMCancelButton",
96
+ componentId: "sc-x2stxd-20"
97
+ })(["display:flex;padding:10px 16px;justify-content:center;align-items:center;border-radius:4px;border:none;background:transparent;cursor:pointer;color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:hover{background:#f0f0f0;}"]);
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ0FTTVdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDQVNNSGVhZGVyIiwiU0NBU01IZWFkZXJUaXRsZSIsInNwYW4iLCJTQ0FTTUNsb3NlQnV0dG9uIiwiYnV0dG9uIiwiU0NBU01Db250ZW50IiwiU0NBU01GaWVsZCIsIlNDQVNNRmllbGRIZWFkZXIiLCJTQ0FTTUhlYWRlckFjdGlvbnMiLCJTQ0FTTVRvZ2dsZUdyb3VwIiwiU0NBU01VcGxvYWRCdXR0b24iLCJTQ0FTTUhpZGRlbkZpbGVJbnB1dCIsImlucHV0IiwiU0NBU01Ub2dnbGVCdXR0b24iLCJfcmVmIiwiJGFjdGl2ZSIsIl9yZWYyIiwiX3JlZjMiLCJTQ0FTTVByZXZpZXciLCJTQ0FTTVByZXZpZXdFbXB0eSIsIlNDQVNNTGFiZWwiLCJsYWJlbCIsIlNDQVNNSW5wdXQiLCJTQ0FTTVRleHRhcmVhIiwidGV4dGFyZWEiLCJTQ0FTTUZvb3RlciIsIlNDQVNNRGVsZXRlU2xvdCIsIlNDQVNNU2F2ZUJ1dHRvbiIsIlNDQVNNQ2FuY2VsQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0FibVNraWxsTW9kYWwvQWJtU2tpbGxNb2RhbC5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmV4cG9ydCBjb25zdCBTQ0FTTVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgd2lkdGg6IDc2MHB4O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0OHB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDk2cHgpO1xuICB6LWluZGV4OiAxMDAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNSGVhZGVyVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMjIlO1xuICBjb2xvcjogIzIwMjAxZjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNQ2xvc2VCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01Db250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01GaWVsZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01GaWVsZEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FTTUhlYWRlckFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FTTVRvZ2dsZUdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FTTVVwbG9hZEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIH1cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbmBcblxuLyogVmlzdWFsbHktaGlkZGVuIGJ1dCBzdGlsbCBmb2N1c2FibGUvY2xpY2thYmxlIHZpYSByZWYuIEF2b2lkcyByZWx5aW5nIG9uXG4gICBkaXNwbGF5Om5vbmUsIHdoaWNoIGEgZ2xvYmFsIGlucHV0IHN0eWxlIGluIHRoZSBob3N0IGFwcCBjYW4gb3ZlcnJpZGUuICovXG5leHBvcnQgY29uc3QgU0NBU01IaWRkZW5GaWxlSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTFweDtcbiAgYm9yZGVyOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01Ub2dnbGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyNmMGYwZjAnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBjb2xvcjogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyMyMDIwMWYnIDogJyM5OTknKX07XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gNTAwIDogNDAwKX07XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01QcmV2aWV3ID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDM2MHB4O1xuICBtYXgtaGVpZ2h0OiA1MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmYmZiZmI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzIwMjAxZjtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIHByZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01QcmV2aWV3RW1wdHkgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICM5OTk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxM3B4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01MYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAjNjY2O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01JbnB1dCA9IHN0eWxlZC5pbnB1dGBcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIG91dGxpbmU6IG5vbmU7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzJkNzdiZDtcbiAgfVxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNVGV4dGFyZWEgPSBzdHlsZWQudGV4dGFyZWFgXG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIG91dGxpbmU6IG5vbmU7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzJkNzdiZDtcbiAgfVxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNRm9vdGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBU01EZWxldGVTbG90ID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBidXR0b24ge1xuICAgIGNvbG9yOiAjYzcwNTA1ICFpbXBvcnRhbnQ7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQVNNU2F2ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogODBweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBU01DYW5jZWxCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgJjpob3ZlciB7XG4gICAgYmFj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
@@ -0,0 +1,2 @@
1
+ export { AbmSkillModal } from './AbmSkillModal';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm1Ta2lsbE1vZGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0FibVNraWxsTW9kYWwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFibVNraWxsTW9kYWwgfSBmcm9tICcuL0FibVNraWxsTW9kYWwnXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBUSxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -42,6 +42,13 @@ export var DeleteQuestionModal = function DeleteQuestionModal(_ref) {
42
42
  secondPart: t('deleteQuestionModal.secondPart'),
43
43
  cancel: t('deleteQuestionModal.cancel'),
44
44
  "delete": t('deleteQuestionModal.delete')
45
+ },
46
+ skill: {
47
+ title: t('deleteSkillModal.title'),
48
+ firstPart: t('deleteSkillModal.firstPart'),
49
+ secondPart: t('deleteSkillModal.secondPart'),
50
+ cancel: t('deleteSkillModal.cancel'),
51
+ "delete": t('deleteSkillModal.delete')
45
52
  }
46
53
  };
47
54
  if (!container) return null;
@@ -112,4 +119,4 @@ export var DeleteQuestionModal = function DeleteQuestionModal(_ref) {
112
119
  })
113
120
  }), container);
114
121
  };
115
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdERPTSIsInVzZVJlZiIsIkNVQnV0dG9uIiwiQ3Jvc3MiLCJ1c2VUcmFuc2xhdGlvbiIsIkJhY2tkcm9wIiwiU0NFUU1Nb2RhbCIsIlNDRVFNV3JhcHBlciIsIlNDRVFNV3JhcHBlckNvbnRlbnQiLCJTQ0VRTVdyYXBwZXJGb290ZXIiLCJTQ0VRTVdyYXBwZXJIZWFkZXIiLCJTQ0VRTUhlYWRlclRpdGxlIiwiU0NFUU1Db250ZW50TGVnZW5kIiwiU0NFUU1EaXZpZGVyIiwiU0NFUU1MZWdlbmRUZXh0IiwiU0NFUU1XcmFwcGVyRGVsZXRlQnV0dG9uIiwiU0VDVElPTlMiLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJfcmVmIiwiX2NoYXQkdGl0bGUiLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJjaGF0IiwiX3JlZiRhY3Rpb24iLCJhY3Rpb24iLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsImNoYXRBSSIsInQiLCJiYWNrZHJvcFpJbmRleCIsImJhY2tkcm9wUmVmIiwibW9kYWxSZWYiLCJjb250YWluZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJTdHJpbmciLCJzaG93TGVnZW5kIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJ0cmFuc2xhdGlvbkJ5QWN0aW9uIiwiYWdlbnQiLCJmaXJzdFBhcnQiLCJzZWNvbmRQYXJ0IiwiY2FuY2VsIiwicXVlc3Rpb24iLCJjcmVhdGVQb3J0YWwiLCJjaGlsZHJlbiIsInJlZiIsIm9uQ2xpY2siLCJ6SW5kZXgiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiaWNvbk9ubHkiLCJ2YXJpYW50Iiwic2l6ZSIsImNvbG9yIiwiaGVpZ2h0Iiwid2lkdGgiLCJzdHlsZSIsIl9oYW5kbGVycyRoYW5kbGVDb25maSIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJjYWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwvRGVsZXRlUXVlc3Rpb25Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBDVUJ1dHRvbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2J1dHRvbi9saWIvY29tcG9uZW50cy9DVUJ1dHRvbidcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBCYWNrZHJvcCB9IGZyb20gJy4uLy4uL2F0b21zL0JhY2tkcm9wJ1xuaW1wb3J0IHtcbiAgU0NFUU1Nb2RhbCxcbiAgU0NFUU1XcmFwcGVyLFxuICBTQ0VRTVdyYXBwZXJDb250ZW50LFxuICBTQ0VRTVdyYXBwZXJGb290ZXIsXG4gIFNDRVFNV3JhcHBlckhlYWRlcixcbiAgU0NFUU1IZWFkZXJUaXRsZSxcbiAgU0NFUU1Db250ZW50TGVnZW5kLFxuICBTQ0VRTURpdmlkZXIsXG4gIFNDRVFNTGVnZW5kVGV4dCxcbiAgU0NFUU1XcmFwcGVyRGVsZXRlQnV0dG9uLFxufSBmcm9tICcuL0RlbGV0ZVF1ZXN0aW9uTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5cbmV4cG9ydCBjb25zdCBEZWxldGVRdWVzdGlvbk1vZGFsID0gKHtcbiAgb25DbG9zZSxcbiAgaGFuZGxlcnMsXG4gIGNoYXQsXG4gIGFjdGlvbiA9ICdxdWVzdGlvbicsXG59OiB7XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWRcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVDb25maXJtQWN0aW9uPzogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVNldElzT3Blbk1vZGFsPzogKHBvc2l0aW9uOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkXG4gIH1cbiAgY2hhdDogYW55XG4gIGFjdGlvbjogJ2FnZW50JyB8ICdxdWVzdGlvbidcbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihhY3Rpb24gPT09ICdhZ2VudCcgPyBbU0VDVElPTlMuYWJtQWdlbnRdIDogW1NFQ1RJT05TLmNoYXRBSV0pXG4gIGNvbnN0IGJhY2tkcm9wWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMTExMSwgJ25lc3RlZE1vZGFsJylcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtcm9vdC1hY3Rpb25zJylcblxuICBjb25zdCBkaXNwbGF5VGl0bGUgPSBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSkgfHwgU3RyaW5nKGNoYXQ/LnRpdGxlID8/ICcnKVxuICBjb25zdCBzaG93TGVnZW5kID0gZGlzcGxheVRpdGxlLmxlbmd0aCA+PSAxNTAgPyBgJHtkaXNwbGF5VGl0bGUuc2xpY2UoMCwgMTUwKX0uLi5gIDogZGlzcGxheVRpdGxlXG5cbiAgY29uc3QgdHJhbnNsYXRpb25CeUFjdGlvbiA9IHtcbiAgICBhZ2VudDoge1xuICAgICAgdGl0bGU6IHQoJ2RlbGV0ZUFnZW50TW9kYWwudGl0bGUnKSxcbiAgICAgIGZpcnN0UGFydDogdCgnZGVsZXRlQWdlbnRNb2RhbC5maXJzdFBhcnQnKSxcbiAgICAgIHNlY29uZFBhcnQ6IHQoJ2RlbGV0ZUFnZW50TW9kYWwuc2Vjb25kUGFydCcpLFxuICAgICAgY2FuY2VsOiB0KCdkZWxldGVBZ2VudE1vZGFsLmNhbmNlbCcpLFxuICAgICAgZGVsZXRlOiB0KCdkZWxldGVBZ2VudE1vZGFsLmRlbGV0ZScpLFxuICAgIH0sXG4gICAgcXVlc3Rpb246IHtcbiAgICAgIHRpdGxlOiB0KCdkZWxldGVRdWVzdGlvbk1vZGFsLnRpdGxlJyksXG4gICAgICBmaXJzdFBhcnQ6IHQoJ2RlbGV0ZVF1ZXN0aW9uTW9kYWwuZmlyc3RQYXJ0JyksXG4gICAgICBzZWNvbmRQYXJ0OiB0KCdkZWxldGVRdWVzdGlvbk1vZGFsLnNlY29uZFBhcnQnKSxcbiAgICAgIGNhbmNlbDogdCgnZGVsZXRlUXVlc3Rpb25Nb2RhbC5jYW5jZWwnKSxcbiAgICAgIGRlbGV0ZTogdCgnZGVsZXRlUXVlc3Rpb25Nb2RhbC5kZWxldGUnKSxcbiAgICB9LFxuICB9XG5cbiAgaWYgKCFjb250YWluZXIpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICA8U0NFUU1XcmFwcGVyPlxuICAgICAgPEJhY2tkcm9wIHJlZj17YmFja2Ryb3BSZWZ9IG9uQ2xpY2s9e29uQ2xvc2V9IHpJbmRleD17YmFja2Ryb3BaSW5kZXh9PlxuICAgICAgICA8U0NFUU1Nb2RhbFxuICAgICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgPlxuICAgICAgICAgIDxTQ0VRTVdyYXBwZXJDb250ZW50PlxuICAgICAgICAgICAgPFNDRVFNV3JhcHBlckhlYWRlcj5cbiAgICAgICAgICAgICAgPFNDRVFNSGVhZGVyVGl0bGU+e3RyYW5zbGF0aW9uQnlBY3Rpb25bYWN0aW9uXS50aXRsZX08L1NDRVFNSGVhZGVyVGl0bGU+XG4gICAgICAgICAgICAgIHthY3Rpb24gIT09ICdhZ2VudCcgJiYgKFxuICAgICAgICAgICAgICAgIDxDVUJ1dHRvbiBpY29uT25seSB2YXJpYW50PVwidGV4dFwiIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9e29uQ2xvc2V9PlxuICAgICAgICAgICAgICAgICAgPENyb3NzIGNvbG9yPVwiaW5oZXJpdFwiIGhlaWdodD17MTZ9IHdpZHRoPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0VRTVdyYXBwZXJIZWFkZXI+XG4gICAgICAgICAgICA8U0NFUU1Db250ZW50TGVnZW5kPlxuICAgICAgICAgICAgICA8U0NFUU1EaXZpZGVyIC8+XG4gICAgICAgICAgICAgIDxTQ0VRTUxlZ2VuZFRleHQ+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICB7dHJhbnNsYXRpb25CeUFjdGlvblthY3Rpb25dLmZpcnN0UGFydH0gPHNwYW4+e3Nob3dMZWdlbmR9PC9zcGFuPi57JyAnfVxuICAgICAgICAgICAgICAgICAge3RyYW5zbGF0aW9uQnlBY3Rpb25bYWN0aW9uXS5zZWNvbmRQYXJ0fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9TQ0VRTUxlZ2VuZFRleHQ+XG4gICAgICAgICAgICA8L1NDRVFNQ29udGVudExlZ2VuZD5cbiAgICAgICAgICA8L1NDRVFNV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgICAgPFNDRVFNV3JhcHBlckZvb3Rlcj5cbiAgICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICBvbkNsb3NlKClcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICcjMjAyMDFGJyB9fT57dHJhbnNsYXRpb25CeUFjdGlvblthY3Rpb25dLmNhbmNlbH08L3NwYW4+XG4gICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgPFNDRVFNV3JhcHBlckRlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPENVQnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgIGhhbmRsZXJzLmhhbmRsZUNvbmZpcm1BY3Rpb24/LihjaGF0KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj57dHJhbnNsYXRpb25CeUFjdGlvblthY3Rpb25dLmRlbGV0ZX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAgICA8L1NDRVFNV3JhcHBlckRlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICA8L1NDRVFNV3JhcHBlckZvb3Rlcj5cbiAgICAgICAgPC9TQ0VRTU1vZGFsPlxuICAgICAgPC9CYWNrZHJvcD5cbiAgICA8L1NDRVFNV3JhcHBlcj4sXG4gICAgY29udGFpbmVyXG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxRQUFRLE1BQU0sV0FBVztBQUNoQyxTQUFTQyxNQUFNLFFBQVEsT0FBTztBQUU5QixTQUFTQyxRQUFRLFFBQVEsNENBQTRDO0FBQ3JFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsUUFBUSxRQUFRLHNCQUFzQjtBQUMvQyxTQUNFQyxVQUFVLEVBQ1ZDLFlBQVksRUFDWkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxrQkFBa0IsRUFDbEJDLFlBQVksRUFDWkMsZUFBZSxFQUNmQyx3QkFBd0IsUUFDbkIsOEJBQThCO0FBQ3JDLFNBQVNDLFFBQVEsUUFBUSwyQkFBMkI7QUFDcEQsU0FBU0Msc0JBQXNCLFFBQVEsdUNBQXVDO0FBQzlFLFNBQVNDLDJCQUEyQixRQUFRLHNDQUFzQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFbEYsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBQyxJQUFBLEVBYTFCO0VBQUEsSUFBQUMsV0FBQTtFQUFBLElBWkpDLE9BQU8sR0FBQUYsSUFBQSxDQUFQRSxPQUFPO0lBQ1BDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO0lBQ1JDLElBQUksR0FBQUosSUFBQSxDQUFKSSxJQUFJO0lBQUFDLFdBQUEsR0FBQUwsSUFBQSxDQUNKTSxNQUFNO0lBQU5BLE1BQU0sR0FBQUQsV0FBQSxjQUFHLFVBQVUsR0FBQUEsV0FBQTtFQVVuQixJQUFBRSxlQUFBLEdBQWMzQixjQUFjLENBQUMwQixNQUFNLEtBQUssT0FBTyxH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
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdERPTSIsInVzZVJlZiIsIkNVQnV0dG9uIiwiQ3Jvc3MiLCJ1c2VUcmFuc2xhdGlvbiIsIkJhY2tkcm9wIiwiU0NFUU1Nb2RhbCIsIlNDRVFNV3JhcHBlciIsIlNDRVFNV3JhcHBlckNvbnRlbnQiLCJTQ0VRTVdyYXBwZXJGb290ZXIiLCJTQ0VRTVdyYXBwZXJIZWFkZXIiLCJTQ0VRTUhlYWRlclRpdGxlIiwiU0NFUU1Db250ZW50TGVnZW5kIiwiU0NFUU1EaXZpZGVyIiwiU0NFUU1MZWdlbmRUZXh0IiwiU0NFUU1XcmFwcGVyRGVsZXRlQnV0dG9uIiwiU0VDVElPTlMiLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJfcmVmIiwiX2NoYXQkdGl0bGUiLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJjaGF0IiwiX3JlZiRhY3Rpb24iLCJhY3Rpb24iLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsImNoYXRBSSIsInQiLCJiYWNrZHJvcFpJbmRleCIsImJhY2tkcm9wUmVmIiwibW9kYWxSZWYiLCJjb250YWluZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJTdHJpbmciLCJzaG93TGVnZW5kIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJ0cmFuc2xhdGlvbkJ5QWN0aW9uIiwiYWdlbnQiLCJmaXJzdFBhcnQiLCJzZWNvbmRQYXJ0IiwiY2FuY2VsIiwicXVlc3Rpb24iLCJza2lsbCIsImNyZWF0ZVBvcnRhbCIsImNoaWxkcmVuIiwicmVmIiwib25DbGljayIsInpJbmRleCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJpY29uT25seSIsInZhcmlhbnQiLCJzaXplIiwiY29sb3IiLCJoZWlnaHQiLCJ3aWR0aCIsInN0eWxlIiwiX2hhbmRsZXJzJGhhbmRsZUNvbmZpIiwiaGFuZGxlQ29uZmlybUFjdGlvbiIsImNhbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEJhY2tkcm9wIH0gZnJvbSAnLi4vLi4vYXRvbXMvQmFja2Ryb3AnXG5pbXBvcnQge1xuICBTQ0VRTU1vZGFsLFxuICBTQ0VRTVdyYXBwZXIsXG4gIFNDRVFNV3JhcHBlckNvbnRlbnQsXG4gIFNDRVFNV3JhcHBlckZvb3RlcixcbiAgU0NFUU1XcmFwcGVySGVhZGVyLFxuICBTQ0VRTUhlYWRlclRpdGxlLFxuICBTQ0VRTUNvbnRlbnRMZWdlbmQsXG4gIFNDRVFNRGl2aWRlcixcbiAgU0NFUU1MZWdlbmRUZXh0LFxuICBTQ0VRTVdyYXBwZXJEZWxldGVCdXR0b24sXG59IGZyb20gJy4vRGVsZXRlUXVlc3Rpb25Nb2RhbC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVF1ZXN0aW9uTW9kYWwgPSAoe1xuICBvbkNsb3NlLFxuICBoYW5kbGVycyxcbiAgY2hhdCxcbiAgYWN0aW9uID0gJ3F1ZXN0aW9uJyxcbn06IHtcbiAgb25DbG9zZTogKCkgPT4gdm9pZFxuICBoYW5kbGVyczoge1xuICAgIGhhbmRsZUNvbmZpcm1BY3Rpb24/OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gICAgaGFuZGxlU2V0SXNPcGVuTW9kYWw/OiAocG9zaXRpb246IHN0cmluZyB8IG51bGwpID0+IHZvaWRcbiAgfVxuICBjaGF0OiBhbnlcbiAgYWN0aW9uOiAnYWdlbnQnIHwgJ3F1ZXN0aW9uJyB8ICdza2lsbCdcbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihhY3Rpb24gPT09ICdhZ2VudCcgPyBbU0VDVElPTlMuYWJtQWdlbnRdIDogW1NFQ1RJT05TLmNoYXRBSV0pXG4gIGNvbnN0IGJhY2tkcm9wWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMTExMSwgJ25lc3RlZE1vZGFsJylcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtcm9vdC1hY3Rpb25zJylcblxuICBjb25zdCBkaXNwbGF5VGl0bGUgPSBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSkgfHwgU3RyaW5nKGNoYXQ/LnRpdGxlID8/ICcnKVxuICBjb25zdCBzaG93TGVnZW5kID0gZGlzcGxheVRpdGxlLmxlbmd0aCA+PSAxNTAgPyBgJHtkaXNwbGF5VGl0bGUuc2xpY2UoMCwgMTUwKX0uLi5gIDogZGlzcGxheVRpdGxlXG5cbiAgY29uc3QgdHJhbnNsYXRpb25CeUFjdGlvbiA9IHtcbiAgICBhZ2VudDoge1xuICAgICAgdGl0bGU6IHQoJ2RlbGV0ZUFnZW50TW9kYWwudGl0bGUnKSxcbiAgICAgIGZpcnN0UGFydDogdCgnZGVsZXRlQWdlbnRNb2RhbC5maXJzdFBhcnQnKSxcbiAgICAgIHNlY29uZFBhcnQ6IHQoJ2RlbGV0ZUFnZW50TW9kYWwuc2Vjb25kUGFydCcpLFxuICAgICAgY2FuY2VsOiB0KCdkZWxldGVBZ2VudE1vZGFsLmNhbmNlbCcpLFxuICAgICAgZGVsZXRlOiB0KCdkZWxldGVBZ2VudE1vZGFsLmRlbGV0ZScpLFxuICAgIH0sXG4gICAgcXVlc3Rpb246IHtcbiAgICAgIHRpdGxlOiB0KCdkZWxldGVRdWVzdGlvbk1vZGFsLnRpdGxlJyksXG4gICAgICBmaXJzdFBhcnQ6IHQoJ2RlbGV0ZVF1ZXN0aW9uTW9kYWwuZmlyc3RQYXJ0JyksXG4gICAgICBzZWNvbmRQYXJ0OiB0KCdkZWxldGVRdWVzdGlvbk1vZGFsLnNlY29uZFBhcnQnKSxcbiAgICAgIGNhbmNlbDogdCgnZGVsZXRlUXVlc3Rpb25Nb2RhbC5jYW5jZWwnKSxcbiAgICAgIGRlbGV0ZTogdCgnZGVsZXRlUXVlc3Rpb25Nb2RhbC5kZWxldGUnKSxcbiAgICB9LFxuICAgIHNraWxsOiB7XG4gICAgICB0aXRsZTogdCgnZGVsZXRlU2tpbGxNb2RhbC50aXRsZScpLFxuICAgICAgZmlyc3RQYXJ0OiB0KCdkZWxldGVTa2lsbE1vZGFsLmZpcnN0UGFydCcpLFxuICAgICAgc2Vjb25kUGFydDogdCgnZGVsZXRlU2tpbGxNb2RhbC5zZWNvbmRQYXJ0JyksXG4gICAgICBjYW5jZWw6IHQoJ2RlbGV0ZVNraWxsTW9kYWwuY2FuY2VsJyksXG4gICAgICBkZWxldGU6IHQoJ2RlbGV0ZVNraWxsTW9kYWwuZGVsZXRlJyksXG4gICAgfSxcbiAgfVxuXG4gIGlmICghY29udGFpbmVyKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgPFNDRVFNV3JhcHBlcj5cbiAgICAgIDxCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfSBvbkNsaWNrPXtvbkNsb3NlfSB6SW5kZXg9e2JhY2tkcm9wWkluZGV4fT5cbiAgICAgICAgPFNDRVFNTW9kYWxcbiAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9fVxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgID5cbiAgICAgICAgICA8U0NFUU1XcmFwcGVyQ29udGVudD5cbiAgICAgICAgICAgIDxTQ0VRTVdyYXBwZXJIZWFkZXI+XG4gICAgICAgICAgICAgIDxTQ0VRTUhlYWRlclRpdGxlPnt0cmFuc2xhdGlvbkJ5QWN0aW9uW2FjdGlvbl0udGl0bGV9PC9TQ0VRTUhlYWRlclRpdGxlPlxuICAgICAgICAgICAgICB7YWN0aW9uICE9PSAnYWdlbnQnICYmIChcbiAgICAgICAgICAgICAgICA8Q1VCdXR0b24gaWNvbk9ubHkgdmFyaWFudD1cInRleHRcIiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgICAgICAgICAgIDxDcm9zcyBjb2xvcj1cImluaGVyaXRcIiBoZWlnaHQ9ezE2fSB3aWR0aD17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NFUU1XcmFwcGVySGVhZGVyPlxuICAgICAgICAgICAgPFNDRVFNQ29udGVudExlZ2VuZD5cbiAgICAgICAgICAgICAgPFNDRVFNRGl2aWRlciAvPlxuICAgICAgICAgICAgICA8U0NFUU1MZWdlbmRUZXh0PlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAge3RyYW5zbGF0aW9uQnlBY3Rpb25bYWN0aW9uXS5maXJzdFBhcnR9IDxzcGFuPntzaG93TGVnZW5kfTwvc3Bhbj4ueycgJ31cbiAgICAgICAgICAgICAgICAgIHt0cmFuc2xhdGlvbkJ5QWN0aW9uW2FjdGlvbl0uc2Vjb25kUGFydH1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvU0NFUU1MZWdlbmRUZXh0PlxuICAgICAgICAgICAgPC9TQ0VRTUNvbnRlbnRMZWdlbmQ+XG4gICAgICAgICAgPC9TQ0VRTVdyYXBwZXJDb250ZW50PlxuICAgICAgICAgIDxTQ0VRTVdyYXBwZXJGb290ZXI+XG4gICAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgb25DbG9zZSgpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGNvbG9yOiAnIzIwMjAxRicgfX0+e3RyYW5zbGF0aW9uQnlBY3Rpb25bYWN0aW9uXS5jYW5jZWx9PC9zcGFuPlxuICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgIDxTQ0VRTVdyYXBwZXJEZWxldGVCdXR0b24+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICBoYW5kbGVycy5oYW5kbGVDb25maXJtQWN0aW9uPy4oY2hhdClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3RyYW5zbGF0aW9uQnlBY3Rpb25bYWN0aW9uXS5kZWxldGV9PC9zcGFuPlxuICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgPC9TQ0VRTVdyYXBwZXJEZWxldGVCdXR0b24+XG4gICAgICAgICAgPC9TQ0VRTVdyYXBwZXJGb290ZXI+XG4gICAgICAgIDwvU0NFUU1Nb2RhbD5cbiAgICAgIDwvQmFja2Ryb3A+XG4gICAgPC9TQ0VRTVdyYXBwZXI+LFxuICAgIGNvbnRhaW5lclxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBT0EsUUFBUSxNQUFNLFdBQVc7QUFDaEMsU0FBU0MsTUFBTSxRQUFRLE9BQU87QUFFOUIsU0FBU0MsUUFBUSxRQUFRLDRDQUE0QztBQUNyRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxzQkFBc0I7QUFDL0MsU0FDRUMsVUFBVSxFQUNWQyxZQUFZLEVBQ1pDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMsa0JBQWtCLEVBQ2xCQyxZQUFZLEVBQ1pDLGVBQWUsRUFDZkMsd0JBQXdCLFFBQ25CLDhCQUE4QjtBQUNyQyxTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLHNCQUFzQixRQUFRLHVDQUF1QztBQUM5RSxTQUFTQywyQkFBMkIsUUFBUSxzQ0FBc0M7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRWxGLE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsU0FB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
@@ -1,5 +1,8 @@
1
1
  /** Delay unificado al escribir antes de disparar búsquedas (GraphQL / API): selectores, @ contexto, etc. */
2
2
  export var SEARCH_QUERY_DEBOUNCE_MS = 500;
3
+
4
+ /** Longitud mínima del parámetro `q` en GET /skills (validación del backend). */
5
+ export var SKILLS_SEARCH_MIN_QUERY_LENGTH = 3;
3
6
  export var SECTIONS = {
4
7
  projectSummary: 'project_summary_section',
5
8
  chatAI: 'chat_ai_section',
@@ -7,4 +10,4 @@ export var SECTIONS = {
7
10
  projectSelector: 'project_selector_section',
8
11
  clientSelector: 'client_selector_section'
9
12
  };
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMiLCJTRUNUSU9OUyIsInByb2plY3RTdW1tYXJ5IiwiY2hhdEFJIiwiYWJtQWdlbnQiLCJwcm9qZWN0U2VsZWN0b3IiLCJjbGllbnRTZWxlY3RvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBEZWxheSB1bmlmaWNhZG8gYWwgZXNjcmliaXIgYW50ZXMgZGUgZGlzcGFyYXIgYsO6c3F1ZWRhcyAoR3JhcGhRTCAvIEFQSSk6IHNlbGVjdG9yZXMsIEAgY29udGV4dG8sIGV0Yy4gKi9cbmV4cG9ydCBjb25zdCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgPSA1MDBcblxuZXhwb3J0IGNvbnN0IFNFQ1RJT05TID0ge1xuICBwcm9qZWN0U3VtbWFyeTogJ3Byb2plY3Rfc3VtbWFyeV9zZWN0aW9uJyxcbiAgY2hhdEFJOiAnY2hhdF9haV9zZWN0aW9uJyxcbiAgYWJtQWdlbnQ6ICdhYm1fYWdlbnRfc2VjdGlvbicsXG4gIHByb2plY3RTZWxlY3RvcjogJ3Byb2plY3Rfc2VsZWN0b3Jfc2VjdGlvbicsXG4gIGNsaWVudFNlbGVjdG9yOiAnY2xpZW50X3NlbGVjdG9yX3NlY3Rpb24nLFxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU8sSUFBTUEsd0JBQXdCLEdBQUcsR0FBRztBQUUzQyxPQUFPLElBQU1DLFFBQVEsR0FBRztFQUN0QkMsY0FBYyxFQUFFLHlCQUF5QjtFQUN6Q0MsTUFBTSxFQUFFLGlCQUFpQjtFQUN6QkMsUUFBUSxFQUFFLG1CQUFtQjtFQUM3QkMsZUFBZSxFQUFFLDBCQUEwQjtFQUMzQ0MsY0FBYyxFQUFFO0FBQ2xCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMiLCJTS0lMTFNfU0VBUkNIX01JTl9RVUVSWV9MRU5HVEgiLCJTRUNUSU9OUyIsInByb2plY3RTdW1tYXJ5IiwiY2hhdEFJIiwiYWJtQWdlbnQiLCJwcm9qZWN0U2VsZWN0b3IiLCJjbGllbnRTZWxlY3RvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBEZWxheSB1bmlmaWNhZG8gYWwgZXNjcmliaXIgYW50ZXMgZGUgZGlzcGFyYXIgYsO6c3F1ZWRhcyAoR3JhcGhRTCAvIEFQSSk6IHNlbGVjdG9yZXMsIEAgY29udGV4dG8sIGV0Yy4gKi9cbmV4cG9ydCBjb25zdCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgPSA1MDBcblxuLyoqIExvbmdpdHVkIG3DrW5pbWEgZGVsIHBhcsOhbWV0cm8gYHFgIGVuIEdFVCAvc2tpbGxzICh2YWxpZGFjacOzbiBkZWwgYmFja2VuZCkuICovXG5leHBvcnQgY29uc3QgU0tJTExTX1NFQVJDSF9NSU5fUVVFUllfTEVOR1RIID0gM1xuXG5leHBvcnQgY29uc3QgU0VDVElPTlMgPSB7XG4gIHByb2plY3RTdW1tYXJ5OiAncHJvamVjdF9zdW1tYXJ5X3NlY3Rpb24nLFxuICBjaGF0QUk6ICdjaGF0X2FpX3NlY3Rpb24nLFxuICBhYm1BZ2VudDogJ2FibV9hZ2VudF9zZWN0aW9uJyxcbiAgcHJvamVjdFNlbGVjdG9yOiAncHJvamVjdF9zZWxlY3Rvcl9zZWN0aW9uJyxcbiAgY2xpZW50U2VsZWN0b3I6ICdjbGllbnRfc2VsZWN0b3Jfc2VjdGlvbicsXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyxJQUFNQSx3QkFBd0IsR0FBRyxHQUFHOztBQUUzQztBQUNBLE9BQU8sSUFBTUMsOEJBQThCLEdBQUcsQ0FBQztBQUUvQyxPQUFPLElBQU1DLFFBQVEsR0FBRztFQUN0QkMsY0FBYyxFQUFFLHlCQUF5QjtFQUN6Q0MsTUFBTSxFQUFFLGlCQUFpQjtFQUN6QkMsUUFBUSxFQUFFLG1CQUFtQjtFQUM3QkMsZUFBZSxFQUFFLDBCQUEwQjtFQUMzQ0MsY0FBYyxFQUFFO0FBQ2xCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,3 +1,3 @@
1
1
  export { buildConfigureSettingsItems } from './config';
2
- export { canAccessToProjectSummary, canAccessToChatAI } from './utils';
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZENvbmZpZ3VyZVNldHRpbmdzSXRlbXMiLCJjYW5BY2Nlc3NUb1Byb2plY3RTdW1tYXJ5IiwiY2FuQWNjZXNzVG9DaGF0QUkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uc3RhbnRzL3Blcm1pc3Npb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyB9IGZyb20gJy4vY29uZmlnJ1xuZXhwb3J0IHsgY2FuQWNjZXNzVG9Qcm9qZWN0U3VtbWFyeSwgY2FuQWNjZXNzVG9DaGF0QUkgfSBmcm9tICcuL3V0aWxzJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSwyQkFBMkIsUUFBUSxVQUFVO0FBQ3RELFNBQVNDLHlCQUF5QixFQUFFQyxpQkFBaUIsUUFBUSxTQUFTIiwiaWdub3JlTGlzdCI6W119
2
+ export { canAccessToProjectSummary, canAccessToChatAI, canAccessToSkills } from './utils';
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZENvbmZpZ3VyZVNldHRpbmdzSXRlbXMiLCJjYW5BY2Nlc3NUb1Byb2plY3RTdW1tYXJ5IiwiY2FuQWNjZXNzVG9DaGF0QUkiLCJjYW5BY2Nlc3NUb1NraWxscyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdGFudHMvcGVybWlzc2lvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIH0gZnJvbSAnLi9jb25maWcnXG5leHBvcnQgeyBjYW5BY2Nlc3NUb1Byb2plY3RTdW1tYXJ5LCBjYW5BY2Nlc3NUb0NoYXRBSSwgY2FuQWNjZXNzVG9Ta2lsbHMgfSBmcm9tICcuL3V0aWxzJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSwyQkFBMkIsUUFBUSxVQUFVO0FBQ3RELFNBQVNDLHlCQUF5QixFQUFFQyxpQkFBaUIsRUFBRUMsaUJBQWlCLFFBQVEsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -12,4 +12,7 @@ export var canAccessToChatAI = function canAccessToChatAI(user) {
12
12
  var MAIA_CHAT_AI_ENABLED = canAccessToFeature('MAIA_CHAT_AI_FEATURE_ACCESS') || canAccessToFeature('MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS') || canAccessToFeature('MAIA_PROJECT_SUMMARY_FEATURE_ACCESS');
13
13
  return MAIA_CHAT_AI_ENABLED && user.role_id && !DISABLED_ROLES.includes(user.role_id);
14
14
  };
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JVc2VyUm9sZSIsIkRJU0FCTEVEX1JPTEVTIiwiQ0xJRU5UIiwiRlJFRUxBTkNFUiIsImNhbkFjY2Vzc1RvRmVhdHVyZSIsImZlYXR1cmUiLCJGRUFUVVJFX0FDQ0VTUyIsIndpbmRvdyIsIkJvb2xlYW4iLCJjYW5BY2Nlc3NUb1Byb2plY3RTdW1tYXJ5IiwidXNlciIsIk1BSUFfUFJPSkVDVF9TVU1NQVJZX0VOQUJMRUQiLCJyb2xlX2lkIiwiaW5jbHVkZXMiLCJjYW5BY2Nlc3NUb0NoYXRBSSIsIk1BSUFfQ0hBVF9BSV9FTkFCTEVEIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9wZXJtaXNzaW9ucy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT1JVc2VyLCBDT1JVc2VyUm9sZSB9IGZyb20gJy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5cbmNvbnN0IERJU0FCTEVEX1JPTEVTID0gW0NPUlVzZXJSb2xlLkNMSUVOVCwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUl1cblxuY29uc3QgY2FuQWNjZXNzVG9GZWF0dXJlID0gKGZlYXR1cmU6IHN0cmluZykgPT4ge1xuICBjb25zdCBGRUFUVVJFX0FDQ0VTUyA9IGZlYXR1cmUgaW4gd2luZG93ICYmIEJvb2xlYW4od2luZG93W2ZlYXR1cmVdKVxuXG4gIHJldHVybiBGRUFUVVJFX0FDQ0VTU1xufVxuXG5leHBvcnQgY29uc3QgY2FuQWNjZXNzVG9Qcm9qZWN0U3VtbWFyeSA9ICh1c2VyOiBDT1JVc2VyKSA9PiB7XG4gIGNvbnN0IE1BSUFfUFJPSkVDVF9TVU1NQVJZX0VOQUJMRUQgPVxuICAgIGNhbkFjY2Vzc1RvRmVhdHVyZSgnTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MnKSB8fFxuICAgIGNhbkFjY2Vzc1RvRmVhdHVyZSgnTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUycpIHx8XG4gICAgY2FuQWNjZXNzVG9GZWF0dXJlKCdNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MnKVxuXG4gIHJldHVybiBNQUlBX1BST0pFQ1RfU1VNTUFSWV9FTkFCTEVEICYmIHVzZXIucm9sZV9pZCAmJiAhRElTQUJMRURfUk9MRVMuaW5jbHVkZXModXNlci5yb2xlX2lkKVxufVxuXG5leHBvcnQgY29uc3QgY2FuQWNjZXNzVG9DaGF0QUkgPSAodXNlcjogQ09SVXNlcikgPT4ge1xuICBjb25zdCBNQUlBX0NIQVRfQUlfRU5BQkxFRCA9XG4gICAgY2FuQWNjZXNzVG9GZWF0dXJlKCdNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MnKSB8fFxuICAgIGNhbkFjY2Vzc1RvRmVhdHVyZSgnTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUycpIHx8XG4gICAgY2FuQWNjZXNzVG9GZWF0dXJlKCdNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUycpXG5cbiAgcmV0dXJuIE1BSUFfQ0hBVF9BSV9FTkFCTEVEICYmIHVzZXIucm9sZV9pZCAmJiAhRElTQUJMRURfUk9MRVMuaW5jbHVkZXModXNlci5yb2xlX2lkKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFrQkEsV0FBVyxRQUFRLHdCQUF3QjtBQUU3RCxJQUFNQyxjQUFjLEdBQUcsQ0FBQ0QsV0FBVyxDQUFDRSxNQUFNLEVBQUVGLFdBQVcsQ0FBQ0csVUFBVSxDQUFDO0FBRW5FLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLE9BQWUsRUFBSztFQUM5QyxJQUFNQyxjQUFjLEdBQUdELE9BQU8sSUFBSUUsTUFBTSxJQUFJQyxPQUFPLENBQUNELE1BQU0sQ0FBQ0YsT0FBTyxDQUFDLENBQUM7RUFFcEUsT0FBT0MsY0FBYztBQUN2QixDQUFDO0FBRUQsT0FBTyxJQUFNRyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxJQUFhLEVBQUs7RUFDMUQsSUFBTUMsNEJBQTRCLEdBQ2hDUCxrQkFBa0IsQ0FBQyxxQ0FBcUMsQ0FBQyxJQUN6REEsa0JBQWtCLENBQUMsMENBQTBDLENBQUMsSUFDOURBLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDO0VBRW5ELE9BQU9PLDRCQUE0QixJQUFJRCxJQUFJLENBQUNFLE9BQU8sSUFBSSxDQUFDWCxjQUFjLENBQUNZLFFBQVEsQ0FBQ0gsSUFBSSxDQUFDRSxPQUFPLENBQUM7QUFDL0YsQ0FBQztBQUVELE9BQU8sSUFBTUUsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUosSUFBYSxFQUFLO0VBQ2xELElBQU1LLG9CQUFvQixHQUN4Qlgsa0JBQWtCLENBQUMsNkJBQTZCLENBQUMsSUFDakRBLGtCQUFrQixDQUFDLDBDQUEwQyxDQUFDLElBQzlEQSxrQkFBa0IsQ0FBQyxxQ0FBcUMsQ0FBQztFQUUzRCxPQUFPVyxvQkFBb0IsSUFBSUwsSUFBSSxDQUFDRSxPQUFPLElBQUksQ0FBQ1gsY0FBYyxDQUFDWSxRQUFRLENBQUNILElBQUksQ0FBQ0UsT0FBTyxDQUFDO0FBQ3ZGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
15
+ export var canAccessToSkills = function canAccessToSkills() {
16
+ return canAccessToFeature('MAIA_SKILLS_ACCESS');
17
+ };
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JVc2VyUm9sZSIsIkRJU0FCTEVEX1JPTEVTIiwiQ0xJRU5UIiwiRlJFRUxBTkNFUiIsImNhbkFjY2Vzc1RvRmVhdHVyZSIsImZlYXR1cmUiLCJGRUFUVVJFX0FDQ0VTUyIsIndpbmRvdyIsIkJvb2xlYW4iLCJjYW5BY2Nlc3NUb1Byb2plY3RTdW1tYXJ5IiwidXNlciIsIk1BSUFfUFJPSkVDVF9TVU1NQVJZX0VOQUJMRUQiLCJyb2xlX2lkIiwiaW5jbHVkZXMiLCJjYW5BY2Nlc3NUb0NoYXRBSSIsIk1BSUFfQ0hBVF9BSV9FTkFCTEVEIiwiY2FuQWNjZXNzVG9Ta2lsbHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uc3RhbnRzL3Blcm1pc3Npb25zL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPUlVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuY29uc3QgRElTQUJMRURfUk9MRVMgPSBbQ09SVXNlclJvbGUuQ0xJRU5ULCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSXVxuXG5jb25zdCBjYW5BY2Nlc3NUb0ZlYXR1cmUgPSAoZmVhdHVyZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IEZFQVRVUkVfQUNDRVNTID0gZmVhdHVyZSBpbiB3aW5kb3cgJiYgQm9vbGVhbih3aW5kb3dbZmVhdHVyZV0pXG5cbiAgcmV0dXJuIEZFQVRVUkVfQUNDRVNTXG59XG5cbmV4cG9ydCBjb25zdCBjYW5BY2Nlc3NUb1Byb2plY3RTdW1tYXJ5ID0gKHVzZXI6IENPUlVzZXIpID0+IHtcbiAgY29uc3QgTUFJQV9QUk9KRUNUX1NVTU1BUllfRU5BQkxFRCA9XG4gICAgY2FuQWNjZXNzVG9GZWF0dXJlKCdNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUycpIHx8XG4gICAgY2FuQWNjZXNzVG9GZWF0dXJlKCdNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTJykgfHxcbiAgICBjYW5BY2Nlc3NUb0ZlYXR1cmUoJ01BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUycpXG5cbiAgcmV0dXJuIE1BSUFfUFJPSkVDVF9TVU1NQVJZX0VOQUJMRUQgJiYgdXNlci5yb2xlX2lkICYmICFESVNBQkxFRF9ST0xFUy5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG59XG5cbmV4cG9ydCBjb25zdCBjYW5BY2Nlc3NUb0NoYXRBSSA9ICh1c2VyOiBDT1JVc2VyKSA9PiB7XG4gIGNvbnN0IE1BSUFfQ0hBVF9BSV9FTkFCTEVEID1cbiAgICBjYW5BY2Nlc3NUb0ZlYXR1cmUoJ01BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUycpIHx8XG4gICAgY2FuQWNjZXNzVG9GZWF0dXJlKCdNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTJykgfHxcbiAgICBjYW5BY2Nlc3NUb0ZlYXR1cmUoJ01BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTJylcblxuICByZXR1cm4gTUFJQV9DSEFUX0FJX0VOQUJMRUQgJiYgdXNlci5yb2xlX2lkICYmICFESVNBQkxFRF9ST0xFUy5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG59XG5cbmV4cG9ydCBjb25zdCBjYW5BY2Nlc3NUb1NraWxscyA9ICgpID0+IGNhbkFjY2Vzc1RvRmVhdHVyZSgnTUFJQV9TS0lMTFNfQUNDRVNTJylcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBa0JBLFdBQVcsUUFBUSx3QkFBd0I7QUFFN0QsSUFBTUMsY0FBYyxHQUFHLENBQUNELFdBQVcsQ0FBQ0UsTUFBTSxFQUFFRixXQUFXLENBQUNHLFVBQVUsQ0FBQztBQUVuRSxJQUFNQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxPQUFlLEVBQUs7RUFDOUMsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLElBQUlFLE1BQU0sSUFBSUMsT0FBTyxDQUFDRCxNQUFNLENBQUNGLE9BQU8sQ0FBQyxDQUFDO0VBRXBFLE9BQU9DLGNBQWM7QUFDdkIsQ0FBQztBQUVELE9BQU8sSUFBTUcseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSUMsSUFBYSxFQUFLO0VBQzFELElBQU1DLDRCQUE0QixHQUNoQ1Asa0JBQWtCLENBQUMscUNBQXFDLENBQUMsSUFDekRBLGtCQUFrQixDQUFDLDBDQUEwQyxDQUFDLElBQzlEQSxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQztFQUVuRCxPQUFPTyw0QkFBNEIsSUFBSUQsSUFBSSxDQUFDRSxPQUFPLElBQUksQ0FBQ1gsY0FBYyxDQUFDWSxRQUFRLENBQUNILElBQUksQ0FBQ0UsT0FBTyxDQUFDO0FBQy9GLENBQUM7QUFFRCxPQUFPLElBQU1FLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlKLElBQWEsRUFBSztFQUNsRCxJQUFNSyxvQkFBb0IsR0FDeEJYLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDLElBQ2pEQSxrQkFBa0IsQ0FBQywwQ0FBMEMsQ0FBQyxJQUM5REEsa0JBQWtCLENBQUMscUNBQXFDLENBQUM7RUFFM0QsT0FBT1csb0JBQW9CLElBQUlMLElBQUksQ0FBQ0UsT0FBTyxJQUFJLENBQUNYLGNBQWMsQ0FBQ1ksUUFBUSxDQUFDSCxJQUFJLENBQUNFLE9BQU8sQ0FBQztBQUN2RixDQUFDO0FBRUQsT0FBTyxJQUFNSSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBO0VBQUEsT0FBU1osa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -230,7 +230,9 @@ export var useChatMessages = function useChatMessages(_ref) {
230
230
  return a.id === agentNoPermission.id;
231
231
  });
232
232
  if (agentInList) {
233
- selectAgent(_objectSpread(_objectSpread({}, agentInList), projectDeleted ? {
233
+ selectAgent(_objectSpread(_objectSpread(_objectSpread({}, agentInList), agentNoPermission.connectors ? {
234
+ connectors: agentNoPermission.connectors
235
+ } : {}), projectDeleted ? {
234
236
  project_deleted: {
235
237
  name: projectDeleted.name
236
238
  }
@@ -535,4 +537,4 @@ export var useChatMessages = function useChatMessages(_ref) {
535
537
  handleScroll: handleScroll
536
538
  };
537
539
  };
538
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwicmV3cml0ZVRhc2tVcmxzSW5Db250ZW50IiwiY29udGVudCIsInRhYlNlZ21lbnQiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwidXJsIiwidXNlQ2hhdE1lc3NhZ2VzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25FcnJvciIsImNoYXRJZCIsImN1cnJlbnRVc2VyIiwidXNlckluaXRpYWxNZXNzYWdlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlciIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwiX3VzZVN0YXRlMyIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwibWVzc2FnZSIsImZ1YUlkIiwic2NJZCIsImF0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJjb250ZXh0TWVzc2FnZSIsIl91c2VTdGF0ZTQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInByb2plY3QiLCJfdXNlVGFiVGFza0RlZmF1bHQiLCJnZXRUYWJUYXNrRGVmYXVsdCIsInRhYlRhc2tEZWZhdWx0IiwicmVmZXRjaFRhYlRhc2tEZWZhdWx0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxhc3RFdmFsdWF0ZWRLZXkiLCJzZXRMYXN0RXZhbHVhdGVkS2V5IiwiaXNMb2FkaW5nUmVmIiwiaW5pdGlhbExvYWREb25lIiwicHJldmlvdXNDaGF0SWQiLCJzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYyIiwicHJvamVjdElkTWVzc2FnZSIsInByb2plY3ROYW1lRnJvbVNlc3Npb24iLCJjbGllbnRJZEZyb21TZXNzaW9uIiwiY2xpZW50TmFtZUZyb21TZXNzaW9uIiwidGFza0lkRnJvbVNlc3Npb24iLCJ0YXNrTmFtZUZyb21TZXNzaW9uIiwicHJvamVjdHMiLCJoYXNNdWx0aUFnZW50c0FjY2VzcyIsInByb2plY3RJZE51bSIsImZvdW5kUHJvamVjdCIsIl9mb3VuZFByb2plY3QkY2xpZW50Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJuYW1lIiwiTnVtYmVyIiwiYWJydXB0Iiwic2VudCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJmaW5kIiwicCIsInByb2plY3ROYW1lIiwiY2xpZW50TmFtZSIsImNsaWVudCIsInByb2plY3RJZCIsIlN0cmluZyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1lc3NhZ2VzIiwiX2NhbGxlZTIiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsInByb2plY3REZWxldGVkIiwiYWdlbnRJbkxpc3QiLCJjb250ZXh0UHJvamVjdElkIiwiaXRlbXNUb1NldCIsInRhYiIsIl90IiwiX2NvbnRleHQyIiwiY3VycmVudCIsIkNoYXRzIiwiZ2V0Q2hhdE1lc3NhZ2VzIiwib2Zmc2V0IiwiY2FuY2VsbGVkVGV4dCIsImxhbmciLCJsYW5ndWFnZSIsImNsaWVudElkIiwidGFza0lkIiwidGFza05hbWUiLCJlbW9qaSIsInR5cGUiLCJpc19kZWxldGVkIiwiZGVsZXRlZF9hdCIsImRlbGV0ZWRBdCIsImNvbm5lY3RvcnMiLCJ2aWV3IiwiYWdlbnQiLCJpc19mcm9tX2NvbnZlcnNhdGlvbiIsInByb2plY3RfZGVsZXRlZCIsImEiLCJ1bmRlZmluZWQiLCJoYXNfbm90X2FjY2VzcyIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJmaW5pc2giLCJsb2FkTW9yZU1lc3NhZ2VzIiwiX3JlZjUiLCJfY2FsbGVlMyIsImNvbnRhaW5lciIsIm9sZFNjcm9sbEhlaWdodCIsIm9sZFNjcm9sbFRvcCIsIl95aWVsZCRtYWlhJENoYXRzJGdldDIiLCJpdGVtc1RvTWVyZ2UiLCJuZXdNZXNzYWdlcyIsIl90MiIsIl9jb250ZXh0MyIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNsaWNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY29udGFpbmVyUmVmIiwibmV3U2Nyb2xsSGVpZ2h0IiwiaGVpZ2h0RGlmZmVyZW5jZSIsIl94MiIsImhhbmRsZVNjcm9sbCIsImNsaWVudEhlaWdodCIsInNjcm9sbFBlcmNlbnRhZ2UiLCJkaWRSZXdyaXRlUmVmIiwibGVuZ3RoIiwibmVlZHNSZXdyaXRlIiwic29tZSIsIm1zZyIsIm1hdGNoZXMiLCJtYXRjaCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJyZXdyaXR0ZW4iLCJhZGRNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlSW5kZXgiLCJmaW5kSW5kZXgiLCJyZW1vdmVNZXNzYWdlIiwibWVzc2FnZUlkIiwiZmlsdGVyIiwiaGFzTW9yZU1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRNZXNzYWdlcy91c2VDaGF0TWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdHMgfSBmcm9tICcuLi91c2VQcm9qZWN0cydcbmltcG9ydCB7IENoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IGJ1aWxkQ29udGV4dE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCBtYWlhIGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBVc2VDaGF0TWVzc2FnZXNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdE1lc3NhZ2VzLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVRhYlRhc2tEZWZhdWx0IH0gZnJvbSAnLi4vdXNlVGFiVGFza0RlZmF1bHQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlJ1xuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgbWVzc2FnZTogZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlRm9yRGlzcGxheSh1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSwge1xuICAgICAgICAgICAgICBmdWFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZ1YUlkLFxuICAgICAgICAgICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICA/IHsgY29udGV4dE1lc3NhZ2U6IGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKSB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICAgdGFza0lkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICB9KSA9PiB7XG4gICAgICAvLyBUYXJlYSBkZSBsYSBjb252ZXJzYWNpw7NuOiBzZSBkZXJpdmEgZGUgbGEgbWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiBwYXJhIG1vc3RyYXIgZWwgY2hpcFxuICAgICAgLy8gZGUgbGEgdGFyZWEgKHkgcmVlbnZpYXIgbGEgbWV0YWRhdGEgZW4gY2FkYSBtZW5zYWplKSBzaW4gaW1wb3J0YXIgZGVzZGUgZMOzbmRlIHNlIGFicmEuXG4gICAgICBpZiAodGFza0lkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiB0YXNrTmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldFRhc2soeyBpZDogdGFza0lkRnJvbVNlc3Npb24sIG5hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIH1cblxuICAgICAgLy8gQ29udmVyc2FjacOzbiBjb24gY2xpZW50X21ldGFkYXRhOiBzZXRlYXIgY2xpZW50ZSB5IGxpbXBpYXIgcHJveWVjdG9cbiAgICAgIGlmIChjbGllbnRJZEZyb21TZXNzaW9uICE9IG51bGwgJiYgY2xpZW50TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldENsaWVudCh7IGlkOiBOdW1iZXIoY2xpZW50SWRGcm9tU2Vzc2lvbiksIG5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbiB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgaGFzTXVsdGlBZ2VudHNBY2Nlc3MpIHtcbiAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogZm91bmRQcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgICBjbGllbnROYW1lOiBmb3VuZFByb2plY3QuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoZm91bmRQcm9qZWN0KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtmZXRjaFByb2plY3RzLCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdCwgc2V0VGFza11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKHRydWUpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICBjb25zdCB7XG4gICAgICAgIGl0ZW1zLFxuICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgYWdlbnREZWxldGVkLFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MsXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbixcbiAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgcHJvamVjdERlbGV0ZWQsXG4gICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIHRhc2tJZDogdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgY2hhdElkLFxuICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICBjYW5jZWxsZWRUZXh0OiB0KCdjaGF0LmNhbmNlbGxlZCcpLFxuICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgfSlcbiAgICAgIGlmIChhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgIGlkOiBhZ2VudERlbGV0ZWQuaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnREZWxldGVkLm5hbWUsXG4gICAgICAgICAgZW1vamk6IGFnZW50RGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICBpc19kZWxldGVkOiB0cnVlLFxuICAgICAgICAgIGRlbGV0ZWRfYXQ6IGFnZW50RGVsZXRlZC5kZWxldGVkQXQsXG4gICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uPy5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyBlc3TDoSBlbiBsYSBsaXN0YSBwZXJvIHRpZW5lIHBlcm1pc29zLCBhY2Nlc28geSBubyBlc3TDoSBlbGltaW5hZG8sIHNldGVhcmxvIG5vcm1hbG1lbnRlXG4gICAgICAvLyBFeGNsdWlyIGFnZW50ZXMgbm8tY3VzdG9tIHBhcmEgdXN1YXJpb3MgY29uIHJvbGVzIGRlc2hhYmlsaXRhZG9zXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnRzLmZpbmQoYWdlbnQgPT4gYWdlbnQuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgIGlzX2Zyb21fY29udmVyc2F0aW9uOiB0cnVlLFxuICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBlc3TDoSBlbiBsYSBsaXN0YSB5IHRpZW5lIGFjY2Vzby9wZXJtaXNvcywgYWN0dWFsaXphciBwcm9qZWN0X2RlbGV0ZWQgKG8gbGltcGlhcmxvIGFsIGNhbWJpYXIgZGUgY2hhdClcbiAgICAgIGlmIChcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50RGVsZXRlZCAmJlxuICAgICAgICBoYXNBZ2VudEFjY2VzcyAmJlxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICkge1xuICAgICAgICBjb25zdCBhZ2VudEluTGlzdCA9IGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICAgIGlmIChhZ2VudEluTGlzdCkge1xuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIC4uLmFnZW50SW5MaXN0LFxuICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7IHByb2plY3RfZGVsZXRlZDogdW5kZWZpbmVkIH0pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIHRpZW5lIGFjY2VzbyBvIHBlcm1pc29zIHNlZ8O6biBsYSByZXNwdWVzdGEgZGUgc2Vzc2lvbnMsIHNlbGVjY2lvbmFybG8gY29uIGVsIGZsYWcgY29ycmVzcG9uZGllbnRlXG4gICAgICAvLyBMYSB2YWxpZGFjacOzbiBhaG9yYSBzZSBiYXNhIGVuIGxhcyBwcm9waWVkYWRlcyBoYXNfYWdlbnRfYWNjZXNzIHkgaGFzX2FnZW50X3Blcm1pc3Npb24gZGUgbGEgcmVzcHVlc3RhXG4gICAgICBpZiAoYWdlbnROb1Blcm1pc3Npb24gJiYgIWFnZW50RGVsZXRlZCkge1xuICAgICAgICBpZiAoIWhhc0FnZW50QWNjZXNzKSB7XG4gICAgICAgICAgLy8gQ2FzbyAxOiBObyB0aWVuZSBhY2Nlc28gYWwgYWdlbnRlXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICAgIGhhc19ub3RfYWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc0FnZW50UGVybWlzc2lvbikge1xuICAgICAgICAgIC8vIENhc28gMjogTm8gdGllbmUgcGVybWlzb3MgcGFyYSB2aXN1YWxpemFyL2ludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGVcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgaGFzX25vdF9wZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3REZWxldGVkKSB7XG4gICAgICAgICAgLy8gQ2FzbyAzOiBFbCBwcm95ZWN0byBkZSBsYSBjb252ZXJzYWNpw7NuIGZ1ZSBlbGltaW5hZG9cbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhKHtcbiAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0pXG5cbiAgICAgIC8vIFNpIGhheSBwcm95ZWN0byBlbiBsYSBjb252ZXJzYWNpw7NuLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGNvbiBlbCB0YWIgZGVsIHVzdWFyaW8gKG1lKVxuICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3RJZE1lc3NhZ2UgPyBwYXJzZUludChTdHJpbmcocHJvamVjdElkTWVzc2FnZSksIDEwKSA6IG51bGxcbiAgICAgIGxldCBpdGVtc1RvU2V0ID0gaXRlbXNcbiAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgaXRlbXNUb1NldCA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgfSkpXG4gICAgICB9XG4gICAgICBzZXRNZXNzYWdlcyhpdGVtc1RvU2V0KVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShOdW1iZXIobmV4dEl0ZW0pKVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3I/LigpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtjaGF0SWQsIGN1cnJlbnRVc2VyLCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhLCBvbkVycm9yLCBnZXRUYWJUYXNrRGVmYXVsdF0pXG5cbiAgY29uc3QgbG9hZE1vcmVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFsYXN0RXZhbHVhdGVkS2V5IHx8ICFjb250YWluZXIpIHJldHVyblxuICAgICAgdHJ5IHtcbiAgICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIHNldElzTG9hZGluZ01vcmVNZXNzYWdlcyh0cnVlKVxuXG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbEhlaWdodCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHRcbiAgICAgICAgY29uc3Qgb2xkU2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZDogdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgICAgY2hhdElkLFxuICAgICAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEoe1xuICAgICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNpIGhheSBwcm95ZWN0byBlbiBsYSBjb252ZXJzYWNpw7NuLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGVuIGxvcyBtZW5zYWplcyBjYXJnYWRvc1xuICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgICBsZXQgaXRlbXNUb01lcmdlID0gaXRlbXNcbiAgICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgICBjb25zdCB0YWIgPSBhd2FpdCBnZXRUYWJUYXNrRGVmYXVsdCgxKVxuICAgICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgICBpdGVtc1RvTWVyZ2UgPSBpdGVtcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChpdGVtLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgICAgICAgIH0pKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld01lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLnNsaWNlKDAsIDEpLCAuLi5pdGVtc1RvTWVyZ2UsIC4uLm1lc3NhZ2VzLnNsaWNlKDEpXVxuICAgICAgICBzZXRNZXNzYWdlcyhuZXdNZXNzYWdlcylcbiAgICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShOdW1iZXIobmV4dEl0ZW0pKVxuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IGNvbnRhaW5lclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICBjb25zdCBuZXdTY3JvbGxIZWlnaHQgPSBjb250YWluZXJSZWYuc2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodERpZmZlcmVuY2UgPSBuZXdTY3JvbGxIZWlnaHQgLSBvbGRTY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29udGFpbmVyUmVmLnNjcm9sbFRvcCA9IG9sZFNjcm9sbFRvcCArIGhlaWdodERpZmZlcmVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgb25FcnJvcj8uKClcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzTG9hZGluZ01vcmVNZXNzYWdlcyhmYWxzZSlcbiAgICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgW2NoYXRJZCwgY3VycmVudFVzZXIsIGxhc3RFdmFsdWF0ZWRLZXksIG9uRXJyb3IsIG1lc3NhZ2VzLCBnZXRUYWJUYXNrRGVmYXVsdCwgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNjcm9sbCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKCFjb250YWluZXIgfHwgaXNMb2FkaW5nUmVmLmN1cnJlbnQgfHwgIWluaXRpYWxMb2FkRG9uZS5jdXJyZW50KSByZXR1cm5cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICAgIGNvbnN0IHNjcm9sbFBlcmNlbnRhZ2UgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgPiAwID8gKHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpKSAqIDEwMCA6IDBcblxuICAgICAgaWYgKHNjcm9sbFBlcmNlbnRhZ2UgPCAxMCkge1xuICAgICAgICBsb2FkTW9yZU1lc3NhZ2VzKGNvbnRhaW5lcilcbiAgICAgIH1cbiAgICB9LFxuICAgIFtsb2FkTW9yZU1lc3NhZ2VzXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2hhdElkICE9PSBwcmV2aW91c0NoYXRJZC5jdXJyZW50KSB7XG4gICAgICBzZXRNZXNzYWdlcyhcbiAgICAgICAgdXNlckluaXRpYWxNZXNzYWdlXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ3VzZXItaW5pdGlhbC1tZXNzYWdlJyxcbiAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZUZvckRpc3BsYXkodXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsIHtcbiAgICAgICAgICAgICAgICAgIGZ1YUlkOiB1c2VySW5pdGlhbE1lc3NhZ2UuZnVhSWQsXG4gICAgICAgICAgICAgICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICAgICAgPyB7IGNvbnRleHRNZXNzYWdlOiBidWlsZENvbnRleHRNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZS5tZW50aW9ucykgfVxuICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXVxuICAgICAgKVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleSgwKVxuICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcHJldmlvdXNDaGF0SWQuY3VycmVudCA9IGNoYXRJZFxuXG4gICAgICAvLyBMaW1waWFyIGVsIGVzdGFkbyBkZWwgcHJveWVjdG8geSBsYSB0YXJlYSBjdWFuZG8gY2FtYmlhIGRlIGNvbnZlcnNhY2nDs25cbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0VGFzayhudWxsKVxuXG4gICAgICAvLyBWb2x2ZXIgYSBlamVjdXRhciBsYSBxdWVyeSBtZSBwYXJhIHRlbmVyIHRhYlRhc2tEZWZhdWx0IGFjdHVhbGl6YWRvIGVuIGxhIG51ZXZhIGNvbnZlcnNhY2nDs25cbiAgICAgIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdCgpXG5cbiAgICAgIGlmICghdXNlckluaXRpYWxNZXNzYWdlKSB7XG4gICAgICAgIGxvYWRNZXNzYWdlcygpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXG4gICAgY2hhdElkLFxuICAgIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgICBjdXJyZW50VXNlcixcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIHNldFByb2plY3QsXG4gICAgc2V0VGFzayxcbiAgICByZWZldGNoVGFiVGFza0RlZmF1bHQsXG4gIF0pXG5cbiAgLy8gQ3VhbmRvIHRhYlRhc2tEZWZhdWx0IHBhc2EgYSBlc3RhciBkaXNwb25pYmxlIGRlc3B1w6lzIGRlIGNhcmdhciwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgeWEgY2FyZ2Fkb3MuXG4gIC8vIFJlZiBwYXJhIGV2aXRhciBidWNsZTogc2V0TWVzc2FnZXMocmV3cml0dGVuKSBjYW1iaWEgbWVzc2FnZXMgeSByZS1lamVjdXRhIGVsIGVmZWN0bzsgc29sbyByZWVzY3JpYmltb3MgdW5hIHZleiBwb3IgbG90ZS5cbiAgY29uc3QgZGlkUmV3cml0ZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRhYlRhc2tEZWZhdWx0IHx8ICFwcm9qZWN0Py5pZCB8fCBtZXNzYWdlcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhYlNlZ21lbnQgPSBgLyR7dGFiVGFza0RlZmF1bHR9YFxuICAgIGNvbnN0IG5lZWRzUmV3cml0ZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZSB8fCAnJ1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2godGFza1VybFJlZ2V4KVxuICAgICAgaWYgKCFtYXRjaGVzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIG1hdGNoZXMuc29tZSh1cmwgPT4gIXVybC5lbmRzV2l0aChgLyR7dGFiVGFza0RlZmF1bHR9YCkgJiYgIXVybC5pbmNsdWRlcyhgLyR7dGFiVGFza0RlZmF1bHR9P2ApKVxuICAgIH0pXG4gICAgaWYgKCFuZWVkc1Jld3JpdGUpIHtcbiAgICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGRpZFJld3JpdGVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGNvbnN0IHJld3JpdHRlbiA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChtc2cubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgfSkpXG4gICAgc2V0TWVzc2FnZXMocmV3cml0dGVuKVxuICB9LCBbdGFiVGFza0RlZmF1bHQsIHByb2plY3Q/LmlkLCBtZXNzYWdlc10pXG5cbiAgY29uc3QgYWRkTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4ge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5wcmV2XVxuICAgICAgICBuZXdNZXNzYWdlc1tleGlzdGluZ01lc3NhZ2VJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5wcmV2LCBtZXNzYWdlXVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHJlbW92ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZCkpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIG1lc3NhZ2VzLFxuICAgIGhhc01vcmVNZXNzYWdlczogISFsYXN0RXZhbHVhdGVkS2V5LFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgbG9hZE1vcmVNZXNzYWdlcyxcbiAgICBhZGRNZXNzYWdlLFxuICAgIHJlbW92ZU1lc3NhZ2UsXG4gICAgaGFuZGxlU2Nyb2xsLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2hFLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFFNUMsU0FBU0MsbUJBQW1CLFFBQVEsNEJBQTRCO0FBQ2hFLE9BQU9DLElBQUksTUFBTSxxQkFBcUI7QUFFdEMsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLElBQUksUUFBUSxTQUFTO0FBQzlCLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLHNCQUFzQixRQUFRLDBCQUEwQjtBQUNqRSxTQUFTQyxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLFNBQVNDLGtDQUFrQyxRQUFRLHNDQUFzQztBQUV6RixJQUFNQyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJ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
540
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwicmV3cml0ZVRhc2tVcmxzSW5Db250ZW50IiwiY29udGVudCIsInRhYlNlZ21lbnQiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwidXJsIiwidXNlQ2hhdE1lc3NhZ2VzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25FcnJvciIsImNoYXRJZCIsImN1cnJlbnRVc2VyIiwidXNlckluaXRpYWxNZXNzYWdlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlciIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwiX3VzZVN0YXRlMyIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwibWVzc2FnZSIsImZ1YUlkIiwic2NJZCIsImF0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJjb250ZXh0TWVzc2FnZSIsIl91c2VTdGF0ZTQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInByb2plY3QiLCJfdXNlVGFiVGFza0RlZmF1bHQiLCJnZXRUYWJUYXNrRGVmYXVsdCIsInRhYlRhc2tEZWZhdWx0IiwicmVmZXRjaFRhYlRhc2tEZWZhdWx0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxhc3RFdmFsdWF0ZWRLZXkiLCJzZXRMYXN0RXZhbHVhdGVkS2V5IiwiaXNMb2FkaW5nUmVmIiwiaW5pdGlhbExvYWREb25lIiwicHJldmlvdXNDaGF0SWQiLCJzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYyIiwicHJvamVjdElkTWVzc2FnZSIsInByb2plY3ROYW1lRnJvbVNlc3Npb24iLCJjbGllbnRJZEZyb21TZXNzaW9uIiwiY2xpZW50TmFtZUZyb21TZXNzaW9uIiwidGFza0lkRnJvbVNlc3Npb24iLCJ0YXNrTmFtZUZyb21TZXNzaW9uIiwicHJvamVjdHMiLCJoYXNNdWx0aUFnZW50c0FjY2VzcyIsInByb2plY3RJZE51bSIsImZvdW5kUHJvamVjdCIsIl9mb3VuZFByb2plY3QkY2xpZW50Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJuYW1lIiwiTnVtYmVyIiwiYWJydXB0Iiwic2VudCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJmaW5kIiwicCIsInByb2plY3ROYW1lIiwiY2xpZW50TmFtZSIsImNsaWVudCIsInByb2plY3RJZCIsIlN0cmluZyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1lc3NhZ2VzIiwiX2NhbGxlZTIiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsInByb2plY3REZWxldGVkIiwiYWdlbnRJbkxpc3QiLCJjb250ZXh0UHJvamVjdElkIiwiaXRlbXNUb1NldCIsInRhYiIsIl90IiwiX2NvbnRleHQyIiwiY3VycmVudCIsIkNoYXRzIiwiZ2V0Q2hhdE1lc3NhZ2VzIiwib2Zmc2V0IiwiY2FuY2VsbGVkVGV4dCIsImxhbmciLCJsYW5ndWFnZSIsImNsaWVudElkIiwidGFza0lkIiwidGFza05hbWUiLCJlbW9qaSIsInR5cGUiLCJpc19kZWxldGVkIiwiZGVsZXRlZF9hdCIsImRlbGV0ZWRBdCIsImNvbm5lY3RvcnMiLCJ2aWV3IiwiYWdlbnQiLCJpc19mcm9tX2NvbnZlcnNhdGlvbiIsInByb2plY3RfZGVsZXRlZCIsImEiLCJ1bmRlZmluZWQiLCJoYXNfbm90X2FjY2VzcyIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJmaW5pc2giLCJsb2FkTW9yZU1lc3NhZ2VzIiwiX3JlZjUiLCJfY2FsbGVlMyIsImNvbnRhaW5lciIsIm9sZFNjcm9sbEhlaWdodCIsIm9sZFNjcm9sbFRvcCIsIl95aWVsZCRtYWlhJENoYXRzJGdldDIiLCJpdGVtc1RvTWVyZ2UiLCJuZXdNZXNzYWdlcyIsIl90MiIsIl9jb250ZXh0MyIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNsaWNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY29udGFpbmVyUmVmIiwibmV3U2Nyb2xsSGVpZ2h0IiwiaGVpZ2h0RGlmZmVyZW5jZSIsIl94MiIsImhhbmRsZVNjcm9sbCIsImNsaWVudEhlaWdodCIsInNjcm9sbFBlcmNlbnRhZ2UiLCJkaWRSZXdyaXRlUmVmIiwibGVuZ3RoIiwibmVlZHNSZXdyaXRlIiwic29tZSIsIm1zZyIsIm1hdGNoZXMiLCJtYXRjaCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJyZXdyaXR0ZW4iLCJhZGRNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlSW5kZXgiLCJmaW5kSW5kZXgiLCJyZW1vdmVNZXNzYWdlIiwibWVzc2FnZUlkIiwiZmlsdGVyIiwiaGFzTW9yZU1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRNZXNzYWdlcy91c2VDaGF0TWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdHMgfSBmcm9tICcuLi91c2VQcm9qZWN0cydcbmltcG9ydCB7IENoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IGJ1aWxkQ29udGV4dE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCBtYWlhIGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBVc2VDaGF0TWVzc2FnZXNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdE1lc3NhZ2VzLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVRhYlRhc2tEZWZhdWx0IH0gZnJvbSAnLi4vdXNlVGFiVGFza0RlZmF1bHQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlJ1xuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgbWVzc2FnZTogZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlRm9yRGlzcGxheSh1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSwge1xuICAgICAgICAgICAgICBmdWFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZ1YUlkLFxuICAgICAgICAgICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICA/IHsgY29udGV4dE1lc3NhZ2U6IGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKSB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICAgdGFza0lkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICB9KSA9PiB7XG4gICAgICAvLyBUYXJlYSBkZSBsYSBjb252ZXJzYWNpw7NuOiBzZSBkZXJpdmEgZGUgbGEgbWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiBwYXJhIG1vc3RyYXIgZWwgY2hpcFxuICAgICAgLy8gZGUgbGEgdGFyZWEgKHkgcmVlbnZpYXIgbGEgbWV0YWRhdGEgZW4gY2FkYSBtZW5zYWplKSBzaW4gaW1wb3J0YXIgZGVzZGUgZMOzbmRlIHNlIGFicmEuXG4gICAgICBpZiAodGFza0lkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiB0YXNrTmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldFRhc2soeyBpZDogdGFza0lkRnJvbVNlc3Npb24sIG5hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIH1cblxuICAgICAgLy8gQ29udmVyc2FjacOzbiBjb24gY2xpZW50X21ldGFkYXRhOiBzZXRlYXIgY2xpZW50ZSB5IGxpbXBpYXIgcHJveWVjdG9cbiAgICAgIGlmIChjbGllbnRJZEZyb21TZXNzaW9uICE9IG51bGwgJiYgY2xpZW50TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldENsaWVudCh7IGlkOiBOdW1iZXIoY2xpZW50SWRGcm9tU2Vzc2lvbiksIG5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbiB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgaGFzTXVsdGlBZ2VudHNBY2Nlc3MpIHtcbiAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogZm91bmRQcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgICBjbGllbnROYW1lOiBmb3VuZFByb2plY3QuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoZm91bmRQcm9qZWN0KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtmZXRjaFByb2plY3RzLCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdCwgc2V0VGFza11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKHRydWUpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICBjb25zdCB7XG4gICAgICAgIGl0ZW1zLFxuICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgYWdlbnREZWxldGVkLFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MsXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbixcbiAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgcHJvamVjdERlbGV0ZWQsXG4gICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIHRhc2tJZDogdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgY2hhdElkLFxuICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICBjYW5jZWxsZWRUZXh0OiB0KCdjaGF0LmNhbmNlbGxlZCcpLFxuICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgfSlcbiAgICAgIGlmIChhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgIGlkOiBhZ2VudERlbGV0ZWQuaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnREZWxldGVkLm5hbWUsXG4gICAgICAgICAgZW1vamk6IGFnZW50RGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICBpc19kZWxldGVkOiB0cnVlLFxuICAgICAgICAgIGRlbGV0ZWRfYXQ6IGFnZW50RGVsZXRlZC5kZWxldGVkQXQsXG4gICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uPy5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyBlc3TDoSBlbiBsYSBsaXN0YSBwZXJvIHRpZW5lIHBlcm1pc29zLCBhY2Nlc28geSBubyBlc3TDoSBlbGltaW5hZG8sIHNldGVhcmxvIG5vcm1hbG1lbnRlXG4gICAgICAvLyBFeGNsdWlyIGFnZW50ZXMgbm8tY3VzdG9tIHBhcmEgdXN1YXJpb3MgY29uIHJvbGVzIGRlc2hhYmlsaXRhZG9zXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnRzLmZpbmQoYWdlbnQgPT4gYWdlbnQuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgIGlzX2Zyb21fY29udmVyc2F0aW9uOiB0cnVlLFxuICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBlc3TDoSBlbiBsYSBsaXN0YSB5IHRpZW5lIGFjY2Vzby9wZXJtaXNvcywgYWN0dWFsaXphciBwcm9qZWN0X2RlbGV0ZWQgKG8gbGltcGlhcmxvIGFsIGNhbWJpYXIgZGUgY2hhdClcbiAgICAgIGlmIChcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50RGVsZXRlZCAmJlxuICAgICAgICBoYXNBZ2VudEFjY2VzcyAmJlxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICkge1xuICAgICAgICBjb25zdCBhZ2VudEluTGlzdCA9IGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICAgIGlmIChhZ2VudEluTGlzdCkge1xuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIC4uLmFnZW50SW5MaXN0LFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDogeyBwcm9qZWN0X2RlbGV0ZWQ6IHVuZGVmaW5lZCB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyB0aWVuZSBhY2Nlc28gbyBwZXJtaXNvcyBzZWfDum4gbGEgcmVzcHVlc3RhIGRlIHNlc3Npb25zLCBzZWxlY2Npb25hcmxvIGNvbiBlbCBmbGFnIGNvcnJlc3BvbmRpZW50ZVxuICAgICAgLy8gTGEgdmFsaWRhY2nDs24gYWhvcmEgc2UgYmFzYSBlbiBsYXMgcHJvcGllZGFkZXMgaGFzX2FnZW50X2FjY2VzcyB5IGhhc19hZ2VudF9wZXJtaXNzaW9uIGRlIGxhIHJlc3B1ZXN0YVxuICAgICAgaWYgKGFnZW50Tm9QZXJtaXNzaW9uICYmICFhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgaWYgKCFoYXNBZ2VudEFjY2Vzcykge1xuICAgICAgICAgIC8vIENhc28gMTogTm8gdGllbmUgYWNjZXNvIGFsIGFnZW50ZVxuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScsXG4gICAgICAgICAgICBoYXNfbm90X2FjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKCFoYXNBZ2VudFBlcm1pc3Npb24pIHtcbiAgICAgICAgICAvLyBDYXNvIDI6IE5vIHRpZW5lIHBlcm1pc29zIHBhcmEgdmlzdWFsaXphci9pbnRlcmFjdHVhciBjb24gZWwgYWdlbnRlXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICAgIGhhc19ub3RfcGVybWlzc2lvbnM6IHRydWUsXG4gICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmIChwcm9qZWN0RGVsZXRlZCkge1xuICAgICAgICAgIC8vIENhc28gMzogRWwgcHJveWVjdG8gZGUgbGEgY29udmVyc2FjacOzbiBmdWUgZWxpbWluYWRvXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICB9KVxuXG4gICAgICAvLyBTaSBoYXkgcHJveWVjdG8gZW4gbGEgY29udmVyc2FjacOzbiwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBjb24gZWwgdGFiIGRlbCB1c3VhcmlvIChtZSlcbiAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICBsZXQgaXRlbXNUb1NldCA9IGl0ZW1zXG4gICAgICBpZiAoY29udGV4dFByb2plY3RJZCkge1xuICAgICAgICBjb25zdCB0YWIgPSBhd2FpdCBnZXRUYWJUYXNrRGVmYXVsdCgxKVxuICAgICAgICBjb25zdCB0YWJTZWdtZW50ID0gdGFiID8gYC8ke3RhYn1gIDogJy9kZXRhaWwnXG4gICAgICAgIGl0ZW1zVG9TZXQgPSBpdGVtcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgIH0pKVxuICAgICAgfVxuICAgICAgc2V0TWVzc2FnZXMoaXRlbXNUb1NldClcbiAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkoTnVtYmVyKG5leHRJdGVtKSlcbiAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yPy4oKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZXMoZmFsc2UpXG4gICAgfVxuICB9LCBbY2hhdElkLCBjdXJyZW50VXNlciwgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSwgb25FcnJvciwgZ2V0VGFiVGFza0RlZmF1bHRdKVxuXG4gIGNvbnN0IGxvYWRNb3JlTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmIChpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhbGFzdEV2YWx1YXRlZEtleSB8fCAhY29udGFpbmVyKSByZXR1cm5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXModHJ1ZSlcblxuICAgICAgICBjb25zdCBvbGRTY3JvbGxIZWlnaHQgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3BcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgbmV4dEl0ZW0sXG4gICAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0TWVzc2FnZXMoe1xuICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgICBvZmZzZXQ6IGxhc3RFdmFsdWF0ZWRLZXksXG4gICAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgICAgfSlcblxuICAgICAgICBhd2FpdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhKHtcbiAgICAgICAgICBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTaSBoYXkgcHJveWVjdG8gZW4gbGEgY29udmVyc2FjacOzbiwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgY2FyZ2Fkb3NcbiAgICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3RJZE1lc3NhZ2UgPyBwYXJzZUludChTdHJpbmcocHJvamVjdElkTWVzc2FnZSksIDEwKSA6IG51bGxcbiAgICAgICAgbGV0IGl0ZW1zVG9NZXJnZSA9IGl0ZW1zXG4gICAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgICBjb25zdCB0YWJTZWdtZW50ID0gdGFiID8gYC8ke3RhYn1gIDogJy9kZXRhaWwnXG4gICAgICAgICAgaXRlbXNUb01lcmdlID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5tZXNzYWdlcy5zbGljZSgwLCAxKSwgLi4uaXRlbXNUb01lcmdlLCAuLi5tZXNzYWdlcy5zbGljZSgxKV1cbiAgICAgICAgc2V0TWVzc2FnZXMobmV3TWVzc2FnZXMpXG4gICAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkoTnVtYmVyKG5leHRJdGVtKSlcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJSZWYgPSBjb250YWluZXJcbiAgICAgICAgICAgIGlmIChjb250YWluZXJSZWYpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3U2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyUmVmLnNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHREaWZmZXJlbmNlID0gbmV3U2Nyb2xsSGVpZ2h0IC0gb2xkU2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlZi5zY3JvbGxUb3AgPSBvbGRTY3JvbGxUb3AgKyBoZWlnaHREaWZmZXJlbmNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG9uRXJyb3I/LigpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMoZmFsc2UpXG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjaGF0SWQsIGN1cnJlbnRVc2VyLCBsYXN0RXZhbHVhdGVkS2V5LCBvbkVycm9yLCBtZXNzYWdlcywgZ2V0VGFiVGFza0RlZmF1bHQsIHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGFdXG4gIClcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmICghY29udGFpbmVyIHx8IGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFpbml0aWFsTG9hZERvbmUuY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0ID4gMCA/IChzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSkgKiAxMDAgOiAwXG5cbiAgICAgIGlmIChzY3JvbGxQZXJjZW50YWdlIDwgMTApIHtcbiAgICAgICAgbG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbG9hZE1vcmVNZXNzYWdlc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoYXRJZCAhPT0gcHJldmlvdXNDaGF0SWQuY3VycmVudCkge1xuICAgICAgc2V0TWVzc2FnZXMoXG4gICAgICAgIHVzZXJJbml0aWFsTWVzc2FnZVxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd1c2VyLWluaXRpYWwtbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5KHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgICBmdWFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZ1YUlkLFxuICAgICAgICAgICAgICAgICAgc2NJZDogdXNlckluaXRpYWxNZXNzYWdlLnNjSWQsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgICAgIC4uLihidWlsZENvbnRleHRNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZS5tZW50aW9ucylcbiAgICAgICAgICAgICAgICAgID8geyBjb250ZXh0TWVzc2FnZTogYnVpbGRDb250ZXh0TWVzc2FnZSh1c2VySW5pdGlhbE1lc3NhZ2UubWVudGlvbnMpIH1cbiAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW11cbiAgICAgIClcbiAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkoMClcbiAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gZmFsc2VcbiAgICAgIHByZXZpb3VzQ2hhdElkLmN1cnJlbnQgPSBjaGF0SWRcblxuICAgICAgLy8gTGltcGlhciBlbCBlc3RhZG8gZGVsIHByb3llY3RvIHkgbGEgdGFyZWEgY3VhbmRvIGNhbWJpYSBkZSBjb252ZXJzYWNpw7NuXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldFRhc2sobnVsbClcblxuICAgICAgLy8gVm9sdmVyIGEgZWplY3V0YXIgbGEgcXVlcnkgbWUgcGFyYSB0ZW5lciB0YWJUYXNrRGVmYXVsdCBhY3R1YWxpemFkbyBlbiBsYSBudWV2YSBjb252ZXJzYWNpw7NuXG4gICAgICByZWZldGNoVGFiVGFza0RlZmF1bHQoKVxuXG4gICAgICBpZiAoIXVzZXJJbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBsb2FkTWVzc2FnZXMoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIGNoYXRJZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgY3VycmVudFVzZXIsXG4gICAgbG9hZE1lc3NhZ2VzLFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgICBzZXRQcm9qZWN0LFxuICAgIHNldFRhc2ssXG4gICAgcmVmZXRjaFRhYlRhc2tEZWZhdWx0LFxuICBdKVxuXG4gIC8vIEN1YW5kbyB0YWJUYXNrRGVmYXVsdCBwYXNhIGEgZXN0YXIgZGlzcG9uaWJsZSBkZXNwdcOpcyBkZSBjYXJnYXIsIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIHlhIGNhcmdhZG9zLlxuICAvLyBSZWYgcGFyYSBldml0YXIgYnVjbGU6IHNldE1lc3NhZ2VzKHJld3JpdHRlbikgY2FtYmlhIG1lc3NhZ2VzIHkgcmUtZWplY3V0YSBlbCBlZmVjdG87IHNvbG8gcmVlc2NyaWJpbW9zIHVuYSB2ZXogcG9yIGxvdGUuXG4gIGNvbnN0IGRpZFJld3JpdGVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0YWJUYXNrRGVmYXVsdCB8fCAhcHJvamVjdD8uaWQgfHwgbWVzc2FnZXMubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgICBjb25zdCB0YWJTZWdtZW50ID0gYC8ke3RhYlRhc2tEZWZhdWx0fWBcbiAgICBjb25zdCBuZWVkc1Jld3JpdGUgPSBtZXNzYWdlcy5zb21lKG1zZyA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbXNnLm1lc3NhZ2UgfHwgJydcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBjb250ZW50Lm1hdGNoKHRhc2tVcmxSZWdleClcbiAgICAgIGlmICghbWF0Y2hlcz8ubGVuZ3RoKSByZXR1cm4gZmFsc2VcbiAgICAgIHJldHVybiBtYXRjaGVzLnNvbWUodXJsID0+ICF1cmwuZW5kc1dpdGgoYC8ke3RhYlRhc2tEZWZhdWx0fWApICYmICF1cmwuaW5jbHVkZXMoYC8ke3RhYlRhc2tEZWZhdWx0fT9gKSlcbiAgICB9KVxuICAgIGlmICghbmVlZHNSZXdyaXRlKSB7XG4gICAgICBkaWRSZXdyaXRlUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChkaWRSZXdyaXRlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IHRydWVcbiAgICBjb25zdCByZXdyaXR0ZW4gPSBtZXNzYWdlcy5tYXAobXNnID0+ICh7XG4gICAgICAuLi5tc2csXG4gICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQobXNnLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgIH0pKVxuICAgIHNldE1lc3NhZ2VzKHJld3JpdHRlbilcbiAgfSwgW3RhYlRhc2tEZWZhdWx0LCBwcm9qZWN0Py5pZCwgbWVzc2FnZXNdKVxuXG4gIGNvbnN0IGFkZE1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZTogQ2hhdE1lc3NhZ2UpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZUluZGV4ID0gcHJldi5maW5kSW5kZXgobXNnID0+IG1zZy5pZCA9PT0gbWVzc2FnZS5pZClcblxuICAgICAgaWYgKGV4aXN0aW5nTWVzc2FnZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ucHJldl1cbiAgICAgICAgbmV3TWVzc2FnZXNbZXhpc3RpbmdNZXNzYWdlSW5kZXhdID0gbWVzc2FnZVxuICAgICAgICByZXR1cm4gbmV3TWVzc2FnZXNcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4ucHJldiwgbWVzc2FnZV1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCByZW1vdmVNZXNzYWdlID0gdXNlQ2FsbGJhY2soKG1lc3NhZ2VJZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0TWVzc2FnZXMocHJldiA9PiBwcmV2LmZpbHRlcihtc2cgPT4gbXNnLmlkICE9PSBtZXNzYWdlSWQpKVxuICB9LCBbXSlcblxuICByZXR1cm4ge1xuICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICBtZXNzYWdlcyxcbiAgICBoYXNNb3JlTWVzc2FnZXM6ICEhbGFzdEV2YWx1YXRlZEtleSxcbiAgICBpc0xvYWRpbmdNb3JlTWVzc2FnZXMsXG4gICAgbG9hZE1lc3NhZ2VzLFxuICAgIGxvYWRNb3JlTWVzc2FnZXMsXG4gICAgYWRkTWVzc2FnZSxcbiAgICByZW1vdmVNZXNzYWdlLFxuICAgIGhhbmRsZVNjcm9sbCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQSxTQUFTQSxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUNoRSxTQUFTQyxXQUFXLFFBQVEsZ0JBQWdCO0FBRTVDLFNBQVNDLG1CQUFtQixRQUFRLDRCQUE0QjtBQUNoRSxPQUFPQyxJQUFJLE1BQU0scUJBQXFCO0FBRXRDLFNBQVNDLGdCQUFnQixRQUFRLDhCQUE4QjtBQUMvRCxTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUM5QixTQUFTQyxPQUFPLFFBQVEsd0JBQXdCO0FBQ2hELFNBQVNDLGlCQUFpQixRQUFRLHNCQUFzQjtBQUN4RCxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFD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