@projectcor/maia-components 2.11.100-8 → 2.11.100-9

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 (44) hide show
  1. package/lib/components/atoms/Chip/Chip.js +12 -5
  2. package/lib/components/atoms/Chip/styles.js +6 -6
  3. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +121 -28
  4. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +6 -2
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +12 -5
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +390 -270
  7. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +5 -8
  8. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  9. package/lib/components/atoms/MAIAInput/styles.js +102 -86
  10. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +54 -41
  11. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +25 -12
  12. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  13. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  14. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  15. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  16. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  17. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  18. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  19. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  20. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  21. package/lib/components/atoms/icons/index.js +10 -1
  22. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +18 -7
  23. package/lib/components/molecules/ChatAIHome/styles.js +54 -38
  24. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +11 -36
  25. package/lib/components/molecules/ChatAIMessages/newStyles.js +10 -26
  26. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1 -5
  27. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +1 -4
  28. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +1 -8
  29. package/lib/components/molecules/ChatFooter/ChatFooter.js +23 -62
  30. package/lib/components/molecules/Sidebar/Sidebar.js +14 -3
  31. package/lib/hooks/useMentionPopover.js +4 -2
  32. package/lib/lang/br/index.js +6 -3
  33. package/lib/lang/en/index.js +6 -3
  34. package/lib/lang/es/index.js +6 -3
  35. package/lib/lang/fr/index.js +8 -2
  36. package/lib/services/maia/Agents/getAgents.js +30 -54
  37. package/lib/services/maia/RecentContexts/getRecentContexts.js +3 -32
  38. package/lib/styles/config.js +2 -2
  39. package/package.json +1 -1
  40. package/lib/services/maia/bootstrap/agentsPrefetchSession.js +0 -97
  41. package/lib/services/maia/bootstrap/fetchAgentsList.js +0 -267
  42. package/lib/services/maia/bootstrap/prefetchMaiaAgents.js +0 -96
  43. package/lib/services/maia/bootstrap/prefetchMaiaRecentContexts.js +0 -56
  44. package/lib/services/maia/bootstrap/recentContextsPrefetchSession.js +0 -88
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /** Ícono de acciones rápidas (slash) del menú +. */
3
+ export var MaiaInputSlashIcon = function MaiaInputSlashIcon(_ref) {
4
+ var _ref$color = _ref.color,
5
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
6
+ _ref$width = _ref.width,
7
+ width = _ref$width === void 0 ? 20 : _ref$width,
8
+ _ref$height = _ref.height,
9
+ height = _ref$height === void 0 ? 20 : _ref$height,
10
+ _ref$className = _ref.className,
11
+ className = _ref$className === void 0 ? '' : _ref$className;
12
+ return /*#__PURE__*/_jsx("svg", {
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ width: width,
15
+ height: height,
16
+ viewBox: "0 0 20 20",
17
+ fill: "none",
18
+ className: className,
19
+ "aria-hidden": "true",
20
+ children: /*#__PURE__*/_jsx("path", {
21
+ stroke: color,
22
+ strokeLinecap: "round",
23
+ strokeLinejoin: "round",
24
+ strokeWidth: 1.33,
25
+ d: "M15.833 2.5H4.167c-.92 0-1.667.746-1.667 1.667v11.666c0 .92.746 1.667 1.667 1.667h11.666c.92 0 1.667-.746 1.667-1.667V4.167c0-.92-.746-1.667-1.667-1.667ZM7.5 12.5l5-5"
26
+ })
27
+ });
28
+ };
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYWlhSW5wdXRTbGFzaEljb24iLCJfcmVmIiwiX3JlZiRjb2xvciIsImNvbG9yIiwiX3JlZiR3aWR0aCIsIndpZHRoIiwiX3JlZiRoZWlnaHQiLCJoZWlnaHQiLCJfcmVmJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9qc3giLCJ4bWxucyIsInZpZXdCb3giLCJmaWxsIiwiY2hpbGRyZW4iLCJzdHJva2UiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJzdHJva2VXaWR0aCIsImQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9pY29ucy9NYWlhSW5wdXRTbGFzaEljb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgTWFpYUlucHV0U2xhc2hJY29uUHJvcHMgPSB7XG4gIGNvbG9yPzogc3RyaW5nXG4gIHdpZHRoPzogbnVtYmVyXG4gIGhlaWdodD86IG51bWJlclxuICBjbGFzc05hbWU/OiBzdHJpbmdcbn1cblxuLyoqIMONY29ubyBkZSBhY2Npb25lcyByw6FwaWRhcyAoc2xhc2gpIGRlbCBtZW7DuiArLiAqL1xuZXhwb3J0IGNvbnN0IE1haWFJbnB1dFNsYXNoSWNvbiA9ICh7XG4gIGNvbG9yID0gJ2N1cnJlbnRDb2xvcicsXG4gIHdpZHRoID0gMjAsXG4gIGhlaWdodCA9IDIwLFxuICBjbGFzc05hbWUgPSAnJyxcbn06IE1haWFJbnB1dFNsYXNoSWNvblByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD17d2lkdGh9XG4gICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZT17Y29sb3J9XG4gICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBzdHJva2VXaWR0aD17MS4zM31cbiAgICAgICAgZD1cIk0xNS44MzMgMi41SDQuMTY3Yy0uOTIgMC0xLjY2Ny43NDYtMS42NjcgMS42Njd2MTEuNjY2YzAgLjkyLjc0NiAxLjY2NyAxLjY2NyAxLjY2N2gxMS42NjZjLjkyIDAgMS42NjctLjc0NiAxLjY2Ny0xLjY2N1Y0LjE2N2MwLS45Mi0uNzQ2LTEuNjY3LTEuNjY3LTEuNjY3Wk03LjUgMTIuNWw1LTVcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBT0E7QUFDQSxPQUFPLElBQU1BLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUFDLElBQUEsRUFLQTtFQUFBLElBQUFDLFVBQUEsR0FBQUQsSUFBQSxDQUo3QkUsS0FBSztJQUFMQSxLQUFLLEdBQUFELFVBQUEsY0FBRyxjQUFjLEdBQUFBLFVBQUE7SUFBQUUsVUFBQSxHQUFBSCxJQUFBLENBQ3RCSSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsVUFBQSxjQUFHLEVBQUUsR0FBQUEsVUFBQTtJQUFBRSxXQUFBLEdBQUFMLElBQUEsQ0FDVk0sTUFBTTtJQUFOQSxNQUFNLEdBQUFELFdBQUEsY0FBRyxFQUFFLEdBQUFBLFdBQUE7SUFBQUUsY0FBQSxHQUFBUCxJQUFBLENBQ1hRLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxjQUFBLGNBQUcsRUFBRSxHQUFBQSxjQUFBO0VBRWQsb0JBQ0VFLElBQUE7SUFDRUMsS0FBSyxFQUFDLDRCQUE0QjtJQUNsQ04sS0FBSyxFQUFFQSxLQUFNO0lBQ2JFLE1BQU0sRUFBRUEsTUFBTztJQUNmSyxPQUFPLEVBQUMsV0FBVztJQUNuQkMsSUFBSSxFQUFDLE1BQU07SUFDWEosU0FBUyxFQUFFQSxTQUFVO0lBQ3JCLGVBQVksTUFBTTtJQUFBSyxRQUFBLGVBRWxCSixJQUFBO01BQ0VLLE1BQU0sRUFBRVosS0FBTTtNQUNkYSxhQUFhLEVBQUMsT0FBTztNQUNyQkMsY0FBYyxFQUFDLE9BQU87TUFDdEJDLFdBQVcsRUFBRSxJQUFLO01BQ2xCQyxDQUFDLEVBQUM7SUFBd0ssQ0FDM0s7RUFBQyxDQUNDLENBQUM7QUFFVixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Ícono buscar en la web del menú + / chip del input. */
3
+ export var MaiaInputWebSearchIcon = function MaiaInputWebSearchIcon(_ref) {
4
+ var _ref$color = _ref.color,
5
+ color = _ref$color === void 0 ? 'currentColor' : _ref$color,
6
+ _ref$width = _ref.width,
7
+ width = _ref$width === void 0 ? 20 : _ref$width,
8
+ _ref$height = _ref.height,
9
+ height = _ref$height === void 0 ? 20 : _ref$height,
10
+ _ref$className = _ref.className,
11
+ className = _ref$className === void 0 ? '' : _ref$className;
12
+ return /*#__PURE__*/_jsxs("svg", {
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ width: width,
15
+ height: height,
16
+ viewBox: "0 0 20 20",
17
+ fill: "none",
18
+ className: className,
19
+ "aria-hidden": "true",
20
+ children: [/*#__PURE__*/_jsx("path", {
21
+ stroke: color,
22
+ strokeLinecap: "round",
23
+ strokeLinejoin: "round",
24
+ strokeWidth: 1.333,
25
+ d: "M10 18.334a8.333 8.333 0 1 0 0-16.667 8.333 8.333 0 0 0 0 16.667Z"
26
+ }), /*#__PURE__*/_jsx("path", {
27
+ stroke: color,
28
+ strokeLinecap: "round",
29
+ strokeLinejoin: "round",
30
+ strokeWidth: 1.333,
31
+ d: "M6.667 10c0-3.102 1.193-6.086 3.333-8.333a12.084 12.084 0 0 1 0 16.667A12.084 12.084 0 0 1 6.667 10ZM1.667 10h16.666"
32
+ })]
33
+ });
34
+ };
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYWlhSW5wdXRXZWJTZWFyY2hJY29uIiwiX3JlZiIsIl9yZWYkY29sb3IiLCJjb2xvciIsIl9yZWYkd2lkdGgiLCJ3aWR0aCIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiX3JlZiRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfanN4cyIsInhtbG5zIiwidmlld0JveCIsImZpbGwiLCJjaGlsZHJlbiIsIl9qc3giLCJzdHJva2UiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJzdHJva2VXaWR0aCIsImQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9pY29ucy9NYWlhSW5wdXRXZWJTZWFyY2hJY29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE1haWFJbnB1dFdlYlNlYXJjaEljb25Qcm9wcyA9IHtcbiAgY29sb3I/OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG4vKiogw41jb25vIGJ1c2NhciBlbiBsYSB3ZWIgZGVsIG1lbsO6ICsgLyBjaGlwIGRlbCBpbnB1dC4gKi9cbmV4cG9ydCBjb25zdCBNYWlhSW5wdXRXZWJTZWFyY2hJY29uID0gKHtcbiAgY29sb3IgPSAnY3VycmVudENvbG9yJyxcbiAgd2lkdGggPSAyMCxcbiAgaGVpZ2h0ID0gMjAsXG4gIGNsYXNzTmFtZSA9ICcnLFxufTogTWFpYUlucHV0V2ViU2VhcmNoSWNvblByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD17d2lkdGh9XG4gICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZT17Y29sb3J9XG4gICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBzdHJva2VXaWR0aD17MS4zMzN9XG4gICAgICAgIGQ9XCJNMTAgMTguMzM0YTguMzMzIDguMzMzIDAgMSAwIDAtMTYuNjY3IDguMzMzIDguMzMzIDAgMCAwIDAgMTYuNjY3WlwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlPXtjb2xvcn1cbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZVdpZHRoPXsxLjMzM31cbiAgICAgICAgZD1cIk02LjY2NyAxMGMwLTMuMTAyIDEuMTkzLTYuMDg2IDMuMzMzLTguMzMzYTEyLjA4NCAxMi4wODQgMCAwIDEgMCAxNi42NjdBMTIuMDg0IDEyLjA4NCAwIDAgMSA2LjY2NyAxMFpNMS42NjcgMTBoMTYuNjY2XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQU9BO0FBQ0EsT0FBTyxJQUFNQSxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBQyxJQUFBLEVBS0E7RUFBQSxJQUFBQyxVQUFBLEdBQUFELElBQUEsQ0FKakNFLEtBQUs7SUFBTEEsS0FBSyxHQUFBRCxVQUFBLGNBQUcsY0FBYyxHQUFBQSxVQUFBO0lBQUFFLFVBQUEsR0FBQUgsSUFBQSxDQUN0QkksS0FBSztJQUFMQSxLQUFLLEdBQUFELFVBQUEsY0FBRyxFQUFFLEdBQUFBLFVBQUE7SUFBQUUsV0FBQSxHQUFBTCxJQUFBLENBQ1ZNLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUcsRUFBRSxHQUFBQSxXQUFBO0lBQUFFLGNBQUEsR0FBQVAsSUFBQSxDQUNYUSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsY0FBQSxjQUFHLEVBQUUsR0FBQUEsY0FBQTtFQUVkLG9CQUNFRSxLQUFBO0lBQ0VDLEtBQUssRUFBQyw0QkFBNEI7SUFDbENOLEtBQUssRUFBRUEsS0FBTTtJQUNiRSxNQUFNLEVBQUVBLE1BQU87SUFDZkssT0FBTyxFQUFDLFdBQVc7SUFDbkJDLElBQUksRUFBQyxNQUFNO0lBQ1hKLFNBQVMsRUFBRUEsU0FBVTtJQUNyQixlQUFZLE1BQU07SUFBQUssUUFBQSxnQkFFbEJDLElBQUE7TUFDRUMsTUFBTSxFQUFFYixLQUFNO01BQ2RjLGFBQWEsRUFBQyxPQUFPO01BQ3JCQyxjQUFjLEVBQUMsT0FBTztNQUN0QkMsV0FBVyxFQUFFLEtBQU07TUFDbkJDLENBQUMsRUFBQztJQUFtRSxDQUN0RSxDQUFDLGVBQ0ZMLElBQUE7TUFDRUMsTUFBTSxFQUFFYixLQUFNO01BQ2RjLGFBQWEsRUFBQyxPQUFPO01BQ3JCQyxjQUFjLEVBQUMsT0FBTztNQUN0QkMsV0FBVyxFQUFFLEtBQU07TUFDbkJDLENBQUMsRUFBQztJQUFzSCxDQUN6SCxDQUFDO0VBQUEsQ0FDQyxDQUFDO0FBRVYsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -34,7 +34,16 @@ export { MaiaChatLayoutMenuIcon } from './MaiaChatLayoutMenuIcon';
34
34
  export { MAIAIsologo } from './MAIAIsologo';
35
35
  export { MaiaStoreIcon } from './MaiaStoreIcon';
36
36
  export { MyAgentsNavIcon } from './MyAgentsNavIcon';
37
+ export { MaiaInputAddIcon } from './MaiaInputAddIcon';
38
+ export { MaiaInputAttachIcon } from './MaiaInputAttachIcon';
39
+ export { MaiaInputAttachmentImageIcon } from './MaiaInputAttachmentImageIcon';
40
+ export { MaiaInputDeepSearchIcon } from './MaiaInputDeepSearchIcon';
41
+ export { MaiaInputMentionIcon } from './MaiaInputMentionIcon';
42
+ export { MaiaInputRobotIcon } from './MaiaInputRobotIcon';
43
+ export { MaiaInputSendIcon } from './MaiaInputSendIcon';
44
+ export { MaiaInputSlashIcon } from './MaiaInputSlashIcon';
45
+ export { MaiaInputWebSearchIcon } from './MaiaInputWebSearchIcon';
37
46
  export { SkillsNavIcon } from './SkillsNavIcon';
38
47
  export { NotionIcon } from './NotionIcon';
