@projectcor/maia-components 2.30.1-0 → 2.30.2-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 (85) hide show
  1. package/lib/App.js +4 -2
  2. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +1 -12
  3. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -127
  4. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  5. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  6. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +19 -2
  7. package/lib/components/atoms/MAIAInput/MAIAInput.js +88 -204
  8. package/lib/components/atoms/MAIAInput/styles.js +11 -15
  9. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +116 -0
  10. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +197 -0
  11. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +157 -0
  12. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +123 -0
  13. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +115 -0
  14. package/lib/components/atoms/ReasoningBlock/index.js +3 -0
  15. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +54 -0
  16. package/lib/components/atoms/icons/SkillsNavIcon.js +7 -4
  17. package/lib/components/atoms/icons/index.js +1 -5
  18. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -91
  19. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -5
  20. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +391 -120
  21. package/lib/components/molecules/ChatAIMessages/newStyles.js +50 -18
  22. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +12 -49
  23. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -10
  24. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +239 -312
  25. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +104 -128
  26. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  27. package/lib/components/molecules/MessageFeedback/styles.js +6 -2
  28. package/lib/components/molecules/Sidebar/Sidebar.js +4 -5
  29. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  30. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +5 -34
  31. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +1 -8
  32. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +185 -338
  33. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +66 -122
  34. package/lib/constants/config.js +4 -1
  35. package/lib/constants/permissions/utils.js +3 -3
  36. package/lib/context/global-context.js +1 -1
  37. package/lib/dev/DevReasoningTimeline.js +235 -0
  38. package/lib/dev/reasoningTraceMock.js +556 -0
  39. package/lib/hooks/useAgentModel/useCreateAgent.js +14 -61
  40. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -58
  41. package/lib/hooks/useChatManager/useChatManager.js +97 -59
  42. package/lib/hooks/useChatMessages/useChatMessages.js +28 -27
  43. package/lib/hooks/useContextMentions.js +56 -93
  44. package/lib/hooks/useEntitySearch.js +278 -92
  45. package/lib/hooks/useEvent.js +1 -2
  46. package/lib/hooks/useMentionAllowedTypes.js +25 -9
  47. package/lib/hooks/useMentionPopover.js +33 -9
  48. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  49. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -3
  50. package/lib/hooks/useProjectSummaryConfig.js +36 -17
  51. package/lib/hooks/useReasoningTrace/index.js +3 -0
  52. package/lib/hooks/useReasoningTrace/reasoningStore.js +142 -0
  53. package/lib/hooks/useReasoningTrace/useReasoningTrace.js +14 -0
  54. package/lib/lang/br/index.js +245 -71
  55. package/lib/lang/en/index.js +245 -71
  56. package/lib/lang/es/index.js +246 -72
  57. package/lib/lang/fr/index.js +245 -71
  58. package/lib/services/maia/Orchestrator/orchestrator.js +9 -7
  59. package/lib/services/maia/Skills/createSkill.js +1 -1
  60. package/lib/services/maia/Skills/getSkills.js +40 -70
  61. package/lib/services/maia/Skills/updateSkill.js +1 -1
  62. package/lib/services/utils/mapChatMessages.js +21 -18
  63. package/lib/store/sessions/sessionStreamManager.js +98 -51
  64. package/lib/store/sessions/sessions.types.js +1 -1
  65. package/lib/types/Chat.js +1 -1
  66. package/lib/types/agentModal.js +1 -1
  67. package/lib/types/reasoning.js +2 -0
  68. package/lib/types/skill.js +1 -1
  69. package/lib/utils/autoApproveStorage.js +26 -0
  70. package/lib/utils/contextMentionTriggers.js +5 -2
  71. package/lib/utils/hitlAnalytics.js +4 -3
  72. package/lib/utils/normalizeAgentConnectors.js +3 -28
  73. package/lib/utils/reasoningMappers.js +62 -0
  74. package/lib/utils/renderContextMentions.js +18 -39
  75. package/lib/utils/streamActivityMessages.js +106 -41
  76. package/package.json +1 -1
  77. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
  78. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
  79. package/lib/components/atoms/SkillsDropdown/index.js +0 -2
  80. package/lib/components/atoms/icons/PlusIcon.js +0 -29
  81. package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
  82. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
  83. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
  84. package/lib/hooks/useSkillsCatalog.js +0 -66
  85. package/lib/services/maia/Agents/connectors.js +0 -250
@@ -120,33 +120,29 @@ export var PlusToggleButton = styled.button.withConfig({
120
120
  var $menuOpen = _ref7.$menuOpen;
121
121
  return $menuOpen ? '#f2f2f2' : colors.white.main;
122
122
  });