39
48
  export { SkillIcon } from './SkillIcon';
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiUHB0RmlsZUljb24iLCJQcHR4RmlsZUljb24iLCJNREZpbGVJY29uIiwiQ3N2RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJBYWNGaWxlSWNvbiIsIkZsYWNGaWxlSWNvbiIsIk00YUZpbGVJY29uIiwiTXA0RmlsZUljb24iLCJPZ2FGaWxlSWNvbiIsIk9nZ0ZpbGVJY29uIiwiV2VibUZpbGVJY29uIiwiQWNjZXNzaWJpbGl0eUljb24iLCJCcmFpbkljb24iLCJDb3JBY2Nlc3NJY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiRmFxQ2hldnJvbkljb24iLCJNQUlBSWNvbiIsIk1haWFDaGF0TGF5b3V0TWVudUljb24iLCJNQUlBSXNvbG9nbyIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJTa2lsbHNOYXZJY29uIiwiTm90aW9uSWNvbiIsIlNraWxsSWNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL2ljb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFJSWNvbiB9IGZyb20gJy4vQUlJY29uJ1xuZXhwb3J0IHsgRXJyb3JTdGF0ZSB9IGZyb20gJy4vRXJyb3JTdGF0ZSdcbmV4cG9ydCB7IENvckxvZ28gfSBmcm9tICcuL0NvckxvZ28nXG5leHBvcnQgeyBIb21lSWNvbiB9IGZyb20gJy4vSG9tZUljb24nXG5leHBvcnQgeyBOZXdDaGF0IH0gZnJvbSAnLi9OZXdDaGF0J1xuZXhwb3J0IHsgRG9jRmlsZUljb24gfSBmcm9tICcuL0RvY0ZpbGUnXG5leHBvcnQgeyBEb2N4RmlsZUljb24gfSBmcm9tICcuL0RvY3hGaWxlJ1xuZXhwb3J0IHsgUHB0RmlsZUljb24gfSBmcm9tICcuL1BwdEZpbGUnXG5leHBvcnQgeyBQcHR4RmlsZUljb24gfSBmcm9tICcuL1BwdHhGaWxlJ1xuZXhwb3J0IHsgTURGaWxlSWNvbiB9IGZyb20gJy4vTURGaWxlJ1xuZXhwb3J0IHsgQ3N2RmlsZUljb24gfSBmcm9tICcuL0NzdkZpbGUnXG5leHBvcnQgeyBUZXh0RmlsZUljb24gfSBmcm9tICcuL1RleHRGaWxlJ1xuZXhwb3J0IHsgUGRmRmlsZUljb24gfSBmcm9tICcuL1BkZkZpbGUnXG5leHBvcnQgeyBJbWFnZUZpbGVJY29uIH0gZnJvbSAnLi9JbWFnZUZpbGUnXG5leHBvcnQgeyBYbHN4RmlsZUljb24gfSBmcm9tICcuL1hsc3hGaWxlJ1xuZXhwb3J0IHsgWGxzRmlsZUljb24gfSBmcm9tICcuL1hsc0ZpbGUnXG5leHBvcnQgeyBNcDNGaWxlSWNvbiB9IGZyb20gJy4vTXAzRmlsZSdcbmV4cG9ydCB7IFdhdkZpbGVJY29uIH0gZnJvbSAnLi9XYXZGaWxlJ1xuZXhwb3J0IHsgQWFjRmlsZUljb24gfSBmcm9tICcuL0FhY0ZpbGUnXG5leHBvcnQgeyBGbGFjRmlsZUljb24gfSBmcm9tICcuL0ZsYWNJY29uJ1xuZXhwb3J0IHsgTTRhRmlsZUljb24gfSBmcm9tICcuL000YUZpbGUnXG5leHBvcnQgeyBNcDRGaWxlSWNvbiB9IGZyb20gJy4vTXA0RmlsZSdcbmV4cG9ydCB7IE9nYUZpbGVJY29uIH0gZnJvbSAnLi9PZ2FGaWxlJ1xuZXhwb3J0IHsgT2dnRmlsZUljb24gfSBmcm9tICcuL09nZ0ZpbGUnXG5leHBvcnQgeyBXZWJtRmlsZUljb24gfSBmcm9tICcuL1dlYm1GaWxlJ1xuZXhwb3J0IHsgQWNjZXNzaWJpbGl0eUljb24gfSBmcm9tICcuL0FjY2Vzc2liaWxpdHlJY29uJ1xuZXhwb3J0IHsgQnJhaW5JY29uIH0gZnJvbSAnLi9CcmFpbidcbmV4cG9ydCB7IENvckFjY2Vzc0ljb24gfSBmcm9tICcuL0NvckFjY2Vzc0ljb24nXG5leHBvcnQgeyBBZ2VudE1haWFJY29uIH0gZnJvbSAnLi9BZ2VudE1haWFJY29uJ1xuZXhwb3J0IHsgRmFxc0ljb24gfSBmcm9tICcuL0ZhcXNJY29uJ1xuZXhwb3J0IHsgRmFxQ2hldnJvbkljb24gfSBmcm9tICcuL0ZhcUNoZXZyb25JY29uJ1xuZXhwb3J0IHsgTUFJQUljb24gfSBmcm9tICcuL01BSUFJY29uJ1xuZXhwb3J0IHsgTWFpYUNoYXRMYXlvdXRNZW51SWNvbiB9IGZyb20gJy4vTWFpYUNoYXRMYXlvdXRNZW51SWNvbidcbmV4cG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi9NQUlBSXNvbG9nbydcbmV4cG9ydCB7IE1haWFTdG9yZUljb24gfSBmcm9tICcuL01haWFTdG9yZUljb24nXG5leHBvcnQgeyBNeUFnZW50c05hdkljb24gfSBmcm9tICcuL015QWdlbnRzTmF2SWNvbidcbmV4cG9ydCB7IFNraWxsc05hdkljb24gfSBmcm9tICcuL1NraWxsc05hdkljb24nXG5leHBvcnQgeyBOb3Rpb25JY29uIH0gZnJvbSAnLi9Ob3Rpb25JY29uJ1xuZXhwb3J0IHsgU2tpbGxJY29uIH0gZnJvbSAnLi9Ta2lsbEljb24nXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxVQUFVO0FBQ2pDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxVQUFVO0FBQ3JDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLGFBQWEsUUFBUSxhQUFhO0FBQzNDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyxTQUFTLFFBQVEsU0FBUztBQUNuQyxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsUUFBUSxRQUFRLFlBQVk7QUFDckMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsU0FBUyxRQUFRLGFBQWEiLCJpZ25vcmVMaXN0IjpbXX0=
49
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiUHB0RmlsZUljb24iLCJQcHR4RmlsZUljb24iLCJNREZpbGVJY29uIiwiQ3N2RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJBYWNGaWxlSWNvbiIsIkZsYWNGaWxlSWNvbiIsIk00YUZpbGVJY29uIiwiTXA0RmlsZUljb24iLCJPZ2FGaWxlSWNvbiIsIk9nZ0ZpbGVJY29uIiwiV2VibUZpbGVJY29uIiwiQWNjZXNzaWJpbGl0eUljb24iLCJCcmFpbkljb24iLCJDb3JBY2Nlc3NJY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiRmFxQ2hldnJvbkljb24iLCJNQUlBSWNvbiIsIk1haWFDaGF0TGF5b3V0TWVudUljb24iLCJNQUlBSXNvbG9nbyIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJNYWlhSW5wdXRBZGRJY29uIiwiTWFpYUlucHV0QXR0YWNoSWNvbiIsIk1haWFJbnB1dEF0dGFjaG1lbnRJbWFnZUljb24iLCJNYWlhSW5wdXREZWVwU2VhcmNoSWNvbiIsIk1haWFJbnB1dE1lbnRpb25JY29uIiwiTWFpYUlucHV0Um9ib3RJY29uIiwiTWFpYUlucHV0U2VuZEljb24iLCJNYWlhSW5wdXRTbGFzaEljb24iLCJNYWlhSW5wdXRXZWJTZWFyY2hJY29uIiwiU2tpbGxzTmF2SWNvbiIsIk5vdGlvbkljb24iLCJTa2lsbEljb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9pY29ucy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBSUljb24gfSBmcm9tICcuL0FJSWNvbidcbmV4cG9ydCB7IEVycm9yU3RhdGUgfSBmcm9tICcuL0Vycm9yU3RhdGUnXG5leHBvcnQgeyBDb3JMb2dvIH0gZnJvbSAnLi9Db3JMb2dvJ1xuZXhwb3J0IHsgSG9tZUljb24gfSBmcm9tICcuL0hvbWVJY29uJ1xuZXhwb3J0IHsgTmV3Q2hhdCB9IGZyb20gJy4vTmV3Q2hhdCdcbmV4cG9ydCB7IERvY0ZpbGVJY29uIH0gZnJvbSAnLi9Eb2NGaWxlJ1xuZXhwb3J0IHsgRG9jeEZpbGVJY29uIH0gZnJvbSAnLi9Eb2N4RmlsZSdcbmV4cG9ydCB7IFBwdEZpbGVJY29uIH0gZnJvbSAnLi9QcHRGaWxlJ1xuZXhwb3J0IHsgUHB0eEZpbGVJY29uIH0gZnJvbSAnLi9QcHR4RmlsZSdcbmV4cG9ydCB7IE1ERmlsZUljb24gfSBmcm9tICcuL01ERmlsZSdcbmV4cG9ydCB7IENzdkZpbGVJY29uIH0gZnJvbSAnLi9Dc3ZGaWxlJ1xuZXhwb3J0IHsgVGV4dEZpbGVJY29uIH0gZnJvbSAnLi9UZXh0RmlsZSdcbmV4cG9ydCB7IFBkZkZpbGVJY29uIH0gZnJvbSAnLi9QZGZGaWxlJ1xuZXhwb3J0IHsgSW1hZ2VGaWxlSWNvbiB9IGZyb20gJy4vSW1hZ2VGaWxlJ1xuZXhwb3J0IHsgWGxzeEZpbGVJY29uIH0gZnJvbSAnLi9YbHN4RmlsZSdcbmV4cG9ydCB7IFhsc0ZpbGVJY29uIH0gZnJvbSAnLi9YbHNGaWxlJ1xuZXhwb3J0IHsgTXAzRmlsZUljb24gfSBmcm9tICcuL01wM0ZpbGUnXG5leHBvcnQgeyBXYXZGaWxlSWNvbiB9IGZyb20gJy4vV2F2RmlsZSdcbmV4cG9ydCB7IEFhY0ZpbGVJY29uIH0gZnJvbSAnLi9BYWNGaWxlJ1xuZXhwb3J0IHsgRmxhY0ZpbGVJY29uIH0gZnJvbSAnLi9GbGFjSWNvbidcbmV4cG9ydCB7IE00YUZpbGVJY29uIH0gZnJvbSAnLi9NNGFGaWxlJ1xuZXhwb3J0IHsgTXA0RmlsZUljb24gfSBmcm9tICcuL01wNEZpbGUnXG5leHBvcnQgeyBPZ2FGaWxlSWNvbiB9IGZyb20gJy4vT2dhRmlsZSdcbmV4cG9ydCB7IE9nZ0ZpbGVJY29uIH0gZnJvbSAnLi9PZ2dGaWxlJ1xuZXhwb3J0IHsgV2VibUZpbGVJY29uIH0gZnJvbSAnLi9XZWJtRmlsZSdcbmV4cG9ydCB7IEFjY2Vzc2liaWxpdHlJY29uIH0gZnJvbSAnLi9BY2Nlc3NpYmlsaXR5SWNvbidcbmV4cG9ydCB7IEJyYWluSWNvbiB9IGZyb20gJy4vQnJhaW4nXG5leHBvcnQgeyBDb3JBY2Nlc3NJY29uIH0gZnJvbSAnLi9Db3JBY2Nlc3NJY29uJ1xuZXhwb3J0IHsgQWdlbnRNYWlhSWNvbiB9IGZyb20gJy4vQWdlbnRNYWlhSWNvbidcbmV4cG9ydCB7IEZhcXNJY29uIH0gZnJvbSAnLi9GYXFzSWNvbidcbmV4cG9ydCB7IEZhcUNoZXZyb25JY29uIH0gZnJvbSAnLi9GYXFDaGV2cm9uSWNvbidcbmV4cG9ydCB7IE1BSUFJY29uIH0gZnJvbSAnLi9NQUlBSWNvbidcbmV4cG9ydCB7IE1haWFDaGF0TGF5b3V0TWVudUljb24gfSBmcm9tICcuL01haWFDaGF0TGF5b3V0TWVudUljb24nXG5leHBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4vTUFJQUlzb2xvZ28nXG5leHBvcnQgeyBNYWlhU3RvcmVJY29uIH0gZnJvbSAnLi9NYWlhU3RvcmVJY29uJ1xuZXhwb3J0IHsgTXlBZ2VudHNOYXZJY29uIH0gZnJvbSAnLi9NeUFnZW50c05hdkljb24nXG5leHBvcnQgeyBNYWlhSW5wdXRBZGRJY29uIH0gZnJvbSAnLi9NYWlhSW5wdXRBZGRJY29uJ1xuZXhwb3J0IHsgTWFpYUlucHV0QXR0YWNoSWNvbiB9IGZyb20gJy4vTWFpYUlucHV0QXR0YWNoSWNvbidcbmV4cG9ydCB7IE1haWFJbnB1dEF0dGFjaG1lbnRJbWFnZUljb24gfSBmcm9tICcuL01haWFJbnB1dEF0dGFjaG1lbnRJbWFnZUljb24nXG5leHBvcnQgeyBNYWlhSW5wdXREZWVwU2VhcmNoSWNvbiB9IGZyb20gJy4vTWFpYUlucHV0RGVlcFNlYXJjaEljb24nXG5leHBvcnQgeyBNYWlhSW5wdXRNZW50aW9uSWNvbiB9IGZyb20gJy4vTWFpYUlucHV0TWVudGlvbkljb24nXG5leHBvcnQgeyBNYWlhSW5wdXRSb2JvdEljb24gfSBmcm9tICcuL01haWFJbnB1dFJvYm90SWNvbidcbmV4cG9ydCB7IE1haWFJbnB1dFNlbmRJY29uIH0gZnJvbSAnLi9NYWlhSW5wdXRTZW5kSWNvbidcbmV4cG9ydCB7IE1haWFJbnB1dFNsYXNoSWNvbiB9IGZyb20gJy4vTWFpYUlucHV0U2xhc2hJY29uJ1xuZXhwb3J0IHsgTWFpYUlucHV0V2ViU2VhcmNoSWNvbiB9IGZyb20gJy4vTWFpYUlucHV0V2ViU2VhcmNoSWNvbidcbmV4cG9ydCB7IFNraWxsc05hdkljb24gfSBmcm9tICcuL1NraWxsc05hdkljb24nXG5leHBvcnQgeyBOb3Rpb25JY29uIH0gZnJvbSAnLi9Ob3Rpb25JY29uJ1xuZXhwb3J0IHsgU2tpbGxJY29uIH0gZnJvbSAnLi9Ta2lsbEljb24nXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxVQUFVO0FBQ2pDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxVQUFVO0FBQ3JDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLGFBQWEsUUFBUSxhQUFhO0FBQzNDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyxTQUFTLFFBQVEsU0FBUztBQUNuQyxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsUUFBUSxRQUFRLFlBQVk7QUFDckMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxtQkFBbUIsUUFBUSx1QkFBdUI7QUFDM0QsU0FBU0MsNEJBQTRCLFFBQVEsZ0NBQWdDO0FBQzdFLFNBQVNDLHVCQUF1QixRQUFRLDJCQUEyQjtBQUNuRSxTQUFTQyxvQkFBb0IsUUFBUSx3QkFBd0I7QUFDN0QsU0FBU0Msa0JBQWtCLFFBQVEsc0JBQXNCO0FBQ3pELFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDekQsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsU0FBUyxRQUFRLGFBQWEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -118,6 +118,8 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
118
118
  // Planner: home de FUAs del orchestrator (sin selector de contextos).
119
119
  // Si el usuario navega a Maiaker u otro agente, section sigue siendo `planner` pero ya no es este home.
120
120
  var isPlannerHome = section === 'planner' && isOrchestrator;
121
+ // Homes de sección (project/client/task): sin isologo, contenido top-left, columna 458px centrada.
122
+ var isSectionOrchestratorHome = isOrchestrator && !isHeaderHome && !isPlannerHome;
121
123
  var allowedRecentContextTypes = useMemo(function () {
122
124
  return getAllowedRecentContextTypes(user.role_id);
123
125
  }, [user.role_id]);
@@ -453,10 +455,11 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
453
455
  })]
454
456
  });
455
457
  }
458
+ var contentAlignStart = isPlannerHome || isHeaderCollaboratorHome || isSectionOrchestratorHome;
456
459
  return /*#__PURE__*/_jsxs(SCCAIHomeMaiaHeaderStack, {
457
460
  $noGap: !isRecentContextsStep && !isPlannerHome && !greeting,
458
- $align: isPlannerHome || isHeaderCollaboratorHome ? 'start' : 'center',
459
- children: [!isPlannerHome && !isHeaderCollaboratorHome && /*#__PURE__*/_jsx(SCCAIHomeIconContainer, {
461
+ $align: contentAlignStart ? 'start' : 'center',
462
+ children: [!isPlannerHome && !isHeaderCollaboratorHome && !isSectionOrchestratorHome && /*#__PURE__*/_jsx(SCCAIHomeIconContainer, {
460
463
  children: /*#__PURE__*/_jsx(SCCAIHomeLogoWrapper, {
461
464
  children: /*#__PURE__*/_jsx(MAIAIsologo, {})
462
465
  })
@@ -487,19 +490,25 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
487
490
  })]
488
491
  }), !isPlannerHome && isRecentContextsStep && !isHeaderCollaboratorHome && /*#__PURE__*/_jsxs(_Fragment, {
489
492
  children: [/*#__PURE__*/_jsx(SCCAIHomeTitle, {
493
+ $align: isSectionOrchestratorHome ? 'start' : undefined,
490
494
  children: t('homeMenu.contextHome.greeting', {
491
495
  name: user.firstName
492
496
  })
493
497
  }), /*#__PURE__*/_jsx(SCCAIHomeSubtitle, {
498
+ $align: isSectionOrchestratorHome ? 'start' : undefined,
494
499
  children: t(isCollaboratorRole(user.role_id) ? 'homeMenu.contextHome.subtitleCollaborator' : 'homeMenu.contextHome.subtitle')
495
500
  })]
496
501
  }), !isPlannerHome && !isRecentContextsStep && greeting && /*#__PURE__*/_jsx(SCCAIHomeGreeting, {
502
+ $align: isSectionOrchestratorHome ? 'start' : undefined,
497
503
  children: greeting
498
504
  })]
499
505
  });
500
506
  };
507
+ var fixedHomeContentWidth = isHeaderCollaboratorHome || isSectionOrchestratorHome ? MAIA_HEADER_COLLABORATOR_HOME_CONTENT_WIDTH_PX : undefined;
508
+ var contentAlignStart = isPlannerHome || isHeaderCollaboratorHome || isSectionOrchestratorHome;
501
509
  return /*#__PURE__*/_jsxs(SCCAIHomeContainer, {
502
510
  showFAQs: showFAQs,
511
+ $alignStart: isSectionOrchestratorHome,
503
512
  children: [homeScrollableLayout && /*#__PURE__*/_jsx(SCCAIHomeGradientTop, {
504
513
  $show: showTopGradient
505
514
  }), /*#__PURE__*/_jsx(SCCAIHomeContent, {
@@ -508,19 +517,21 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
508
517
  $isAgentView: !isMAIA,
509
518
  $floatingCustomCenter: floatingCustomCenter,
510
519
  $centerVertically: isPlannerHome,
511
- $fixedContentWidth: isHeaderCollaboratorHome ? MAIA_HEADER_COLLABORATOR_HOME_CONTENT_WIDTH_PX : undefined,
520
+ $alignStart: isSectionOrchestratorHome,
521
+ $fixedContentWidth: fixedHomeContentWidth,
512
522
  children: /*#__PURE__*/_jsxs(SCCAIHomeContentInner, {
513
523
  showFAQs: homeScrollableLayout,
514
524
  $isAgentView: !isMAIA,
515
525
  $floatingCustomCenter: floatingCustomCenter,
516
526
  $centerVertically: isPlannerHome,
517
- $alignStart: isHeaderCollaboratorHome,
527
+ $alignStart: isHeaderCollaboratorHome || isSectionOrchestratorHome,
518
528
  $headerCollaboratorHome: isHeaderCollaboratorHome,
529
+ $sectionOrchestratorHome: isSectionOrchestratorHome,
519
530
  children: [/*#__PURE__*/_jsxs(SCCAIHomeHeader, {
520
531
  $gap: isMAIA && section !== 'project' ? '8px' : '20px',
521
532
  $maxWidth: isMAIA ? '100%' : '380px',
522
533
  $isAgentView: !isMAIA,
523
- $align: isPlannerHome || isHeaderCollaboratorHome ? 'start' : 'center',
534
+ $align: contentAlignStart ? 'start' : 'center',
524
535
  children: [renderHeaderContent(), section !== 'project' && /*#__PURE__*/_jsx(SCCAIHomeIntroduction, {
525
536
  expanded: expanded,
526
537
  children: !isMAIA && (agent === null || agent === void 0 ? void 0 : agent.introduction)
@@ -541,7 +552,7 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
541
552
  })]
542
553
  }), showDynamicSection && /*#__PURE__*/_jsxs(SCCAIHomeDynamicSection, {
543
554
  $grow: isMaiaker,
544
- $alignStart: isHeaderCollaboratorHome,
555
+ $alignStart: isHeaderCollaboratorHome || isSectionOrchestratorHome,
545
556
  children: [shouldShowPlannerFuasLoading ? /*#__PURE__*/_jsx(FrequentlyUsedActions, {
546
557
  variant: "planner",
547
558
  onStartChat: onStartChat,
@@ -585,4 +596,4 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
585
596
  })]
586
597
  });
587
598
  };
588
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lVGl0bGVCbG9jayIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIiwiTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJpc0NvbGxhYm9yYXRvclJvbGUiLCJ1c2VSZXNpemVMaXN0ZW5lciIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwidXNlUmVjZW50Q29udGV4dHMiLCJNQUlBSXNvbG9nbyIsIlRlbXBsYXRlR3JhZGllbnRJY29uIiwiQ2hhdEFJSG9tZU1haWFrZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJGcmVxdWVudFF1ZXN0aW9ucyIsIlJFQ0VOVF9DT05URVhUU19MSU1JVCIsIlJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IiLCJSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTIiwiUmVjZW50Q29udGV4dFBpbGwiLCJfcmVmIiwiY29udGV4dCIsImxhYmVsIiwib25DbGljayIsIl9yZWYkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwidHlwZSIsIiRmdWxsV2lkdGgiLCJjaGlsZHJlbiIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJyZWYiLCJ0aXRsZSIsInBhcnNlTnVtZXJpY0lkIiwidmFsdWUiLCJwYXJzZWQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJyb2xlSWQiLCJub3JtYWxpemVkUm9sZUlkIiwiQ0xFVkVMIiwiRElSRUNUT1IiLCJQUk9KRUNUX01BTkFHRVIiLCJTZXQiLCJDaGF0QUlIb21lIiwiX3JlZjIiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJldmVudCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0UHJvamVjdCIsInNldFRhc2siLCJzZXRDaGlwc1Byb2plY3QiLCJpc01BSUEiLCJmbG9hdGluZ0N1c3RvbUNlbnRlciIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJpc0hlYWRlckhvbWUiLCJpc09yY2hlc3RyYXRvciIsImlzUGxhbm5lckhvbWUiLCJhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzIiwicm9sZV9pZCIsIl91c2VSZWNlbnRDb250ZXh0cyIsImVuYWJsZWQiLCJsaW1pdCIsImZldGNoZWRSZWNlbnRDb250ZXh0cyIsImNvbnRleHRzIiwicmVjZW50Q29udGV4dHNMb2FkaW5nIiwibG9hZGluZyIsInJlY2VudENvbnRleHRzIiwiZmlsdGVyIiwiaGFzIiwiaGFzUGlubmVkQ29udGV4dCIsImlkIiwicHJvamVjdElkIiwiaXNSZWNlbnRDb250ZXh0c1N0ZXAiLCJpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUiLCJpc0hlYWRlckNvbGxhYm9yYXRvckhvdXJzSG9tZSIsImlzQ29udGV4dEhvbWVTdGVwIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2VsZWN0ZWRDb250ZXh0Iiwic2V0U2VsZWN0ZWRDb250ZXh0IiwiYWN0aXZlQ29udGV4dCIsIm5hbWUiLCJwcm9qZWN0TmFtZSIsInBpbm5lZEVudGl0eVR5cGUiLCJpc1Rhc2tDb250ZXh0IiwiaXNGdWFzT25seUhvbWUiLCJmdWFzU2VjdGlvbiIsInJlYWxMaXN0c0FnZW50SWQiLCJyZWFsTGlzdHNFbnRpdHlUeXBlIiwiX3VzZUZyZXF1ZW50bHlVc2VkQWN0IiwiYWdlbnRGdWFzIiwiYWN0aW9ucyIsImZ1YXNMb2FkaW5nIiwiX3VzZUZyZXF1ZW50bHlVc2VkQWN0MiIsInBsYW5uZXJGdWFzIiwicGxhbm5lckZ1YXNMb2FkaW5nIiwiX3VzZUZyZXF1ZW50bHlBc2tlZFF1IiwiYWdlbnRGYXFzIiwiZmFxcyIsImZhcXNMb2FkaW5nIiwiaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiZmFxc0ZldGNoUmVmIiwiX2ZhcXNGZXRjaFJlZiRjdXJyZW50IiwiY3VycmVudEtleSIsImNvbmNhdCIsImxhc3RLZXkiLCJjdXJyZW50IiwiYWdlbnRJZCIsImVudGl0eVR5cGUiLCJmdWFzIiwiZmFxc0FyZUxvYWRpbmciLCJmdWFzQXJlTG9hZGluZyIsInNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIiwibGVuZ3RoIiwic2hvdWxkU2hvd0ZhcXMiLCJzaG91bGRTaG93RnVhcyIsInNob3VsZFNob3dQbGFubmVyRnVhc0xvYWRpbmciLCJzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50Iiwic2hvdWxkU2hvd1BsYW5uZXJGdWFzIiwic2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCIsImVudGl0eSIsInNob3dGQVFzIiwiaG9tZVNjcm9sbGFibGVMYXlvdXQiLCJzaG93RHluYW1pY1NlY3Rpb24iLCJjb250ZW50Q29udGFpbmVyUmVmIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dCIsIm9yZGVyIiwiX2NvbnRleHQkcGFyZW50cyIsIl9jb250ZXh0JHBhcmVudHMyIiwiX2NvbnRleHQkcGFyZW50czMiLCJfY29udGV4dCRwYXJlbnRzNCIsImFpQ2hhdENvbnRleHRTZWxlY3RlZCIsImNvbnRleHRJZCIsImNsaWVudElkIiwicGFyZW50cyIsImNsaWVudF9pZCIsInByb2plY3RfaWQiLCJjbGllbnROYW1lIiwiY2xpZW50X25hbWUiLCJwcm9qZWN0X25hbWUiLCJfb2JqZWN0U3ByZWFkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJyZW5kZXJSZWNlbnRDb250ZXh0cyIsIiRmaXhlZENvbnRlbnRXaWR0aCIsIiRjb250ZW50R2FwIiwiJGZsdXNoUGlsbHMiLCJtYXAiLCJrZXkiLCJpbmRleCIsInRyaW0iLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImlzU2Nyb2xsYWJsZSIsImlzQXRUb3AiLCJpc0F0Qm90dG9tIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0aW1lb3V0SWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVySGVhZGVyQ29udGVudCIsIl9hZ2VudCRjcmVhdGVkX2J5IiwiX2FnZW50JGNyZWF0ZWRfYnkyIiwiZW1vamkiLCJjcmVhdGVkX2J5IiwiaXNfZGVsZXRlZCIsIiRub0dhcCIsIiRhbGlnbiIsIiRzaXplIiwiZmlyc3ROYW1lIiwiJGNvbGxhYm9yYXRvckhvbWUiLCIkc2hvdyIsIiRpc0FnZW50VmlldyIsIiRmbG9hdGluZ0N1c3RvbUNlbnRlciIsIiRjZW50ZXJWZXJ0aWNhbGx5IiwiJGFsaWduU3RhcnQiLCIkaGVhZGVyQ29sbGFib3JhdG9ySG9tZSIsIiRnYXAiLCIkbWF4V2lkdGgiLCJwcm9qZWN0U3VtbWFyeSIsIiRncm93IiwidmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgTGlzdENoZWNrbGlzdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0xpc3RDaGVja2xpc3QnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcblxuaW1wb3J0IHtcbiAgU0NDQUlIb21lQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVDb250ZW50LFxuICBTQ0NBSUhvbWVDb250ZW50SW5uZXIsXG4gIFNDQ0FJSG9tZUdyYWRpZW50VG9wLFxuICBTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSxcbiAgU0NDQUlIb21lSGVhZGVyLFxuICBTQ0NBSUhvbWVHcmVldGluZyxcbiAgU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVBZ2VudEluZm8sXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24sXG4gIFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0LFxuICBTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24sXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCxcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUsXG4gIFNDQ0FJSG9tZUljb25Db250YWluZXIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxuICBTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2ssXG4gIFNDQ0FJSG9tZVRpdGxlLFxuICBTQ0NBSUhvbWVUaXRsZUJsb2NrLFxuICBTQ0NBSUhvbWVTdWJ0aXRsZSxcbiAgU0NDQUlIb21lRHluYW1pY1NlY3Rpb24sXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGUsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblN1YnRpdGxlLFxuICBTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24sXG4gIE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFgsXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCwgdHlwZSBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlLCBpc0NvbGxhYm9yYXRvclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgb3JjaGVzdHJhdG9ySGFzSG91cnNTdWJhZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL29yY2hlc3RyYXRvclN1YmFnZW50cydcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgfSBmcm9tICcuLi8uLi9hdG9tcy9GcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5pbXBvcnQgeyBGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi9hdG9tcy9GcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5pbXBvcnQgeyB1c2VSZWNlbnRDb250ZXh0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlY2VudENvbnRleHRzJ1xuaW1wb3J0IHR5cGUgeyBSZWNlbnRDb250ZXh0SXRlbSwgUmVjZW50Q29udGV4dFR5cGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcbmltcG9ydCB7IFRlbXBsYXRlR3JhZGllbnRJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGVtcGxhdGVHcmFkaWVudEljb24nXG5pbXBvcnQgeyBDaGF0QUlIb21lTWFpYWtlciB9IGZyb20gJy4vQ2hhdEFJSG9tZU1haWFrZXInXG5cbnR5cGUgQ2hhdEFJSG9tZVByb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICBmdWFJZD86IHN0cmluZ1xuICApID0+IHZvaWRcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAoKSA9PiB2b2lkPlxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgZmxvYXRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBlbnVtIEZyZXF1ZW50UXVlc3Rpb25zIHtcbiAgcmVudGFiaWxpZGFkX3Byb3llY3RvID0gJ3JlbnRhYmlsaWRhZF9wcm95ZWN0bycsXG4gIGF2YW5jZV9wcm95ZWN0byA9ICdhdmFuY2VfcHJveWVjdG8nLFxufVxuXG5jb25zdCBSRUNFTlRfQ09OVEVYVFNfTElNSVQgPSA5XG5jb25zdCBSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SID0gJyM0RDRENEQnXG5jb25zdCBSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTID0gW1xuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMScsXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0yJyxcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTMnLFxuXVxuXG5jb25zdCBSZWNlbnRDb250ZXh0UGlsbCA9ICh7XG4gIGNvbnRleHQsXG4gIGxhYmVsLFxuICBvbkNsaWNrLFxuICBmdWxsV2lkdGggPSBmYWxzZSxcbn06IHtcbiAgY29udGV4dDogUmVjZW50Q29udGV4dEl0ZW1cbiAgbGFiZWw6IHN0cmluZ1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIGZ1bGxXaWR0aD86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtsYWJlbF0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29uQ2xpY2t9ICRmdWxsV2lkdGg9e2Z1bGxXaWR0aH0+XG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgICB7Y29udGV4dC50eXBlID09PSAndGFzaycgPyAoXG4gICAgICAgICAgPExpc3RDaGVja2xpc3QgY29sb3I9e1JFQ0VOVF9DT05URVhUX0lDT05fQ09MT1J9IHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGdldENvbnRleHRNZW50aW9uSWNvbihjb250ZXh0LnR5cGUsIFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IsIHVuZGVmaW5lZCwgMTQpXG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbj5cbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQgcmVmPXt0ZXh0UmVmfT5cbiAgICAgICAge3Nob3dUb29sdGlwID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtsYWJlbH0+XG4gICAgICAgICAgICA8c3Bhbj57bGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBsYWJlbFxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQ+XG4gICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbD5cbiAgKVxufVxuXG5jb25zdCBwYXJzZU51bWVyaWNJZCA9ICh2YWx1ZT86IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IG51bGxcbn1cblxuY29uc3QgZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyA9IChyb2xlSWQ/OiBDT1JVc2VyUm9sZSB8IG51bWJlciB8IHN0cmluZyk6IFNldDxSZWNlbnRDb250ZXh0VHlwZT4gPT4ge1xuICBjb25zdCBub3JtYWxpemVkUm9sZUlkID0gTnVtYmVyKHJvbGVJZClcbiAgaWYgKFxuICAgIG5vcm1hbGl6ZWRSb2xlSWQgPT09IENPUlVzZXJSb2xlLkNMRVZFTCB8fFxuICAgIG5vcm1hbGl6ZWRSb2xlSWQgPT09IENPUlVzZXJSb2xlLkRJUkVDVE9SIHx8XG4gICAgbm9ybWFsaXplZFJvbGVJZCA9PT0gQ09SVXNlclJvbGUuUFJPSkVDVF9NQU5BR0VSXG4gICkge1xuICAgIHJldHVybiBuZXcgU2V0KFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzayddKVxuICB9XG4gIGlmIChpc0NvbGxhYm9yYXRvclJvbGUocm9sZUlkKSkge1xuICAgIHJldHVybiBuZXcgU2V0KFsndGFzayddKVxuICB9XG4gIHJldHVybiBuZXcgU2V0KClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWUgPSAoeyBoYW5kbGVycywgb25TdGFydENoYXQsIGV4cGFuZGVkLCBmbG9hdGluZyB9OiBDaGF0QUlIb21lUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudCwgc2VjdGlvbiwgY2xpZW50LCBwcm9qZWN0LCB0YXNrLCBjaGlwc1Byb2plY3QsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgc2V0Q2hpcHNQcm9qZWN0IH0gPVxuICAgIHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBmbG9hdGluZ0N1c3RvbUNlbnRlciA9ICEhKGZsb2F0aW5nICYmIGFnZW50Py50eXBlID09PSAnY3VzdG9tJylcbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQnIDogaTE4bi5sYW5ndWFnZVxuXG4gIGNvbnN0IHN1bW1hcnlQcm9qZWN0QWNjZXNzID1cbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIChTdHJpbmcod2luZG93Lk1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgfHxcbiAgICAgIFN0cmluZyh3aW5kb3cubWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpXG4gIGNvbnN0IGZhcXNBY2Nlc3MgPSB0cnVlXG4gIGNvbnN0IHNob3dQcm9qZWN0U3VtbWFyeSA9ICEhKGlzTUFJQSAmJiBzdW1tYXJ5UHJvamVjdEFjY2VzcylcbiAgLy8gRWwgb3JjaGVzdHJhdG9yICh0eXBlID09PSAnb3JjaGVzdHJhdG9yJykgbXVlc3RyYSBGQVFzL0ZVQXMgYWdyZWdhZGFzIGRlIHN1cyBzdWJhZ2VudGVzLFxuICAvLyBhc8OtIHF1ZSBOTyBzZSB0cmF0YSBjb21vIG1haWFrZXIgYWPDoS5cbiAgY29uc3QgaXNNYWlha2VyID0gaXNNYWlha2VyQWdlbnQoYWdlbnQpXG4gIGNvbnN0IGlzSGVhZGVySG9tZSA9IGlzTUFJQSAmJiBzZWN0aW9uID09PSAnaGVhZGVyJyAmJiBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgLy8gRWwgb3JjaGVzdHJhdG9yIHVzYSBlbCBob21lIGVuIDIgcGFzb3MgKGNvbnRleHRvcyByZWNpZW50ZXMg4oaUIEZBUXMvRlVBcykgZW4gaGVhZGVyL3Byb2plY3QvY2xpZW50L3Rhc2suXG4gIC8vIEVuIHByb2plY3QvY2xpZW50L3Rhc2ssIGFsIGxpbXBpYXIgZWwgY29udGV4dG8gKHAuIGVqLiBhbCByZXNlbGVjY2lvbmFyIE1BSUFcbiAgLy8gZGVzZGUgZWwgbGlzdGFkbyBkZSBhZ2VudGVzKSBzZSBtdWVzdHJhIGVsIHNlbGVjdG9yIGRlIGNvbnRleHRvcyByZWNpZW50ZXMgZW4gbHVnYXIgZGUgdW4gaG9tZSB2YWPDrW8uXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9yID0gaXNNQUlBICYmIGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICAvLyBQbGFubmVyOiBob21lIGRlIEZVQXMgZGVsIG9yY2hlc3RyYXRvciAoc2luIHNlbGVjdG9yIGRlIGNvbnRleHRvcykuXG4gIC8vIFNpIGVsIHVzdWFyaW8gbmF2ZWdhIGEgTWFpYWtlciB1IG90cm8gYWdlbnRlLCBzZWN0aW9uIHNpZ3VlIHNpZW5kbyBgcGxhbm5lcmAgcGVybyB5YSBubyBlcyBlc3RlIGhvbWUuXG4gIGNvbnN0IGlzUGxhbm5lckhvbWUgPSBzZWN0aW9uID09PSAncGxhbm5lcicgJiYgaXNPcmNoZXN0cmF0b3JcbiAgY29uc3QgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyA9IHVzZU1lbW8oKCkgPT4gZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyh1c2VyLnJvbGVfaWQpLCBbdXNlci5yb2xlX2lkXSlcbiAgY29uc3QgeyBjb250ZXh0czogZmV0Y2hlZFJlY2VudENvbnRleHRzLCBsb2FkaW5nOiByZWNlbnRDb250ZXh0c0xvYWRpbmcgfSA9IHVzZVJlY2VudENvbnRleHRzKHtcbiAgICBlbmFibGVkOiBpc09yY2hlc3RyYXRvciAmJiAhaXNQbGFubmVySG9tZSxcbiAgICBsaW1pdDogUkVDRU5UX0NPTlRFWFRTX0xJTUlULFxuICB9KVxuICBjb25zdCByZWNlbnRDb250ZXh0cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZmV0Y2hlZFJlY2VudENvbnRleHRzLmZpbHRlcihjb250ZXh0ID0+IGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMuaGFzKGNvbnRleHQudHlwZSkpLFxuICAgIFtmZXRjaGVkUmVjZW50Q29udGV4dHMsIGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXNdXG4gIClcblxuICAvLyBIb21lIGRlbCBvcmNoZXN0cmF0b3IgZW4gMiBwYXNvczpcbiAgLy8gIC0gUGFzbyAxIChzaW4gY29udGV4dG8gcGluZWFkbyk6IHNlIG11ZXN0cmFuIHNvbG8gbG9zIGNvbnRleHRvcyByZWNpZW50ZXMuXG4gIC8vICAtIFBhc28gMiAoY29udGV4dG8gcGluZWFkbyk6IHNlIG11ZXN0cmFuIGxhcyBGQVFzL2FjY2lvbmVzIHF1ZSByZWZlcmVuY2lhbiBlc2UgY29udGV4dG8uXG4gIC8vIFZvbHZlciBhbCBwYXNvIDEgPSBxdWl0YXIgZWwgY2hpcCAobGltcGlhIGVsIGNvbnRleHRvIGdsb2JhbCkuXG4gIC8vIFBsYW5uZXIgbm8gdXNhIGVzdGUgZmx1am86IHNpZW1wcmUgaG9tZSBkZSBGVUFzLlxuICBjb25zdCBoYXNQaW5uZWRDb250ZXh0ID0gISEodGFzaz8uaWQgfHwgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQgfHwgY2xpZW50Py5pZCB8fCBwcm9qZWN0Py5pZClcbiAgY29uc3QgaXNSZWNlbnRDb250ZXh0c1N0ZXAgPSBpc09yY2hlc3RyYXRvciAmJiAhaGFzUGlubmVkQ29udGV4dCAmJiAhaXNQbGFubmVySG9tZVxuICBjb25zdCBpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgPSBzZWN0aW9uID09PSAnaGVhZGVyJyAmJiBpc0NvbGxhYm9yYXRvclJvbGUodXNlci5yb2xlX2lkKSAmJiBpc1JlY2VudENvbnRleHRzU3RlcFxuICBjb25zdCBpc0hlYWRlckNvbGxhYm9yYXRvckhvdXJzSG9tZSA9IGlzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSAmJiBvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50KGFnZW50KVxuICBjb25zdCBpc0NvbnRleHRIb21lU3RlcCA9IGlzSGVhZGVySG9tZSAmJiBoYXNQaW5uZWRDb250ZXh0XG5cbiAgLy8gQ29udGV4dG8gYWN0aXZvIHBhcmEgZGVyaXZhciBGQVFzL2FjY2lvbmVzIChwYXNvIDIpLiBQcmVmZXJpbW9zIGVsIHBpbGwgY2xpY2tlYWRvO1xuICAvLyBzaSBubywgbG8gcmVjb25zdHJ1aW1vcyBkZXNkZSBlbCBjb250ZXh0byBnbG9iYWwuXG4gIGNvbnN0IFtzZWxlY3RlZENvbnRleHQsIHNldFNlbGVjdGVkQ29udGV4dF0gPSB1c2VTdGF0ZTxSZWNlbnRDb250ZXh0SXRlbSB8IG51bGw+KG51bGwpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFoYXNQaW5uZWRDb250ZXh0KSBzZXRTZWxlY3RlZENvbnRleHQobnVsbClcbiAgfSwgW2hhc1Bpbm5lZENvbnRleHRdKVxuXG4gIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSB1c2VNZW1vPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZENvbnRleHQpIHJldHVybiBzZWxlY3RlZENvbnRleHRcbiAgICBpZiAoIWlzQ29udGV4dEhvbWVTdGVwKSByZXR1cm4gbnVsbFxuICAgIGlmICh0YXNrPy5pZCkgcmV0dXJuIHsgdHlwZTogJ3Rhc2snLCBpZDogdGFzay5pZCwgbmFtZTogdGFzay5uYW1lIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQpIHJldHVybiB7IHR5cGU6ICdwcm9qZWN0JywgaWQ6IGNoaXBzUHJvamVjdC5wcm9qZWN0SWQsIG5hbWU6IGNoaXBzUHJvamVjdC5wcm9qZWN0TmFtZSB9XG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiB7IHR5cGU6ICdjbGllbnQnLCBpZDogY2xpZW50LmlkLCBuYW1lOiBjbGllbnQubmFtZSB9XG4gICAgcmV0dXJuIG51bGxcbiAgfSwgW1xuICAgIHNlbGVjdGVkQ29udGV4dCxcbiAgICBpc0NvbnRleHRIb21lU3RlcCxcbiAgICB0YXNrPy5pZCxcbiAgICB0YXNrPy5uYW1lLFxuICAgIGNoaXBzUHJvamVjdD8ucHJvamVjdElkLFxuICAgIGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUsXG4gICAgY2xpZW50Py5pZCxcbiAgICBjbGllbnQ/Lm5hbWUsXG4gIF0pXG5cbiAgLy8gZW50aXR5X3R5cGUgZGVsIGNvbnRleHRvIHBpbmVhZG8gKHByb2plY3QvY2xpZW50L3Rhc2spLCB0b21hZG8gZGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgLy8gQXBsaWNhIHRhbnRvIGFsIGFicmlyIE1BSUEgZGVzZGUgdW5hIHNlY2Npw7NuIGVzcGVjw61maWNhIGNvbW8gYWwgY2FtYmlhciBkZSBjb252ZXJzYWNpw7NuLlxuICBjb25zdCBwaW5uZWRFbnRpdHlUeXBlID0gdXNlTWVtbzxSZWNlbnRDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGlmICh0YXNrPy5pZCkgcmV0dXJuICd0YXNrJ1xuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCB8fCBwcm9qZWN0Py5pZCkgcmV0dXJuICdwcm9qZWN0J1xuICAgIGlmIChjbGllbnQ/LmlkKSByZXR1cm4gJ2NsaWVudCdcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFt0YXNrPy5pZCwgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsIHByb2plY3Q/LmlkLCBjbGllbnQ/LmlkXSlcblxuICAvLyBFbiBwcm9qZWN0L2NsaWVudC90YXNrLCBjb24gZWwgcmVpbmljaW8gZGUgY29udGV4dG8gZWwgdXN1YXJpbyBwdWVkZSBwaW5lYXIgdW4gY29udGV4dG8gZGUgdW5cbiAgLy8gdGlwbyBkaXN0aW50byBhbCBkZSBsYSBzZWNjacOzbiBkZSBhcGVydHVyYSAocC4gZWouIHVuIHByb2plY3QgYWJyaWVuZG8gZGVzZGUgdW5hIHRhcmVhLCBvXG4gIC8vIHZpY2V2ZXJzYSkuIExhcyBGQVFzL0ZVQXMgZGViZW4gZGVwZW5kZXIgZGVsIGNvbnRleHRvIHJlYWxtZW50ZSBwaW5lYWRvLCBubyBkZSBsYSBzZWNjacOzbiBmaWphLlxuICAvLyBFbiBlbCBoZWFkZXIgc2UgbWFudGllbmUgbGEgbMOzZ2ljYSBleGlzdGVudGUgKGJhc2FkYSBlbiBlbCBjb250ZXh0byBzZWxlY2Npb25hZG8gLyBhY3RpdmVDb250ZXh0KS5cbiAgY29uc3QgaXNUYXNrQ29udGV4dCA9ICFpc0hlYWRlckhvbWUgJiYgcGlubmVkRW50aXR5VHlwZSA9PT0gJ3Rhc2snXG4gIC8vIFNvbG8gRlVBcyAoc2luIEZBUXMpOiB0YXNrIHBhbmVsIG8gcGxhbm5lci5cbiAgY29uc3QgaXNGdWFzT25seUhvbWUgPSBpc1BsYW5uZXJIb21lIHx8IGlzVGFza0NvbnRleHRcbiAgLy8gYHNlY3Rpb25gIHF1ZSBzZSBjb25zdWx0YSBwYXJhIGxhcyBGVUFzOiBlbiBuby1oZWFkZXIgc2lndWUgZWwgdGlwbyBkZSBjb250ZXh0byBwaW5lYWRvLlxuICAvLyBFbiBwbGFubmVyIHNlIGZ1ZXJ6YSBsYSBzZWN0aW9uIEFQSSBgcGxhbm5lcmAuXG4gIGNvbnN0IGZ1YXNTZWN0aW9uOiBTZWN0aW9uID0gKCgpID0+IHtcbiAgICBpZiAoaXNQbGFubmVySG9tZSkgcmV0dXJuICdwbGFubmVyJ1xuICAgIGlmICghaXNIZWFkZXJIb21lICYmIHBpbm5lZEVudGl0eVR5cGUpIHJldHVybiBwaW5uZWRFbnRpdHlUeXBlXG4gICAgcmV0dXJuIHNlY3Rpb25cbiAgfSkoKVxuXG4gIC8vIEZBUXMvYWNjaW9uZXM6XG4gIC8vICAtIGhlYWRlci1ob21lIChvcmNoZXN0cmF0b3IpLCBwYXNvIDI6IGZpbHRyYWRhcyBwb3IgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2VsZWNjaW9uYWRvLlxuICAvLyAgLSBob21lcyBkZSBwcm95ZWN0by9jbGllbnRlL3RhcmVhIChzZWNjacOzbik6IGZpbHRyYWRhcyBwb3IgZWwgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2V0ZWFkby5cbiAgLy8gIC0gcGxhbm5lcjogRlVBcyBjb24gc2VjdGlvbj1wbGFubmVyLCBzaW4gZW50aXR5X3R5cGUgbmkgRkFRcy5cbiAgY29uc3QgcmVhbExpc3RzQWdlbnRJZCA9ICgoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgaXNNYWlha2VyKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgLy8gUGFzbyAxIChjb250ZXh0b3MgcmVjaWVudGVzLCBzaW4gY29udGV4dG8pOiBubyBzZSBwaWRlbiBGQVFzL0ZVQXMuXG4gICAgaWYgKGlzUmVjZW50Q29udGV4dHNTdGVwKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKGlzSGVhZGVySG9tZSkgcmV0dXJuIGlzQ29udGV4dEhvbWVTdGVwID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkXG4gICAgcmV0dXJuIGFnZW50Py5pZFxuICB9KSgpXG4gIGNvbnN0IHJlYWxMaXN0c0VudGl0eVR5cGUgPSAoKCkgPT4ge1xuICAgIGlmIChpc1BsYW5uZXJIb21lKSByZXR1cm4gJ3BsYW5uZXInXG4gICAgaWYgKCFpc0hlYWRlckhvbWUpIHJldHVybiBwaW5uZWRFbnRpdHlUeXBlXG4gICAgcmV0dXJuIGlzQ29udGV4dEhvbWVTdGVwID8gYWN0aXZlQ29udGV4dD8udHlwZSA6IHVuZGVmaW5lZFxuICB9KSgpXG4gIGNvbnN0IHsgYWN0aW9uczogYWdlbnRGdWFzLCBsb2FkaW5nOiBmdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIHJlYWxMaXN0c0FnZW50SWQsXG4gICAgZnVhc1NlY3Rpb24sXG4gICAgcmVhbExpc3RzRW50aXR5VHlwZVxuICApXG4gIGNvbnN0IHsgYWN0aW9uczogcGxhbm5lckZ1YXMsIGxvYWRpbmc6IHBsYW5uZXJGdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIGlzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkLFxuICAgICdwbGFubmVyJ1xuICApXG4gIGNvbnN0IHtcbiAgICBmYXFzOiBhZ2VudEZhcXMsXG4gICAgbG9hZGluZzogZmFxc0xvYWRpbmcsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zLFxuICB9ID0gdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIHJlYWxMaXN0c0VudGl0eVR5cGUpXG4gIGNvbnN0IGZhcXNGZXRjaFJlZiA9IHVzZVJlZjx7IGFnZW50SWQ6IHN0cmluZzsgbGFuZzogc3RyaW5nOyBlbnRpdHlUeXBlPzogc3RyaW5nIH0gfCBudWxsPihudWxsKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRhc2sgLyBwbGFubmVyOiBzb2xvIEZVQXMsIHNpbiBGQVFzLlxuICAgIGlmICghcmVhbExpc3RzQWdlbnRJZCB8fCBpc0Z1YXNPbmx5SG9tZSkgcmV0dXJuXG4gICAgY29uc3QgY3VycmVudEtleSA9IGAke3JlYWxMaXN0c0FnZW50SWR9LSR7bGFuZ30tJHtyZWFsTGlzdHNFbnRpdHlUeXBlID8/ICdhbGwnfWBcbiAgICBjb25zdCBsYXN0S2V5ID0gZmFxc0ZldGNoUmVmLmN1cnJlbnRcbiAgICAgID8gYCR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQuYWdlbnRJZH0tJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5sYW5nfS0ke2ZhcXNGZXRjaFJlZi5jdXJyZW50LmVudGl0eVR5cGUgPz8gJ2FsbCd9YFxuICAgICAgOiBudWxsXG4gICAgaWYgKGN1cnJlbnRLZXkgIT09IGxhc3RLZXkpIHtcbiAgICAgIGZhcXNGZXRjaFJlZi5jdXJyZW50ID0geyBhZ2VudElkOiByZWFsTGlzdHNBZ2VudElkLCBsYW5nLCBlbnRpdHlUeXBlOiByZWFsTGlzdHNFbnRpdHlUeXBlIH1cbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyh7IGFnZW50SWQ6IHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIGVudGl0eVR5cGU6IHJlYWxMaXN0c0VudGl0eVR5cGUgfSlcbiAgICB9XG4gIH0sIFtyZWFsTGlzdHNBZ2VudElkLCByZWFsTGlzdHNFbnRpdHlUeXBlLCBpc0Z1YXNPbmx5SG9tZSwgbGFuZywgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXSlcblxuICBjb25zdCBmYXFzID0gYWdlbnRGYXFzXG4gIGNvbnN0IGZ1YXMgPSBhZ2VudEZ1YXNcbiAgY29uc3QgZmFxc0FyZUxvYWRpbmcgPSBmYXFzTG9hZGluZ1xuICBjb25zdCBmdWFzQXJlTG9hZGluZyA9IGZ1YXNMb2FkaW5nXG5cbiAgY29uc3Qgc2hvd1JlY2VudENvbnRleHRzQmxvY2sgPSBpc1JlY2VudENvbnRleHRzU3RlcCAmJiAocmVjZW50Q29udGV4dHNMb2FkaW5nIHx8IHJlY2VudENvbnRleHRzLmxlbmd0aCA+IDApXG4gIGNvbnN0IHNob3VsZFNob3dGYXFzID1cbiAgICAhaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiZcbiAgICAhaXNGdWFzT25seUhvbWUgJiZcbiAgICAoaXNDb250ZXh0SG9tZVN0ZXAgfHwgKCFpc0hlYWRlckhvbWUgJiYgZmFxc0FjY2VzcykpICYmXG4gICAgIWlzTWFpYWtlciAmJlxuICAgIChmYXFzLmxlbmd0aCA+IDAgfHwgZmFxc0FyZUxvYWRpbmcpXG4gIGNvbnN0IHNob3VsZFNob3dGdWFzID1cbiAgICAhaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgIWlzTWFpYWtlciAmJiAoaXNDb250ZXh0SG9tZVN0ZXAgfHwgIWlzSGVhZGVySG9tZSkgJiYgKGZ1YXMubGVuZ3RoID4gMCB8fCBmdWFzQXJlTG9hZGluZylcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyA9IGlzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lICYmIHBsYW5uZXJGdWFzTG9hZGluZyAmJiBwbGFubmVyRnVhcy5sZW5ndGggPT09IDBcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCA9IGlzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lICYmIHBsYW5uZXJGdWFzLmxlbmd0aCA+IDBcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzID0gc2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyB8fCBzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50XG5cbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCA9IHNob3dQcm9qZWN0U3VtbWFyeSAmJiBhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ZBUXMgPSAhIShcbiAgICBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fFxuICAgIHNob3VsZFNob3dGYXFzIHx8XG4gICAgc2hvdWxkU2hvd0Z1YXMgfHxcbiAgICBzaG91bGRTaG93UGxhbm5lckZ1YXMgfHxcbiAgICBzaG93UHJvamVjdFN1bW1hcnlDYXJkIHx8XG4gICAgaXNNYWlha2VyXG4gIClcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRc1xuICBjb25zdCBzaG93RHluYW1pY1NlY3Rpb24gPVxuICAgIHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIHx8IHNob3VsZFNob3dGYXFzIHx8IHNob3VsZFNob3dGdWFzIHx8IHNob3VsZFNob3dQbGFubmVyRnVhcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBmaWpvIHBvciB0aXBvIGRlIGNvbnRleHRvIChpMThuKS4gQ3VzdG9tIGFnZW50cyBzaWd1ZW4gdXNhbmRvIGFnZW50LmludHJvZHVjdGlvbi5cbiAgLy8gUGxhbm5lciB1c2EgdMOtdHVsbyArIGJhamFkYSBwcm9waW9zIChgcGxhbm5lckhvbWVgKSwgbm8gZXN0ZSBncmVldGluZy5cbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNNYWlha2VyIHx8IGlzUGxhbm5lckhvbWUgfHwgaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiAnJ1xuXG4gICAgaWYgKGlzTUFJQSAmJiBwaW5uZWRFbnRpdHlUeXBlKSB7XG4gICAgICByZXR1cm4gdChgaG9tZU1lbnUuY29udGV4dEhvbWUuY29udGV4dEdyZWV0aW5nLiR7cGlubmVkRW50aXR5VHlwZX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGludHJvID0gYWdlbnQ/LmludHJvZHVjdGlvblxuICAgIGlmICghaW50cm8pIHJldHVybiAnJ1xuICAgIGlmIChBcnJheS5pc0FycmF5KGludHJvKSAmJiBpbnRyby5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW50cm9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaW50cm8ubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpbnRybyA9PT0gJ3N0cmluZycgPyBpbnRybyA6ICcnXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py5pbnRyb2R1Y3Rpb24sIGlzTWFpYWtlciwgaXNQbGFubmVySG9tZSwgaXNNQUlBLCBwaW5uZWRFbnRpdHlUeXBlLCBpc1JlY2VudENvbnRleHRzU3RlcCwgdF0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb250ZXh0OiBSZWNlbnRDb250ZXh0SXRlbSwgb3JkZXI6IG51bWJlcikgPT4ge1xuICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdENvbnRleHRTZWxlY3RlZCwgeyBvcmRlciwgdHlwZTogY29udGV4dC50eXBlIH0pXG5cbiAgICAgIGNvbnN0IGNvbnRleHRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQuaWQpXG4gICAgICBjb25zdCBjbGllbnRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQucGFyZW50cz8uY2xpZW50X2lkKVxuICAgICAgY29uc3QgcHJvamVjdElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X2lkKVxuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGNvbnRleHQucGFyZW50cz8uY2xpZW50X25hbWUgfHwgJydcbiAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X25hbWUgfHwgJydcblxuICAgICAgc2V0U2VsZWN0ZWRDb250ZXh0KGNvbnRleHQpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG5cbiAgICAgIGlmIChjb250ZXh0LnR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldENsaWVudD8uKHsgaWQ6IGNvbnRleHRJZCwgbmFtZTogY29udGV4dC5uYW1lIH0pXG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQudHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgIGlkOiBjb250ZXh0SWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhjb250ZXh0SWQpLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50eXBlID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0VGFzayh7XG4gICAgICAgICAgaWQ6IGNvbnRleHQuaWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihwcm9qZWN0SWQgIT0gbnVsbCA/IHsgcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChjbGllbnRJZCAhPSBudWxsKSB7XG4gICAgICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgICAgIGlkOiBwcm9qZWN0SWQsXG4gICAgICAgICAgICBuYW1lOiBwcm9qZWN0TmFtZSB8fCBgJHt0KCdob21lTWVudS5yZWNlbnRDb250ZXh0cy50eXBlcy5wcm9qZWN0Jyl9ICR7cHJvamVjdElkfWAsXG4gICAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWQpLFxuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIGNsaWVudE5hbWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWFpYS1pbnB1dC1yZWZvY3VzJykpXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2V2ZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgdF1cbiAgKVxuXG4gIGNvbnN0IHJlbmRlclJlY2VudENvbnRleHRzID0gKCkgPT4ge1xuICAgIGlmICghaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzXG4gICAgICAgICRmaXhlZENvbnRlbnRXaWR0aD17aXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lID8gTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCA6IHVuZGVmaW5lZH1cbiAgICAgICAgJGNvbnRlbnRHYXA9e2lzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lID8gOCA6IHVuZGVmaW5lZH1cbiAgICAgID5cbiAgICAgICAge2lzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lID8gKFxuICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRUYXNrc1NlY3Rpb24udGl0bGUnKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRUYXNrc1NlY3Rpb24uc3VidGl0bGUnKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0ICRmbHVzaFBpbGxzPXtpc0hlYWRlckNvbGxhYm9yYXRvckhvbWV9PlxuICAgICAgICAgIHtyZWNlbnRDb250ZXh0c0xvYWRpbmcgJiZcbiAgICAgICAgICAgIFJFQ0VOVF9DT05URVhUX1NLRUxFVE9OX0tFWVMubWFwKGtleSA9PiA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbiBrZXk9e2tleX0gLz4pfVxuICAgICAgICAgIHshcmVjZW50Q29udGV4dHNMb2FkaW5nICYmXG4gICAgICAgICAgICByZWNlbnRDb250ZXh0cy5tYXAoKGNvbnRleHQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxSZWNlbnRDb250ZXh0UGlsbFxuICAgICAgICAgICAgICAgIGtleT17YCR7Y29udGV4dC50eXBlfS0ke2NvbnRleHQuaWR9YH1cbiAgICAgICAgICAgICAgICBjb250ZXh0PXtjb250ZXh0fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtjb250ZXh0Lm5hbWUudHJpbSgpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQoY29udGV4dCwgaW5kZXggKyAxKX1cbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg9e2lzSGVhZGVyQ29sbGFib3JhdG9ySG9tZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdD5cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHM+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgY2hlY2tTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgY29uc3QgaXNTY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaXNBdFRvcCA9IHNjcm9sbFRvcCA9PT0gMFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMVxuXG4gICAgc2V0U2hvd1RvcEdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdFRvcClcbiAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0Qm90dG9tKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoY2hlY2tTY3JvbGwsIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrXG4gICAgICAgICRub0dhcD17IWlzUmVjZW50Q29udGV4dHNTdGVwICYmICFpc1BsYW5uZXJIb21lICYmICFncmVldGluZ31cbiAgICAgICAgJGFsaWduPXtpc1BsYW5uZXJIb21lIHx8IGlzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSA/ICdzdGFydCcgOiAnY2VudGVyJ31cbiAgICAgID5cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmICFpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICB7aXNQbGFubmVySG9tZSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlQmxvY2sgJGFsaWduPVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZSAkc2l6ZT1cIm1kXCIgJGFsaWduPVwic3RhcnRcIj5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnBsYW5uZXJIb21lLnRpdGxlJyl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVN1YnRpdGxlICRhbGlnbj1cInN0YXJ0XCI+e3QoJ2hvbWVNZW51LnBsYW5uZXJIb21lLnN1YnRpdGxlJyl9PC9TQ0NBSUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlQmxvY2s+XG4gICAgICAgICl9XG4gICAgICAgIHshaXNQbGFubmVySG9tZSAmJiBpc1JlY2VudENvbnRleHRzU3RlcCAmJiBpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZUJsb2NrICRhbGlnbj1cInN0YXJ0XCIgJGZ1bGxXaWR0aD5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZSAkc2l6ZT1cImNvbnRleHRcIiAkYWxpZ249XCJzdGFydFwiICRmdWxsV2lkdGg+XG4gICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ncmVldGluZycsIHsgbmFtZTogdXNlci5maXJzdE5hbWUgfSl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVN1YnRpdGxlICRhbGlnbj1cInN0YXJ0XCIgJGNvbGxhYm9yYXRvckhvbWU+XG4gICAgICAgICAgICAgIHt0KFxuICAgICAgICAgICAgICAgIGlzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lXG4gICAgICAgICAgICAgICAgICA/ICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VycydcbiAgICAgICAgICAgICAgICAgIDogJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlQmxvY2s+XG4gICAgICAgICl9XG4gICAgICAgIHshaXNQbGFubmVySG9tZSAmJiBpc1JlY2VudENvbnRleHRzU3RlcCAmJiAhaXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlPnt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ncmVldGluZycsIHsgbmFtZTogdXNlci5maXJzdE5hbWUgfSl9PC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNDb2xsYWJvcmF0b3JSb2xlKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICAgID8gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGUnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmIGdyZWV0aW5nICYmIDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz59XG4gICAgICA8L1NDQ0FJSG9tZU1haWFIZWFkZXJTdGFjaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVDb250YWluZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfT5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICA8U0NDQUlIb21lQ29udGVudFxuICAgICAgICByZWY9e2NvbnRlbnRDb250YWluZXJSZWZ9XG4gICAgICAgIHNob3dGQVFzPXtob21lU2Nyb2xsYWJsZUxheW91dH1cbiAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAkZmxvYXRpbmdDdXN0b21DZW50ZXI9e2Zsb2F0aW5nQ3VzdG9tQ2VudGVyfVxuICAgICAgICAkY2VudGVyVmVydGljYWxseT17aXNQbGFubmVySG9tZX1cbiAgICAgICAgJGZpeGVkQ29udGVudFdpZHRoPXtpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgPyBNQUlBX0hFQURFUl9DT0xMQUJPUkFUT1JfSE9NRV9DT05URU5UX1dJRFRIX1BYIDogdW5kZWZpbmVkfVxuICAgICAgPlxuICAgICAgICA8U0NDQUlIb21lQ29udGVudElubmVyXG4gICAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICAkZmxvYXRpbmdDdXN0b21DZW50ZXI9e2Zsb2F0aW5nQ3VzdG9tQ2VudGVyfVxuICAgICAgICAgICRjZW50ZXJWZXJ0aWNhbGx5PXtpc1BsYW5uZXJIb21lfVxuICAgICAgICAgICRhbGlnblN0YXJ0PXtpc0hlYWRlckNvbGxhYm9yYXRvckhvbWV9XG4gICAgICAgICAgJGhlYWRlckNvbGxhYm9yYXRvckhvbWU9e2lzSGVhZGVyQ29sbGFib3JhdG9ySG9tZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICAgICRhbGlnbj17aXNQbGFubmVySG9tZSB8fCBpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgPyAnc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlckhlYWRlckNvbnRlbnQoKX1cblxuICAgICAgICAgICAge3NlY3Rpb24gIT09ICdwcm9qZWN0JyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24gZXhwYW5kZWQ9e2V4cGFuZGVkfT57IWlzTUFJQSAmJiBhZ2VudD8uaW50cm9kdWN0aW9ufTwvU0NDQUlIb21lSW50cm9kdWN0aW9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUhlYWRlcj5cbiAgICAgICAgICB7c2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCAmJiAoXG4gICAgICAgICAgICA8U0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Qgb25DbGljaz17aGFuZGxlcnMucHJvamVjdFN1bW1hcnl9PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgICAgPFRlbXBsYXRlR3JhZGllbnRJY29uIGhlaWdodD17MjR9IHdpZHRoPXsyNH0gLz5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT57dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkudGl0bGUnKX08L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkuZGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgPC9TQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtzaG93RHluYW1pY1NlY3Rpb24gJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uICRncm93PXtpc01haWFrZXJ9ICRhbGlnblN0YXJ0PXtpc0hlYWRlckNvbGxhYm9yYXRvckhvbWV9PlxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyA/IChcbiAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicGxhbm5lclwiXG4gICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zPXtwbGFubmVyRnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e3BsYW5uZXJGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnQgPyAoXG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNvbGxhYm9yYXRvclNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ob3Vyc1NlY3Rpb24udGl0bGUnKX1cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwbGFubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgICAgYWN0aW9ucz17cGxhbm5lckZ1YXN9XG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e3BsYW5uZXJGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3JlbmRlclJlY2VudENvbnRleHRzKCl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RmFxcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgc2hvd0ZBUXM9e3Nob3dGQVFzfVxuICAgICAgICAgICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBsYW5nPXtsYW5nfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgZmFxcz17ZmFxc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2ZhcXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RnVhcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlVc2VkQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17ZnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2Z1YXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc01haWFrZXIgPyA8Q2hhdEFJSG9tZU1haWFrZXIgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudElubmVyPlxuICAgICAgPC9TQ0NBSUhvbWVDb250ZW50PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxF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
599
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lVGl0bGVCbG9jayIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIiwiTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJpc0NvbGxhYm9yYXRvclJvbGUiLCJ1c2VSZXNpemVMaXN0ZW5lciIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwidXNlUmVjZW50Q29udGV4dHMiLCJNQUlBSXNvbG9nbyIsIlRlbXBsYXRlR3JhZGllbnRJY29uIiwiQ2hhdEFJSG9tZU1haWFrZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJGcmVxdWVudFF1ZXN0aW9ucyIsIlJFQ0VOVF9DT05URVhUU19MSU1JVCIsIlJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IiLCJSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTIiwiUmVjZW50Q29udGV4dFBpbGwiLCJfcmVmIiwiY29udGV4dCIsImxhYmVsIiwib25DbGljayIsIl9yZWYkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwidHlwZSIsIiRmdWxsV2lkdGgiLCJjaGlsZHJlbiIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJyZWYiLCJ0aXRsZSIsInBhcnNlTnVtZXJpY0lkIiwidmFsdWUiLCJwYXJzZWQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJyb2xlSWQiLCJub3JtYWxpemVkUm9sZUlkIiwiQ0xFVkVMIiwiRElSRUNUT1IiLCJQUk9KRUNUX01BTkFHRVIiLCJTZXQiLCJDaGF0QUlIb21lIiwiX3JlZjIiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJldmVudCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0UHJvamVjdCIsInNldFRhc2siLCJzZXRDaGlwc1Byb2plY3QiLCJpc01BSUEiLCJmbG9hdGluZ0N1c3RvbUNlbnRlciIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJpc0hlYWRlckhvbWUiLCJpc09yY2hlc3RyYXRvciIsImlzUGxhbm5lckhvbWUiLCJpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lIiwiYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyIsInJvbGVfaWQiLCJfdXNlUmVjZW50Q29udGV4dHMiLCJlbmFibGVkIiwibGltaXQiLCJmZXRjaGVkUmVjZW50Q29udGV4dHMiLCJjb250ZXh0cyIsInJlY2VudENvbnRleHRzTG9hZGluZyIsImxvYWRpbmciLCJyZWNlbnRDb250ZXh0cyIsImZpbHRlciIsImhhcyIsImhhc1Bpbm5lZENvbnRleHQiLCJpZCIsInByb2plY3RJZCIsImlzUmVjZW50Q29udGV4dHNTdGVwIiwiaXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lIiwiaXNIZWFkZXJDb2xsYWJvcmF0b3JIb3Vyc0hvbWUiLCJpc0NvbnRleHRIb21lU3RlcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkQ29udGV4dCIsInNldFNlbGVjdGVkQ29udGV4dCIsImFjdGl2ZUNvbnRleHQiLCJuYW1lIiwicHJvamVjdE5hbWUiLCJwaW5uZWRFbnRpdHlUeXBlIiwiaXNUYXNrQ29udGV4dCIsImlzRnVhc09ubHlIb21lIiwiZnVhc1NlY3Rpb24iLCJyZWFsTGlzdHNBZ2VudElkIiwicmVhbExpc3RzRW50aXR5VHlwZSIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsImFnZW50RnVhcyIsImFjdGlvbnMiLCJmdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5VXNlZEFjdDIiLCJwbGFubmVyRnVhcyIsInBsYW5uZXJGdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5QXNrZWRRdSIsImFnZW50RmFxcyIsImZhcXMiLCJmYXFzTG9hZGluZyIsImhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsImZhcXNGZXRjaFJlZiIsIl9mYXFzRmV0Y2hSZWYkY3VycmVudCIsImN1cnJlbnRLZXkiLCJjb25jYXQiLCJsYXN0S2V5IiwiY3VycmVudCIsImFnZW50SWQiLCJlbnRpdHlUeXBlIiwiZnVhcyIsImZhcXNBcmVMb2FkaW5nIiwiZnVhc0FyZUxvYWRpbmciLCJzaG93UmVjZW50Q29udGV4dHNCbG9jayIsImxlbmd0aCIsInNob3VsZFNob3dGYXFzIiwic2hvdWxkU2hvd0Z1YXMiLCJzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nIiwic2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCIsInNob3VsZFNob3dQbGFubmVyRnVhcyIsInNob3dQcm9qZWN0U3VtbWFyeUNhcmQiLCJlbnRpdHkiLCJzaG93RkFRcyIsImhvbWVTY3JvbGxhYmxlTGF5b3V0Iiwic2hvd0R5bmFtaWNTZWN0aW9uIiwiY29udGVudENvbnRhaW5lclJlZiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1RvcEdyYWRpZW50Iiwic2V0U2hvd1RvcEdyYWRpZW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93Qm90dG9tR3JhZGllbnQiLCJzZXRTaG93Qm90dG9tR3JhZGllbnQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzU2Nyb2xsaW5nIiwic2V0SXNTY3JvbGxpbmciLCJzY3JvbGxUaW1lb3V0UmVmIiwiZ3JlZXRpbmciLCJpbnRybyIsImludHJvZHVjdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQiLCJvcmRlciIsIl9jb250ZXh0JHBhcmVudHMiLCJfY29udGV4dCRwYXJlbnRzMiIsIl9jb250ZXh0JHBhcmVudHMzIiwiX2NvbnRleHQkcGFyZW50czQiLCJhaUNoYXRDb250ZXh0U2VsZWN0ZWQiLCJjb250ZXh0SWQiLCJjbGllbnRJZCIsInBhcmVudHMiLCJjbGllbnRfaWQiLCJwcm9qZWN0X2lkIiwiY2xpZW50TmFtZSIsImNsaWVudF9uYW1lIiwicHJvamVjdF9uYW1lIiwiX29iamVjdFNwcmVhZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwicmVuZGVyUmVjZW50Q29udGV4dHMiLCIkZml4ZWRDb250ZW50V2lkdGgiLCIkY29udGVudEdhcCIsIiRmbHVzaFBpbGxzIiwibWFwIiwia2V5IiwiaW5kZXgiLCJ0cmltIiwiY2hlY2tTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwiY3JlYXRlZF9ieSIsImlzX2RlbGV0ZWQiLCJjb250ZW50QWxpZ25TdGFydCIsIiRub0dhcCIsIiRhbGlnbiIsIiRzaXplIiwiZmlyc3ROYW1lIiwiJGNvbGxhYm9yYXRvckhvbWUiLCJmaXhlZEhvbWVDb250ZW50V2lkdGgiLCIkYWxpZ25TdGFydCIsIiRzaG93IiwiJGlzQWdlbnRWaWV3IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGNlbnRlclZlcnRpY2FsbHkiLCIkaGVhZGVyQ29sbGFib3JhdG9ySG9tZSIsIiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSIsIiRnYXAiLCIkbWF4V2lkdGgiLCJwcm9qZWN0U3VtbWFyeSIsIiRncm93IiwidmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgTGlzdENoZWNrbGlzdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0xpc3RDaGVja2xpc3QnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcblxuaW1wb3J0IHtcbiAgU0NDQUlIb21lQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVDb250ZW50LFxuICBTQ0NBSUhvbWVDb250ZW50SW5uZXIsXG4gIFNDQ0FJSG9tZUdyYWRpZW50VG9wLFxuICBTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSxcbiAgU0NDQUlIb21lSGVhZGVyLFxuICBTQ0NBSUhvbWVHcmVldGluZyxcbiAgU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVBZ2VudEluZm8sXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24sXG4gIFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0LFxuICBTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24sXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCxcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUsXG4gIFNDQ0FJSG9tZUljb25Db250YWluZXIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxuICBTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2ssXG4gIFNDQ0FJSG9tZVRpdGxlLFxuICBTQ0NBSUhvbWVUaXRsZUJsb2NrLFxuICBTQ0NBSUhvbWVTdWJ0aXRsZSxcbiAgU0NDQUlIb21lRHluYW1pY1NlY3Rpb24sXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGUsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblN1YnRpdGxlLFxuICBTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24sXG4gIE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFgsXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCwgdHlwZSBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlLCBpc0NvbGxhYm9yYXRvclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgb3JjaGVzdHJhdG9ySGFzSG91cnNTdWJhZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL29yY2hlc3RyYXRvclN1YmFnZW50cydcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgfSBmcm9tICcuLi8uLi9hdG9tcy9GcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5pbXBvcnQgeyBGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi9hdG9tcy9GcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5pbXBvcnQgeyB1c2VSZWNlbnRDb250ZXh0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlY2VudENvbnRleHRzJ1xuaW1wb3J0IHR5cGUgeyBSZWNlbnRDb250ZXh0SXRlbSwgUmVjZW50Q29udGV4dFR5cGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcbmltcG9ydCB7IFRlbXBsYXRlR3JhZGllbnRJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGVtcGxhdGVHcmFkaWVudEljb24nXG5pbXBvcnQgeyBDaGF0QUlIb21lTWFpYWtlciB9IGZyb20gJy4vQ2hhdEFJSG9tZU1haWFrZXInXG5cbnR5cGUgQ2hhdEFJSG9tZVByb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICBmdWFJZD86IHN0cmluZ1xuICApID0+IHZvaWRcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAoKSA9PiB2b2lkPlxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgZmxvYXRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBlbnVtIEZyZXF1ZW50UXVlc3Rpb25zIHtcbiAgcmVudGFiaWxpZGFkX3Byb3llY3RvID0gJ3JlbnRhYmlsaWRhZF9wcm95ZWN0bycsXG4gIGF2YW5jZV9wcm95ZWN0byA9ICdhdmFuY2VfcHJveWVjdG8nLFxufVxuXG5jb25zdCBSRUNFTlRfQ09OVEVYVFNfTElNSVQgPSA5XG5jb25zdCBSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SID0gJyM0RDRENEQnXG5jb25zdCBSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTID0gW1xuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMScsXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0yJyxcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTMnLFxuXVxuXG5jb25zdCBSZWNlbnRDb250ZXh0UGlsbCA9ICh7XG4gIGNvbnRleHQsXG4gIGxhYmVsLFxuICBvbkNsaWNrLFxuICBmdWxsV2lkdGggPSBmYWxzZSxcbn06IHtcbiAgY29udGV4dDogUmVjZW50Q29udGV4dEl0ZW1cbiAgbGFiZWw6IHN0cmluZ1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIGZ1bGxXaWR0aD86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtsYWJlbF0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29uQ2xpY2t9ICRmdWxsV2lkdGg9e2Z1bGxXaWR0aH0+XG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgICB7Y29udGV4dC50eXBlID09PSAndGFzaycgPyAoXG4gICAgICAgICAgPExpc3RDaGVja2xpc3QgY29sb3I9e1JFQ0VOVF9DT05URVhUX0lDT05fQ09MT1J9IHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGdldENvbnRleHRNZW50aW9uSWNvbihjb250ZXh0LnR5cGUsIFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IsIHVuZGVmaW5lZCwgMTQpXG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbj5cbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQgcmVmPXt0ZXh0UmVmfT5cbiAgICAgICAge3Nob3dUb29sdGlwID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtsYWJlbH0+XG4gICAgICAgICAgICA8c3Bhbj57bGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBsYWJlbFxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQ+XG4gICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbD5cbiAgKVxufVxuXG5jb25zdCBwYXJzZU51bWVyaWNJZCA9ICh2YWx1ZT86IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IG51bGxcbn1cblxuY29uc3QgZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyA9IChyb2xlSWQ/OiBDT1JVc2VyUm9sZSB8IG51bWJlciB8IHN0cmluZyk6IFNldDxSZWNlbnRDb250ZXh0VHlwZT4gPT4ge1xuICBjb25zdCBub3JtYWxpemVkUm9sZUlkID0gTnVtYmVyKHJvbGVJZClcbiAgaWYgKFxuICAgIG5vcm1hbGl6ZWRSb2xlSWQgPT09IENPUlVzZXJSb2xlLkNMRVZFTCB8fFxuICAgIG5vcm1hbGl6ZWRSb2xlSWQgPT09IENPUlVzZXJSb2xlLkRJUkVDVE9SIHx8XG4gICAgbm9ybWFsaXplZFJvbGVJZCA9PT0gQ09SVXNlclJvbGUuUFJPSkVDVF9NQU5BR0VSXG4gICkge1xuICAgIHJldHVybiBuZXcgU2V0KFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzayddKVxuICB9XG4gIGlmIChpc0NvbGxhYm9yYXRvclJvbGUocm9sZUlkKSkge1xuICAgIHJldHVybiBuZXcgU2V0KFsndGFzayddKVxuICB9XG4gIHJldHVybiBuZXcgU2V0KClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWUgPSAoeyBoYW5kbGVycywgb25TdGFydENoYXQsIGV4cGFuZGVkLCBmbG9hdGluZyB9OiBDaGF0QUlIb21lUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudCwgc2VjdGlvbiwgY2xpZW50LCBwcm9qZWN0LCB0YXNrLCBjaGlwc1Byb2plY3QsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgc2V0Q2hpcHNQcm9qZWN0IH0gPVxuICAgIHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBmbG9hdGluZ0N1c3RvbUNlbnRlciA9ICEhKGZsb2F0aW5nICYmIGFnZW50Py50eXBlID09PSAnY3VzdG9tJylcbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQnIDogaTE4bi5sYW5ndWFnZVxuXG4gIGNvbnN0IHN1bW1hcnlQcm9qZWN0QWNjZXNzID1cbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIChTdHJpbmcod2luZG93Lk1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgfHxcbiAgICAgIFN0cmluZyh3aW5kb3cubWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpXG4gIGNvbnN0IGZhcXNBY2Nlc3MgPSB0cnVlXG4gIGNvbnN0IHNob3dQcm9qZWN0U3VtbWFyeSA9ICEhKGlzTUFJQSAmJiBzdW1tYXJ5UHJvamVjdEFjY2VzcylcbiAgLy8gRWwgb3JjaGVzdHJhdG9yICh0eXBlID09PSAnb3JjaGVzdHJhdG9yJykgbXVlc3RyYSBGQVFzL0ZVQXMgYWdyZWdhZGFzIGRlIHN1cyBzdWJhZ2VudGVzLFxuICAvLyBhc8OtIHF1ZSBOTyBzZSB0cmF0YSBjb21vIG1haWFrZXIgYWPDoS5cbiAgY29uc3QgaXNNYWlha2VyID0gaXNNYWlha2VyQWdlbnQoYWdlbnQpXG4gIGNvbnN0IGlzSGVhZGVySG9tZSA9IGlzTUFJQSAmJiBzZWN0aW9uID09PSAnaGVhZGVyJyAmJiBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgLy8gRWwgb3JjaGVzdHJhdG9yIHVzYSBlbCBob21lIGVuIDIgcGFzb3MgKGNvbnRleHRvcyByZWNpZW50ZXMg4oaUIEZBUXMvRlVBcykgZW4gaGVhZGVyL3Byb2plY3QvY2xpZW50L3Rhc2suXG4gIC8vIEVuIHByb2plY3QvY2xpZW50L3Rhc2ssIGFsIGxpbXBpYXIgZWwgY29udGV4dG8gKHAuIGVqLiBhbCByZXNlbGVjY2lvbmFyIE1BSUFcbiAgLy8gZGVzZGUgZWwgbGlzdGFkbyBkZSBhZ2VudGVzKSBzZSBtdWVzdHJhIGVsIHNlbGVjdG9yIGRlIGNvbnRleHRvcyByZWNpZW50ZXMgZW4gbHVnYXIgZGUgdW4gaG9tZSB2YWPDrW8uXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9yID0gaXNNQUlBICYmIGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICAvLyBQbGFubmVyOiBob21lIGRlIEZVQXMgZGVsIG9yY2hlc3RyYXRvciAoc2luIHNlbGVjdG9yIGRlIGNvbnRleHRvcykuXG4gIC8vIFNpIGVsIHVzdWFyaW8gbmF2ZWdhIGEgTWFpYWtlciB1IG90cm8gYWdlbnRlLCBzZWN0aW9uIHNpZ3VlIHNpZW5kbyBgcGxhbm5lcmAgcGVybyB5YSBubyBlcyBlc3RlIGhvbWUuXG4gIGNvbnN0IGlzUGxhbm5lckhvbWUgPSBzZWN0aW9uID09PSAncGxhbm5lcicgJiYgaXNPcmNoZXN0cmF0b3JcbiAgLy8gSG9tZXMgZGUgc2VjY2nDs24gKHByb2plY3QvY2xpZW50L3Rhc2spOiBzaW4gaXNvbG9nbywgY29udGVuaWRvIHRvcC1sZWZ0LCBjb2x1bW5hIDQ1OHB4IGNlbnRyYWRhLlxuICBjb25zdCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lID0gaXNPcmNoZXN0cmF0b3IgJiYgIWlzSGVhZGVySG9tZSAmJiAhaXNQbGFubmVySG9tZVxuICBjb25zdCBhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzID0gdXNlTWVtbygoKSA9PiBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzKHVzZXIucm9sZV9pZCksIFt1c2VyLnJvbGVfaWRdKVxuICBjb25zdCB7IGNvbnRleHRzOiBmZXRjaGVkUmVjZW50Q29udGV4dHMsIGxvYWRpbmc6IHJlY2VudENvbnRleHRzTG9hZGluZyB9ID0gdXNlUmVjZW50Q29udGV4dHMoe1xuICAgIGVuYWJsZWQ6IGlzT3JjaGVzdHJhdG9yICYmICFpc1BsYW5uZXJIb21lLFxuICAgIGxpbWl0OiBSRUNFTlRfQ09OVEVYVFNfTElNSVQsXG4gIH0pXG4gIGNvbnN0IHJlY2VudENvbnRleHRzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBmZXRjaGVkUmVjZW50Q29udGV4dHMuZmlsdGVyKGNvbnRleHQgPT4gYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcy5oYXMoY29udGV4dC50eXBlKSksXG4gICAgW2ZldGNoZWRSZWNlbnRDb250ZXh0cywgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlc11cbiAgKVxuXG4gIC8vIEhvbWUgZGVsIG9yY2hlc3RyYXRvciBlbiAyIHBhc29zOlxuICAvLyAgLSBQYXNvIDEgKHNpbiBjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gc29sbyBsb3MgY29udGV4dG9zIHJlY2llbnRlcy5cbiAgLy8gIC0gUGFzbyAyIChjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gbGFzIEZBUXMvYWNjaW9uZXMgcXVlIHJlZmVyZW5jaWFuIGVzZSBjb250ZXh0by5cbiAgLy8gVm9sdmVyIGFsIHBhc28gMSA9IHF1aXRhciBlbCBjaGlwIChsaW1waWEgZWwgY29udGV4dG8gZ2xvYmFsKS5cbiAgLy8gUGxhbm5lciBubyB1c2EgZXN0ZSBmbHVqbzogc2llbXByZSBob21lIGRlIEZVQXMuXG4gIGNvbnN0IGhhc1Bpbm5lZENvbnRleHQgPSAhISh0YXNrPy5pZCB8fCBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCB8fCBjbGllbnQ/LmlkIHx8IHByb2plY3Q/LmlkKVxuICBjb25zdCBpc1JlY2VudENvbnRleHRzU3RlcCA9IGlzT3JjaGVzdHJhdG9yICYmICFoYXNQaW5uZWRDb250ZXh0ICYmICFpc1BsYW5uZXJIb21lXG4gIGNvbnN0IGlzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSA9IHNlY3Rpb24gPT09ICdoZWFkZXInICYmIGlzQ29sbGFib3JhdG9yUm9sZSh1c2VyLnJvbGVfaWQpICYmIGlzUmVjZW50Q29udGV4dHNTdGVwXG4gIGNvbnN0IGlzSGVhZGVyQ29sbGFib3JhdG9ySG91cnNIb21lID0gaXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lICYmIG9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQoYWdlbnQpXG4gIGNvbnN0IGlzQ29udGV4dEhvbWVTdGVwID0gaXNIZWFkZXJIb21lICYmIGhhc1Bpbm5lZENvbnRleHRcblxuICAvLyBDb250ZXh0byBhY3Rpdm8gcGFyYSBkZXJpdmFyIEZBUXMvYWNjaW9uZXMgKHBhc28gMikuIFByZWZlcmltb3MgZWwgcGlsbCBjbGlja2VhZG87XG4gIC8vIHNpIG5vLCBsbyByZWNvbnN0cnVpbW9zIGRlc2RlIGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgY29uc3QgW3NlbGVjdGVkQ29udGV4dCwgc2V0U2VsZWN0ZWRDb250ZXh0XSA9IHVzZVN0YXRlPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhhc1Bpbm5lZENvbnRleHQpIHNldFNlbGVjdGVkQ29udGV4dChudWxsKVxuICB9LCBbaGFzUGlubmVkQ29udGV4dF0pXG5cbiAgY29uc3QgYWN0aXZlQ29udGV4dCA9IHVzZU1lbW88UmVjZW50Q29udGV4dEl0ZW0gfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkQ29udGV4dCkgcmV0dXJuIHNlbGVjdGVkQ29udGV4dFxuICAgIGlmICghaXNDb250ZXh0SG9tZVN0ZXApIHJldHVybiBudWxsXG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4geyB0eXBlOiAndGFzaycsIGlkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUgfVxuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCkgcmV0dXJuIHsgdHlwZTogJ3Byb2plY3QnLCBpZDogY2hpcHNQcm9qZWN0LnByb2plY3RJZCwgbmFtZTogY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lIH1cbiAgICBpZiAoY2xpZW50Py5pZCkgcmV0dXJuIHsgdHlwZTogJ2NsaWVudCcsIGlkOiBjbGllbnQuaWQsIG5hbWU6IGNsaWVudC5uYW1lIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgc2VsZWN0ZWRDb250ZXh0LFxuICAgIGlzQ29udGV4dEhvbWVTdGVwLFxuICAgIHRhc2s/LmlkLFxuICAgIHRhc2s/Lm5hbWUsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICAvLyBlbnRpdHlfdHlwZSBkZWwgY29udGV4dG8gcGluZWFkbyAocHJvamVjdC9jbGllbnQvdGFzayksIHRvbWFkbyBkZWwgY29udGV4dG8gZ2xvYmFsLlxuICAvLyBBcGxpY2EgdGFudG8gYWwgYWJyaXIgTUFJQSBkZXNkZSB1bmEgc2VjY2nDs24gZXNwZWPDrWZpY2EgY29tbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gIGNvbnN0IHBpbm5lZEVudGl0eVR5cGUgPSB1c2VNZW1vPFJlY2VudENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4gJ3Rhc2snXG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IHByb2plY3Q/LmlkKSByZXR1cm4gJ3Byb2plY3QnXG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiAnY2xpZW50J1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW3Rhc2s/LmlkLCBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCwgcHJvamVjdD8uaWQsIGNsaWVudD8uaWRdKVxuXG4gIC8vIEVuIHByb2plY3QvY2xpZW50L3Rhc2ssIGNvbiBlbCByZWluaWNpbyBkZSBjb250ZXh0byBlbCB1c3VhcmlvIHB1ZWRlIHBpbmVhciB1biBjb250ZXh0byBkZSB1blxuICAvLyB0aXBvIGRpc3RpbnRvIGFsIGRlIGxhIHNlY2Npw7NuIGRlIGFwZXJ0dXJhIChwLiBlai4gdW4gcHJvamVjdCBhYnJpZW5kbyBkZXNkZSB1bmEgdGFyZWEsIG9cbiAgLy8gdmljZXZlcnNhKS4gTGFzIEZBUXMvRlVBcyBkZWJlbiBkZXBlbmRlciBkZWwgY29udGV4dG8gcmVhbG1lbnRlIHBpbmVhZG8sIG5vIGRlIGxhIHNlY2Npw7NuIGZpamEuXG4gIC8vIEVuIGVsIGhlYWRlciBzZSBtYW50aWVuZSBsYSBsw7NnaWNhIGV4aXN0ZW50ZSAoYmFzYWRhIGVuIGVsIGNvbnRleHRvIHNlbGVjY2lvbmFkbyAvIGFjdGl2ZUNvbnRleHQpLlxuICBjb25zdCBpc1Rhc2tDb250ZXh0ID0gIWlzSGVhZGVySG9tZSAmJiBwaW5uZWRFbnRpdHlUeXBlID09PSAndGFzaydcbiAgLy8gU29sbyBGVUFzIChzaW4gRkFRcyk6IHRhc2sgcGFuZWwgbyBwbGFubmVyLlxuICBjb25zdCBpc0Z1YXNPbmx5SG9tZSA9IGlzUGxhbm5lckhvbWUgfHwgaXNUYXNrQ29udGV4dFxuICAvLyBgc2VjdGlvbmAgcXVlIHNlIGNvbnN1bHRhIHBhcmEgbGFzIEZVQXM6IGVuIG5vLWhlYWRlciBzaWd1ZSBlbCB0aXBvIGRlIGNvbnRleHRvIHBpbmVhZG8uXG4gIC8vIEVuIHBsYW5uZXIgc2UgZnVlcnphIGxhIHNlY3Rpb24gQVBJIGBwbGFubmVyYC5cbiAgY29uc3QgZnVhc1NlY3Rpb246IFNlY3Rpb24gPSAoKCkgPT4ge1xuICAgIGlmIChpc1BsYW5uZXJIb21lKSByZXR1cm4gJ3BsYW5uZXInXG4gICAgaWYgKCFpc0hlYWRlckhvbWUgJiYgcGlubmVkRW50aXR5VHlwZSkgcmV0dXJuIHBpbm5lZEVudGl0eVR5cGVcbiAgICByZXR1cm4gc2VjdGlvblxuICB9KSgpXG5cbiAgLy8gRkFRcy9hY2Npb25lczpcbiAgLy8gIC0gaGVhZGVyLWhvbWUgKG9yY2hlc3RyYXRvciksIHBhc28gMjogZmlsdHJhZGFzIHBvciBgZW50aXR5X3R5cGVgIGRlbCBjb250ZXh0byBzZWxlY2Npb25hZG8uXG4gIC8vICAtIGhvbWVzIGRlIHByb3llY3RvL2NsaWVudGUvdGFyZWEgKHNlY2Npw7NuKTogZmlsdHJhZGFzIHBvciBlbCBgZW50aXR5X3R5cGVgIGRlbCBjb250ZXh0byBzZXRlYWRvLlxuICAvLyAgLSBwbGFubmVyOiBGVUFzIGNvbiBzZWN0aW9uPXBsYW5uZXIsIHNpbiBlbnRpdHlfdHlwZSBuaSBGQVFzLlxuICBjb25zdCByZWFsTGlzdHNBZ2VudElkID0gKCgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSB8fCBpc01haWFrZXIpIHJldHVybiB1bmRlZmluZWRcbiAgICAvLyBQYXNvIDEgKGNvbnRleHRvcyByZWNpZW50ZXMsIHNpbiBjb250ZXh0byk6IG5vIHNlIHBpZGVuIEZBUXMvRlVBcy5cbiAgICBpZiAoaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiB1bmRlZmluZWRcbiAgICBpZiAoaXNIZWFkZXJIb21lKSByZXR1cm4gaXNDb250ZXh0SG9tZVN0ZXAgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWRcbiAgICByZXR1cm4gYWdlbnQ/LmlkXG4gIH0pKClcbiAgY29uc3QgcmVhbExpc3RzRW50aXR5VHlwZSA9ICgoKSA9PiB7XG4gICAgaWYgKGlzUGxhbm5lckhvbWUpIHJldHVybiAncGxhbm5lcidcbiAgICBpZiAoIWlzSGVhZGVySG9tZSkgcmV0dXJuIHBpbm5lZEVudGl0eVR5cGVcbiAgICByZXR1cm4gaXNDb250ZXh0SG9tZVN0ZXAgPyBhY3RpdmVDb250ZXh0Py50eXBlIDogdW5kZWZpbmVkXG4gIH0pKClcbiAgY29uc3QgeyBhY3Rpb25zOiBhZ2VudEZ1YXMsIGxvYWRpbmc6IGZ1YXNMb2FkaW5nIH0gPSB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMoXG4gICAgcmVhbExpc3RzQWdlbnRJZCxcbiAgICBmdWFzU2VjdGlvbixcbiAgICByZWFsTGlzdHNFbnRpdHlUeXBlXG4gIClcbiAgY29uc3QgeyBhY3Rpb25zOiBwbGFubmVyRnVhcywgbG9hZGluZzogcGxhbm5lckZ1YXNMb2FkaW5nIH0gPSB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMoXG4gICAgaXNIZWFkZXJDb2xsYWJvcmF0b3JIb3Vyc0hvbWUgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWQsXG4gICAgJ3BsYW5uZXInXG4gIClcbiAgY29uc3Qge1xuICAgIGZhcXM6IGFnZW50RmFxcyxcbiAgICBsb2FkaW5nOiBmYXFzTG9hZGluZyxcbiAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMsXG4gIH0gPSB1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMocmVhbExpc3RzQWdlbnRJZCwgbGFuZywgcmVhbExpc3RzRW50aXR5VHlwZSlcbiAgY29uc3QgZmFxc0ZldGNoUmVmID0gdXNlUmVmPHsgYWdlbnRJZDogc3RyaW5nOyBsYW5nOiBzdHJpbmc7IGVudGl0eVR5cGU/OiBzdHJpbmcgfSB8IG51bGw+KG51bGwpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVGFzayAvIHBsYW5uZXI6IHNvbG8gRlVBcywgc2luIEZBUXMuXG4gICAgaWYgKCFyZWFsTGlzdHNBZ2VudElkIHx8IGlzRnVhc09ubHlIb21lKSByZXR1cm5cbiAgICBjb25zdCBjdXJyZW50S2V5ID0gYCR7cmVhbExpc3RzQWdlbnRJZH0tJHtsYW5nfS0ke3JlYWxMaXN0c0VudGl0eVR5cGUgPz8gJ2FsbCd9YFxuICAgIGNvbnN0IGxhc3RLZXkgPSBmYXFzRmV0Y2hSZWYuY3VycmVudFxuICAgICAgPyBgJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5hZ2VudElkfS0ke2ZhcXNGZXRjaFJlZi5jdXJyZW50Lmxhbmd9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQuZW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgICA6IG51bGxcbiAgICBpZiAoY3VycmVudEtleSAhPT0gbGFzdEtleSkge1xuICAgICAgZmFxc0ZldGNoUmVmLmN1cnJlbnQgPSB7IGFnZW50SWQ6IHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIGVudGl0eVR5cGU6IHJlYWxMaXN0c0VudGl0eVR5cGUgfVxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9KVxuICAgIH1cbiAgfSwgW3JlYWxMaXN0c0FnZW50SWQsIHJlYWxMaXN0c0VudGl0eVR5cGUsIGlzRnVhc09ubHlIb21lLCBsYW5nLCBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNdKVxuXG4gIGNvbnN0IGZhcXMgPSBhZ2VudEZhcXNcbiAgY29uc3QgZnVhcyA9IGFnZW50RnVhc1xuICBjb25zdCBmYXFzQXJlTG9hZGluZyA9IGZhcXNMb2FkaW5nXG4gIGNvbnN0IGZ1YXNBcmVMb2FkaW5nID0gZnVhc0xvYWRpbmdcblxuICBjb25zdCBzaG93UmVjZW50Q29udGV4dHNCbG9jayA9IGlzUmVjZW50Q29udGV4dHNTdGVwICYmIChyZWNlbnRDb250ZXh0c0xvYWRpbmcgfHwgcmVjZW50Q29udGV4dHMubGVuZ3RoID4gMClcbiAgY29uc3Qgc2hvdWxkU2hvd0ZhcXMgPVxuICAgICFpc1JlY2VudENvbnRleHRzU3RlcCAmJlxuICAgICFpc0Z1YXNPbmx5SG9tZSAmJlxuICAgIChpc0NvbnRleHRIb21lU3RlcCB8fCAoIWlzSGVhZGVySG9tZSAmJiBmYXFzQWNjZXNzKSkgJiZcbiAgICAhaXNNYWlha2VyICYmXG4gICAgKGZhcXMubGVuZ3RoID4gMCB8fCBmYXFzQXJlTG9hZGluZylcbiAgY29uc3Qgc2hvdWxkU2hvd0Z1YXMgPVxuICAgICFpc1JlY2VudENvbnRleHRzU3RlcCAmJiAhaXNNYWlha2VyICYmIChpc0NvbnRleHRIb21lU3RlcCB8fCAhaXNIZWFkZXJIb21lKSAmJiAoZnVhcy5sZW5ndGggPiAwIHx8IGZ1YXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nID0gaXNIZWFkZXJDb2xsYWJvcmF0b3JIb3Vyc0hvbWUgJiYgcGxhbm5lckZ1YXNMb2FkaW5nICYmIHBsYW5uZXJGdWFzLmxlbmd0aCA9PT0gMFxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50ID0gaXNIZWFkZXJDb2xsYWJvcmF0b3JIb3Vyc0hvbWUgJiYgcGxhbm5lckZ1YXMubGVuZ3RoID4gMFxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXMgPSBzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nIHx8IHNob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnRcblxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnlDYXJkID0gc2hvd1Byb2plY3RTdW1tYXJ5ICYmIGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93RkFRcyA9ICEhKFxuICAgIHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIHx8XG4gICAgc2hvdWxkU2hvd0ZhcXMgfHxcbiAgICBzaG91bGRTaG93RnVhcyB8fFxuICAgIHNob3VsZFNob3dQbGFubmVyRnVhcyB8fFxuICAgIHNob3dQcm9qZWN0U3VtbWFyeUNhcmQgfHxcbiAgICBpc01haWFrZXJcbiAgKVxuICBjb25zdCBob21lU2Nyb2xsYWJsZUxheW91dCA9IHNob3dGQVFzXG4gIGNvbnN0IHNob3dEeW5hbWljU2VjdGlvbiA9XG4gICAgc2hvd1JlY2VudENvbnRleHRzQmxvY2sgfHwgc2hvdWxkU2hvd0ZhcXMgfHwgc2hvdWxkU2hvd0Z1YXMgfHwgc2hvdWxkU2hvd1BsYW5uZXJGdWFzIHx8IGlzTWFpYWtlclxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGZpam8gcG9yIHRpcG8gZGUgY29udGV4dG8gKGkxOG4pLiBDdXN0b20gYWdlbnRzIHNpZ3VlbiB1c2FuZG8gYWdlbnQuaW50cm9kdWN0aW9uLlxuICAvLyBQbGFubmVyIHVzYSB0w610dWxvICsgYmFqYWRhIHByb3Bpb3MgKGBwbGFubmVySG9tZWApLCBubyBlc3RlIGdyZWV0aW5nLlxuICBjb25zdCBncmVldGluZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc01haWFrZXIgfHwgaXNQbGFubmVySG9tZSB8fCBpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuICcnXG5cbiAgICBpZiAoaXNNQUlBICYmIHBpbm5lZEVudGl0eVR5cGUpIHtcbiAgICAgIHJldHVybiB0KGBob21lTWVudS5jb250ZXh0SG9tZS5jb250ZXh0R3JlZXRpbmcuJHtwaW5uZWRFbnRpdHlUeXBlfWApXG4gICAgfVxuXG4gICAgY29uc3QgaW50cm8gPSBhZ2VudD8uaW50cm9kdWN0aW9uXG4gICAgaWYgKCFpbnRybykgcmV0dXJuICcnXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW50cm8pICYmIGludHJvLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnRyb1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpbnRyby5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGludHJvID09PSAnc3RyaW5nJyA/IGludHJvIDogJydcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LmludHJvZHVjdGlvbiwgaXNNYWlha2VyLCBpc1BsYW5uZXJIb21lLCBpc01BSUEsIHBpbm5lZEVudGl0eVR5cGUsIGlzUmVjZW50Q29udGV4dHNTdGVwLCB0XSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRleHQ6IFJlY2VudENvbnRleHRJdGVtLCBvcmRlcjogbnVtYmVyKSA9PiB7XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0Q29udGV4dFNlbGVjdGVkLCB7IG9yZGVyLCB0eXBlOiBjb250ZXh0LnR5cGUgfSlcblxuICAgICAgY29uc3QgY29udGV4dElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5pZClcbiAgICAgIGNvbnN0IGNsaWVudElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5jbGllbnRfaWQpXG4gICAgICBjb25zdCBwcm9qZWN0SWQgPSBwYXJzZU51bWVyaWNJZChjb250ZXh0LnBhcmVudHM/LnByb2plY3RfaWQpXG4gICAgICBjb25zdCBjbGllbnROYW1lID0gY29udGV4dC5wYXJlbnRzPy5jbGllbnRfbmFtZSB8fCAnJ1xuICAgICAgY29uc3QgcHJvamVjdE5hbWUgPSBjb250ZXh0LnBhcmVudHM/LnByb2plY3RfbmFtZSB8fCAnJ1xuXG4gICAgICBzZXRTZWxlY3RlZENvbnRleHQoY29udGV4dClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcblxuICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY29udGV4dElkLCBuYW1lOiBjb250ZXh0Lm5hbWUgfSlcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgICAgaWQ6IGNvbnRleHRJZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGNvbnRleHRJZCksXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGNvbnRleHQubmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnR5cGUgPT09ICd0YXNrJykge1xuICAgICAgICBzZXRUYXNrKHtcbiAgICAgICAgICBpZDogY29udGV4dC5pZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKHByb2plY3RJZCAhPSBudWxsID8geyBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGNsaWVudElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRDbGllbnQ/Lih7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgICAgaWQ6IHByb2plY3RJZCxcbiAgICAgICAgICAgIG5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZCksXG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUgfHwgYCR7dCgnaG9tZU1lbnUucmVjZW50Q29udGV4dHMudHlwZXMucHJvamVjdCcpfSAke3Byb2plY3RJZH1gLFxuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtYWlhLWlucHV0LXJlZm9jdXMnKSlcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZXZlbnQsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCB0XVxuICApXG5cbiAgY29uc3QgcmVuZGVyUmVjZW50Q29udGV4dHMgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNcbiAgICAgICAgJGZpeGVkQ29udGVudFdpZHRoPXtpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgPyBNQUlBX0hFQURFUl9DT0xMQUJPUkFUT1JfSE9NRV9DT05URU5UX1dJRFRIX1BYIDogdW5kZWZpbmVkfVxuICAgICAgICAkY29udGVudEdhcD17aXNIZWFkZXJDb2xsYWJvcmF0b3JIb3Vyc0hvbWUgPyA4IDogdW5kZWZpbmVkfVxuICAgICAgPlxuICAgICAgICB7aXNIZWFkZXJDb2xsYWJvcmF0b3JIb3Vyc0hvbWUgPyAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLnJlY2VudFRhc2tzU2VjdGlvbi50aXRsZScpfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLnJlY2VudFRhc2tzU2VjdGlvbi5zdWJ0aXRsZScpfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QgJGZsdXNoUGlsbHM9e2lzSGVhZGVyQ29sbGFib3JhdG9ySG9tZX0+XG4gICAgICAgICAge3JlY2VudENvbnRleHRzTG9hZGluZyAmJlxuICAgICAgICAgICAgUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUy5tYXAoa2V5ID0+IDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIGtleT17a2V5fSAvPil9XG4gICAgICAgICAgeyFyZWNlbnRDb250ZXh0c0xvYWRpbmcgJiZcbiAgICAgICAgICAgIHJlY2VudENvbnRleHRzLm1hcCgoY29udGV4dCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPFJlY2VudENvbnRleHRQaWxsXG4gICAgICAgICAgICAgICAga2V5PXtgJHtjb250ZXh0LnR5cGV9LSR7Y29udGV4dC5pZH1gfVxuICAgICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2NvbnRleHQubmFtZS50cmltKCl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dChjb250ZXh0LCBpbmRleCArIDEpfVxuICAgICAgICAgICAgICAgIGZ1bGxXaWR0aD17aXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0PlxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0cz5cbiAgICApXG4gIH1cblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaG9tZVNjcm9sbGFibGVMYXlvdXQpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXQsIGNoZWNrU2Nyb2xsXSlcblxuICBjb25zdCByZW5kZXJIZWFkZXJDb250ZW50ID0gKCkgPT4ge1xuICAgIGlmICghaXNNQUlBKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAgICB7YWdlbnQ/LmVtb2ppfSB7YWdlbnQ/Lm5hbWV9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAge2FnZW50Py5jcmVhdGVkX2J5ICYmICFpc01BSUEgJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgICAgICBhZ2VudD8uY3JlYXRlZF9ieT8uaXNfZGVsZXRlZCA/IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkJykgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jcmVhdGVkQnknKX17JyAnfVxuICAgICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPnthZ2VudD8uY3JlYXRlZF9ieT8ubmFtZX08L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPlxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudEFsaWduU3RhcnQgPSBpc1BsYW5uZXJIb21lIHx8IGlzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSB8fCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZU1haWFIZWFkZXJTdGFja1xuICAgICAgICAkbm9HYXA9eyFpc1JlY2VudENvbnRleHRzU3RlcCAmJiAhaXNQbGFubmVySG9tZSAmJiAhZ3JlZXRpbmd9XG4gICAgICAgICRhbGlnbj17Y29udGVudEFsaWduU3RhcnQgPyAnc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICA+XG4gICAgICAgIHshaXNQbGFubmVySG9tZSAmJiAhaXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lICYmICFpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lSWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgIDwvU0NDQUlIb21lSWNvbkNvbnRhaW5lcj5cbiAgICAgICAgKX1cbiAgICAgICAge2lzUGxhbm5lckhvbWUgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZUJsb2NrICRhbGlnbj1cInN0YXJ0XCI+XG4gICAgICAgICAgICA8U0NDQUlIb21lVGl0bGUgJHNpemU9XCJtZFwiICRhbGlnbj1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgIHt0KCdob21lTWVudS5wbGFubmVySG9tZS50aXRsZScpfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZSAkYWxpZ249XCJzdGFydFwiPnt0KCdob21lTWVudS5wbGFubmVySG9tZS5zdWJ0aXRsZScpfTwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZUJsb2NrPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgaXNIZWFkZXJDb2xsYWJvcmF0b3JIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiICRmdWxsV2lkdGg+XG4gICAgICAgICAgICA8U0NDQUlIb21lVGl0bGUgJHNpemU9XCJjb250ZXh0XCIgJGFsaWduPVwic3RhcnRcIiAkZnVsbFdpZHRoPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY29udGV4dEhvbWUuZ3JlZXRpbmcnLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZSAkYWxpZ249XCJzdGFydFwiICRjb2xsYWJvcmF0b3JIb21lPlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBpc0hlYWRlckNvbGxhYm9yYXRvckhvdXJzSG9tZVxuICAgICAgICAgICAgICAgICAgPyAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMnXG4gICAgICAgICAgICAgICAgICA6ICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZUNvbGxhYm9yYXRvcidcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZUJsb2NrPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgIWlzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZSAkYWxpZ249e2lzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWUgPyAnc3RhcnQnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLmdyZWV0aW5nJywgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPXtpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lID8gJ3N0YXJ0JyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgIHt0KFxuICAgICAgICAgICAgICAgIGlzQ29sbGFib3JhdG9yUm9sZSh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgICA/ICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZUNvbGxhYm9yYXRvcidcbiAgICAgICAgICAgICAgICAgIDogJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmICFpc1JlY2VudENvbnRleHRzU3RlcCAmJiBncmVldGluZyAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZUdyZWV0aW5nICRhbGlnbj17aXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9PntncmVldGluZ308L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2s+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgZml4ZWRIb21lQ29udGVudFdpZHRoID1cbiAgICBpc0hlYWRlckNvbGxhYm9yYXRvckhvbWUgfHwgaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA/IE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFggOiB1bmRlZmluZWRcbiAgY29uc3QgY29udGVudEFsaWduU3RhcnQgPSBpc1BsYW5uZXJIb21lIHx8IGlzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSB8fCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lQ29udGFpbmVyIHNob3dGQVFzPXtzaG93RkFRc30gJGFsaWduU3RhcnQ9e2lzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWV9PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudFRvcCAkc2hvdz17c2hvd1RvcEdyYWRpZW50fSAvPn1cbiAgICAgIDxTQ0NBSUhvbWVDb250ZW50XG4gICAgICAgIHJlZj17Y29udGVudENvbnRhaW5lclJlZn1cbiAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICAgICRjZW50ZXJWZXJ0aWNhbGx5PXtpc1BsYW5uZXJIb21lfVxuICAgICAgICAkYWxpZ25TdGFydD17aXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZX1cbiAgICAgICAgJGZpeGVkQ29udGVudFdpZHRoPXtmaXhlZEhvbWVDb250ZW50V2lkdGh9XG4gICAgICA+XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXJcbiAgICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICAgICAgJGNlbnRlclZlcnRpY2FsbHk9e2lzUGxhbm5lckhvbWV9XG4gICAgICAgICAgJGFsaWduU3RhcnQ9e2lzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSB8fCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICAgICRoZWFkZXJDb2xsYWJvcmF0b3JIb21lPXtpc0hlYWRlckNvbGxhYm9yYXRvckhvbWV9XG4gICAgICAgICAgJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lPXtpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICA+XG4gICAgICAgICAgPFNDQ0FJSG9tZUhlYWRlclxuICAgICAgICAgICAgJGdhcD17aXNNQUlBICYmIHNlY3Rpb24gIT09ICdwcm9qZWN0JyA/ICc4cHgnIDogJzIwcHgnfVxuICAgICAgICAgICAgJG1heFdpZHRoPXtpc01BSUEgPyAnMTAwJScgOiAnMzgwcHgnfVxuICAgICAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAgICAgJGFsaWduPXtjb250ZW50QWxpZ25TdGFydCA/ICdzdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnlDYXJkICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGVHcmFkaWVudEljb24gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dEeW5hbWljU2VjdGlvbiAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lRHluYW1pY1NlY3Rpb25cbiAgICAgICAgICAgICAgJGdyb3c9e2lzTWFpYWtlcn1cbiAgICAgICAgICAgICAgJGFsaWduU3RhcnQ9e2lzSGVhZGVyQ29sbGFib3JhdG9ySG9tZSB8fCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyA/IChcbiAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicGxhbm5lclwiXG4gICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zPXtwbGFubmVyRnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e3BsYW5uZXJGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnQgPyAoXG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNvbGxhYm9yYXRvclNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ob3Vyc1NlY3Rpb24udGl0bGUnKX1cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwbGFubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgICAgYWN0aW9ucz17cGxhbm5lckZ1YXN9XG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e3BsYW5uZXJGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3JlbmRlclJlY2VudENvbnRleHRzKCl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RmFxcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgc2hvd0ZBUXM9e3Nob3dGQVFzfVxuICAgICAgICAgICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBsYW5nPXtsYW5nfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgZmFxcz17ZmFxc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2ZhcXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RnVhcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlVc2VkQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17ZnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2Z1YXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc01haWFrZXIgPyA8Q2hhdEFJSG9tZU1haWFrZXIgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudElubmVyPlxuICAgICAgPC9TQ0NBSUhvbWVDb250ZW50PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUV6RSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGFBQWEsUUFBUSxnREFBZ0Q7QUFDOUUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFJMUQsU0FDRUMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyx1QkFBdUIsRUFDdkJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQywyQkFBMkIsRUFDM0JDLGtCQUFrQixFQUNsQkMsdUJBQXVCLEVBQ3ZCQyw4QkFBOEIsRUFDOUJDLDRCQUE0QixFQUM1QkMsa0NBQWtDLEVBQ2xDQywwQkFBMEIsRUFDMUJDLHFCQUFxQixFQUNyQkMsMkJBQTJCLEVBQzNCQyxzQkFBc0IsRUFDdEJDLDBCQUEwQixFQUMxQkMsc0JBQXNCLEVBQ3RCQyxvQkFBb0IsRUFDcEJDLHdCQUF3QixFQUN4QkMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsdUJBQXVCLEVBQ3ZCQyx1QkFBdUIsRUFDdkJDLDJCQUEyQixFQUMzQkMsb0NBQW9DLEVBQ3BDQyxtQ0FBbUMsRUFDbkNDLHNDQUFzQyxFQUN0Q0MsNEJBQTRCLEVBQzVCQywwQkFBMEIsRUFDMUJDLDhCQUE4QixFQUM5QkMsOEJBQThCLEVBQzlCQyxrQ0FBa0MsRUFDbENDLDhDQUE4QyxRQUN6QyxVQUFVO0FBQ2pCLFNBQVNDLGdCQUFnQixRQUFzQixpQ0FBaUM7QUFDaEYsU0FBU0MsT0FBTyxFQUFFQyxXQUFX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