123
- export var SkillsToggleButton = styled.button.withConfig({
124
- displayName: "styles__SkillsToggleButton",
125
- componentId: "sc-cs6u9w-20"
126
- })(["display:flex;align-items:center;gap:var(--cor-space-space-xs,4px);box-sizing:border-box;height:32px;padding:0 8px;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;color:var(--cor-color-icon-subtle,#808080);font-family:var(--cor-typography-font-family,'Work Sans');font-size:var(--cor-typography-font-size-sm,14px);font-style:normal;font-weight:400;line-height:var(--cor-typography-line-height-20,20px);letter-spacing:var(--cor-typography-letter-spacing-0,0);white-space:nowrap;& > svg{flex-shrink:0;}&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], colors.white.main);
127
123
  export var PlusMenuPaper = styled.div.withConfig({
128
124
  displayName: "styles__PlusMenuPaper",
129
- componentId: "sc-cs6u9w-21"
125
+ componentId: "sc-cs6u9w-20"
130
126
  })(["display:flex;flex-direction:column;align-items:stretch;width:209px;box-sizing:border-box;padding:12px 8px;border-radius:4px;border:1px solid ", ";background:", ";box-shadow:0 1px 4px rgba(0,0,0,0.08),0 1px 4px rgba(0,0,0,0.04);"], colors.colors.gray.light, colors.white.main);
131
127
  export var PlusMenuInnerColumn = styled.div.withConfig({
132
128
  displayName: "styles__PlusMenuInnerColumn",
133
- componentId: "sc-cs6u9w-22"
129
+ componentId: "sc-cs6u9w-21"
134
130
  })(["display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;align-self:stretch;"]);
135
131
  export var PlusMenuDivider = styled.div.withConfig({
136
132
  displayName: "styles__PlusMenuDivider",
137
- componentId: "sc-cs6u9w-23"
133
+ componentId: "sc-cs6u9w-22"
138
134
  })(["width:170px;height:1px;background:", ";flex-shrink:0;"], colors.colors.gray.light);
139
135
  export var PlusMenuItemButton = styled.button.withConfig({
140
136
  displayName: "styles__PlusMenuItemButton",
141
- componentId: "sc-cs6u9w-24"
137
+ componentId: "sc-cs6u9w-23"
142
138
  })(["display:flex;width:100%;padding:8px;align-items:center;gap:8px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-family:inherit;text-align:left;box-sizing:border-box;&:hover{background:", ";}&:focus-visible{outline:2px solid ", ";outline-offset:-2px;}"], colors.background.secondary, BLUE_IA_COLORS[500]);
143
139
  export var PlusMenuItemLabel = styled.span.withConfig({
144
140
  displayName: "styles__PlusMenuItemLabel",
145
- componentId: "sc-cs6u9w-25"
141
+ componentId: "sc-cs6u9w-24"
146
142
  })(["flex:1;min-width:0;color:", ";font-size:14px;font-weight:400;line-height:20px;"], MAIA_CHAT_INPUT_UI.menuIcon);
147
143
  export var ActiveToolChipRoot = styled.div.withConfig({
148
144
  displayName: "styles__ActiveToolChipRoot",
149
- componentId: "sc-cs6u9w-26"
145
+ componentId: "sc-cs6u9w-25"
150
146
  })(["display:flex;max-width:144px;padding:4px 8px;align-items:center;gap:2px;box-sizing:border-box;cursor:default;border-radius:", ";background:", ";box-shadow:", ";transition:background-color 0.22s ease,border-radius 0.22s ease,box-shadow 0.22s ease;", ""], function (_ref8) {
151
147
  var $hovered = _ref8.$hovered;
152
148
  return $hovered ? '16px' : '0';
@@ -162,7 +158,7 @@ export var ActiveToolChipRoot = styled.div.withConfig({
162
158
  });
163
159
  export var ActiveToolChipIconButton = styled.button.withConfig({
164
160
  displayName: "styles__ActiveToolChipIconButton",
165
- componentId: "sc-cs6u9w-27"
161
+ componentId: "sc-cs6u9w-26"
166
162
  })(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:transform 0.2s ease;svg{display:block;}", " &:hover{", "}&:focus-visible{outline:2px solid ", ";outline-offset:1px;}"], function (_ref10) {
167
163
  var $closeShown = _ref10.$closeShown;
168
164
  return $closeShown && css(["svg{animation:", " 0.24s ease forwards;}"], activeToolChipCloseIconIn);
@@ -172,15 +168,15 @@ export var ActiveToolChipIconButton = styled.button.withConfig({
172
168
  }, BLUE_IA_COLORS[500]);
173
169
  export var ActiveToolChipLabel = styled.span.withConfig({
174
170
  displayName: "styles__ActiveToolChipLabel",
175
- componentId: "sc-cs6u9w-28"
171
+ componentId: "sc-cs6u9w-27"
176
172
  })(["color:", ";font-size:12px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;user-select:none;"], colors.text.primary);
177
173
  var stopPulse = keyframes(["0%,100%{transform:scale(1);}50%{transform:scale(0.9);}"]);
178
174
  export var StyledMAIAStopIcon = styled.div.withConfig({
179
175
  displayName: "styles__StyledMAIAStopIcon",
180
- componentId: "sc-cs6u9w-29"
176
+ componentId: "sc-cs6u9w-28"
181
177
  })(["width:13px;height:13px;background-color:#8c8c8c;border-radius:2px;animation:", " 1.6s ease-in-out infinite;"], stopPulse);
182
178
  export var StyledMAIAStopButton = styled.button.withConfig({
183
179
  displayName: "styles__StyledMAIAStopButton",
184
- componentId: "sc-cs6u9w-30"
180
+ componentId: "sc-cs6u9w-29"
185
181
  })(["background:none;border:none;padding:0;font:inherit;background-color:#f2f2f2 !important;height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;&:hover{background-color:", " !important;", "{background-color:", " !important;}}&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;opacity:0.6;}"], BLUE_IA_COLORS[50], StyledMAIAStopIcon, BLUE_IA_COLORS[500]);
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsIk1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgiLCJNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCIsIk1BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYIiwiZmxvdyIsImFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4iLCJhY3RpdmVUb29sQ2hpcE91dCIsImN1c3RvbUlucHV0U3R5bGVzIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImRpc2FibGVkIiwidGV4dCIsIl9yZWYyIiwiaGFzQXR0YWNobWVudHMiLCJfcmVmMyIsIiRmaWxlRHJhZ0FjdGl2ZSIsIlN0eWxlZE1BSUFEcm9wT3ZlcmxheSIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTQ0lucHV0RWRpdG9yQ2VsbCIsIlNDSW5wdXRDaGlwc1JvdyIsIlNDSW5wdXRUb29sYmFyUm93IiwiU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwiLCJTQ0lucHV0TWV0YUluZGljYXRvcnMiLCJTQ0lucHV0TWV0YUljb25CdXR0b24iLCJzcGFuIiwid2hpdGUiLCJtYWluIiwiU3R5bGVkTUFJQUlucHV0IiwidGV4dGFyZWEiLCJzZWNvbmRhcnkiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIl9yZWY0IiwiaGFzVmFsdWVzIiwiY29uY2F0IiwiX3JlZjUiLCJfcmVmNiIsIlNDTUlXcmFwcGVyQXR0YWNobWVudHMiLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50SWNvbiIsIlNDTUlBdHRhY2htZW50RmlsZUljb24iLCJTQ01JQXR0YWNobWVudERlbGV0ZUljb24iLCJidXR0b24iLCJTQ01JQXR0YWNobWVudE5hbWUiLCJQbHVzTWVudVRvb2xzUm93IiwiUGx1c1RvZ2dsZUJ1dHRvbiIsIl9yZWY3IiwiJG1lbnVPcGVuIiwiU2tpbGxzVG9nZ2xlQnV0dG9uIiwiUGx1c01lbnVQYXBlciIsImdyYXkiLCJsaWdodCIsIlBsdXNNZW51SW5uZXJDb2x1bW4iLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUl0ZW1CdXR0b24iLCJiYWNrZ3JvdW5kIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJtZW51SWNvbiIsIkFjdGl2ZVRvb2xDaGlwUm9vdCIsIl9yZWY4IiwiJGhvdmVyZWQiLCJfcmVmOSIsImNoaXBTdXJmYWNlSG92ZXIiLCJfcmVmMCIsIl9yZWYxIiwiJGV4aXRpbmciLCJBY3RpdmVUb29sQ2hpcEljb25CdXR0b24iLCJfcmVmMTAiLCIkY2xvc2VTaG93biIsIl9yZWYxMSIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJwcmltYXJ5Iiwic3RvcFB1bHNlIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBzY3JvbGxhYmxlU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3NoYXJlZC9zY3JvbGxhYmxlJ1xuaW1wb3J0IHsgQ2xlYXJCdXR0b24gfSBmcm9tICcuLi9DbGVhckJ1dHRvbidcbmltcG9ydCB7XG4gIE1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgsXG4gIE1BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYLFxuICBNQUlBX0lOUFVUX1dSQVBQRVJfTUFYX0hFSUdIVF9QWCxcbn0gZnJvbSAnLi9tYWlhSW5wdXRMYXlvdXQnXG5cbmV4cG9ydCBjb25zdCBmbG93ID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSA1MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgyKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwT3V0ID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM0ZDM1NjkgMCUsICM4NzQwYmYgNTkuNjIlLCAjMmQ3N2JkIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgMTAwJSAxMDAlLFxuICAgIDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG4gIGJveC1zaGFkb3c6XG4gICAgM3B4IDRweCAxNHB4IDAgcmdiYSgxMzUsIDY0LCAxOTEsIDAuMTUpLFxuICAgIC0zcHggLTRweCAxNHB4IDAgcmdiYSg0NSwgMTE5LCAxODksIDAuMTUpO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWw6IHRvb2xiYXIgZW4gdW5hIHNvbGEgbMOtbmVhIHNpbiBhZGp1bnRvcyBuaSB0b29scyBkZWwgKyBuaSBtdWx0aWxpbmUgKi9cbiAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI/OiBib29sZWFuXG4gICRmaWxlRHJhZ0FjdGl2ZT86IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgcGFkZGluZzogOHB4O1xuICBjdXJzb3I6ICR7KHsgZGlzYWJsZWQgfSkgPT4gKGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJyl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA1OHB4O1xuICBtYXgtaGVpZ2h0OiAke01BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYfXB4O1xuICBnYXA6ICR7TUFJQV9JTlBVVF9DSElQU19DT05URU5UX0dBUF9QWH1weDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMudGV4dC5kaXNhYmxlZH07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gIH1cblxuICAkeyh7IGhhc0F0dGFjaG1lbnRzIH0pID0+XG4gICAgaGFzQXR0YWNobWVudHMgJiZcbiAgICBjc3NgXG4gICAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICAgIGB9XG5cbiAgJHsoeyAkZmlsZURyYWdBY3RpdmUgfSkgPT5cbiAgICAkZmlsZURyYWdBY3RpdmUgJiZcbiAgICBjc3NgXG4gICAgICBib3JkZXI6IDFweCBkYXNoZWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDExOSwgMTg5LCAwLjA2KTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFEcm9wT3ZlcmxheSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX07XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5gXG5cbi8qKiBUb29sYmFyIGZpamEgZW4gMiBmaWxhczogaW5wdXQgYXJyaWJhLCArIC8gc2VuZCBhYmFqbyAodG9vbGJhciBubyBzY3JvbGxlYSkuICovXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIGF1dG8pIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICByb3ctZ2FwOiAke01BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYfXB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIENlbGRhIGRlbCBlZGl0b3IgKGVsIHNjcm9sbCB2aXZlIGVuIGVsIGNvbnRlbnRlZGl0YWJsZSkuICovXG5leHBvcnQgY29uc3QgU0NJbnB1dEVkaXRvckNlbGwgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG4vKiogRmlsYSBjb21wYXJ0aWRhOiBjaGlwIGRlIGNvbnRleHRvICsgY2hpcHMgZGUgYXR0YWNobWVudHMgKHdyYXApLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRDaGlwc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbmBcblxuLyoqIEZpbGEgaW5mZXJpb3IgZGUgYm90b25lczogc2llbXByZSB2aXNpYmxlLCBudW5jYSBzY3JvbGxlYSBjb24gZWwgdGV4dG8uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dFRvb2xiYXJSb3cgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuYFxuXG4vKiogSW5kaWNhZG9yZXMgYSBsYSBpenF1aWVyZGEgZGVsIHNlbmQgKGFjY2VzbyBDT1IgLyBtb2RlbG8pIHBhcmEgYWdlbnRlcyBjdXN0b20uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJbmRpY2F0b3JzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJY29uQnV0dG9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0ID0gc3R5bGVkLnRleHRhcmVhPHtcbiAgYWxpZ25CdXR0b25zPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xuICAkdG9vbGJhckxheW91dFZhcmlhbnQ/OiAnc3RhY2tlZFJvd3MnXG59PmBcbiAgJHtzY3JvbGxhYmxlU3R5bGVzfVxuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgbWF4LWhlaWdodDogMTcwcHg7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIGdyaWQtcm93OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRCdXR0b24gPSBzdHlsZWQoQ2xlYXJCdXR0b24pPHsgaGFzVmFsdWVzPzogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBoYXNWYWx1ZXMgfSkgPT4gKGhhc1ZhbHVlcyA/IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YCA6ICcjZjJmMmYyJyl9O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgIGhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzcwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuXG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgICFoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgc3ZnIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXgtd2lkdGg6IDExOHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRGaWxlSWNvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gIH1cblxuICAke1NDTUlBdHRhY2htZW50fTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudERlbGV0ZUljb24gPSBzdHlsZWQuYnV0dG9uYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBsaW5lLWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICB9XG5cbiAgJHtTQ01JQXR0YWNobWVudH06aG92ZXIgJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVRvb2xzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzVG9nZ2xlQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICRtZW51T3BlbjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICRtZW51T3BlbiB9KSA9PiAoJG1lbnVPcGVuID8gJyNmMmYyZjInIDogY29sb3JzLndoaXRlLm1haW4pfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzLXZpc2libGU6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU2tpbGxzVG9nZ2xlQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jb3Itc3BhY2Utc3BhY2UteHMsIDRweCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLWNvci1jb2xvci1pY29uLXN1YnRsZSwgIzgwODA4MCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1zbSwgMTRweCk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWNvci10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LTIwLCAyMHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNvci10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLTAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICYgPiBzdmcge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1cy12aXNpYmxlOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51UGFwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDIwOXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAke2NvbG9ycy5jb2xvcnMuZ3JheS5saWdodH07XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLndoaXRlLm1haW59O1xuICBib3gtc2hhZG93OlxuICAgIDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDgpLFxuICAgIDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJbm5lckNvbHVtbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51RGl2aWRlciA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxNzBweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLmNvbG9ycy5ncmF5LmxpZ2h0fTtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudUl0ZW1CdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7Y29sb3JzLmJhY2tncm91bmQuc2Vjb25kYXJ5fTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SXRlbUxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgY29sb3I6ICR7TUFJQV9DSEFUX0lOUFVUX1VJLm1lbnVJY29ufTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwUm9vdCA9IHN0eWxlZC5kaXY8eyAkaG92ZXJlZDogYm9vbGVhbjsgJGV4aXRpbmc6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTQ0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gJzE2cHgnIDogJzAnKX07XG4gIGJhY2tncm91bmQ6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gTUFJQV9DSEFUX0lOUFVUX1VJLmNoaXBTdXJmYWNlSG92ZXIgOiAndHJhbnNwYXJlbnQnKX07XG4gIGJveC1zaGFkb3c6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gJzAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDcpJyA6ICdub25lJyl9O1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgMC4yMnMgZWFzZSxcbiAgICBib3JkZXItcmFkaXVzIDAuMjJzIGVhc2UsXG4gICAgYm94LXNoYWRvdyAwLjIycyBlYXNlO1xuXG4gICR7KHsgJGV4aXRpbmcgfSkgPT5cbiAgICAkZXhpdGluZyAmJlxuICAgIGNzc2BcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYW5pbWF0aW9uOiAke2FjdGl2ZVRvb2xDaGlwT3V0fSAwLjIycyBlYXNlIGZvcndhcmRzO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcEljb25CdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGNsb3NlU2hvd246IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAkeyh7ICRjbG9zZVNob3duIH0pID0+XG4gICAgJGNsb3NlU2hvd24gJiZcbiAgICBjc3NgXG4gICAgICBzdmcge1xuICAgICAgICBhbmltYXRpb246ICR7YWN0aXZlVG9vbENoaXBDbG9zZUljb25Jbn0gMC4yNHMgZWFzZSBmb3J3YXJkcztcbiAgICAgIH1cbiAgICBgfVxuXG4gIC8qIFNjYWxlIHNvbG8gY29uIGxhIGNydXogdmlzaWJsZSB5IGhvdmVyIHNvYnJlIGVsbGEgKG5vIHNvYnJlIGVsIGNoaXAvaWNvbm8gZGUgdG9vbCkgKi9cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkY2xvc2VTaG93biB9KSA9PlxuICAgICAgJGNsb3NlU2hvd24gJiZcbiAgICAgIGNzc2BcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbiAgICAgIGB9XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuYFxuY29uc3Qgc3RvcFB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGM7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYW5pbWF0aW9uOiAke3N0b3BQdWxzZX0gMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MF19ICFpbXBvcnRhbnQ7XG5cbiAgICAke1N0eWxlZE1BSUFTdG9wSWNvbn0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsY0FBYyxFQUFFQyxrQkFBa0IsUUFBUSx3QkFBd0I7QUFDM0UsU0FBU0MsZ0JBQWdCLFFBQVEsbUNBQW1DO0FBQ3BFLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFDNUMsU0FDRUMsK0JBQStCLEVBQy9CQywwQkFBMEIsRUFDMUJDLGdDQUFnQyxRQUMzQixtQkFBbUI7QUFFMUIsT0FBTyxJQUFNQyxJQUFJLEdBQUdULFNBQVMsMEhBZ0I1QjtBQUVELElBQU1VLHlCQUF5QixHQUFHVixTQUFTLGdGQVMxQztBQUVELElBQU1XLGlCQUFpQixHQUFHWCxTQUFTLDJHQVNsQztBQUVELElBQU1ZLGlCQUFpQixHQUFHYixHQUFHLHlVQVNkVSxJQUFJLENBSWxCO0FBRUQsT0FBTyxJQUFNSSxzQkFBc0IsR0FBR2YsTUFBTSxDQUFDZ0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVWQWdCcEMsVUFBQUMsSUFBQTtFQUFBLElBQUdDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0VBQUEsT0FBUUEsUUFBUSxHQUFHLGFBQWEsR0FBRyxNQUFNO0FB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
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsIk1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgiLCJNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCIsIk1BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYIiwiZmxvdyIsImFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4iLCJhY3RpdmVUb29sQ2hpcE91dCIsImN1c3RvbUlucHV0U3R5bGVzIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImRpc2FibGVkIiwidGV4dCIsIl9yZWYyIiwiaGFzQXR0YWNobWVudHMiLCJfcmVmMyIsIiRmaWxlRHJhZ0FjdGl2ZSIsIlN0eWxlZE1BSUFEcm9wT3ZlcmxheSIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTQ0lucHV0RWRpdG9yQ2VsbCIsIlNDSW5wdXRDaGlwc1JvdyIsIlNDSW5wdXRUb29sYmFyUm93IiwiU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwiLCJTQ0lucHV0TWV0YUluZGljYXRvcnMiLCJTQ0lucHV0TWV0YUljb25CdXR0b24iLCJzcGFuIiwid2hpdGUiLCJtYWluIiwiU3R5bGVkTUFJQUlucHV0IiwidGV4dGFyZWEiLCJzZWNvbmRhcnkiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIl9yZWY0IiwiaGFzVmFsdWVzIiwiY29uY2F0IiwiX3JlZjUiLCJfcmVmNiIsIlNDTUlXcmFwcGVyQXR0YWNobWVudHMiLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50SWNvbiIsIlNDTUlBdHRhY2htZW50RmlsZUljb24iLCJTQ01JQXR0YWNobWVudERlbGV0ZUljb24iLCJidXR0b24iLCJTQ01JQXR0YWNobWVudE5hbWUiLCJQbHVzTWVudVRvb2xzUm93IiwiUGx1c1RvZ2dsZUJ1dHRvbiIsIl9yZWY3IiwiJG1lbnVPcGVuIiwiUGx1c01lbnVQYXBlciIsImdyYXkiLCJsaWdodCIsIlBsdXNNZW51SW5uZXJDb2x1bW4iLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUl0ZW1CdXR0b24iLCJiYWNrZ3JvdW5kIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJtZW51SWNvbiIsIkFjdGl2ZVRvb2xDaGlwUm9vdCIsIl9yZWY4IiwiJGhvdmVyZWQiLCJfcmVmOSIsImNoaXBTdXJmYWNlSG92ZXIiLCJfcmVmMCIsIl9yZWYxIiwiJGV4aXRpbmciLCJBY3RpdmVUb29sQ2hpcEljb25CdXR0b24iLCJfcmVmMTAiLCIkY2xvc2VTaG93biIsIl9yZWYxMSIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJwcmltYXJ5Iiwic3RvcFB1bHNlIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBzY3JvbGxhYmxlU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3NoYXJlZC9zY3JvbGxhYmxlJ1xuaW1wb3J0IHsgQ2xlYXJCdXR0b24gfSBmcm9tICcuLi9DbGVhckJ1dHRvbidcbmltcG9ydCB7XG4gIE1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgsXG4gIE1BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYLFxuICBNQUlBX0lOUFVUX1dSQVBQRVJfTUFYX0hFSUdIVF9QWCxcbn0gZnJvbSAnLi9tYWlhSW5wdXRMYXlvdXQnXG5cbmV4cG9ydCBjb25zdCBmbG93ID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSA1MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgyKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwT3V0ID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM0ZDM1NjkgMCUsICM4NzQwYmYgNTkuNjIlLCAjMmQ3N2JkIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgMTAwJSAxMDAlLFxuICAgIDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG4gIGJveC1zaGFkb3c6XG4gICAgM3B4IDRweCAxNHB4IDAgcmdiYSgxMzUsIDY0LCAxOTEsIDAuMTUpLFxuICAgIC0zcHggLTRweCAxNHB4IDAgcmdiYSg0NSwgMTE5LCAxODksIDAuMTUpO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWw6IHRvb2xiYXIgZW4gdW5hIHNvbGEgbMOtbmVhIHNpbiBhZGp1bnRvcyBuaSB0b29scyBkZWwgKyBuaSBtdWx0aWxpbmUgKi9cbiAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI/OiBib29sZWFuXG4gICRmaWxlRHJhZ0FjdGl2ZT86IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgcGFkZGluZzogOHB4O1xuICBjdXJzb3I6ICR7KHsgZGlzYWJsZWQgfSkgPT4gKGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJyl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA1OHB4O1xuICBtYXgtaGVpZ2h0OiAke01BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYfXB4O1xuICBnYXA6ICR7TUFJQV9JTlBVVF9DSElQU19DT05URU5UX0dBUF9QWH1weDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMudGV4dC5kaXNhYmxlZH07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gIH1cblxuICAkeyh7IGhhc0F0dGFjaG1lbnRzIH0pID0+XG4gICAgaGFzQXR0YWNobWVudHMgJiZcbiAgICBjc3NgXG4gICAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICAgIGB9XG5cbiAgJHsoeyAkZmlsZURyYWdBY3RpdmUgfSkgPT5cbiAgICAkZmlsZURyYWdBY3RpdmUgJiZcbiAgICBjc3NgXG4gICAgICBib3JkZXI6IDFweCBkYXNoZWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDExOSwgMTg5LCAwLjA2KTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFEcm9wT3ZlcmxheSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX07XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5gXG5cbi8qKiBUb29sYmFyIGZpamEgZW4gMiBmaWxhczogaW5wdXQgYXJyaWJhLCArIC8gc2VuZCBhYmFqbyAodG9vbGJhciBubyBzY3JvbGxlYSkuICovXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIGF1dG8pIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICByb3ctZ2FwOiAke01BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYfXB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIENlbGRhIGRlbCBlZGl0b3IgKGVsIHNjcm9sbCB2aXZlIGVuIGVsIGNvbnRlbnRlZGl0YWJsZSkuICovXG5leHBvcnQgY29uc3QgU0NJbnB1dEVkaXRvckNlbGwgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG4vKiogRmlsYSBjb21wYXJ0aWRhOiBjaGlwIGRlIGNvbnRleHRvICsgY2hpcHMgZGUgYXR0YWNobWVudHMgKHdyYXApLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRDaGlwc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbmBcblxuLyoqIEZpbGEgaW5mZXJpb3IgZGUgYm90b25lczogc2llbXByZSB2aXNpYmxlLCBudW5jYSBzY3JvbGxlYSBjb24gZWwgdGV4dG8uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dFRvb2xiYXJSb3cgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuYFxuXG4vKiogSW5kaWNhZG9yZXMgYSBsYSBpenF1aWVyZGEgZGVsIHNlbmQgKGFjY2VzbyBDT1IgLyBtb2RlbG8pIHBhcmEgYWdlbnRlcyBjdXN0b20uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJbmRpY2F0b3JzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJY29uQnV0dG9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0ID0gc3R5bGVkLnRleHRhcmVhPHtcbiAgYWxpZ25CdXR0b25zPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xuICAkdG9vbGJhckxheW91dFZhcmlhbnQ/OiAnc3RhY2tlZFJvd3MnXG59PmBcbiAgJHtzY3JvbGxhYmxlU3R5bGVzfVxuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgbWF4LWhlaWdodDogMTcwcHg7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIGdyaWQtcm93OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRCdXR0b24gPSBzdHlsZWQoQ2xlYXJCdXR0b24pPHsgaGFzVmFsdWVzPzogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBoYXNWYWx1ZXMgfSkgPT4gKGhhc1ZhbHVlcyA/IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YCA6ICcjZjJmMmYyJyl9O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgIGhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzcwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuXG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgICFoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgc3ZnIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXgtd2lkdGg6IDExOHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRGaWxlSWNvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gIH1cblxuICAke1NDTUlBdHRhY2htZW50fTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudERlbGV0ZUljb24gPSBzdHlsZWQuYnV0dG9uYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBsaW5lLWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICB9XG5cbiAgJHtTQ01JQXR0YWNobWVudH06aG92ZXIgJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVRvb2xzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzVG9nZ2xlQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICRtZW51T3BlbjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICRtZW51T3BlbiB9KSA9PiAoJG1lbnVPcGVuID8gJyNmMmYyZjInIDogY29sb3JzLndoaXRlLm1haW4pfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzLXZpc2libGU6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVQYXBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB3aWR0aDogMjA5cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLmNvbG9ycy5ncmF5LmxpZ2h0fTtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksXG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudUlubmVyQ29sdW1uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVEaXZpZGVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDE3MHB4O1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SXRlbUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtjb2xvcnMuYmFja2dyb3VuZC5zZWNvbmRhcnl9O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBjb2xvcjogJHtNQUlBX0NIQVRfSU5QVVRfVUkubWVudUljb259O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBSb290ID0gc3R5bGVkLmRpdjx7ICRob3ZlcmVkOiBib29sZWFuOyAkZXhpdGluZzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxNDRweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyAnMTZweCcgOiAnMCcpfTtcbiAgYmFja2dyb3VuZDogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyBNQUlBX0NIQVRfSU5QVVRfVUkuY2hpcFN1cmZhY2VIb3ZlciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgYm94LXNoYWRvdzogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyAnMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNyknIDogJ25vbmUnKX07XG4gIHRyYW5zaXRpb246XG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjIycyBlYXNlLFxuICAgIGJvcmRlci1yYWRpdXMgMC4yMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMjJzIGVhc2U7XG5cbiAgJHsoeyAkZXhpdGluZyB9KSA9PlxuICAgICRleGl0aW5nICYmXG4gICAgY3NzYFxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBhbmltYXRpb246ICR7YWN0aXZlVG9vbENoaXBPdXR9IDAuMjJzIGVhc2UgZm9yd2FyZHM7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkY2xvc2VTaG93bjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICR7KHsgJGNsb3NlU2hvd24gfSkgPT5cbiAgICAkY2xvc2VTaG93biAmJlxuICAgIGNzc2BcbiAgICAgIHN2ZyB7XG4gICAgICAgIGFuaW1hdGlvbjogJHthY3RpdmVUb29sQ2hpcENsb3NlSWNvbklufSAwLjI0cyBlYXNlIGZvcndhcmRzO1xuICAgICAgfVxuICAgIGB9XG5cbiAgLyogU2NhbGUgc29sbyBjb24gbGEgY3J1eiB2aXNpYmxlIHkgaG92ZXIgc29icmUgZWxsYSAobm8gc29icmUgZWwgY2hpcC9pY29ubyBkZSB0b29sKSAqL1xuICAmOmhvdmVyIHtcbiAgICAkeyh7ICRjbG9zZVNob3duIH0pID0+XG4gICAgICAkY2xvc2VTaG93biAmJlxuICAgICAgY3NzYFxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICAgICAgYH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBMYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5gXG5jb25zdCBzdG9wUHVsc2UgPSBrZXlmcmFtZXNgXG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BJY29uID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjOGM4YztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBhbmltYXRpb246ICR7c3RvcFB1bHNlfSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzUwXX0gIWltcG9ydGFudDtcblxuICAgICR7U3R5bGVkTUFJQVN0b3BJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzUwMF19ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUN0RCxTQUFTQyxjQUFjLEVBQUVDLGtCQUFrQixRQUFRLHdCQUF3QjtBQUMzRSxTQUFTQyxnQkFBZ0IsUUFBUSxtQ0FBbUM7QUFDcEUsU0FBU0MsV0FBVyxRQUFRLGdCQUFnQjtBQUM1QyxTQUNFQywrQkFBK0IsRUFDL0JDLDBCQUEwQixFQUMxQkMsZ0NBQWdDLFFBQzNCLG1CQUFtQjtBQUUxQixPQUFPLElBQU1DLElBQUksR0FBR1QsU0FBUywwSEFnQjVCO0FBRUQsSUFBTVUseUJBQXlCLEdBQUdWLFNBQVMsZ0ZBUzFDO0FBRUQsSUFBTVcsaUJBQWlCLEdBQUdYLFNBQVMsMkdBU2xDO0FBRUQsSUFBTVksaUJBQWlCLEdBQUdiLEdBQUcseVVBU2RVLElBQUksQ0FJbEI7QUFFRCxPQUFPLElBQU1JLHNCQUFzQixHQUFHZixNQUFNLENBQUNnQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdVZBZ0JwQyxVQUFBQyxJQUFBO0VBQUEsSUFBR0MsUUFBUSxHQUFBRCxJQUFBLENBQVJDLFFBQVE7RUFBQSxPQUFRQSxRQUFRLEdBQUcsYUFBYSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBR2pEWCxnQ0FBZ0MsRUFDdkNGLCtCQUErQixFQUtsQkwsTUFBTSxD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Q0FBQyxFQUM5QyxVQUFBQyxLQUFBO0VBQUEsSUFBR0QsUUFBUSxHQUFBQyxLQUFBLENBQVJELFFBQVE7RUFBQSxPQUFRQSxRQUFRLEdBQUdqRSxrQkFBa0IsQ0FBQ21FLGdCQUFnQixHQUFHLGFBQWE7QUFBQSxDQUFDLEVBQ2xGLFVBQUFDLEtBQUE7RUFBQSxJQUFHSCxRQUFRLEdBQUFHLEtBQUEsQ0FBUkgsUUFBUTtFQUFBLE9BQVFBLFFBQVEsR0FBRywrQkFBK0IsR0FBRyxNQUFNO0FBQUEsQ0FBQyxFQU1uRixVQUFBSSxLQUFBO0VBQUEsSUFBR0MsUUFBUSxHQUFBRCxLQUFBLENBQVJDLFFBQVE7RUFBQSxPQUNYQSxRQUFRLElBQ1IxRSxHQUFHLDhEQUVZWSxpQkFBaUIsQ0FDL0I7QUFBQSxFQUNKO0FBRUQsT0FBTyxJQUFNK0Qsd0JBQXdCLEdBQUc1RSxNQUFNLENBQUNxRCxNQUFNLENBQUFwQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdTQWlCakQsVUFBQTBELE1BQUE7RUFBQSxJQUFHQyxXQUFXLEdBQUFELE1BQUEsQ0FBWEMsV0FBVztFQUFBLE9BQ2RBLFdBQVcsSUFDWDdFLEdBQUcsK0NBRWNXLHlCQUF5QixDQUV6QztBQUFBLEdBSUMsVUFBQW1FLE1BQUE7RUFBQSxJQUFHRCxXQUFXLEdBQUFDLE1BQUEsQ0FBWEQsV0FBVztFQUFBLE9BQ2RBLFdBQVcsSUFDWDdFLEdBQUcsNEJBRUY7QUFBQSxHQUlrQkcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUczQztBQUVELE9BQU8sSUFBTTRFLG1CQUFtQixHQUFHaEYsTUFBTSxDQUFDb0MsSUFBSSxDQUFBbkIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4SUFDbkNoQixNQUFNLENBQUNtQixJQUFJLENBQUMyRCxPQUFPLENBUTdCO0FBQ0QsSUFBTUMsU0FBUyxHQUFHaEYsU0FBUyw0REFRMUI7QUFDRCxPQUFPLElBQU1pRixrQkFBa0IsR0FBR25GLE1BQU0sQ0FBQ2dCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxvSEFLN0IrRCxTQUFTLENBQ3ZCO0FBQ0QsT0FBTyxJQUFNRSxvQkFBb0IsR0FBR3BGLE1BQU0sQ0FBQ3FELE1BQU0sQ0FBQXBDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK1dBZXpCZixjQUFjLENBQUMsRUFBRSxDQUFDLEVBRXBDK0Usa0JBQWtCLEVBQ0UvRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBUzVDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,116 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { ChevronRight } from '@projectcor/icons/lib/components/ChevronRight';
4
+ import { useT } from '../../../hooks/useT';
5
+ import { useReasoningTrace } from '../../../hooks/useReasoningTrace';
6
+ import { formatActivityElapsed } from '../AgentActivityIndicator/AgentActivityIndicator.utils';
7
+ import { deriveReasoningSummary } from '../../../utils/reasoningMappers';
8
+ import { isVisibleStep, StepList } from './ReasoningSteps';
9
+ import { SCExpandedTrace, SCReasoningBlock, SCSummaryToggle, SCTraceCollapse, SCTraceNote } from './ReasoningBlock.styles';
10
+
11
+ /** Tiempo que queda visible el detalle antes de plegarse solo al terminar el turno. */
12
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ var AUTO_COLLAPSE_DELAY_MS = 900;
14
+ // Preview del resultado de la tool: deshabilitado. El `result_preview` del back
15
+ // son los primeros 200 chars del retorno crudo, así que lo que se mostraba era
16
+ // el encabezado interno del payload ("DATOS DE PROYECTO"): redundante con el
17
+ // label y ausente en las tools que devuelven JSON.
18
+ // PENDIENTE: definir qué mostrar acá o dejar de emitir `result_preview` en el back.
19
+ // const cleanPreview = (preview: string | undefined): string => {
20
+ // if (!preview) return ''
21
+ // return preview
22
+ // .replace(/^[\s=\-_*#|~]+/, '')
23
+ // .split('\n')[0]
24
+ // .trim()
25
+ // }
26
+ //
27
+ // const isMeaningfulPreview = (preview: string | undefined): boolean => {
28
+ // const cleaned = cleanPreview(preview)
29
+ // if (cleaned.length < 2) return false
30
+ // if (cleaned.startsWith('{') || cleaned.startsWith('[')) return false
31
+ // return cleaned.replace(/[^\p{L}\p{N}]/gu, '').length >= 2
32
+ // }
33
+
34
+ export var ReasoningBlock = function ReasoningBlock(_ref) {
35
+ var _ref2, _liveTrace$summary;
36
+ var messageId = _ref.messageId,
37
+ trace = _ref.trace;
38
+ var _useT = useT(),
39
+ t = _useT.t;
40
+ var liveTrace = useReasoningTrace(messageId);
41
+ // Este bloque reemplaza al timeline en vivo cuando el turno cierra: si hay
42
+ // snapshot propio ya terminado, monta expandido y se pliega solo, así se ve
43
+ // el traspaso. Los mensajes del histórico no tienen snapshot => colapsados.
44
+ var tookOverFromLive = useRef(liveTrace.phase === 'done' && liveTrace.steps.length > 0);
45
+ var _useState = useState(tookOverFromLive.current),
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ isExpanded = _useState2[0],
48
+ setIsExpanded = _useState2[1];
49
+ useEffect(function () {
50
+ if (!tookOverFromLive.current) return undefined;
51
+ var timeoutId = window.setTimeout(function () {
52
+ return setIsExpanded(false);
53
+ }, AUTO_COLLAPSE_DELAY_MS);
54
+ return function () {
55
+ return window.clearTimeout(timeoutId);
56
+ };
57
+ }, []);
58
+ var liveSteps = liveTrace.steps;
59
+ var effectiveSummary = (_ref2 = (_liveTrace$summary = liveTrace.summary) !== null && _liveTrace$summary !== void 0 ? _liveTrace$summary : trace === null || trace === void 0 ? void 0 : trace.summary) !== null && _ref2 !== void 0 ? _ref2 : liveSteps.length ? deriveReasoningSummary(liveSteps) : null;
60
+ var expandedSteps = useMemo(function () {
61
+ var _trace$steps;
62
+ return (liveSteps.length > 0 ? liveSteps : (_trace$steps = trace === null || trace === void 0 ? void 0 : trace.steps) !== null && _trace$steps !== void 0 ? _trace$steps : []).filter(isVisibleStep);
63
+ }, [liveSteps, trace]);
64
+ var handleToggle = useCallback(function () {
65
+ return setIsExpanded(function (current) {
66
+ return !current;
67
+ });
68
+ }, []);
69
+ if (!expandedSteps.length) return null;
70
+ var actionCount = deriveReasoningSummary(expandedSteps).toolCount;
71
+ var durationLabel = (effectiveSummary === null || effectiveSummary === void 0 ? void 0 : effectiveSummary.durationMs) !== undefined ? formatActivityElapsed(Math.max(1, Math.round(effectiveSummary.durationMs / 1000))) : null;
72
+ return /*#__PURE__*/_jsxs(SCReasoningBlock, {
73
+ children: [/*#__PURE__*/_jsxs(SCSummaryToggle, {
74
+ type: "button",
75
+ onClick: handleToggle,
76
+ "aria-expanded": isExpanded,
77
+ title: isExpanded ? t('chat.reasoning.collapse') : t('chat.reasoning.expand'),
78
+ children: [/*#__PURE__*/_jsx("span", {
79
+ children: durationLabel ? t('chat.reasoning.thoughtFor', {
80
+ duration: durationLabel
81
+ }) : t('chat.reasoning.thought')
82
+ }), actionCount > 0 && /*#__PURE__*/_jsxs(_Fragment, {
83
+ children: [/*#__PURE__*/_jsx("span", {
84
+ className: "ReasoningBlock-separator",
85
+ "aria-hidden": true,
86
+ children: "-"
87
+ }), /*#__PURE__*/_jsx("span", {
88
+ children: t('chat.reasoning.actionCount', {
89
+ count: actionCount
90
+ })
91
+ })]
92
+ }), /*#__PURE__*/_jsx("span", {
93
+ className: "ReasoningBlock-chevron",
94
+ "aria-hidden": true,
95
+ children: /*#__PURE__*/_jsx(ChevronRight, {
96
+ color: "currentColor",
97
+ width: "18px",
98
+ height: "18px"
99
+ })
100
+ })]
101
+ }), /*#__PURE__*/_jsx(SCTraceCollapse, {
102
+ $isOpen: isExpanded,
103
+ "aria-hidden": !isExpanded,
104
+ children: /*#__PURE__*/_jsxs(SCExpandedTrace, {
105
+ $isOpen: isExpanded,
106
+ children: [/*#__PURE__*/_jsx(StepList, {
107
+ steps: expandedSteps,
108
+ t: t
109
+ }), (effectiveSummary === null || effectiveSummary === void 0 ? void 0 : effectiveSummary.truncated) && /*#__PURE__*/_jsx(SCTraceNote, {
110
+ children: t('chat.reasoning.truncated')
111
+ })]
112
+ })
113
+ })]
114
+ });
115
+ };
116
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiQ2hldnJvblJpZ2h0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiZm9ybWF0QWN0aXZpdHlFbGFwc2VkIiwiZGVyaXZlUmVhc29uaW5nU3VtbWFyeSIsImlzVmlzaWJsZVN0ZXAiLCJTdGVwTGlzdCIsIlNDRXhwYW5kZWRUcmFjZSIsIlNDUmVhc29uaW5nQmxvY2siLCJTQ1N1bW1hcnlUb2dnbGUiLCJTQ1RyYWNlQ29sbGFwc2UiLCJTQ1RyYWNlTm90ZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIkFVVE9fQ09MTEFQU0VfREVMQVlfTVMiLCJSZWFzb25pbmdCbG9jayIsIl9yZWYiLCJfcmVmMiIsIl9saXZlVHJhY2Ukc3VtbWFyeSIsIm1lc3NhZ2VJZCIsInRyYWNlIiwiX3VzZVQiLCJ0IiwibGl2ZVRyYWNlIiwidG9va092ZXJGcm9tTGl2ZSIsInBoYXNlIiwic3RlcHMiLCJsZW5ndGgiLCJfdXNlU3RhdGUiLCJjdXJyZW50IiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJ1bmRlZmluZWQiLCJ0aW1lb3V0SWQiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwibGl2ZVN0ZXBzIiwiZWZmZWN0aXZlU3VtbWFyeSIsInN1bW1hcnkiLCJleHBhbmRlZFN0ZXBzIiwiX3RyYWNlJHN0ZXBzIiwiZmlsdGVyIiwiaGFuZGxlVG9nZ2xlIiwiYWN0aW9uQ291bnQiLCJ0b29sQ291bnQiLCJkdXJhdGlvbkxhYmVsIiwiZHVyYXRpb25NcyIsIk1hdGgiLCJtYXgiLCJyb3VuZCIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJ0aXRsZSIsImR1cmF0aW9uIiwiY2xhc3NOYW1lIiwiY291bnQiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiJGlzT3BlbiIsInRydW5jYXRlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ0Jsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVJlYXNvbmluZ1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UnXG5pbXBvcnQgeyBmb3JtYXRBY3Rpdml0eUVsYXBzZWQgfSBmcm9tICcuLi9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IudXRpbHMnXG5pbXBvcnQgeyBkZXJpdmVSZWFzb25pbmdTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVhc29uaW5nTWFwcGVycydcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nVHJhY2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgeyBpc1Zpc2libGVTdGVwLCBTdGVwTGlzdCB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5pbXBvcnQge1xuICBTQ0V4cGFuZGVkVHJhY2UsXG4gIFNDUmVhc29uaW5nQmxvY2ssXG4gIFNDU3VtbWFyeVRvZ2dsZSxcbiAgU0NUcmFjZUNvbGxhcHNlLFxuICBTQ1RyYWNlTm90ZSxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbi8qKiBUaWVtcG8gcXVlIHF1ZWRhIHZpc2libGUgZWwgZGV0YWxsZSBhbnRlcyBkZSBwbGVnYXJzZSBzb2xvIGFsIHRlcm1pbmFyIGVsIHR1cm5vLiAqL1xuY29uc3QgQVVUT19DT0xMQVBTRV9ERUxBWV9NUyA9IDkwMFxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdCbG9ja1Byb3BzID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICB0cmFjZT86IFJlYXNvbmluZ1RyYWNlIHwgbnVsbFxufVxuXG4vLyBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGUgbGEgdG9vbDogZGVzaGFiaWxpdGFkby4gRWwgYHJlc3VsdF9wcmV2aWV3YCBkZWwgYmFja1xuLy8gc29uIGxvcyBwcmltZXJvcyAyMDAgY2hhcnMgZGVsIHJldG9ybm8gY3J1ZG8sIGFzw60gcXVlIGxvIHF1ZSBzZSBtb3N0cmFiYSBlcmFcbi8vIGVsIGVuY2FiZXphZG8gaW50ZXJubyBkZWwgcGF5bG9hZCAoXCJEQVRPUyBERSBQUk9ZRUNUT1wiKTogcmVkdW5kYW50ZSBjb24gZWxcbi8vIGxhYmVsIHkgYXVzZW50ZSBlbiBsYXMgdG9vbHMgcXVlIGRldnVlbHZlbiBKU09OLlxuLy8gUEVORElFTlRFOiBkZWZpbmlyIHF1w6kgbW9zdHJhciBhY8OhIG8gZGVqYXIgZGUgZW1pdGlyIGByZXN1bHRfcHJldmlld2AgZW4gZWwgYmFjay5cbi8vIGNvbnN0IGNsZWFuUHJldmlldyA9IChwcmV2aWV3OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuLy8gICBpZiAoIXByZXZpZXcpIHJldHVybiAnJ1xuLy8gICByZXR1cm4gcHJldmlld1xuLy8gICAgIC5yZXBsYWNlKC9eW1xccz1cXC1fKiN8fl0rLywgJycpXG4vLyAgICAgLnNwbGl0KCdcXG4nKVswXVxuLy8gICAgIC50cmltKClcbi8vIH1cbi8vXG4vLyBjb25zdCBpc01lYW5pbmdmdWxQcmV2aWV3ID0gKHByZXZpZXc6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuLy8gICBjb25zdCBjbGVhbmVkID0gY2xlYW5QcmV2aWV3KHByZXZpZXcpXG4vLyAgIGlmIChjbGVhbmVkLmxlbmd0aCA8IDIpIHJldHVybiBmYWxzZVxuLy8gICBpZiAoY2xlYW5lZC5zdGFydHNXaXRoKCd7JykgfHwgY2xlYW5lZC5zdGFydHNXaXRoKCdbJykpIHJldHVybiBmYWxzZVxuLy8gICByZXR1cm4gY2xlYW5lZC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfV0vZ3UsICcnKS5sZW5ndGggPj0gMlxuLy8gfVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nQmxvY2sgPSAoeyBtZXNzYWdlSWQsIHRyYWNlIH06IFJlYXNvbmluZ0Jsb2NrUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgbGl2ZVRyYWNlID0gdXNlUmVhc29uaW5nVHJhY2UobWVzc2FnZUlkKVxuICAvLyBFc3RlIGJsb3F1ZSByZWVtcGxhemEgYWwgdGltZWxpbmUgZW4gdml2byBjdWFuZG8gZWwgdHVybm8gY2llcnJhOiBzaSBoYXlcbiAgLy8gc25hcHNob3QgcHJvcGlvIHlhIHRlcm1pbmFkbywgbW9udGEgZXhwYW5kaWRvIHkgc2UgcGxpZWdhIHNvbG8sIGFzw60gc2UgdmVcbiAgLy8gZWwgdHJhc3Bhc28uIExvcyBtZW5zYWplcyBkZWwgaGlzdMOzcmljbyBubyB0aWVuZW4gc25hcHNob3QgPT4gY29sYXBzYWRvcy5cbiAgY29uc3QgdG9va092ZXJGcm9tTGl2ZSA9IHVzZVJlZihsaXZlVHJhY2UucGhhc2UgPT09ICdkb25lJyAmJiBsaXZlVHJhY2Uuc3RlcHMubGVuZ3RoID4gMClcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUodG9va092ZXJGcm9tTGl2ZS5jdXJyZW50KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0b29rT3ZlckZyb21MaXZlLmN1cnJlbnQpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBzZXRJc0V4cGFuZGVkKGZhbHNlKSwgQVVUT19DT0xMQVBTRV9ERUxBWV9NUylcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxpdmVTdGVwcyA9IGxpdmVUcmFjZS5zdGVwc1xuICBjb25zdCBlZmZlY3RpdmVTdW1tYXJ5ID1cbiAgICBsaXZlVHJhY2Uuc3VtbWFyeSA/PyB0cmFjZT8uc3VtbWFyeSA/PyAobGl2ZVN0ZXBzLmxlbmd0aCA/IGRlcml2ZVJlYXNvbmluZ1N1bW1hcnkobGl2ZVN0ZXBzKSA6IG51bGwpXG5cbiAgY29uc3QgZXhwYW5kZWRTdGVwcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGxpdmVTdGVwcy5sZW5ndGggPiAwID8gbGl2ZVN0ZXBzIDogKHRyYWNlPy5zdGVwcyA/PyBbXSkpLmZpbHRlcihpc1Zpc2libGVTdGVwKSxcbiAgICBbbGl2ZVN0ZXBzLCB0cmFjZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHNldElzRXhwYW5kZWQoY3VycmVudCA9PiAhY3VycmVudCksIFtdKVxuXG4gIGlmICghZXhwYW5kZWRTdGVwcy5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgY29uc3QgYWN0aW9uQ291bnQgPSBkZXJpdmVSZWFzb25pbmdTdW1tYXJ5KGV4cGFuZGVkU3RlcHMpLnRvb2xDb3VudFxuICBjb25zdCBkdXJhdGlvbkxhYmVsID1cbiAgICBlZmZlY3RpdmVTdW1tYXJ5Py5kdXJhdGlvbk1zICE9PSB1bmRlZmluZWRcbiAgICAgID8gZm9ybWF0QWN0aXZpdHlFbGFwc2VkKE1hdGgubWF4KDEsIE1hdGgucm91bmQoZWZmZWN0aXZlU3VtbWFyeS5kdXJhdGlvbk1zIC8gMTAwMCkpKVxuICAgICAgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8U0NSZWFzb25pbmdCbG9jaz5cbiAgICAgIDxTQ1N1bW1hcnlUb2dnbGVcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgYXJpYS1leHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgdGl0bGU9e2lzRXhwYW5kZWQgPyB0KCdjaGF0LnJlYXNvbmluZy5jb2xsYXBzZScpIDogdCgnY2hhdC5yZWFzb25pbmcuZXhwYW5kJyl9XG4gICAgICA+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHtkdXJhdGlvbkxhYmVsID8gdCgnY2hhdC5yZWFzb25pbmcudGhvdWdodEZvcicsIHsgZHVyYXRpb246IGR1cmF0aW9uTGFiZWwgfSkgOiB0KCdjaGF0LnJlYXNvbmluZy50aG91Z2h0Jyl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAge2FjdGlvbkNvdW50ID4gMCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXNlcGFyYXRvclwiIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICAtXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57dCgnY2hhdC5yZWFzb25pbmcuYWN0aW9uQ291bnQnLCB7IGNvdW50OiBhY3Rpb25Db3VudCB9KX08L3NwYW4+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLWNoZXZyb25cIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNvbG9yPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCIxOHB4XCIgaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvU0NTdW1tYXJ5VG9nZ2xlPlxuXG4gICAgICA8U0NUcmFjZUNvbGxhcHNlICRpc09wZW49e2lzRXhwYW5kZWR9IGFyaWEtaGlkZGVuPXshaXNFeHBhbmRlZH0+XG4gICAgICAgIDxTQ0V4cGFuZGVkVHJhY2UgJGlzT3Blbj17aXNFeHBhbmRlZH0+XG4gICAgICAgICAgPFN0ZXBMaXN0IHN0ZXBzPXtleHBhbmRlZFN0ZXBzfSB0PXt0fSAvPlxuICAgICAgICAgIHtlZmZlY3RpdmVTdW1tYXJ5Py50cnVuY2F0ZWQgJiYgPFNDVHJhY2VOb3RlPnt0KCdjaGF0LnJlYXNvbmluZy50cnVuY2F0ZWQnKX08L1NDVHJhY2VOb3RlPn1cbiAgICAgICAgPC9TQ0V4cGFuZGVkVHJhY2U+XG4gICAgICA8L1NDVHJhY2VDb2xsYXBzZT5cbiAgICA8L1NDUmVhc29uaW5nQmxvY2s+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNoRixTQUFTQyxZQUFZLFFBQVEsK0NBQStDO0FBRTVFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsaUJBQWlCLFFBQVEsa0NBQWtDO0FBQ3BFLFNBQVNDLHFCQUFxQixRQUFRLHdEQUF3RDtBQUM5RixTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFFeEUsU0FBU0MsYUFBYSxFQUFFQyxRQUFRLFFBQVEsa0JBQWtCO0FBQzFELFNBQ0VDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsV0FBVyxRQUNOLHlCQUF5Qjs7QUFFaEM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUNBLElBQU1DLHNCQUFzQixHQUFHLEdBQUc7QUFPbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUFDLElBQUEsRUFBa0Q7RUFBQSxJQUFBQyxLQUFBLEVBQUFDLGtCQUFBO0VBQUEsSUFBNUNDLFNBQVMsR0FBQUgsSUFBQSxDQUFURyxTQUFTO0lBQUVD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VSxHQUFHVixDQUFDLENBQUMseUJBQXlCLENBQUMsR0FBR0EsQ0FBQyxDQUFDLHVCQUF1QixDQUFFO01BQUErQixRQUFBLGdCQUU5RTVDLElBQUE7UUFBQTRDLFFBQUEsRUFDR0wsYUFBYSxHQUFHMUIsQ0FBQyxDQUFDLDJCQUEyQixFQUFFO1VBQUVtQyxRQUFRLEVBQUVUO1FBQWMsQ0FBQyxDQUFDLEdBQUcxQixDQUFDLENBQUMsd0JBQXdCO01BQUMsQ0FDdEcsQ0FBQyxFQUNOd0IsV0FBVyxHQUFHLENBQUMsaUJBQ2RqQyxLQUFBLENBQUFGLFNBQUE7UUFBQTBDLFFBQUEsZ0JBQ0U1QyxJQUFBO1VBQU1pRCxTQUFTLEVBQUMsMEJBQTBCO1VBQUMsbUJBQVc7VUFBQUwsUUFBQSxFQUFDO1FBRXZELENBQU0sQ0FBQyxlQUNQNUMsSUFBQTtVQUFBNEMsUUFBQSxFQUFPL0IsQ0FBQyxDQUFDLDRCQUE0QixFQUFFO1lBQUVxQyxLQUFLLEVBQUViO1VBQVksQ0FBQztRQUFDLENBQU8sQ0FBQztNQUFBLENBQ3RFLENBQ0gsZUFDRHJDLElBQUE7UUFBTWlELFNBQVMsRUFBQyx3QkFBd0I7UUFBQyxtQkFBVztRQUFBTCxRQUFBLGVBQ2xENUMsSUFBQSxDQUFDYixZQUFZO1VBQUNnRSxLQUFLLEVBQUMsY0FBYztVQUFDQyxLQUFLLEVBQUMsTUFBTTtVQUFDQyxNQUFNLEVBQUM7UUFBTSxDQUFFO01BQUMsQ0FDNUQsQ0FBQztJQUFBLENBQ1EsQ0FBQyxlQUVsQnJELElBQUEsQ0FBQ0gsZUFBZTtNQUFDeUQsT0FBTyxFQUFFL0IsVUFBVztNQUFDLGVBQWEsQ0FBQ0EsVUFBVztNQUFBcUIsUUFBQSxlQUM3RHhDLEtBQUEsQ0FBQ1YsZUFBZTtRQUFDNEQsT0FBTyxFQUFFL0IsVUFBVztRQUFBcUIsUUFBQSxnQkFDbkM1QyxJQUFBLENBQUNQLFFBQVE7VUFBQ3dCLEtBQUssRUFBRWdCLGFBQWM7VUFBQ3BCLENBQUMsRUFBRUE7UUFBRSxDQUFFLENBQUMsRUFDdkMsQ0FBQWtCLGdCQUFnQixhQUFoQkEsZ0JBQWdCLHVCQUFoQkEsZ0JBQWdCLENBQUV3QixTQUFTLGtCQUFJdkQsSUFBQSxDQUFDRixXQUFXO1VBQUE4QyxRQUFBLEVBQUUvQixDQUFDLENBQUMsMEJBQTBCO1FBQUMsQ0FBYyxDQUFDO01BQUEsQ0FDM0U7SUFBQyxDQUNILENBQUM7RUFBQSxDQUNGLENBQUM7QUFFdkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,197 @@
1
+ import styled, { css, keyframes } from 'styled-components';
2
+ import colors from '@projectcor/theme/lib/base/colors';
3
+ export var LIVE_VIEWPORT_MAX_HEIGHT = 72;
4
+ var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
5
+ var fadeIn = keyframes(["from{opacity:0;transform:translateY(-2px);}to{opacity:1;transform:none;}"]);
6
+ var stepReplace = keyframes(["from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}"]);
7
+
8
+ /* Halo del paso en curso: lo distingue de los ya cerrados sin cambiar su tamaño. */
9
+ var markerPulse = keyframes(["0%{box-shadow:0 0 0 0 rgba(32,32,32,0.28);}70%{box-shadow:0 0 0 5px rgba(32,32,32,0);}100%{box-shadow:0 0 0 0 rgba(32,32,32,0);}"]);
10
+
11
+ /** Gutter donde viven el marcador y la línea que une los pasos. */
12
+ var MARKER_SIZE = 7;
13
+ var GUTTER_WIDTH = 22;
14
+ var MARKER_PADDING_Y = 4;
15
+ /* Centra el marcador con la primera línea de texto (16px * 1.5 = 24px) + padding vertical. */
16
+ var MARKER_TOP = MARKER_PADDING_Y + (24 - MARKER_SIZE) / 2;
17
+ /** Centra el rail de 1px con el círculo de 7px. */
18
+ var MARKER_RAIL_LEFT = (MARKER_SIZE - 1) / 2;
19
+ /** Separación entre el rail y el borde del círculo. */
20
+ var RAIL_GAP = 4;
21
+ var MARKER_RAIL_TOP_END = MARKER_TOP - RAIL_GAP;
22
+ var MARKER_RAIL_BOTTOM_START = MARKER_TOP + MARKER_SIZE + RAIL_GAP;
23
+ var railBeforeBottom = function railBeforeBottom(railThrough, railTop) {
24
+ if (railThrough) return '0';
25
+ if (railTop) return "calc(100% - ".concat(MARKER_RAIL_TOP_END, "px)");
26
+ return '0';
27
+ };
28
+ var stepRowPaddingBottom = function stepRowPaddingBottom(hasMarker, connectBelow) {
29
+ if (hasMarker) return "".concat(MARKER_PADDING_Y, "px");
30
+ return connectBelow ? '12px' : '0';
31
+ };
32
+ var railBeforeDisplay = function railBeforeDisplay(showChrome, railThrough, railTop) {
33
+ return showChrome && (railThrough || railTop) ? 'block' : 'none';
34
+ };
35
+ var railAfterDisplay = function railAfterDisplay(showChrome, railBottom) {
36
+ return showChrome && railBottom ? 'block' : 'none';
37
+ };
38
+ var railSegmentStyle = "\n position: absolute;\n left: ".concat(MARKER_RAIL_LEFT, "px;\n width: 1px;\n z-index: 0;\n background: ").concat(colors.text.mediumGray, ";\n opacity: 0.25;\n");
39
+
40
+ /** El paso activo va a color pleno; los cerrados quedan atenuados. */
41
+ var markerColor = function markerColor(status, isActive) {
42
+ if (status === 'error') return colors.error.main;
43
+ if (isActive) return colors.text.primary;
44
+ return colors.text.mediumGray;
45
+ };
46
+ export var SCReasoningBlock = styled.div.withConfig({
47
+ displayName: "ReasoningBlockstyles__SCReasoningBlock",
48
+ componentId: "sc-y2psdb-0"
49
+ })(["width:100%;max-width:640px;display:flex;flex-direction:column;"]);
50
+ export var SCLiveStep = styled.div.withConfig({
51
+ displayName: "ReasoningBlockstyles__SCLiveStep",
52
+ componentId: "sc-y2psdb-1"
53
+ })(["width:100%;max-height:", "px;overflow:hidden;animation:", " 0.22s ease-out;"], LIVE_VIEWPORT_MAX_HEIGHT, stepReplace);
54
+
55
+ /* Timeline en vivo: los pasos se apilan en vez de reemplazarse. */
56
+ export var SCReasoningTimeline = styled.div.withConfig({
57
+ displayName: "ReasoningBlockstyles__SCReasoningTimeline",
58
+ componentId: "sc-y2psdb-2"
59
+ })(["width:100%;max-width:640px;display:flex;flex-direction:column;"]);
60
+ var stepReplaceAnim = css(["animation:", " 0.24s ease-out both;"], stepReplace);
61
+
62
+ /* Cada fila entra sola cuando llega su paso: sin delay escalonado (no es un listado que monta junto). */
63
+ export var SCTimelineRow = styled.div.withConfig({
64
+ displayName: "ReasoningBlockstyles__SCTimelineRow",
65
+ componentId: "sc-y2psdb-3"
66
+ })(["", ""], function (_ref) {
67
+ var $seamless = _ref.$seamless;
68
+ return $seamless ? css([""]) : stepReplaceAnim;
69
+ });
70
+
71
+ /* Va debajo del cuerpo del mensaje: separa del texto y no deja aire sobrante abajo. */
72
+ export var SCTimelineIndicator = styled.div.withConfig({
73
+ displayName: "ReasoningBlockstyles__SCTimelineIndicator",
74
+ componentId: "sc-y2psdb-4"
75
+ })(["padding-top:6px;animation:", " 0.24s ease-out both;> *{padding-bottom:0;}"], stepReplace);
76
+
77
+ /** Respuesta final en stream: sin gutter de la traza, debajo del razonamiento. */
78
+ export var SCFinalAnswerBody = styled.div.withConfig({
79
+ displayName: "ReasoningBlockstyles__SCFinalAnswerBody",
80
+ componentId: "sc-y2psdb-5"
81
+ })(["width:100%;max-width:640px;"]);
82
+
83
+ /* El markdown lo resuelve MaiaStreamdown (mismo variant que el cuerpo del mensaje). */
84
+ export var SCThinkingText = styled.div.withConfig({
85
+ displayName: "ReasoningBlockstyles__SCThinkingText",
86
+ componentId: "sc-y2psdb-6"
87
+ })(["overflow-wrap:anywhere;opacity:", ";font-style:", ";"], function (_ref2) {
88
+ var $muted = _ref2.$muted;
89
+ return $muted ? 0.6 : 1;
90
+ }, function (_ref3) {
91
+ var $muted = _ref3.$muted;
92
+ return $muted ? 'italic' : 'normal';
93
+ });
94
+
95
+ /**
96
+ * Fila de la traza. Solo los pasos de acción (tool/handoff) llevan círculo; las
97
+ * narraciones comparten el gutter para que la línea las atraviese. El rail deja
98
+ * 4px de separación antes de cada círculo.
99
+ */
100
+ export var SCStepRow = styled.div.withConfig({
101
+ displayName: "ReasoningBlockstyles__SCStepRow",
102
+ componentId: "sc-y2psdb-7"
103
+ })(["position:relative;padding-left:", ";padding-top:", ";padding-bottom:", ";&::before{content:'';display:", ";", " top:0;bottom:", ";}&::after{content:'';display:", ";", " top:", "px;bottom:0;}.ReasoningBlock-marker{display:", ";position:absolute;left:0;top:", "px;z-index:1;width:", "px;height:", "px;border-radius:50%;background:", ";opacity:", ";animation:", " 1.6s ease-out infinite;}"], function (_ref4) {
104
+ var $showChrome = _ref4.$showChrome;
105
+ return $showChrome ? "".concat(GUTTER_WIDTH, "px") : '0';
106
+ }, function (_ref5) {
107
+ var $hasMarker = _ref5.$hasMarker;
108
+ return $hasMarker ? "".concat(MARKER_PADDING_Y, "px") : '0';
109
+ }, function (_ref6) {
110
+ var $hasMarker = _ref6.$hasMarker,
111
+ $connectBelow = _ref6.$connectBelow;
112
+ return stepRowPaddingBottom($hasMarker, $connectBelow);
113
+ }, function (_ref7) {
114
+ var $showChrome = _ref7.$showChrome,
115
+ $railThrough = _ref7.$railThrough,
116
+ $railTop = _ref7.$railTop;
117
+ return railBeforeDisplay($showChrome, $railThrough, $railTop);
118
+ }, railSegmentStyle, function (_ref8) {
119
+ var $railThrough = _ref8.$railThrough,
120
+ $railTop = _ref8.$railTop;
121
+ return railBeforeBottom($railThrough, $railTop);
122
+ }, function (_ref9) {
123
+ var $showChrome = _ref9.$showChrome,
124
+ $railBottom = _ref9.$railBottom;
125
+ return railAfterDisplay($showChrome, $railBottom);
126
+ }, railSegmentStyle, MARKER_RAIL_BOTTOM_START, function (_ref0) {
127
+ var $showChrome = _ref0.$showChrome;
128
+ return $showChrome ? 'block' : 'none';
129
+ }, MARKER_TOP, MARKER_SIZE, MARKER_SIZE, function (_ref1) {
130
+ var $status = _ref1.$status,
131
+ $isActive = _ref1.$isActive;
132
+ return markerColor($status, $isActive);
133
+ }, function (_ref10) {
134
+ var $isActive = _ref10.$isActive;
135
+ return $isActive ? 1 : 0.45;
136
+ }, function (_ref11) {
137
+ var $isActive = _ref11.$isActive;
138
+ return $isActive ? markerPulse : 'none';
139
+ });
140
+ export var SCParallelContent = styled.div.withConfig({
141
+ displayName: "ReasoningBlockstyles__SCParallelContent",
142
+ componentId: "sc-y2psdb-8"
143
+ })(["display:flex;flex-direction:column;min-width:0;"]);
144
+ export var SCToolStep = styled.div.withConfig({
145
+ displayName: "ReasoningBlockstyles__SCToolStep",
146
+ componentId: "sc-y2psdb-9"
147
+ })(["display:flex;align-items:baseline;gap:6px;font-size:16px;line-height:150%;color:#202020;.ReasoningBlock-toolLabel{flex-shrink:0;white-space:nowrap;color:", ";}.ReasoningBlock-toolPreview{flex:1;min-width:0;opacity:0.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}"], function (_ref12) {
148
+ var $status = _ref12.$status;
149
+ return $status === 'error' ? colors.error.main : colors.text.primary;
150
+ });
151
+ export var SCParallelCount = styled.span.withConfig({
152
+ displayName: "ReasoningBlockstyles__SCParallelCount",
153
+ componentId: "sc-y2psdb-10"
154
+ })(["flex-shrink:0;font-size:14px;line-height:150%;color:#808080;"]);
155
+ export var SCParallelDetail = styled.div.withConfig({
156
+ displayName: "ReasoningBlockstyles__SCParallelDetail",
157
+ componentId: "sc-y2psdb-11"
158
+ })(["margin-top:2px;font-size:13px;line-height:150%;color:#808080;overflow-wrap:anywhere;"]);
159
+ export var SCSummaryToggle = styled.button.withConfig({
160
+ displayName: "ReasoningBlockstyles__SCSummaryToggle",
161
+ componentId: "sc-y2psdb-12"
162
+ })(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:400;line-height:26px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform 200ms ease;}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main);
163
+
164
+ /* height: auto <-> 0 sin medir el contenido: el track de grid interpola entre 0fr y 1fr. */
165
+ export var SCTraceCollapse = styled.div.withConfig({
166
+ displayName: "ReasoningBlockstyles__SCTraceCollapse",
167
+ componentId: "sc-y2psdb-13"
168
+ })(["display:grid;grid-template-rows:", ";transition:grid-template-rows 240ms cubic-bezier(0.2,0,0,1);> *{min-height:0;overflow:hidden;}"], function (_ref13) {
169
+ var $isOpen = _ref13.$isOpen;
170
+ return $isOpen ? '1fr' : '0fr';
171
+ });
172
+ export var SCExpandedTrace = styled.div.withConfig({
173
+ displayName: "ReasoningBlockstyles__SCExpandedTrace",
174
+ componentId: "sc-y2psdb-14"
175
+ })(["display:flex;flex-direction:column;opacity:", ";padding-bottom:", ";transform:translateY(", ");transition:opacity 140ms ease-out,transform 140ms ease-out,padding 240ms cubic-bezier(0.2,0,0,1);"], function (_ref14) {
176
+ var $isOpen = _ref14.$isOpen;
177
+ return $isOpen ? 1 : 0;
178
+ }, function (_ref15) {
179
+ var $isOpen = _ref15.$isOpen;
180
+ return $isOpen ? '16px' : '0';
181
+ }, function (_ref16) {
182
+ var $isOpen = _ref16.$isOpen;
183
+ return $isOpen ? '0' : '-4px';
184
+ });
185
+ export var SCTraceNote = styled.p.withConfig({
186
+ displayName: "ReasoningBlockstyles__SCTraceNote",
187
+ componentId: "sc-y2psdb-15"
188
+ })(["margin:8px 0 0;font-size:11px;font-style:italic;color:", ";opacity:0.75;"], colors.text.mediumGray);
189
+ export var SCLoadingLine = styled.div.withConfig({
190
+ displayName: "ReasoningBlockstyles__SCLoadingLine",
191
+ componentId: "sc-y2psdb-16"
192
+ })(["height:10px;width:60%;border-radius:6px;background:linear-gradient(90deg,rgba(0,0,0,0.04) 0%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 100%);background-size:200% 100%;animation:", " 1.8s ease-in-out infinite;"], shimmer);
193
+ export var SCErrorRow = styled.div.withConfig({
194
+ displayName: "ReasoningBlockstyles__SCErrorRow",
195
+ componentId: "sc-y2psdb-17"
196
+ })(["display:flex;align-items:center;gap:8px;font-size:12px;color:", ";button{border:none;background:none;padding:0;cursor:pointer;font-size:12px;text-decoration:underline;color:", ";}"], colors.text.mediumGray, colors.text.primary);
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQiLCJzaGltbWVyIiwiZmFkZUluIiwic3RlcFJlcGxhY2UiLCJtYXJrZXJQdWxzZSIsIk1BUktFUl9TSVpFIiwiR1VUVEVSX1dJRFRIIiwiTUFSS0VSX1BBRERJTkdfWSIsIk1BUktFUl9UT1AiLCJNQVJLRVJfUkFJTF9MRUZUIiwiUkFJTF9HQVAiLCJNQVJLRVJfUkFJTF9UT1BfRU5EIiwiTUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUIiwicmFpbEJlZm9yZUJvdHRvbSIsInJhaWxUaHJvdWdoIiwicmFpbFRvcCIsImNvbmNhdCIsInN0ZXBSb3dQYWRkaW5nQm90dG9tIiwiaGFzTWFya2VyIiwiY29ubmVjdEJlbG93IiwicmFpbEJlZm9yZURpc3BsYXkiLCJzaG93Q2hyb21lIiwicmFpbEFmdGVyRGlzcGxheSIsInJhaWxCb3R0b20iLCJyYWlsU2VnbWVudFN0eWxlIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJtYXJrZXJDb2xvciIsInN0YXR1cyIsImlzQWN0aXZlIiwiZXJyb3IiLCJtYWluIiwicHJpbWFyeSIsIlNDUmVhc29uaW5nQmxvY2siLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTGl2ZVN0ZXAiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwic3RlcFJlcGxhY2VBbmltIiwiU0NUaW1lbGluZVJvdyIsIl9yZWYiLCIkc2VhbWxlc3MiLCJTQ1RpbWVsaW5lSW5kaWNhdG9yIiwiU0NGaW5hbEFuc3dlckJvZHkiLCJTQ1RoaW5raW5nVGV4dCIsIl9yZWYyIiwiJG11dGVkIiwiX3JlZjMiLCJTQ1N0ZXBSb3ciLCJfcmVmNCIsIiRzaG93Q2hyb21lIiwiX3JlZjUiLCIkaGFzTWFya2VyIiwiX3JlZjYiLCIkY29ubmVjdEJlbG93IiwiX3JlZjciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIl9yZWY4IiwiX3JlZjkiLCIkcmFpbEJvdHRvbSIsIl9yZWYwIiwiX3JlZjEiLCIkc3RhdHVzIiwiJGlzQWN0aXZlIiwiX3JlZjEwIiwiX3JlZjExIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjEyIiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTMiLCIkaXNPcGVuIiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE0IiwiX3JlZjE1IiwiX3JlZjE2IiwiU0NUcmFjZU5vdGUiLCJwIiwiU0NMb2FkaW5nTGluZSIsIlNDRXJyb3JSb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdCbG9jay5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQgPSA3MlxuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuYFxuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuY29uc3Qgc3RlcFJlcGxhY2UgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG4vKiBIYWxvIGRlbCBwYXNvIGVuIGN1cnNvOiBsbyBkaXN0aW5ndWUgZGUgbG9zIHlhIGNlcnJhZG9zIHNpbiBjYW1iaWFyIHN1IHRhbWHDsW8uICovXG5jb25zdCBtYXJrZXJQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMzIsIDMyLCAzMiwgMC4yOCk7IH1cbiAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsIDMyLCAzMiwgMCk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuYFxuXG4vKiogR3V0dGVyIGRvbmRlIHZpdmVuIGVsIG1hcmNhZG9yIHkgbGEgbMOtbmVhIHF1ZSB1bmUgbG9zIHBhc29zLiAqL1xuY29uc3QgTUFSS0VSX1NJWkUgPSA3XG5jb25zdCBHVVRURVJfV0lEVEggPSAyMlxuY29uc3QgTUFSS0VSX1BBRERJTkdfWSA9IDRcbi8qIENlbnRyYSBlbCBtYXJjYWRvciBjb24gbGEgcHJpbWVyYSBsw61uZWEgZGUgdGV4dG8gKDE2cHggKiAxLjUgPSAyNHB4KSArIHBhZGRpbmcgdmVydGljYWwuICovXG5jb25zdCBNQVJLRVJfVE9QID0gTUFSS0VSX1BBRERJTkdfWSArICgyNCAtIE1BUktFUl9TSVpFKSAvIDJcbi8qKiBDZW50cmEgZWwgcmFpbCBkZSAxcHggY29uIGVsIGPDrXJjdWxvIGRlIDdweC4gKi9cbmNvbnN0IE1BUktFUl9SQUlMX0xFRlQgPSAoTUFSS0VSX1NJWkUgLSAxKSAvIDJcbi8qKiBTZXBhcmFjacOzbiBlbnRyZSBlbCByYWlsIHkgZWwgYm9yZGUgZGVsIGPDrXJjdWxvLiAqL1xuY29uc3QgUkFJTF9HQVAgPSA0XG5jb25zdCBNQVJLRVJfUkFJTF9UT1BfRU5EID0gTUFSS0VSX1RPUCAtIFJBSUxfR0FQXG5jb25zdCBNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQgPSBNQVJLRVJfVE9QICsgTUFSS0VSX1NJWkUgKyBSQUlMX0dBUFxuXG5jb25zdCByYWlsQmVmb3JlQm90dG9tID0gKHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAocmFpbFRocm91Z2gpIHJldHVybiAnMCdcbiAgaWYgKHJhaWxUb3ApIHJldHVybiBgY2FsYygxMDAlIC0gJHtNQVJLRVJfUkFJTF9UT1BfRU5EfXB4KWBcbiAgcmV0dXJuICcwJ1xufVxuXG5jb25zdCBzdGVwUm93UGFkZGluZ0JvdHRvbSA9IChoYXNNYXJrZXI/OiBib29sZWFuLCBjb25uZWN0QmVsb3c/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGhhc01hcmtlcikgcmV0dXJuIGAke01BUktFUl9QQURESU5HX1l9cHhgXG4gIHJldHVybiBjb25uZWN0QmVsb3cgPyAnMTJweCcgOiAnMCdcbn1cblxuY29uc3QgcmFpbEJlZm9yZURpc3BsYXkgPSAoc2hvd0Nocm9tZT86IGJvb2xlYW4sIHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgc2hvd0Nocm9tZSAmJiAocmFpbFRocm91Z2ggfHwgcmFpbFRvcCkgPyAnYmxvY2snIDogJ25vbmUnXG5cbmNvbnN0IHJhaWxBZnRlckRpc3BsYXkgPSAoc2hvd0Nocm9tZT86IGJvb2xlYW4sIHJhaWxCb3R0b20/OiBib29sZWFuKTogc3RyaW5nID0+XG4gIHNob3dDaHJvbWUgJiYgcmFpbEJvdHRvbSA/ICdibG9jaycgOiAnbm9uZSdcblxuY29uc3QgcmFpbFNlZ21lbnRTdHlsZSA9IGBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAke01BUktFUl9SQUlMX0xFRlR9cHg7XG4gIHdpZHRoOiAxcHg7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gIG9wYWNpdHk6IDAuMjU7XG5gXG5cbi8qKiBFbCBwYXNvIGFjdGl2byB2YSBhIGNvbG9yIHBsZW5vOyBsb3MgY2VycmFkb3MgcXVlZGFuIGF0ZW51YWRvcy4gKi9cbmNvbnN0IG1hcmtlckNvbG9yID0gKHN0YXR1cz86IHN0cmluZywgaXNBY3RpdmU/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKHN0YXR1cyA9PT0gJ2Vycm9yJykgcmV0dXJuIGNvbG9ycy5lcnJvci5tYWluXG4gIGlmIChpc0FjdGl2ZSkgcmV0dXJuIGNvbG9ycy50ZXh0LnByaW1hcnlcbiAgcmV0dXJuIGNvbG9ycy50ZXh0Lm1lZGl1bUdyYXlcbn1cblxuZXhwb3J0IGNvbnN0IFNDUmVhc29uaW5nQmxvY2sgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogU2luIGdhcDogZWwgZXNwYWNpbyBoYWNpYSBlbCBkZXRhbGxlIHZpdmUgZW4gc3UgcGFkZGluZy10b3AsIGFzw60gY29sYXBzYSBqdW50byBjb24gw6lsLiAqL1xuYFxuXG5leHBvcnQgY29uc3QgU0NMaXZlU3RlcCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAke0xJVkVfVklFV1BPUlRfTUFYX0hFSUdIVH1weDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjIycyBlYXNlLW91dDtcbmBcblxuLyogVGltZWxpbmUgZW4gdml2bzogbG9zIHBhc29zIHNlIGFwaWxhbiBlbiB2ZXogZGUgcmVlbXBsYXphcnNlLiAqL1xuZXhwb3J0IGNvbnN0IFNDUmVhc29uaW5nVGltZWxpbmUgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmBcblxuY29uc3Qgc3RlcFJlcGxhY2VBbmltID0gY3NzYFxuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjRzIGVhc2Utb3V0IGJvdGg7XG5gXG5cbi8qIENhZGEgZmlsYSBlbnRyYSBzb2xhIGN1YW5kbyBsbGVnYSBzdSBwYXNvOiBzaW4gZGVsYXkgZXNjYWxvbmFkbyAobm8gZXMgdW4gbGlzdGFkbyBxdWUgbW9udGEganVudG8pLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGltZWxpbmVSb3cgPSBzdHlsZWQuZGl2PHsgJHNlYW1sZXNzPzogYm9vbGVhbiB9PmBcbiAgJHsoeyAkc2VhbWxlc3MgfSkgPT4gKCRzZWFtbGVzcyA/IGNzc2BgIDogc3RlcFJlcGxhY2VBbmltKX1cbmBcblxuLyogVmEgZGViYWpvIGRlbCBjdWVycG8gZGVsIG1lbnNhamU6IHNlcGFyYSBkZWwgdGV4dG8geSBubyBkZWphIGFpcmUgc29icmFudGUgYWJham8uICovXG5leHBvcnQgY29uc3QgU0NUaW1lbGluZUluZGljYXRvciA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yNHMgZWFzZS1vdXQgYm90aDtcblxuICA+ICoge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5gXG5cbi8qKiBSZXNwdWVzdGEgZmluYWwgZW4gc3RyZWFtOiBzaW4gZ3V0dGVyIGRlIGxhIHRyYXphLCBkZWJham8gZGVsIHJhem9uYW1pZW50by4gKi9cbmV4cG9ydCBjb25zdCBTQ0ZpbmFsQW5zd2VyQm9keSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuYFxuXG4vKiBFbCBtYXJrZG93biBsbyByZXN1ZWx2ZSBNYWlhU3RyZWFtZG93biAobWlzbW8gdmFyaWFudCBxdWUgZWwgY3VlcnBvIGRlbCBtZW5zYWplKS4gKi9cbmV4cG9ydCBjb25zdCBTQ1RoaW5raW5nVGV4dCA9IHN0eWxlZC5kaXY8eyAkbXV0ZWQ/OiBib29sZWFuIH0+YFxuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgLyogRWwgdGhpbmtpbmcgKHJhem9uYW1pZW50byBjcnVkbykgdmEgYXRlbnVhZG8gcGFyYSBkaXN0aW5ndWlybG8gZGUgbGEgbmFycmFjacOzbi4gKi9cbiAgb3BhY2l0eTogJHsoeyAkbXV0ZWQgfSkgPT4gKCRtdXRlZCA/IDAuNiA6IDEpfTtcbiAgZm9udC1zdHlsZTogJHsoeyAkbXV0ZWQgfSkgPT4gKCRtdXRlZCA/ICdpdGFsaWMnIDogJ25vcm1hbCcpfTtcbmBcblxuLyoqXG4gKiBGaWxhIGRlIGxhIHRyYXphLiBTb2xvIGxvcyBwYXNvcyBkZSBhY2Npw7NuICh0b29sL2hhbmRvZmYpIGxsZXZhbiBjw61yY3VsbzsgbGFzXG4gKiBuYXJyYWNpb25lcyBjb21wYXJ0ZW4gZWwgZ3V0dGVyIHBhcmEgcXVlIGxhIGzDrW5lYSBsYXMgYXRyYXZpZXNlLiBFbCByYWlsIGRlamFcbiAqIDRweCBkZSBzZXBhcmFjacOzbiBhbnRlcyBkZSBjYWRhIGPDrXJjdWxvLlxuICovXG5leHBvcnQgY29uc3QgU0NTdGVwUm93ID0gc3R5bGVkLmRpdjx7XG4gICRzdGF0dXM/OiBzdHJpbmdcbiAgJGhhc01hcmtlcj86IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgJGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgJGlzQWN0aXZlPzogYm9vbGVhblxuICAkc2hvd0Nocm9tZT86IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoPzogYm9vbGVhblxuICAkcmFpbFRvcD86IGJvb2xlYW5cbiAgJHJhaWxCb3R0b20/OiBib29sZWFuXG59PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gYCR7R1VUVEVSX1dJRFRIfXB4YCA6ICcwJyl9O1xuICBwYWRkaW5nLXRvcDogJHsoeyAkaGFzTWFya2VyIH0pID0+ICgkaGFzTWFya2VyID8gYCR7TUFSS0VSX1BBRERJTkdfWX1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyB9KSA9PiBzdGVwUm93UGFkZGluZ0JvdHRvbSgkaGFzTWFya2VyLCAkY29ubmVjdEJlbG93KX07XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wIH0pID0+IHJhaWxCZWZvcmVEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gICAgJHtyYWlsU2VnbWVudFN0eWxlfVxuICAgIHRvcDogMDtcbiAgICBib3R0b206ICR7KHsgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlQm90dG9tKCRyYWlsVGhyb3VnaCwgJHJhaWxUb3ApfTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSB9KSA9PiByYWlsQWZ0ZXJEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6ICR7TUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUfXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1tYXJrZXIge1xuICAgIGRpc3BsYXk6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogJHtNQVJLRVJfVE9QfXB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6ICR7TUFSS0VSX1NJWkV9cHg7XG4gICAgaGVpZ2h0OiAke01BUktFUl9TSVpFfXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7ICRzdGF0dXMsICRpc0FjdGl2ZSB9KSA9PiBtYXJrZXJDb2xvcigkc3RhdHVzLCAkaXNBY3RpdmUpfTtcbiAgICBvcGFjaXR5OiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gMSA6IDAuNDUpfTtcbiAgICBhbmltYXRpb246ICR7KHsgJGlzQWN0aXZlIH0pID0+ICgkaXNBY3RpdmUgPyBtYXJrZXJQdWxzZSA6ICdub25lJyl9IDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sU3RlcCA9IHN0eWxlZC5kaXY8eyAkc3RhdHVzPzogc3RyaW5nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzIwMjAyMDtcblxuICAuUmVhc29uaW5nQmxvY2stdG9vbExhYmVsIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAkeyh7ICRzdGF0dXMgfSkgPT4gKCRzdGF0dXMgPT09ICdlcnJvcicgPyBjb2xvcnMuZXJyb3IubWFpbiA6IGNvbG9ycy50ZXh0LnByaW1hcnkpfTtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay10b29sUHJldmlldyB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb3VudCA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsRGV0YWlsID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzgwODA4MDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1bW1hcnlUb2dnbGUgPSBzdHlsZWQuYnV0dG9uYFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICBjb2xvcjogIzgwODA4MDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZTtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC4yNHMgZWFzZS1vdXQ7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgJjpkaXNhYmxlZCAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7Y29sb3JzLnByaW1hcnkubWFpbn07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1jaGV2cm9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcbiAgfVxuXG4gIC8qIENvbGFwc2FkbyBhcHVudGEgYSBsYSBkZXJlY2hhIChvcmllbnRhY2nDs24gbmF0aXZhIGRlbCBpY29ubyk7IGV4cGFuZGlkbywgYXJyaWJhLiAqL1xuICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxuXG4gIC8qIEVsIGd1aW9uIGVzIHBhcnRlIGRlbCB0ZXh0byBlbiBlbCBtYXF1ZXRhZG8sIG5vIHVuIHNlcGFyYWRvciBhdGVudWFkby4gKi9cbmBcblxuLyogaGVpZ2h0OiBhdXRvIDwtPiAwIHNpbiBtZWRpciBlbCBjb250ZW5pZG86IGVsIHRyYWNrIGRlIGdyaWQgaW50ZXJwb2xhIGVudHJlIDBmciB5IDFmci4gKi9cbmV4cG9ydCBjb25zdCBTQ1RyYWNlQ29sbGFwc2UgPSBzdHlsZWQuZGl2PHsgJGlzT3BlbjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMWZyJyA6ICcwZnInKX07XG4gIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAyNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcblxuICA+ICoge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFeHBhbmRlZFRyYWNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9wYWNpdHk6ICR7KHsgJGlzT3BlbiB9KSA9PiAoJGlzT3BlbiA/IDEgOiAwKX07XG4gIHBhZGRpbmctYm90dG9tOiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMTZweCcgOiAnMCcpfTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7KHsgJGlzT3BlbiB9KSA9PiAoJGlzT3BlbiA/ICcwJyA6ICctNHB4Jyl9KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0LFxuICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlLW91dCxcbiAgICBwYWRkaW5nIDI0MG1zIGN1YmljLWJlemllcigwLjIsIDAsIDAsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUcmFjZU5vdGUgPSBzdHlsZWQucGBcbiAgbWFyZ2luOiA4cHggMCAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gIG9wYWNpdHk6IDAuNzU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xvYWRpbmdMaW5lID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMHB4O1xuICB3aWR0aDogNjAlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLCAwLCAwLCAwLjA0KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjA4KSA1MCUsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMTAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246ICR7c2hpbW1lcn0gMS44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRXJyb3JSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcblxuICBidXR0b24ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsRUFBRTtBQUUxQyxJQUFNQyxPQUFPLEdBQUdILFNBQVMsdUVBR3hCO0FBRUQsSUFBTUksTUFBTSxHQUFHSixTQUFTLDhFQUd2QjtBQUVELElBQU1LLFdBQVcsR0FBR0wsU0FBUyw2RUFHNUI7O0FBRUQ7QUFDQSxJQUFNTSxXQUFXLEdBQUdOLFNBQVMsc0lBSTVCOztBQUVEO0FBQ0EsSUFBTU8sV0FBVyxHQUFHLENBQUM7QUFDckIsSUFBTUMsWUFBWSxHQUFHLEVBQUU7QUFDdkIsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQztBQUMxQjtBQUNBLElBQU1DLFVBQVUsR0FBR0QsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLEdBQUdGLFdBQVcsSUFBSSxDQUFDO0FBQzVEO0FBQ0EsSUFBTUksZ0JBQWdCLEdBQUcsQ0FBQ0osV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQzlDO0FBQ0EsSUFBTUssUUFBUSxHQUFHLENBQUM7QUFDbEIsSUFBTUMsbUJBQW1CLEdBQUdILFVBQVUsR0FBR0UsUUFBUTtBQUNqRCxJQUFNRSx3QkFBd0IsR0FBR0osVUFBVSxHQUFHSCxXQUFXLEdB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