@projectcor/maia-components 2.11.90-0 → 2.11.90-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +28 -41
  2. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  3. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
  4. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +4 -2
  5. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  6. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  7. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +23 -4
  8. package/lib/components/atoms/MAIAInput/MAIAInput.js +11 -4
  9. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  10. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  11. package/lib/components/atoms/icons/index.js +3 -1
  12. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
  13. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +34 -2
  14. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
  15. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  16. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  17. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  18. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  19. package/lib/components/molecules/ChatFooter/ChatFooter.js +18 -5
  20. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  21. package/lib/components/molecules/Sidebar/Sidebar.js +25 -4
  22. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
  23. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  24. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  25. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
  26. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  27. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  28. package/lib/components/organisms/ChatAI/ChatAI.js +7 -3
  29. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
  30. package/lib/constants/config.js +4 -1
  31. package/lib/constants/permissions/index.js +2 -2
  32. package/lib/constants/permissions/utils.js +4 -1
  33. package/lib/context/global-context.js +1 -1
  34. package/lib/hooks/useContextMentions.js +47 -9
  35. package/lib/hooks/useEntitySearch.js +277 -91
  36. package/lib/hooks/useMentionAllowedTypes.js +26 -8
  37. package/lib/hooks/useMentionPopover.js +42 -13
  38. package/lib/lang/br/index.js +58 -3
  39. package/lib/lang/en/index.js +58 -3
  40. package/lib/lang/es/index.js +58 -3
  41. package/lib/lang/fr/index.js +54 -3
  42. package/lib/services/maia/Skills/createSkill.js +39 -0
  43. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  44. package/lib/services/maia/Skills/generateSkill.js +41 -0
  45. package/lib/services/maia/Skills/getSkills.js +90 -0
  46. package/lib/services/maia/Skills/updateSkill.js +39 -0
  47. package/lib/types/contextMention.js +1 -1
  48. package/lib/types/skill.js +2 -0
  49. package/lib/utils/contextMentionIcons.js +29 -1
  50. package/lib/utils/contextMentionTriggers.js +3 -1
  51. package/lib/utils/renderContextMentions.js +9 -4
  52. package/package.json +13 -8
@@ -46,6 +46,10 @@ export var MENTION_CHIP_COLORS = {
46
46
  mcp: {
47
47
  bg: NON_TASK_CHIP_BG,
48
48
  fg: NON_TASK_CHIP_FG
49
+ },
50
+ skill: {
51
+ bg: 'transparent',
52
+ fg: NON_TASK_CHIP_FG
49
53
  }
50
54
  };
51
55
 
@@ -102,7 +106,7 @@ var chipSurfaceCss = function chipSurfaceCss(type) {
102
106
  /**
103
107
  * Hover y superficie para chips montados por `buildChipElement` (estilos inline en el host).
104
108
  */
105
- export var ContextMentionChipGlobalStyles = createGlobalStyle([".", ":not([data-mention-type='task']):hover{background:", " !important;}.", "[data-mention-type='project']:hover{background:", " !important;}[contenteditable='true'] .", "[data-mention-surface='editor']{display:inline !important;max-width:100% !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:break-word !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{display:inline !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative !important;padding:2px 0 !important;padding-left:22px !important;background:transparent !important;font-size:14px !important;line-height:20px !important;border-radius:0 !important;cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='project'][data-mention-surface='editor']{cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']::before{content:'';position:absolute;left:2px;top:1px;top:calc((1lh - 16px) / 2 - 1px);width:18px;height:18px;background-image:", ";background-size:contain;background-repeat:no-repeat;background-position:center;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']:hover{text-decoration-line:underline !important;text-decoration-color:#b3b3b3 !important;text-decoration-thickness:1px !important;text-underline-offset:2px !important;background:", " !important;border-radius:4px !important;}"], CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_NON_TASK_HOVER_BG, CONTEXT_MENTION_CHIP_CLASS, VIOLET_IA_COLORS[100], CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, TASK_LINK_ICON_CSS_URL, CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_TASK_EDITOR_HOVER_BG);
109
+ export var ContextMentionChipGlobalStyles = createGlobalStyle([".", ":not([data-mention-type='task']):not([data-mention-type='skill']):hover{background:", " !important;}.", "[data-mention-type='project']:hover{background:", " !important;}[contenteditable='true'] .", "[data-mention-surface='editor']{display:inline !important;max-width:100% !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:break-word !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{display:inline !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative !important;padding:2px 0 !important;padding-left:22px !important;background:transparent !important;font-size:14px !important;line-height:20px !important;border-radius:0 !important;cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='project'][data-mention-surface='editor']{cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']::before{content:'';position:absolute;left:2px;top:1px;top:calc((1lh - 16px) / 2 - 1px);width:18px;height:18px;background-image:", ";background-size:contain;background-repeat:no-repeat;background-position:center;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']:hover{text-decoration-line:underline !important;text-decoration-color:#b3b3b3 !important;text-decoration-thickness:1px !important;text-underline-offset:2px !important;background:", " !important;border-radius:4px !important;}"], CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_NON_TASK_HOVER_BG, CONTEXT_MENTION_CHIP_CLASS, VIOLET_IA_COLORS[100], CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, TASK_LINK_ICON_CSS_URL, CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_TASK_EDITOR_HOVER_BG);
106
110
 
107
111
  /**
108
112
  * Aplica los estilos del chip a un nodo DOM existente.
@@ -116,7 +120,7 @@ export var applyMentionChipStyles = function applyMentionChipStyles(el, type) {
116
120
  }));
117
121
  };
118
122
  var chipHoverCss = function chipHoverCss(type) {
119
- if (type === 'task') return css([""]);
123
+ if (type === 'task' || type === 'skill') return css([""]);
120
124
  if (type === 'project') {
121
125
  return css(["background:", ";"], VIOLET_IA_COLORS[100]);
122
126
  }
@@ -181,4 +185,4 @@ export var SCMCChipPlainLabel = styled.span.withConfig({
181
185
  displayName: "ContextMentionChipstyles__SCMCChipPlainLabel",
182
186
  componentId: "sc-11ynxow-4"
183
187
  })(["display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--cor-typography-font-family,'Work Sans');font-size:14px;font-weight:500;line-height:20px;color:", ";"], colors.text.primary);
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjcmVhdGVHbG9iYWxTdHlsZSIsImNvbG9ycyIsIkJMVUVfSUFfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiVEFTS19MSU5LX0lDT05fQ1NTX1VSTCIsIlRBU0tfQ0hJUF9CRyIsIlRBU0tfQ0hJUF9GRyIsInRleHQiLCJwcmltYXJ5IiwiTk9OX1RBU0tfQ0hJUF9CRyIsIk5PTl9UQVNLX0NISVBfRkciLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9UQVNLX0VESVRPUl9IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJjbGllbnQiLCJiZyIsImZnIiwicHJvamVjdCIsInRhc2siLCJ1c2VyIiwibWNwIiwiTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyIsImRpc3BsYXkiLCJwYWRkaW5nIiwicGFkZGluZ0xlZnQiLCJtYXJnaW4iLCJtYXhXaWR0aCIsImJvcmRlclJhZGl1cyIsImZvbnRGYW1pbHkiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0Iiwid2hpdGVTcGFjZSIsIm92ZXJmbG93V3JhcCIsIndvcmRCcmVhayIsInVzZXJTZWxlY3QiLCJ2ZXJ0aWNhbEFsaWduIiwiY3Vyc29yIiwiTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfTk9OX1RBU0siLCJNRU5USU9OX0NISVBfQkFTRV9TVFlMRSIsImNoaXBDb2xvcnMiLCJ0eXBlIiwiX01FTlRJT05fQ0hJUF9DT0xPUlMkIiwiY2hpcFN1cmZhY2VDc3MiLCJjIiwiQ29udGV4dE1lbnRpb25DaGlwR2xvYmFsU3R5bGVzIiwiYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyIsImVsIiwiYmFzZSIsIk9iamVjdCIsImFzc2lnbiIsInN0eWxlIiwiX29iamVjdFNwcmVhZCIsImJhY2tncm91bmQiLCJjb2xvciIsImNoaXBIb3ZlckNzcyIsIlNDTUNDaGlwIiwic3BhbiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIiR0eXBlIiwiX3JlZjIiLCJfcmVmMyIsIl9yZWY0IiwiX3JlZjUiLCJfcmVmNiIsIl9yZWY3IiwiX3JlZjgiLCJTQ01DQ2hpcEljb24iLCJfcmVmOSIsIiR0YXNrIiwiX3JlZjAiLCJfcmVmMSIsIlNDTUNUYXNrQ2hpcExhYmVsV3JhcCIsIlNDTUNUYXNrQ2hpcExhYmVsVGV4dCIsIlNDTUNDaGlwUGxhaW5MYWJlbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcywgY3JlYXRlR2xvYmFsU3R5bGUgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIFZJT0xFVF9JQV9DT0xPUlMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1MsIENvbnRleHRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBUQVNLX0xJTktfSUNPTl9DU1NfVVJMIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3Rhc2tMaW5rSWNvbidcblxuY29uc3QgVEFTS19DSElQX0JHID0gJ3RyYW5zcGFyZW50J1xuY29uc3QgVEFTS19DSElQX0ZHID0gY29sb3JzLnRleHQucHJpbWFyeVxuXG5jb25zdCBOT05fVEFTS19DSElQX0JHID0gJyNiM2UxZmYnXG5jb25zdCBOT05fVEFTS19DSElQX0ZHID0gY29sb3JzLnRleHQucHJpbWFyeVxuXG4vKiogSG92ZXIgZGVsIGNoaXAg4oCcbnVldm/igJ0gKGNsaWVudCwgcHJvamVjdCwgdXNlciwgbWNwKS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcgPSAnI2VkZmFmZidcblxuLyoqIEhvdmVyIGRlbCBjaGlwIGRlIHRhcmVhIGVuIGNoYXQgLyBzdXBlcmZpY2llIOKAnG5vIGVkaXRvcuKAnS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyA9IEJMVUVfSUFfQ09MT1JTWzEwMF1cblxuLyoqIEhvdmVyIGRlbCBjaGlwIGRlIHRhcmVhIGRlbnRybyBkZWwgaW5wdXQgKGNvbnRlbnRlZGl0YWJsZSkuICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHID0gJyNGMkYyRjInXG5cbi8qKiBNaXNtbyDDrWNvbm8gcXVlIGAuaGFzLXRhc2stbGlua3MgYTo6YmVmb3JlYCBlbiBtZW5zYWplcyBkZWwgYWdlbnRlIChjaGVja2xpc3QgYXp1bCkuICovXG5cbi8qKlxuICogUGFsZXRhIGNvbXBhcnRpZGEgZW50cmUgZWwgc3R5bGVkLWNvbXBvbmVudCAoYFNDTUNDaGlwYCkgeSBlbCBidWlsZGVyXG4gKiBpbXBlcmF0aXZvIChgYnVpbGRDaGlwRWxlbWVudGApIHF1ZSBpbnNlcnRhIGVsIGNoaXAgZGVudHJvIGRlbCBjb250ZW50ZWRpdGFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfQ09MT1JTOiBSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIHsgYmc6IHN0cmluZzsgZmc6IHN0cmluZyB9PiA9IHtcbiAgY2xpZW50OiB7IGJnOiBOT05fVEFTS19DSElQX0JHLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICBwcm9qZWN0OiB7IGJnOiBWSU9MRVRfSUFfQ09MT1JTWzUwXSwgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbiAgdGFzazogeyBiZzogVEFTS19DSElQX0JHLCBmZzogVEFTS19DSElQX0ZHIH0sXG4gIHVzZXI6IHsgYmc6IE5PTl9UQVNLX0NISVBfQkcsIGZnOiBOT05fVEFTS19DSElQX0ZHIH0sXG4gIG1jcDogeyBiZzogTk9OX1RBU0tfQ0hJUF9CRywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbn1cblxuLyoqIEVzdGlsbyB0YXJlYSBlbiBlZGl0b3I6IGlubGluZSAobm8gaW5saW5lLWJsb2NrKSBwYXJhIHF1ZSBlbCBzaHJpbmstdG8tZml0IG5vIG9jdXBlIHRvZG8gZWwgcmVuZ2zDs24uICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIHBhZGRpbmc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcyNHB4JyxcbiAgbWFyZ2luOiAnMCAxcHgnLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgZm9udEZhbWlseTogYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gIGN1cnNvcjogJ2RlZmF1bHQnLFxufSBhcyBjb25zdFxuXG4vKiogRXN0aWxvIGFjdHVhbCAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgcGFkZGluZzogJzJweCA0cHgnLFxuICBtYXJnaW46ICcwIDFweCcsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRGYW1pbHk6IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzUwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgdXNlclNlbGVjdDogJ25vbmUnLFxuICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICBjdXJzb3I6ICdkZWZhdWx0Jyxcbn0gYXMgY29uc3RcblxuLyoqIEBkZXByZWNhdGVkIHVzYXIgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyAvIF9OT05fVEFTSyBzZWfDum4gdGlwbyAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFID0gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTS1xuXG5jb25zdCBjaGlwQ29sb3JzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlclxuXG5jb25zdCBjaGlwU3VyZmFjZUNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Yy5iZ307XG4gICAgY29sb3I6ICR7Yy5mZ307XG4gIGBcbn1cblxuLyoqXG4gKiBIb3ZlciB5IHN1cGVyZmljaWUgcGFyYSBjaGlwcyBtb250YWRvcyBwb3IgYGJ1aWxkQ2hpcEVsZW1lbnRgIChlc3RpbG9zIGlubGluZSBlbiBlbCBob3N0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyA9IGNyZWF0ZUdsb2JhbFN0eWxlYFxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU306bm90KFtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Byb2plY3QnXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBNZW5jaW9uZXMgZW4gZWwgY29udGVudGVkaXRhYmxlOiBlbCB0ZXh0byBkZWJlIHBvZGVyIHBhc2FyIGEgbGEgbMOtbmVhIHNpZ3VpZW50ZSAoc2luIHNjcm9sbCBob3Jpem9udGFsKS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogU29sbyB0YXNrIGVuIGVkaXRvciBzZSBjb21wb3J0YSBpbmxpbmUgcGFyYSBldml0YXIgcXVlIHRvbWUgZWwgYW5jaG8gY29tcGxldG8gZGVsIHJlbmdsw7NuLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIFRhcmVhIGVuIGVsIGlucHV0OiBtaXNtbyBhc3BlY3RvIHF1ZSAuaGFzLXRhc2stbGlua3MgYSAobWVuc2FqZXMgZGVsIGFnZW50ZSAvIHVzdWFyaW8pLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBQcm95ZWN0byBlbiBlbCBpbnB1dDogY2xpY2tlYWJsZSwgYWJyZSBlbiBudWV2YSBwZXN0YcOxYS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tdHlwZT0ncHJvamVjdCddW2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiDDjWNvbm8gY2VudHJhZG8gZW4gbGEgY2FqYSBkZSBsYSBwcmltZXJhIGzDrW5lYSAobGggPSBsaW5lLWhlaWdodCBkZWwgY2hpcCwgU1ZHIDIwcHgpLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAxcHg7XG4gICAgdG9wOiBjYWxjKCgxbGggLSAxNnB4KSAvIDIgLSAxcHgpO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAke1RBU0tfTElOS19JQ09OX0NTU19VUkx9O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxuXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ106aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNiM2IzYjMgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICR7TUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHfSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICB9XG5gXG5cbi8qKlxuICogQXBsaWNhIGxvcyBlc3RpbG9zIGRlbCBjaGlwIGEgdW4gbm9kbyBET00gZXhpc3RlbnRlLlxuICovXG5leHBvcnQgY29uc3QgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyA9IChlbDogSFRNTEVsZW1lbnQsIHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiB7XG4gIGNvbnN0IGMgPSBjaGlwQ29sb3JzKHR5cGUpXG4gIGNvbnN0IGJhc2UgPSB0eXBlID09PSAndGFzaycgPyBNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9UQVNLIDogTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfTk9OX1RBU0tcbiAgT2JqZWN0LmFzc2lnbihlbC5zdHlsZSwgeyAuLi4oYmFzZSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSwgYmFja2dyb3VuZDogYy5iZywgY29sb3I6IGMuZmcgfSlcbn1cblxuY29uc3QgY2hpcEhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh0eXBlID09PSAndGFzaycpIHJldHVybiBjc3NgYFxuICBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgcmV0dXJuIGNzc2BcbiAgICAgIGJhY2tncm91bmQ6ICR7VklPTEVUX0lBX0NPTE9SU1sxMDBdfTtcbiAgICBgXG4gIH1cbiAgcmV0dXJuIGNzc2BcbiAgICBiYWNrZ3JvdW5kOiAke01FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CR307XG4gIGBcbn1cblxuZXhwb3J0IGNvbnN0IFNDTUNDaGlwID0gc3R5bGVkLnNwYW48eyAkdHlwZT86IENvbnRleHRFbnRpdHlUeXBlIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbiAgZ2FwOiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJzRweCcgOiAnMnB4Jyl9O1xuICBwYWRkaW5nOiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJzAgNHB4JyA6ICcycHggNHB4Jyl9O1xuICBtYXJnaW46IDAgMXB4O1xuICBib3JkZXItcmFkaXVzOiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJzAnIDogJzRweCcpfTtcbiAgJHsoeyAkdHlwZSB9KSA9PiBjaGlwU3VyZmFjZUNzcygkdHlwZSA/PyAndXNlcicpfVxuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/IDYwMCA6IDUwMCl9O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICdhdXRvJyA6ICdhdXRvJyl9O1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkdHlwZSB9KSA9PiBjaGlwSG92ZXJDc3MoJHR5cGUpfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01DQ2hpcEljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgaGVpZ2h0OiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBmbGV4OiAwIDAgJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuLyoqIFRleHRvIGRlIHRhcmVhIGNvbiBib3JkZSBpbmZlcmlvciAoc3BlYyBGaWdtYSkuICovXG5leHBvcnQgY29uc3QgU0NNQ1Rhc2tDaGlwTGFiZWxXcmFwID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXg6IDEgMSAwO1xuICBnYXA6IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgdmFyKC0tY29yLWNvbG9yLWdyZXktNDAwLCAjYjNiM2IzKTtcbmBcblxuLyoqIFRleHRvIGludGVyaW9yIGNvbiBlbGxpcHNpcyAobWVuY2nDs24gdGlwbyB0YXJlYSkuICovXG5leHBvcnQgY29uc3QgU0NNQ1Rhc2tDaGlwTGFiZWxUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG5gXG5cbi8qKiBUZXh0byBpbnRlcmlvciBjb24gZWxsaXBzaXMgKG1lbmNpw7NuIGNsaWVudGUvcHJveWVjdG8vdXN1YXJpby9tY3ApLiAqL1xuZXhwb3J0IGNvbnN0IFNDTUNDaGlwUGxhaW5MYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuYFxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsaUJBQWlCLFFBQVEsbUJBQW1CO0FBQ2xFLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsY0FBYyxFQUFFQyxnQkFBZ0IsUUFBUSx3QkFBd0I7QUFDekUsU0FBU0MsMEJBQTBCLFFBQTJCLCtCQUErQjtBQUM3RixTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFFeEUsSUFBTUMsWUFBWSxHQUFHLGFBQWE7QUFDbEMsSUFBTUMsWUFBWSxHQUFHTixNQUFNLENBQUNPLElBQUksQ0FBQ0MsT0FBTztBQUV4QyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFTO0FBQ2xDLElBQU1DLGdCQUFnQixHQUFHVixNQUFNLENBQUNPLElBQUksQ0FBQ0MsT0FBTzs7QUFFNUM7QUFDQSxPQUFPLElBQU1HLDhCQUE4QixHQUFHLFNBQVM7O0FBRXZEO0FBQ0EsT0FBTyxJQUFNQywwQkFBMEIsR0FBR1gsY0FBYyxDQUFDLEdBQUcsQ0FBQzs7QUFFN0Q7QUFDQSxPQUFPLElBQU1ZLGlDQUFpQyxHQUFHLFNBQVM7O0FBRTFEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxtQkFBMEUsR0FBRztFQUN4RkMsTUFBTSxFQUFFO0lBQUVD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
188
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjcmVhdGVHbG9iYWxTdHlsZSIsImNvbG9ycyIsIkJMVUVfSUFfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiVEFTS19MSU5LX0lDT05fQ1NTX1VSTCIsIlRBU0tfQ0hJUF9CRyIsIlRBU0tfQ0hJUF9GRyIsInRleHQiLCJwcmltYXJ5IiwiTk9OX1RBU0tfQ0hJUF9CRyIsIk5PTl9UQVNLX0NISVBfRkciLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9UQVNLX0VESVRPUl9IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJjbGllbnQiLCJiZyIsImZnIiwicHJvamVjdCIsInRhc2siLCJ1c2VyIiwibWNwIiwic2tpbGwiLCJNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9UQVNLIiwiZGlzcGxheSIsInBhZGRpbmciLCJwYWRkaW5nTGVmdCIsIm1hcmdpbiIsIm1heFdpZHRoIiwiYm9yZGVyUmFkaXVzIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImxpbmVIZWlnaHQiLCJ3aGl0ZVNwYWNlIiwib3ZlcmZsb3dXcmFwIiwid29yZEJyZWFrIiwidXNlclNlbGVjdCIsInZlcnRpY2FsQWxpZ24iLCJjdXJzb3IiLCJNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9OT05fVEFTSyIsIk1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFIiwiY2hpcENvbG9ycyIsInR5cGUiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCJjaGlwU3VyZmFjZUNzcyIsImMiLCJDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMiLCJhcHBseU1lbnRpb25DaGlwU3R5bGVzIiwiZWwiLCJiYXNlIiwiT2JqZWN0IiwiYXNzaWduIiwic3R5bGUiLCJfb2JqZWN0U3ByZWFkIiwiYmFja2dyb3VuZCIsImNvbG9yIiwiY2hpcEhvdmVyQ3NzIiwiU0NNQ0NoaXAiLCJzcGFuIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiJHR5cGUiLCJfcmVmMiIsIl9yZWYzIiwiX3JlZjQiLCJfcmVmNSIsIl9yZWY2IiwiX3JlZjciLCJfcmVmOCIsIlNDTUNDaGlwSWNvbiIsIl9yZWY5IiwiJHRhc2siLCJfcmVmMCIsIl9yZWYxIiwiU0NNQ1Rhc2tDaGlwTGFiZWxXcmFwIiwiU0NNQ1Rhc2tDaGlwTGFiZWxUZXh0IiwiU0NNQ0NoaXBQbGFpbkxhYmVsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzLCBjcmVhdGVHbG9iYWxTdHlsZSB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBCTFVFX0lBX0NPTE9SUywgVklPTEVUX0lBX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUywgQ29udGV4dEVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IFRBU0tfTElOS19JQ09OX0NTU19VUkwgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza0xpbmtJY29uJ1xuXG5jb25zdCBUQVNLX0NISVBfQkcgPSAndHJhbnNwYXJlbnQnXG5jb25zdCBUQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbmNvbnN0IE5PTl9UQVNLX0NISVBfQkcgPSAnI2IzZTFmZidcbmNvbnN0IE5PTl9UQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbi8qKiBIb3ZlciBkZWwgY2hpcCDigJxudWV2b+KAnSAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyA9ICcjZWRmYWZmJ1xuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZW4gY2hhdCAvIHN1cGVyZmljaWUg4oCcbm8gZWRpdG9y4oCdLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9UQVNLX0hPVkVSX0JHID0gQkxVRV9JQV9DT0xPUlNbMTAwXVxuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZGVudHJvIGRlbCBpbnB1dCAoY29udGVudGVkaXRhYmxlKS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfVEFTS19FRElUT1JfSE9WRVJfQkcgPSAnI0YyRjJGMidcblxuLyoqIE1pc21vIMOtY29ubyBxdWUgYC5oYXMtdGFzay1saW5rcyBhOjpiZWZvcmVgIGVuIG1lbnNhamVzIGRlbCBhZ2VudGUgKGNoZWNrbGlzdCBhenVsKS4gKi9cblxuLyoqXG4gKiBQYWxldGEgY29tcGFydGlkYSBlbnRyZSBlbCBzdHlsZWQtY29tcG9uZW50IChgU0NNQ0NoaXBgKSB5IGVsIGJ1aWxkZXJcbiAqIGltcGVyYXRpdm8gKGBidWlsZENoaXBFbGVtZW50YCkgcXVlIGluc2VydGEgZWwgY2hpcCBkZW50cm8gZGVsIGNvbnRlbnRlZGl0YWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9DT0xPUlM6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgeyBiZzogc3RyaW5nOyBmZzogc3RyaW5nIH0+ID0ge1xuICBjbGllbnQ6IHsgYmc6IE5PTl9UQVNLX0NISVBfQkcsIGZnOiBOT05fVEFTS19DSElQX0ZHIH0sXG4gIHByb2plY3Q6IHsgYmc6IFZJT0xFVF9JQV9DT0xPUlNbNTBdLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICB0YXNrOiB7IGJnOiBUQVNLX0NISVBfQkcsIGZnOiBUQVNLX0NISVBfRkcgfSxcbiAgdXNlcjogeyBiZzogTk9OX1RBU0tfQ0hJUF9CRywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbiAgbWNwOiB7IGJnOiBOT05fVEFTS19DSElQX0JHLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICBza2lsbDogeyBiZzogJ3RyYW5zcGFyZW50JywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbn1cblxuLyoqIEVzdGlsbyB0YXJlYSBlbiBlZGl0b3I6IGlubGluZSAobm8gaW5saW5lLWJsb2NrKSBwYXJhIHF1ZSBlbCBzaHJpbmstdG8tZml0IG5vIG9jdXBlIHRvZG8gZWwgcmVuZ2zDs24uICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIHBhZGRpbmc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcyNHB4JyxcbiAgbWFyZ2luOiAnMCAxcHgnLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgZm9udEZhbWlseTogYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gIGN1cnNvcjogJ2RlZmF1bHQnLFxufSBhcyBjb25zdFxuXG4vKiogRXN0aWxvIGFjdHVhbCAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgcGFkZGluZzogJzJweCA0cHgnLFxuICBtYXJnaW46ICcwIDFweCcsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRGYW1pbHk6IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzUwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgdXNlclNlbGVjdDogJ25vbmUnLFxuICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICBjdXJzb3I6ICdkZWZhdWx0Jyxcbn0gYXMgY29uc3RcblxuLyoqIEBkZXByZWNhdGVkIHVzYXIgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyAvIF9OT05fVEFTSyBzZWfDum4gdGlwbyAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFID0gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTS1xuXG5jb25zdCBjaGlwQ29sb3JzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlclxuXG5jb25zdCBjaGlwU3VyZmFjZUNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Yy5iZ307XG4gICAgY29sb3I6ICR7Yy5mZ307XG4gIGBcbn1cblxuLyoqXG4gKiBIb3ZlciB5IHN1cGVyZmljaWUgcGFyYSBjaGlwcyBtb250YWRvcyBwb3IgYGJ1aWxkQ2hpcEVsZW1lbnRgIChlc3RpbG9zIGlubGluZSBlbiBlbCBob3N0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyA9IGNyZWF0ZUdsb2JhbFN0eWxlYFxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU306bm90KFtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddKTpub3QoW2RhdGEtbWVudGlvbi10eXBlPSdza2lsbCddKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Byb2plY3QnXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBNZW5jaW9uZXMgZW4gZWwgY29udGVudGVkaXRhYmxlOiBlbCB0ZXh0byBkZWJlIHBvZGVyIHBhc2FyIGEgbGEgbMOtbmVhIHNpZ3VpZW50ZSAoc2luIHNjcm9sbCBob3Jpem9udGFsKS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogU29sbyB0YXNrIGVuIGVkaXRvciBzZSBjb21wb3J0YSBpbmxpbmUgcGFyYSBldml0YXIgcXVlIHRvbWUgZWwgYW5jaG8gY29tcGxldG8gZGVsIHJlbmdsw7NuLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIFRhcmVhIGVuIGVsIGlucHV0OiBtaXNtbyBhc3BlY3RvIHF1ZSAuaGFzLXRhc2stbGlua3MgYSAobWVuc2FqZXMgZGVsIGFnZW50ZSAvIHVzdWFyaW8pLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBQcm95ZWN0byBlbiBlbCBpbnB1dDogY2xpY2tlYWJsZSwgYWJyZSBlbiBudWV2YSBwZXN0YcOxYS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tdHlwZT0ncHJvamVjdCddW2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiDDjWNvbm8gY2VudHJhZG8gZW4gbGEgY2FqYSBkZSBsYSBwcmltZXJhIGzDrW5lYSAobGggPSBsaW5lLWhlaWdodCBkZWwgY2hpcCwgU1ZHIDIwcHgpLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAxcHg7XG4gICAgdG9wOiBjYWxjKCgxbGggLSAxNnB4KSAvIDIgLSAxcHgpO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAke1RBU0tfTElOS19JQ09OX0NTU19VUkx9O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxuXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ106aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNiM2IzYjMgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICR7TUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHfSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICB9XG5gXG5cbi8qKlxuICogQXBsaWNhIGxvcyBlc3RpbG9zIGRlbCBjaGlwIGEgdW4gbm9kbyBET00gZXhpc3RlbnRlLlxuICovXG5leHBvcnQgY29uc3QgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyA9IChlbDogSFRNTEVsZW1lbnQsIHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiB7XG4gIGNvbnN0IGMgPSBjaGlwQ29sb3JzKHR5cGUpXG4gIGNvbnN0IGJhc2UgPSB0eXBlID09PSAndGFzaycgPyBNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9UQVNLIDogTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfTk9OX1RBU0tcbiAgT2JqZWN0LmFzc2lnbihlbC5zdHlsZSwgeyAuLi4oYmFzZSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSwgYmFja2dyb3VuZDogYy5iZywgY29sb3I6IGMuZmcgfSlcbn1cblxuY29uc3QgY2hpcEhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh0eXBlID09PSAndGFzaycgfHwgdHlwZSA9PT0gJ3NraWxsJykgcmV0dXJuIGNzc2BgXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gY3NzYFxuICAgICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19O1xuICAgIGBcbiAgfVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7TUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHfTtcbiAgYFxufVxuXG5leHBvcnQgY29uc3QgU0NNQ0NoaXAgPSBzdHlsZWQuc3Bhbjx7ICR0eXBlPzogQ29udGV4dEVudGl0eVR5cGUgfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJyl9O1xuICBnYXA6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnNHB4JyA6ICcycHgnKX07XG4gIHBhZGRpbmc6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnMCA0cHgnIDogJzJweCA0cHgnKX07XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnMCcgOiAnNHB4Jyl9O1xuICAkeyh7ICR0eXBlIH0pID0+IGNoaXBTdXJmYWNlQ3NzKCR0eXBlID8/ICd1c2VyJyl9XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gNjAwIDogNTAwKX07XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJ2F1dG8nIDogJ2F1dG8nKX07XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlIH0pID0+IGNoaXBIb3ZlckNzcygkdHlwZSl9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUNDaGlwSWNvbiA9IHN0eWxlZC5zcGFuPHsgJHRhc2s/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBoZWlnaHQ6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGZsZXg6IDAgMCAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuYFxuXG4vKiogVGV4dG8gZGUgdGFyZWEgY29uIGJvcmRlIGluZmVyaW9yIChzcGVjIEZpZ21hKS4gKi9cbmV4cG9ydCBjb25zdCBTQ01DVGFza0NoaXBMYWJlbFdyYXAgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMSAxIDA7XG4gIGdhcDogNHB4O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCB2YXIoLS1jb3ItY29sb3ItZ3JleS00MDAsICNiM2IzYjMpO1xuYFxuXG4vKiogVGV4dG8gaW50ZXJpb3IgY29uIGVsbGlwc2lzIChtZW5jacOzbiB0aXBvIHRhcmVhKS4gKi9cbmV4cG9ydCBjb25zdCBTQ01DVGFza0NoaXBMYWJlbFRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbmBcblxuLyoqIFRleHRvIGludGVyaW9yIGNvbiBlbGxpcHNpcyAobWVuY2nDs24gY2xpZW50ZS9wcm95ZWN0by91c3VhcmlvL21jcCkuICovXG5leHBvcnQgY29uc3QgU0NNQ0NoaXBQbGFpbkxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG5gXG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxpQkFBaUIsUUFBUSxtQkFBbUI7QUFDbEUsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUN0RCxTQUFTQyxjQUFjLEVBQUVDLGdCQUFnQixRQUFRLHdCQUF3QjtBQUN6RSxTQUFTQywwQkFBMEIsUUFBMkIsK0JBQStCO0FBQzdGLFNBQVNDLHNCQUFzQixRQUFRLGlDQUFpQztBQUV4RSxJQUFNQyxZQUFZLEdBQUcsYUFBYTtBQUNsQyxJQUFNQyxZQUFZLEdBQUdOLE1BQU0sQ0FBQ08sSUFBSSxDQUFDQyxPQUFPO0FBRXhDLElBQU1DLGdCQUFnQixHQUFHLFNBQVM7QUFDbEMsSUFBTUMsZ0JBQWdCLEdBQUdWLE1BQU0sQ0FBQ08sSUFBSSxDQUFDQyxPQUFPOztBQUU1QztBQUNBLE9BQU8sSUFBTUcsOEJBQThCLEdBQUcsU0FBUzs7QUFFdkQ7QUFDQSxPQUFPLElBQU1DLDBCQUEwQixHQUFHWCxjQUFjLENBQUMsR0FBRyxDQUFDOztB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
@@ -47,6 +47,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
47
47
  updateTrigger = _useContextMentions.updateTrigger,
48
48
  replaceTriggerWithChip = _useContextMentions.replaceTriggerWithChip,
49
49
  syncTriggerAtRunLength = _useContextMentions.syncTriggerAtRunLength,
50
+ syncSkillTrigger = _useContextMentions.syncSkillTrigger,
50
51
  updateSlashTrigger = _useContextMentions.updateSlashTrigger,
51
52
  replaceTriggerWithSlashChip = _useContextMentions.replaceTriggerWithSlashChip,
52
53
  serialize = _useContextMentions.serialize,
@@ -158,6 +159,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
158
159
  },
159
160
  serialize: serialize,
160
161
  syncTriggerAtRunLength: syncTriggerAtRunLength,
162
+ syncSkillTrigger: syncSkillTrigger,
161
163
  hasVisualMultiline: function hasVisualMultiline() {
162
164
  var _editor$textContent$t, _editor$textContent2;
163
165
  var editor = editorRef.current;
@@ -228,7 +230,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
228
230
  });
229
231
  }
230
232
  };
231
- }, [focus, clearEditorDom, serialize, syncTriggerAtRunLength, replaceTriggerWithChip, replaceTriggerWithSlashChip, onInput, recomputePlaceholderTruncation, syncEditorEmptyAttribute]);
233
+ }, [focus, clearEditorDom, serialize, syncTriggerAtRunLength, syncSkillTrigger, replaceTriggerWithChip, replaceTriggerWithSlashChip, onInput, recomputePlaceholderTruncation, syncEditorEmptyAttribute]);
232
234
  var handleInput = function handleInput() {
233
235
  if (skipNextInput.current) {
234
236
  skipNextInput.current = false;
@@ -303,4 +305,4 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
303
305
  });
304
306
  });
305
307
  ContextMentionEditor.displayName = 'ContextMentionEditor';
306
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImJ1aWxkU2xhc2hDaGlwRWxlbWVudCIsIlNDTUVFZGl0YWJsZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsImlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciIsImVkaXRvciIsInBsYWNlaG9sZGVyIiwidHJpbW1lZCIsInRyaW0iLCJjbGllbnRXaWR0aCIsInN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJjdHgiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJnZXRDb250ZXh0IiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJtZWFzdXJlZCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJwYWRkaW5nTGVmdCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwiYXZhaWxhYmxlIiwiTWF0aCIsIm1heCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwiX3JlZiIsInJlZiIsIl9wbGFjZWhvbGRlciR0cmltMiIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwib25JbnB1dCIsIm9uS2V5RG93biIsIm9uRm9jdXMiLCJvbkJsdXIiLCJfdXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwidXBkYXRlVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwidXBkYXRlU2xhc2hUcmlnZ2VyIiwicmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwIiwic2VyaWFsaXplIiwiY2xlYXJFZGl0b3JEb20iLCJjbGVhciIsImZvY3VzIiwic2tpcE5leHRJbnB1dCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwic2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvZ2ljYWxFbXB0eSIsInNldExvZ2ljYWxFbXB0eSIsInN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSIsImlzRW1wdHkiLCJjdXJyZW50Iiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwibm9ybWFsaXplRW1wdHlFZGl0b3JEb20iLCJfZWRpdG9yJHRleHRDb250ZW50IiwidGV4dENvbnRlbnQiLCJpbm5lckhUTUwiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJyYW5nZSIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZUNvbnRlbnRzIiwiY29sbGFwc2UiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiIsIl9wbGFjZWhvbGRlciR0cmltIiwiZWwiLCJwaCIsImlzRWRpdG9yTG9naWNhbGx5RW1wdHkiLCJ0ZXh0IiwidW5kZWZpbmVkIiwicm8iLCJSZXNpemVPYnNlcnZlciIsInF1ZXVlTWljcm90YXNrIiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJzZXRQbGFpblRleHQiLCJwbGFpbiIsInN0YXRlIiwiX29iamVjdFNwcmVhZCIsInRyaWdnZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwic2xhc2hUcmlnZ2VyIiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImhhc1Zpc3VhbE11bHRpbGluZSIsIl9lZGl0b3IkdGV4dENvbnRlbnQkdCIsIl9lZGl0b3IkdGV4dENvbnRlbnQyIiwibGluZUhlaWdodCIsImVkaXRvckhlaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImlzTXVsdGlsaW5lIiwiZ2V0RWRpdG9yQ2xpZW50UmVjdCIsIl9lZGl0b3JSZWYkY3VycmVudCRnZSIsIl9lZGl0b3JSZWYkY3VycmVudCIsImluc2VydE1lbnRpb24iLCJtZW50aW9uIiwiY2hpcCIsImluc2VydFNsYXNoQ29tbWFuZCIsImNvbW1hbmQiLCJoYW5kbGVJbnB1dCIsInRyaWciLCJzbGFzaFRyaWciLCJtZW50aW9ucyIsInNsYXNoQ29tbWFuZHMiLCJoYW5kbGVQYXN0ZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImNsaXBib2FyZERhdGEiLCJnZXREYXRhIiwicmFuZ2VDb3VudCIsImRlbGV0ZUZyb21Eb2N1bWVudCIsImdldFJhbmdlQXQiLCJpbnNlcnROb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJjb2xsYXBzZVRvRW5kIiwidHJpbW1lZFBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXJUb29sdGlwVGl0bGUiLCJjaGlsZHJlbiIsInRpdGxlIiwic3R5bGUiLCJkaXNwbGF5IiwibWluV2lkdGgiLCJjb250ZW50RWRpdGFibGUiLCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciLCJyb2xlIiwib25QYXN0ZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25FZGl0b3IvQ29udGV4dE1lbnRpb25FZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsaXBib2FyZEV2ZW50LFxuICBmb3J3YXJkUmVmLFxuICBLZXlib2FyZEV2ZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZUNvbnRleHRNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBidWlsZENoaXBFbGVtZW50IH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25DaGlwJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25DaGlwR2xvYmFsU3R5bGVzIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBidWlsZFNsYXNoQ2hpcEVsZW1lbnQsIFNsYXNoQ29tbWFuZENoaXBEYXRhIH0gZnJvbSAnLi4vU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNDTUVFZGl0YWJsZSB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25FZGl0b3Iuc3R5bGVzJ1xuXG5jb25zdCBpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IgPSAoZWRpdG9yOiBIVE1MRWxlbWVudCwgcGxhY2Vob2xkZXI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB0cmltbWVkID0gcGxhY2Vob2xkZXIudHJpbSgpXG4gIGlmICghdHJpbW1lZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IHsgY2xpZW50V2lkdGggfSA9IGVkaXRvclxuICBpZiAoY2xpZW50V2lkdGggPD0gNCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWRpdG9yKVxuICBjb25zdCBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpXG4gIGlmICghY3R4KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY3R4LmZvbnQgPSBgJHtzdHlsZXMuZm9udFdlaWdodH0gJHtzdHlsZXMuZm9udFNpemV9ICR7c3R5bGVzLmZvbnRGYW1pbHl9YFxuICBjb25zdCBtZWFzdXJlZCA9IGN0eC5tZWFzdXJlVGV4dCh0cmltbWVkKS53aWR0aFxuXG4gIGNvbnN0IHBhZGRpbmdMZWZ0ID0gcGFyc2VGbG9hdChzdHlsZXMucGFkZGluZ0xlZnQpIHx8IDBcbiAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMucGFkZGluZ1JpZ2h0KSB8fCAwXG4gIGNvbnN0IGJvcmRlckxlZnQgPSBwYXJzZUZsb2F0KHN0eWxlcy5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgY29uc3QgYm9yZGVyUmlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5ib3JkZXJSaWdodFdpZHRoKSB8fCAwXG4gIGNvbnN0IGF2YWlsYWJsZSA9IE1hdGgubWF4KDAsIGNsaWVudFdpZHRoIC0gcGFkZGluZ0xlZnQgLSBwYWRkaW5nUmlnaHQgLSBib3JkZXJMZWZ0IC0gYm9yZGVyUmlnaHQpXG5cbiAgcmV0dXJuIG1lYXN1cmVkID4gYXZhaWxhYmxlICsgMVxufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSA9IHtcbiAgZm9jdXM6ICgpID0+IHZvaWRcbiAgY2xlYXI6ICgpID0+IHZvaWRcbiAgc2V0UGxhaW5UZXh0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkXG4gIGluc2VydE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBpbnNlcnRTbGFzaENvbW1hbmQ6IChjb21tYW5kOiBTbGFzaENvbW1hbmRDaGlwRGF0YSkgPT4gdm9pZFxuICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoOiAoYXRSdW5MZW5ndGg6IG51bWJlcikgPT4gdm9pZFxuICBzZXJpYWxpemU6ICgpID0+IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgICBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXVxuICAgIHNsYXNoQ29tbWFuZHM6IFNsYXNoQ29tbWFuZENoaXBEYXRhW11cbiAgfVxuICBoYXNWaXN1YWxNdWx0aWxpbmU6ICgpID0+IGJvb2xlYW5cbiAgLyoqIFJlY3QgZGVsIMOhcmVhIGVkaXRhYmxlICh2aWV3cG9ydCk7IGxvIHVzYSBlbCBwb3BvdmVyIGRlIEAgcGFyYSBhbGluZWFyIGFuY2hvL29yaWdlbi4gKi9cbiAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gRE9NUmVjdCB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25FZGl0b3JQcm9wcyA9IHtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBvbklucHV0PzogKHN0YXRlOiB7XG4gICAgdGV4dDogc3RyaW5nXG4gICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICBzbGFzaENvbW1hbmRzOiBTbGFzaENvbW1hbmRDaGlwRGF0YVtdXG4gICAgdHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfVxuICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfVxuICB9KSA9PiB2b2lkXG4gIG9uS2V5RG93bj86IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZFxuICBvbkZvY3VzPzogKCkgPT4gdm9pZFxuICBvbkJsdXI/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvbkVkaXRvciA9IGZvcndhcmRSZWY8Q29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUsIENvbnRleHRNZW50aW9uRWRpdG9yUHJvcHM+KFxuICAoeyBwbGFjZWhvbGRlciwgZGlzYWJsZWQsIGNsYXNzTmFtZSwgb25JbnB1dCwgb25LZXlEb3duLCBvbkZvY3VzLCBvbkJsdXIgfSwgcmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yUmVmLFxuICAgICAgdXBkYXRlVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgdXBkYXRlU2xhc2hUcmlnZ2VyLFxuICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwLFxuICAgICAgc2VyaWFsaXplLFxuICAgICAgY2xlYXI6IGNsZWFyRWRpdG9yRG9tLFxuICAgICAgZm9jdXMsXG4gICAgfSA9IHVzZUNvbnRleHRNZW50aW9ucygpXG4gICAgY29uc3Qgc2tpcE5leHRJbnB1dCA9IHVzZVJlZihmYWxzZSlcbiAgICBjb25zdCBbcGxhY2Vob2xkZXJUcnVuY2F0ZWQsIHNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtsb2dpY2FsRW1wdHksIHNldExvZ2ljYWxFbXB0eV0gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gICAgY29uc3Qgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlID0gdXNlQ2FsbGJhY2soKGlzRW1wdHk6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1wdHknLCBTdHJpbmcoaXNFbXB0eSkpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICBjb25zdCBub3JtYWxpemVFbXB0eUVkaXRvckRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG5cbiAgICAgIC8vIExpbXBpYXIgY3VhbHF1aWVyIHJlc2lkdW8gKGJyLCBlc3BhY2lvcykgcXVlIGRlamUgZWwgYnJvd3NlciBhbCB2YWNpYXIgZWwgY29udGVudGVkaXRhYmxlLlxuICAgICAgLy8gU2luIGVzdG8sIHVuIGVzcGFjaW8gc3VlbHRvIGFjdGl2YSBkYXRhLWVtcHR5PVwidHJ1ZVwiICsgOjpiZWZvcmUgcGxhY2Vob2xkZXIgZW4gbMOtbmVhIDFcbiAgICAgIC8vIHkgZGVzcGxhemEgZWwgY3Vyc29yIGEgbGEgbMOtbmVhIDIuXG4gICAgICBpZiAoZWRpdG9yLnRleHRDb250ZW50Py50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIGVkaXRvci5pbm5lckhUTUwgPSAnJ1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICB9LCBbZWRpdG9yUmVmXSlcblxuICAgIGNvbnN0IHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHBoID0gcGxhY2Vob2xkZXI/LnRyaW0oKSA/PyAnJ1xuICAgICAgY29uc3QgaXNFZGl0b3JMb2dpY2FsbHlFbXB0eSA9IHNlcmlhbGl6ZSgpLnRleHQudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoIWVsIHx8ICFwaCB8fCAhaXNFZGl0b3JMb2dpY2FsbHlFbXB0eSkge1xuICAgICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChmYWxzZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkKGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvcihlbCwgcGgpKVxuICAgIH0sIFtwbGFjZWhvbGRlciwgc2VyaWFsaXplXSlcblxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgY29uc3QgZWwgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgaWYgKCFlbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICAgIH0pXG4gICAgICByby5vYnNlcnZlKGVsKVxuICAgICAgcmV0dXJuICgpID0+IHJvLmRpc2Nvbm5lY3QoKVxuICAgIH0sIFtwbGFjZWhvbGRlciwgZGlzYWJsZWQsIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbl0pXG5cbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxuICAgICAgcmVmLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgY2xlYXJFZGl0b3JEb20oKVxuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSh0cnVlKVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eSh0cnVlKVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgc2V0UGxhaW5UZXh0OiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG4gICAgICAgICAgY29uc3QgcGxhaW4gPSB0ZXh0ID8/ICcnXG4gICAgICAgICAgZWRpdG9yLnRleHRDb250ZW50ID0gcGxhaW5cbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgZWRpdG9yLmlubmVySFRNTCA9ICcnXG4gICAgICAgICAgfVxuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBlZGl0b3IuY2hpbGROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICAgICAgICByYW5nZS5jb2xsYXBzZShmYWxzZSlcbiAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBzZXJpYWxpemUsXG4gICAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICAgIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRleHQgPSBlZGl0b3IudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJ1xuICAgICAgICAgIGlmICghdGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWRpdG9yKVxuICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5saW5lSGVpZ2h0KSB8fCAyMlxuICAgICAgICAgIGNvbnN0IGVkaXRvckhlaWdodCA9IGVkaXRvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHRcbiAgICAgICAgICBjb25zdCBpc011bHRpbGluZSA9IGVkaXRvckhlaWdodCA+IGxpbmVIZWlnaHQgKiAxLjVcblxuICAgICAgICAgIHJldHVybiBpc011bHRpbGluZVxuICAgICAgICB9LFxuICAgICAgICBnZXRFZGl0b3JDbGllbnRSZWN0OiAoKSA9PiBlZGl0b3JSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgPz8gbnVsbCxcbiAgICAgICAgaW5zZXJ0TWVudGlvbjogKG1lbnRpb246IENvbnRleHRNZW50aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2hpcCA9IGJ1aWxkQ2hpcEVsZW1lbnQobWVudGlvbilcbiAgICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwKGNoaXAsIG1lbnRpb24pXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICAvLyBTaSBlbCBuYXZlZ2Fkb3Igbm8gZGlzcGFyYSBgaW5wdXRgIHRyYXMgZWwgY2hpcCwgZWwgZmxhZyBxdWVkYWJhIGVuIHRydWUgeSBlbCBwcsOzeGltbyBAIGRlbCB1c3VhcmlvIHNlIGlnbm9yYWJhLlxuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgaW5zZXJ0U2xhc2hDb21tYW5kOiAoY29tbWFuZDogU2xhc2hDb21tYW5kQ2hpcERhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRTbGFzaENoaXBFbGVtZW50KGNvbW1hbmQpXG4gICAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwKGNoaXAsIGNvbW1hbmQpXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBbXG4gICAgICAgIGZvY3VzLFxuICAgICAgICBjbGVhckVkaXRvckRvbSxcbiAgICAgICAgc2VyaWFsaXplLFxuICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwLFxuICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhTbGFzaENoaXAsXG4gICAgICAgIG9uSW5wdXQsXG4gICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbixcbiAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlLFxuICAgICAgXVxuICAgIClcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0ID0gKCkgPT4ge1xuICAgICAgaWYgKHNraXBOZXh0SW5wdXQuY3VycmVudCkge1xuICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHRyaWcgPSB1cGRhdGVUcmlnZ2VyKClcbiAgICAgIGNvbnN0IHNsYXNoVHJpZyA9IHVwZGF0ZVNsYXNoVHJpZ2dlcigpXG4gICAgICBsZXQgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgICAgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20oKVxuICAgICAgICBzdGF0ZSA9IHsgdGV4dDogJycsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfVxuICAgICAgfVxuICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogdHJpZy5hY3RpdmUsIHF1ZXJ5OiB0cmlnLnF1ZXJ5LCBhdFJ1bkxlbmd0aDogdHJpZy5hdFJ1bkxlbmd0aCB9LFxuICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBzbGFzaFRyaWcuYWN0aXZlLCBxdWVyeTogc2xhc2hUcmlnLnF1ZXJ5IH0sXG4gICAgICB9KVxuICAgICAgcXVldWVNaWNyb3Rhc2socmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVBhc3RlID0gKGU6IENsaXBib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCB0ZXh0ID0gZS5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMCkgcmV0dXJuXG4gICAgICBzZWxlY3Rpb24uZGVsZXRlRnJvbURvY3VtZW50KClcbiAgICAgIHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpXG4gICAgICBzZWxlY3Rpb24uY29sbGFwc2VUb0VuZCgpXG4gICAgICBoYW5kbGVJbnB1dCgpXG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZFBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI/LnRyaW0oKSA/PyAnJ1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyVG9vbHRpcFRpdGxlID0gbG9naWNhbEVtcHR5ICYmIHBsYWNlaG9sZGVyVHJ1bmNhdGVkICYmIHRyaW1tZWRQbGFjZWhvbGRlciA/IHRyaW1tZWRQbGFjZWhvbGRlciA6ICcnXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyAvPlxuICAgICAgICA8VG9vbHRpcCB0aXRsZT17cGxhY2Vob2xkZXJUb29sdGlwVGl0bGV9PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdibG9jaycsIHdpZHRoOiAnMTAwJScsIG1pbldpZHRoOiAwIH19PlxuICAgICAgICAgICAgPFNDTUVFZGl0YWJsZVxuICAgICAgICAgICAgICByZWY9e2VkaXRvclJlZn1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBkYXRhLWVtcHR5PXtTdHJpbmcobG9naWNhbEVtcHR5KX1cbiAgICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e1N0cmluZyghIWRpc2FibGVkKX1cbiAgICAgICAgICAgICAgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXG4gICAgICAgICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgPC8+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FFRUEsVUFBVSxFQUVWQyxXQUFXLEVBQ1hDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxrQkFBa0IsUUFBUSxtQ0FBbUM7QUFFdEUsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLDhCQUE4QixRQUFRLGlEQUFpRDtBQUNoRyxTQUFTQyxxQkFBcUIsUUFBOEIscUJBQXFCO0FBQ2pGLFNBQVNDLFlBQVksUUFBUSwrQkFBK0I7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUU1RCxJQUFNQyw4QkFBOEIsR0FBRyxTQUFqQ0EsOEJBQThCQSxDQUFJQyxNQUFtQixFQUFFQyxXQUFtQixFQUFjO0VBQzVGLElBQU1DLE9BQU8sR0FBR0QsV0FBVyxDQUFDRSxJQUFJLENBQUMsQ0FBQztFQUNsQyxJQUFJLENBQUNELE9BQU8sRUFBRTtJQUNaLE9BQU8sS0FBSztFQUNkO0VBQ0EsSUFBUUUsV0FBVyxHQUFLSixNQUFN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
308
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImJ1aWxkU2xhc2hDaGlwRWxlbWVudCIsIlNDTUVFZGl0YWJsZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsImlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciIsImVkaXRvciIsInBsYWNlaG9sZGVyIiwidHJpbW1lZCIsInRyaW0iLCJjbGllbnRXaWR0aCIsInN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJjdHgiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJnZXRDb250ZXh0IiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJtZWFzdXJlZCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJwYWRkaW5nTGVmdCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwiYXZhaWxhYmxlIiwiTWF0aCIsIm1heCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwiX3JlZiIsInJlZiIsIl9wbGFjZWhvbGRlciR0cmltMiIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwib25JbnB1dCIsIm9uS2V5RG93biIsIm9uRm9jdXMiLCJvbkJsdXIiLCJfdXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwidXBkYXRlVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwic3luY1NraWxsVHJpZ2dlciIsInVwZGF0ZVNsYXNoVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCIsInNlcmlhbGl6ZSIsImNsZWFyRWRpdG9yRG9tIiwiY2xlYXIiLCJmb2N1cyIsInNraXBOZXh0SW5wdXQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJwbGFjZWhvbGRlclRydW5jYXRlZCIsInNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2dpY2FsRW1wdHkiLCJzZXRMb2dpY2FsRW1wdHkiLCJzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUiLCJpc0VtcHR5IiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsIlN0cmluZyIsIm5vcm1hbGl6ZUVtcHR5RWRpdG9yRG9tIiwiX2VkaXRvciR0ZXh0Q29udGVudCIsInRleHRDb250ZW50IiwiaW5uZXJIVE1MIiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2UiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGVDb250ZW50cyIsImNvbGxhcHNlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24iLCJfcGxhY2Vob2xkZXIkdHJpbSIsImVsIiwicGgiLCJpc0VkaXRvckxvZ2ljYWxseUVtcHR5IiwidGV4dCIsInVuZGVmaW5lZCIsInJvIiwiUmVzaXplT2JzZXJ2ZXIiLCJxdWV1ZU1pY3JvdGFzayIsIm9ic2VydmUiLCJkaXNjb25uZWN0Iiwic2V0UGxhaW5UZXh0IiwicGxhaW4iLCJzdGF0ZSIsIl9vYmplY3RTcHJlYWQiLCJ0cmlnZ2VyIiwiYWN0aXZlIiwicXVlcnkiLCJhdFJ1bkxlbmd0aCIsInNsYXNoVHJpZ2dlciIsImNoaWxkTm9kZXMiLCJsZW5ndGgiLCJoYXNWaXN1YWxNdWx0aWxpbmUiLCJfZWRpdG9yJHRleHRDb250ZW50JHQiLCJfZWRpdG9yJHRleHRDb250ZW50MiIsImxpbmVIZWlnaHQiLCJlZGl0b3JIZWlnaHQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJoZWlnaHQiLCJpc011bHRpbGluZSIsImdldEVkaXRvckNsaWVudFJlY3QiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJpbnNlcnRNZW50aW9uIiwibWVudGlvbiIsImNoaXAiLCJpbnNlcnRTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiaGFuZGxlSW5wdXQiLCJ0cmlnIiwic2xhc2hUcmlnIiwibWVudGlvbnMiLCJzbGFzaENvbW1hbmRzIiwiaGFuZGxlUGFzdGUiLCJlIiwicHJldmVudERlZmF1bHQiLCJjbGlwYm9hcmREYXRhIiwiZ2V0RGF0YSIsInJhbmdlQ291bnQiLCJkZWxldGVGcm9tRG9jdW1lbnQiLCJnZXRSYW5nZUF0IiwiaW5zZXJ0Tm9kZSIsImNyZWF0ZVRleHROb2RlIiwiY29sbGFwc2VUb0VuZCIsInRyaW1tZWRQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyVG9vbHRpcFRpdGxlIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsIm1pbldpZHRoIiwiY29udGVudEVkaXRhYmxlIiwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiwicm9sZSIsIm9uUGFzdGUiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yL0NvbnRleHRNZW50aW9uRWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGlwYm9hcmRFdmVudCxcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VDb250ZXh0TWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgYnVpbGRDaGlwRWxlbWVudCB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgYnVpbGRTbGFzaENoaXBFbGVtZW50LCBTbGFzaENvbW1hbmRDaGlwRGF0YSB9IGZyb20gJy4uL1NsYXNoQ29tbWFuZENoaXAnXG5pbXBvcnQgeyBTQ01FRWRpdGFibGUgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uRWRpdG9yLnN0eWxlcydcblxuY29uc3QgaXNQbGFjZWhvbGRlclRydW5jYXRlZEluRWRpdG9yID0gKGVkaXRvcjogSFRNTEVsZW1lbnQsIHBsYWNlaG9sZGVyOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgY29uc3QgdHJpbW1lZCA9IHBsYWNlaG9sZGVyLnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCB7IGNsaWVudFdpZHRoIH0gPSBlZGl0b3JcbiAgaWYgKGNsaWVudFdpZHRoIDw9IDQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVkaXRvcilcbiAgY29uc3QgY3R4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKVxuICBpZiAoIWN0eCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGN0eC5mb250ID0gYCR7c3R5bGVzLmZvbnRXZWlnaHR9ICR7c3R5bGVzLmZvbnRTaXplfSAke3N0eWxlcy5mb250RmFtaWx5fWBcbiAgY29uc3QgbWVhc3VyZWQgPSBjdHgubWVhc3VyZVRleHQodHJpbW1lZCkud2lkdGhcblxuICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdMZWZ0KSB8fCAwXG4gIGNvbnN0IHBhZGRpbmdSaWdodCA9IHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdSaWdodCkgfHwgMFxuICBjb25zdCBib3JkZXJMZWZ0ID0gcGFyc2VGbG9hdChzdHlsZXMuYm9yZGVyTGVmdFdpZHRoKSB8fCAwXG4gIGNvbnN0IGJvcmRlclJpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMuYm9yZGVyUmlnaHRXaWR0aCkgfHwgMFxuICBjb25zdCBhdmFpbGFibGUgPSBNYXRoLm1heCgwLCBjbGllbnRXaWR0aCAtIHBhZGRpbmdMZWZ0IC0gcGFkZGluZ1JpZ2h0IC0gYm9yZGVyTGVmdCAtIGJvcmRlclJpZ2h0KVxuXG4gIHJldHVybiBtZWFzdXJlZCA+IGF2YWlsYWJsZSArIDFcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgPSB7XG4gIGZvY3VzOiAoKSA9PiB2b2lkXG4gIGNsZWFyOiAoKSA9PiB2b2lkXG4gIHNldFBsYWluVGV4dDogKHRleHQ6IHN0cmluZykgPT4gdm9pZFxuICBpbnNlcnRNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbiAgaW5zZXJ0U2xhc2hDb21tYW5kOiAoY29tbWFuZDogU2xhc2hDb21tYW5kQ2hpcERhdGEpID0+IHZvaWRcbiAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aDogKGF0UnVuTGVuZ3RoOiBudW1iZXIpID0+IHZvaWRcbiAgLyoqIENvbnZpZXJ0ZSBlbCB0cmlnZ2VyIGFjdGl2byBhIGBAL3F1ZXJ5YCBwYXJhIGFjdGl2YXIgbGEgdGFiIGRlIHNraWxscy4gKi9cbiAgc3luY1NraWxsVHJpZ2dlcjogKCkgPT4gdm9pZFxuICBzZXJpYWxpemU6ICgpID0+IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgICBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXVxuICAgIHNsYXNoQ29tbWFuZHM6IFNsYXNoQ29tbWFuZENoaXBEYXRhW11cbiAgfVxuICBoYXNWaXN1YWxNdWx0aWxpbmU6ICgpID0+IGJvb2xlYW5cbiAgLyoqIFJlY3QgZGVsIMOhcmVhIGVkaXRhYmxlICh2aWV3cG9ydCk7IGxvIHVzYSBlbCBwb3BvdmVyIGRlIEAgcGFyYSBhbGluZWFyIGFuY2hvL29yaWdlbi4gKi9cbiAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gRE9NUmVjdCB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25FZGl0b3JQcm9wcyA9IHtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBvbklucHV0PzogKHN0YXRlOiB7XG4gICAgdGV4dDogc3RyaW5nXG4gICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICBzbGFzaENvbW1hbmRzOiBTbGFzaENvbW1hbmRDaGlwRGF0YVtdXG4gICAgdHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfVxuICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfVxuICB9KSA9PiB2b2lkXG4gIG9uS2V5RG93bj86IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZFxuICBvbkZvY3VzPzogKCkgPT4gdm9pZFxuICBvbkJsdXI/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvbkVkaXRvciA9IGZvcndhcmRSZWY8Q29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUsIENvbnRleHRNZW50aW9uRWRpdG9yUHJvcHM+KFxuICAoeyBwbGFjZWhvbGRlciwgZGlzYWJsZWQsIGNsYXNzTmFtZSwgb25JbnB1dCwgb25LZXlEb3duLCBvbkZvY3VzLCBvbkJsdXIgfSwgcmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yUmVmLFxuICAgICAgdXBkYXRlVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgc3luY1NraWxsVHJpZ2dlcixcbiAgICAgIHVwZGF0ZVNsYXNoVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCxcbiAgICAgIHNlcmlhbGl6ZSxcbiAgICAgIGNsZWFyOiBjbGVhckVkaXRvckRvbSxcbiAgICAgIGZvY3VzLFxuICAgIH0gPSB1c2VDb250ZXh0TWVudGlvbnMoKVxuICAgIGNvbnN0IHNraXBOZXh0SW5wdXQgPSB1c2VSZWYoZmFsc2UpXG4gICAgY29uc3QgW3BsYWNlaG9sZGVyVHJ1bmNhdGVkLCBzZXRQbGFjZWhvbGRlclRydW5jYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbbG9naWNhbEVtcHR5LCBzZXRMb2dpY2FsRW1wdHldID0gdXNlU3RhdGUodHJ1ZSlcblxuICAgIGNvbnN0IHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSA9IHVzZUNhbGxiYWNrKChpc0VtcHR5OiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuc2V0QXR0cmlidXRlKCdkYXRhLWVtcHR5JywgU3RyaW5nKGlzRW1wdHkpKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3Qgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgaWYgKCFlZGl0b3IpIHJldHVyblxuXG4gICAgICAvLyBMaW1waWFyIGN1YWxxdWllciByZXNpZHVvIChiciwgZXNwYWNpb3MpIHF1ZSBkZWplIGVsIGJyb3dzZXIgYWwgdmFjaWFyIGVsIGNvbnRlbnRlZGl0YWJsZS5cbiAgICAgIC8vIFNpbiBlc3RvLCB1biBlc3BhY2lvIHN1ZWx0byBhY3RpdmEgZGF0YS1lbXB0eT1cInRydWVcIiArIDo6YmVmb3JlIHBsYWNlaG9sZGVyIGVuIGzDrW5lYSAxXG4gICAgICAvLyB5IGRlc3BsYXphIGVsIGN1cnNvciBhIGxhIGzDrW5lYSAyLlxuICAgICAgaWYgKGVkaXRvci50ZXh0Q29udGVudD8udHJpbSgpID09PSAnJykge1xuICAgICAgICBlZGl0b3IuaW5uZXJIVE1MID0gJydcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgfSwgW2VkaXRvclJlZl0pXG5cbiAgICBjb25zdCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICBjb25zdCBwaCA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICAgIGNvbnN0IGlzRWRpdG9yTG9naWNhbGx5RW1wdHkgPSBzZXJpYWxpemUoKS50ZXh0LnRyaW0oKSA9PT0gJydcblxuICAgICAgaWYgKCFlbCB8fCAhcGggfHwgIWlzRWRpdG9yTG9naWNhbGx5RW1wdHkpIHtcbiAgICAgICAgc2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IoZWwsIHBoKSlcbiAgICB9LCBbcGxhY2Vob2xkZXIsIHNlcmlhbGl6ZV0pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgICB9KVxuICAgICAgcm8ub2JzZXJ2ZShlbClcbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbcGxhY2Vob2xkZXIsIGRpc2FibGVkLCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb25dKVxuXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShcbiAgICAgIHJlZixcbiAgICAgICgpID0+ICh7XG4gICAgICAgIGZvY3VzLFxuICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgIGNsZWFyRWRpdG9yRG9tKClcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUodHJ1ZSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkodHJ1ZSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgICAgIH0sXG4gICAgICAgIHNldFBsYWluVGV4dDogKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IpIHJldHVyblxuICAgICAgICAgIGNvbnN0IHBsYWluID0gdGV4dCA/PyAnJ1xuICAgICAgICAgIGVkaXRvci50ZXh0Q29udGVudCA9IHBsYWluXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBjb25zdCBpc0VtcHR5ID0gc3RhdGUudGV4dC50cmltKCkgPT09ICcnXG4gICAgICAgICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgICAgICAgIGVkaXRvci5pbm5lckhUTUwgPSAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgZWRpdG9yLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKVxuICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgc2VyaWFsaXplLFxuICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgICBzeW5jU2tpbGxUcmlnZ2VyLFxuICAgICAgICBoYXNWaXN1YWxNdWx0aWxpbmU6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0ZXh0ID0gZWRpdG9yLnRleHRDb250ZW50Py50cmltKCkgPz8gJydcbiAgICAgICAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVkaXRvcilcbiAgICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMubGluZUhlaWdodCkgfHwgMjJcbiAgICAgICAgICBjb25zdCBlZGl0b3JIZWlnaHQgPSBlZGl0b3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG4gICAgICAgICAgY29uc3QgaXNNdWx0aWxpbmUgPSBlZGl0b3JIZWlnaHQgPiBsaW5lSGVpZ2h0ICogMS41XG5cbiAgICAgICAgICByZXR1cm4gaXNNdWx0aWxpbmVcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gZWRpdG9yUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpID8/IG51bGwsXG4gICAgICAgIGluc2VydE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoaXAgPSBidWlsZENoaXBFbGVtZW50KG1lbnRpb24pXG4gICAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoQ2hpcChjaGlwLCBtZW50aW9uKVxuICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IHRydWVcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBpc0VtcHR5ID0gc3RhdGUudGV4dC50cmltKCkgPT09ICcnXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2kgZWwgbmF2ZWdhZG9yIG5vIGRpc3BhcmEgYGlucHV0YCB0cmFzIGVsIGNoaXAsIGVsIGZsYWcgcXVlZGFiYSBlbiB0cnVlIHkgZWwgcHLDs3hpbW8gQCBkZWwgdXN1YXJpbyBzZSBpZ25vcmFiYS5cbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFNsYXNoQ29tbWFuZDogKGNvbW1hbmQ6IFNsYXNoQ29tbWFuZENoaXBEYXRhKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2hpcCA9IGJ1aWxkU2xhc2hDaGlwRWxlbWVudChjb21tYW5kKVxuICAgICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcChjaGlwLCBjb21tYW5kKVxuICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IHRydWVcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBpc0VtcHR5ID0gc3RhdGUudGV4dC50cmltKCkgPT09ICcnXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgW1xuICAgICAgICBmb2N1cyxcbiAgICAgICAgY2xlYXJFZGl0b3JEb20sXG4gICAgICAgIHNlcmlhbGl6ZSxcbiAgICAgICAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCxcbiAgICAgICAgc3luY1NraWxsVHJpZ2dlcixcbiAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoQ2hpcCxcbiAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwLFxuICAgICAgICBvbklucHV0LFxuICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24sXG4gICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSxcbiAgICAgIF1cbiAgICApXG5cbiAgICBjb25zdCBoYW5kbGVJbnB1dCA9ICgpID0+IHtcbiAgICAgIGlmIChza2lwTmV4dElucHV0LmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCB0cmlnID0gdXBkYXRlVHJpZ2dlcigpXG4gICAgICBjb25zdCBzbGFzaFRyaWcgPSB1cGRhdGVTbGFzaFRyaWdnZXIoKVxuICAgICAgbGV0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgIG5vcm1hbGl6ZUVtcHR5RWRpdG9yRG9tKClcbiAgICAgICAgc3RhdGUgPSB7IHRleHQ6ICcnLCBtZW50aW9uczogW10sIHNsYXNoQ29tbWFuZHM6IFtdIH1cbiAgICAgIH1cbiAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICBvbklucHV0Py4oe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IHRyaWcuYWN0aXZlLCBxdWVyeTogdHJpZy5xdWVyeSwgYXRSdW5MZW5ndGg6IHRyaWcuYXRSdW5MZW5ndGggfSxcbiAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogc2xhc2hUcmlnLmFjdGl2ZSwgcXVlcnk6IHNsYXNoVHJpZy5xdWVyeSB9LFxuICAgICAgfSlcbiAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVQYXN0ZSA9IChlOiBDbGlwYm9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgY29uc3QgdGV4dCA9IGUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJylcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVyblxuICAgICAgc2VsZWN0aW9uLmRlbGV0ZUZyb21Eb2N1bWVudCgpXG4gICAgICBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKVxuICAgICAgc2VsZWN0aW9uLmNvbGxhcHNlVG9FbmQoKVxuICAgICAgaGFuZGxlSW5wdXQoKVxuICAgIH1cblxuICAgIGNvbnN0IHRyaW1tZWRQbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICBjb25zdCBwbGFjZWhvbGRlclRvb2x0aXBUaXRsZSA9IGxvZ2ljYWxFbXB0eSAmJiBwbGFjZWhvbGRlclRydW5jYXRlZCAmJiB0cmltbWVkUGxhY2Vob2xkZXIgPyB0cmltbWVkUGxhY2Vob2xkZXIgOiAnJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3BsYWNlaG9sZGVyVG9vbHRpcFRpdGxlfT5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCB3aWR0aDogJzEwMCUnLCBtaW5XaWR0aDogMCB9fT5cbiAgICAgICAgICAgIDxTQ01FRWRpdGFibGVcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgZGF0YS1lbXB0eT17U3RyaW5nKGxvZ2ljYWxFbXB0eSl9XG4gICAgICAgICAgICAgIGNvbnRlbnRFZGl0YWJsZT17IWRpc2FibGVkfVxuICAgICAgICAgICAgICBkYXRhLWRpc2FibGVkPXtTdHJpbmcoISFkaXNhYmxlZCl9XG4gICAgICAgICAgICAgIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1xuICAgICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICAgIGFyaWEtbXVsdGlsaW5lPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIG9uSW5wdXQ9e2hhbmRsZUlucHV0fVxuICAgICAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgICAgICAgb25QYXN0ZT17aGFuZGxlUGFzdGV9XG4gICAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuKVxuXG5Db250ZXh0TWVudGlvbkVkaXRvci5kaXNwbGF5TmFtZSA9ICdDb250ZXh0TWVudGlvbkVkaXRvcidcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBRUVBLFVBQVUsRUFFVkMsV0FBVyxFQUNYQyxtQkFBbUIsRUFDbkJDLGVBQWUsRUFDZkMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0Msa0JBQWtCLFFBQVEsbUNBQW1DO0FBRXRFLFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyw4QkFBOEIsUUFBUSxpREFBaUQ7QUFDaEcsU0FBU0MscUJBQXFCLFFBQThCLHFCQUFxQjtBQUNqRixTQUFTQyxZQUFZLFFBQVEsK0JBQStCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxF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
@@ -7,7 +7,7 @@ import { NotionIcon } from '../icons/NotionIcon';
7
7
  import { SubtaskIcon } from '../icons/SubtaskIcon';
8
8
  import { TaskLinkIcon } from '../icons/TaskLinkIcon';
9
9
  import { getContextMentionIcon, isNotionMcpSlug } from '../../../utils/contextMentionIcons';
10
- import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowWrap, SCMITaskRowSurface, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconWrap, SCMITaskTitle } from './ContextMentionItem.styles';
10
+ import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowWrap, SCMITaskRowSurface, SCMISkillRowSurface, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconWrap, SCMITaskTitle } from './ContextMentionItem.styles';
11
11
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  var TASK_PROJECT_NAME_MAX_CHARS = 40;
13
13
  var truncateWithEllipsis = function truncateWithEllipsis(value, maxChars) {
@@ -254,6 +254,33 @@ export var ContextMentionItem = function ContextMentionItem(_ref3) {
254
254
  })
255
255
  });
256
256
  }
257
+ if (type === 'skill') {
258
+ return /*#__PURE__*/_jsx(SCMITaskRowWrap, {
259
+ onMouseDown: handleClick,
260
+ onMouseEnter: function onMouseEnter() {
261
+ return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
262
+ },
263
+ children: /*#__PURE__*/_jsx(SCMISkillRowSurface, {
264
+ $active: active,
265
+ children: /*#__PURE__*/_jsxs(SCMITaskRowInner, {
266
+ children: [/*#__PURE__*/_jsx("span", {
267
+ style: {
268
+ display: 'inline-flex',
269
+ alignItems: 'center',
270
+ justifyContent: 'center',
271
+ width: 16,
272
+ height: 16,
273
+ flex: '0 0 16px'
274
+ },
275
+ children: getContextMentionIcon('skill', '#808080', raw.id, 16)
276
+ }), /*#__PURE__*/_jsx(SCMITaskTitle, {
277
+ title: primary,
278
+ children: renderTitle(primary, primaryHighlight)
279
+ })]
280
+ })
281
+ })
282
+ });
283
+ }
257
284
  return /*#__PURE__*/_jsx(SCMIRow, {
258
285
  $active: active,
259
286
  onMouseDown: handleClick,
@@ -279,4 +306,4 @@ export var ContextMentionItem = function ContextMentionItem(_ref3) {
279
306
  })
280
307
  });
281
308
  };
282
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiTm90aW9uSWNvbiIsIlN1YnRhc2tJY29uIiwiVGFza0xpbmtJY29uIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwiaXNOb3Rpb25NY3BTbHVnIiwiU0NNSVJvdyIsIlNDTUlQcm9qZWN0Um93IiwiU0NNSVByb2plY3RDb250ZW50IiwiU0NNSU5hbWUiLCJTQ01JVGl0bGUiLCJTQ01JUHJvamVjdFRpdGxlIiwiU0NNSVRpdGxlSGlnaGxpZ2h0IiwiU0NNSUJyZWFkY3J1bWIiLCJTQ01JQnJlYWRjcnVtYlBhcmVudCIsIlNDTUlSb3dVc2VyIiwiU0NNVXNlckF2YXRhcldyYXAiLCJTQ01Vc2VyQXZhdGFySW1nIiwiU0NNVXNlckF2YXRhckZhbGxiYWNrIiwiU0NNVXNlckluZm8iLCJTQ01Vc2VyTmFtZVBvc2l0aW9uUm93IiwiU0NNVXNlck5hbWVDZWxsIiwiU0NNVXNlck5hbWVUZXh0IiwiU0NNVXNlclBvc2l0aW9uVGV4dCIsIlNDTUlUYXNrUm93V3JhcCIsIlNDTUlUYXNrUm93U3VyZmFjZSIsIlNDTUlUYXNrUm93SW5uZXIiLCJTQ01JVGFza1RpdGxlUm93IiwiU0NNSVRhc2tTdWJ0YXNrSWNvbldyYXAiLCJTQ01JVGFza1Byb2plY3ROYW1lIiwiU0NNSVRhc2tJY29uV3JhcCIsIlNDTUlUYXNrVGl0bGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJUQVNLX1BST0pFQ1RfTkFNRV9NQVhfQ0hBUlMiLCJ0cnVuY2F0ZVdpdGhFbGxpcHNpcyIsInZhbHVlIiwibWF4Q2hhcnMiLCJsZW5ndGgiLCJjb25jYXQiLCJzbGljZSIsIk1hdGgiLCJtYXgiLCJ0cmltRW5kIiwicmVuZGVyVGl0bGUiLCJwcmltYXJ5IiwiaGlnaGxpZ2h0Iiwic3RhcnQiLCJlbmQiLCJjaGlsZHJlbiIsInVzZU92ZXJmbG93VG9vbHRpcCIsInJlZiIsImRlcHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9vbHRpcCIsInNldFNob3dUb29sdGlwIiwiZWwiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwibWVhc3VyZSIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwib2JzZXJ2ZSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNjb25uZWN0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImluaXRpYWxzRnJvbURpc3BsYXlOYW1lIiwibmFtZSIsIl9wYXJ0cyQyIiwidHJpbW1lZCIsInRyaW0iLCJwYXJ0cyIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsIl9wYXJ0cyQwJGNoYXJBdCIsIl9wYXJ0cyQiLCJfcGFydHMkY2hhckF0IiwiX3BhcnRzIiwiZmlyc3QiLCJjaGFyQXQiLCJsYXN0IiwidG9VcHBlckNhc2UiLCJzaW5nbGUiLCJVc2VyUm93QXZhdGFyIiwiX3JlZiIsInBpY3R1cmUiLCJuYW1lRm9ySW5pdGlhbHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImJyb2tlbiIsInNldEJyb2tlbiIsImluaXRpYWxzIiwic3JjIiwiYWx0Iiwib25FcnJvciIsImxvYWRpbmciLCJkZWNvZGluZyIsIkNvbnRleHRNZW50aW9uVGFza1JvdyIsIl9yZWYyIiwiX3JhdyRwcm9qZWN0TmFtZSIsIl9icmVhZGNydW1iJHBhcmVudCIsIl9wcmltYXJ5SGlnaGxpZ2h0JHN0YSIsIl9wcmltYXJ5SGlnaGxpZ2h0JGxlbiIsIml0ZW0iLCJhY3RpdmUiLCJvbk1vdXNlRG93biIsIm9uSG92ZXIiLCJwcmltYXJ5SGlnaGxpZ2h0IiwiYnJlYWRjcnVtYiIsInJhdyIsInByb2plY3ROYW1lIiwicGFyZW50IiwicHJvamVjdE5hbWVEaXNwbGF5IiwiaXNQcm9qZWN0TmFtZVRydW5jYXRlZEJ5Q2hhcnMiLCJoYXNGYXRoZXIiLCJmYXRoZXJJZCIsInRpdGxlUmVmIiwicHJvamVjdFJlZiIsInNob3dUaXRsZVRvb2x0aXAiLCJzaG93UHJvamVjdFRvb2x0aXAiLCJzaG91bGRTaG93UHJvamVjdFRvb2x0aXAiLCJvbk1vdXNlRW50ZXIiLCIkYWN0aXZlIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInZhcmlhbnQiLCJ0aXRsZSIsIkNvbnRleHRNZW50aW9uSXRlbSIsIl9yZWYzIiwib25TZWxlY3QiLCJfdXNlVCIsInQiLCJ0eXBlIiwiaGFuZGxlQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYXNDb3VudCIsImNvdW50IiwiaGFzUGFyZW50IiwiY291bnRMYWJlbCIsImRlZmF1bHRWYWx1ZSIsInBvc2l0aW9uTmFtZVRyaW1tZWQiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ1c2VyTmFtZUZvckluaXRpYWxzIiwiJHdpdGhEaXZpZGVyIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZmxleCIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25JdGVtL0NvbnRleHRNZW50aW9uSXRlbS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkMsIE1vdXNlRXZlbnQsIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdHlwZSBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25SaWdodCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25SaWdodCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25JdGVtIGFzIENvbnRleHRNZW50aW9uSXRlbVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IE5vdGlvbkljb24gfSBmcm9tICcuLi9pY29ucy9Ob3Rpb25JY29uJ1xuaW1wb3J0IHsgU3VidGFza0ljb24gfSBmcm9tICcuLi9pY29ucy9TdWJ0YXNrSWNvbidcbmltcG9ydCB7IFRhc2tMaW5rSWNvbiB9IGZyb20gJy4uL2ljb25zL1Rhc2tMaW5rSWNvbidcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiwgaXNOb3Rpb25NY3BTbHVnIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7XG4gIFNDTUlSb3csXG4gIFNDTUlQcm9qZWN0Um93LFxuICBTQ01JUHJvamVjdENvbnRlbnQsXG4gIFNDTUlOYW1lLFxuICBTQ01JVGl0bGUsXG4gIFNDTUlQcm9qZWN0VGl0bGUsXG4gIFNDTUlUaXRsZUhpZ2hsaWdodCxcbiAgU0NNSUJyZWFkY3J1bWIsXG4gIFNDTUlCcmVhZGNydW1iUGFyZW50LFxuICBTQ01JUm93VXNlcixcbiAgU0NNVXNlckF2YXRhcldyYXAsXG4gIFNDTVVzZXJBdmF0YXJJbWcsXG4gIFNDTVVzZXJBdmF0YXJGYWxsYmFjayxcbiAgU0NNVXNlckluZm8sXG4gIFNDTVVzZXJOYW1lUG9zaXRpb25Sb3csXG4gIFNDTVVzZXJOYW1lQ2VsbCxcbiAgU0NNVXNlck5hbWVUZXh0LFxuICBTQ01Vc2VyUG9zaXRpb25UZXh0LFxuICBTQ01JVGFza1Jvd1dyYXAsXG4gIFNDTUlUYXNrUm93U3VyZmFjZSxcbiAgU0NNSVRhc2tSb3dJbm5lcixcbiAgU0NNSVRhc2tUaXRsZVJvdyxcbiAgU0NNSVRhc2tTdWJ0YXNrSWNvbldyYXAsXG4gIFNDTUlUYXNrUHJvamVjdE5hbWUsXG4gIFNDTUlUYXNrSWNvbldyYXAsXG4gIFNDTUlUYXNrVGl0bGUsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25JdGVtLnN0eWxlcydcblxudHlwZSBDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcyA9IHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uU2VsZWN0OiAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZSkgPT4gdm9pZFxuICBvbkhvdmVyPzogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbn1cblxuY29uc3QgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTID0gNDBcblxuY29uc3QgdHJ1bmNhdGVXaXRoRWxsaXBzaXMgPSAodmFsdWU6IHN0cmluZywgbWF4Q2hhcnM6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggPD0gbWF4Q2hhcnMpIHJldHVybiB2YWx1ZVxuICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgTWF0aC5tYXgoMCwgbWF4Q2hhcnMgLSAxKSkudHJpbUVuZCgpfeKApmBcbn1cblxuY29uc3QgcmVuZGVyVGl0bGUgPSAocHJpbWFyeTogc3RyaW5nLCBoaWdobGlnaHQ/OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH0pID0+IHtcbiAgaWYgKCFoaWdobGlnaHQgfHwgaGlnaGxpZ2h0Lmxlbmd0aCA8PSAwKSByZXR1cm4gcHJpbWFyeVxuICBjb25zdCB7IHN0YXJ0LCBsZW5ndGggfSA9IGhpZ2hsaWdodFxuICBjb25zdCBlbmQgPSBzdGFydCArIGxlbmd0aFxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID4gcHJpbWFyeS5sZW5ndGggfHwgZW5kID4gcHJpbWFyeS5sZW5ndGgpIHJldHVybiBwcmltYXJ5XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtwcmltYXJ5LnNsaWNlKDAsIHN0YXJ0KX1cbiAgICAgIDxTQ01JVGl0bGVIaWdobGlnaHQ+e3ByaW1hcnkuc2xpY2Uoc3RhcnQsIGVuZCl9PC9TQ01JVGl0bGVIaWdobGlnaHQ+XG4gICAgICB7cHJpbWFyeS5zbGljZShlbmQpfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIHVzZU92ZXJmbG93VG9vbHRpcDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KHJlZjogUmVmT2JqZWN0PFQgfCBudWxsPiwgZGVwczogcmVhZG9ubHkgdW5rbm93bltdKSB7XG4gIGNvbnN0IFtzaG93VG9vbHRpcCwgc2V0U2hvd1Rvb2x0aXBdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHJlZi5jdXJyZW50XG4gICAgaWYgKCFlbCkge1xuICAgICAgc2V0U2hvd1Rvb2x0aXAoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbWVhc3VyZSA9ICgpID0+IHtcbiAgICAgIHNldFNob3dUb29sdGlwKGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGgpXG4gICAgfVxuXG4gICAgbWVhc3VyZSgpXG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIobWVhc3VyZSlcbiAgICByby5vYnNlcnZlKGVsKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByby5kaXNjb25uZWN0KClcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIH1cbiAgfSwgZGVwcylcblxuICByZXR1cm4gc2hvd1Rvb2x0aXBcbn1cblxuLyoqIEluaWNpYWxlcyBwYXJhIGF2YXRhciAobm9tYnJlIGxlZ2FsKSwgbm8gZWwgdGV4dG8gdmlzaWJsZSBkZSBsYSBmaWxhIChlai4gXCJZb1wiKS4gKi9cbmNvbnN0IGluaXRpYWxzRnJvbURpc3BsYXlOYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBuYW1lLnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiAnPydcbiAgY29uc3QgcGFydHMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pXG4gIGlmIChwYXJ0cy5sZW5ndGggPj0gMikge1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXT8uY2hhckF0KDApID8/ICcnXG4gICAgcmV0dXJuIGAke2ZpcnN0fSR7bGFzdH1gLnRvVXBwZXJDYXNlKClcbiAgfVxuICBjb25zdCBzaW5nbGUgPSBwYXJ0c1swXSA/PyAnJ1xuICBpZiAoc2luZ2xlLmxlbmd0aCA+PSAyKSByZXR1cm4gc2luZ2xlLnNsaWNlKDAsIDIpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIChzaW5nbGUuY2hhckF0KDApIHx8ICc/JykudG9VcHBlckNhc2UoKVxufVxuXG5jb25zdCBVc2VyUm93QXZhdGFyOiBGQzx7IHBpY3R1cmU/OiBzdHJpbmcgfCBudWxsOyBuYW1lRm9ySW5pdGlhbHM6IHN0cmluZyB9PiA9ICh7IHBpY3R1cmUsIG5hbWVGb3JJbml0aWFscyB9KSA9PiB7XG4gIGNvbnN0IFticm9rZW4sIHNldEJyb2tlbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaW5pdGlhbHMgPSBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZShuYW1lRm9ySW5pdGlhbHMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNVXNlckF2YXRhcldyYXA+XG4gICAgICB7cGljdHVyZSAmJiAhYnJva2VuID8gKFxuICAgICAgICA8U0NNVXNlckF2YXRhckltZyBzcmM9e3BpY3R1cmV9IGFsdD1cIlwiIG9uRXJyb3I9eygpID0+IHNldEJyb2tlbih0cnVlKX0gbG9hZGluZz1cImxhenlcIiBkZWNvZGluZz1cImFzeW5jXCIgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ01Vc2VyQXZhdGFyRmFsbGJhY2sgYXJpYS1oaWRkZW4+e2luaXRpYWxzfTwvU0NNVXNlckF2YXRhckZhbGxiYWNrPlxuICAgICAgKX1cbiAgICA8L1NDTVVzZXJBdmF0YXJXcmFwPlxuICApXG59XG5cbmNvbnN0IENvbnRleHRNZW50aW9uVGFza1JvdzogRkM8e1xuICBpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgb25Nb3VzZURvd246IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkXG4gIG9uSG92ZXI/OiAoKSA9PiB2b2lkXG59PiA9ICh7IGl0ZW0sIGFjdGl2ZSwgb25Nb3VzZURvd24sIG9uSG92ZXIgfSkgPT4ge1xuICBjb25zdCB7IHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQsIGJyZWFkY3J1bWIsIHJhdyB9ID0gaXRlbVxuICBjb25zdCBwcm9qZWN0TmFtZSA9IHJhdy5wcm9qZWN0TmFtZT8udHJpbSgpIHx8IGJyZWFkY3J1bWI/LnBhcmVudD8udHJpbSgpIHx8ICcnXG4gIGNvbnN0IHByb2plY3ROYW1lRGlzcGxheSA9IHRydW5jYXRlV2l0aEVsbGlwc2lzKHByb2plY3ROYW1lLCBUQVNLX1BST0pFQ1RfTkFNRV9NQVhfQ0hBUlMpXG4gIGNvbnN0IGlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzID0gcHJvamVjdE5hbWVEaXNwbGF5ICE9PSBwcm9qZWN0TmFtZVxuICBjb25zdCBoYXNGYXRoZXIgPSByYXcuZmF0aGVySWQgIT0gbnVsbFxuICBjb25zdCB0aXRsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgcHJvamVjdFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHNob3dUaXRsZVRvb2x0aXAgPSB1c2VPdmVyZmxvd1Rvb2x0aXAodGl0bGVSZWYsIFtcbiAgICBwcmltYXJ5LFxuICAgIHByb2plY3ROYW1lLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/LnN0YXJ0ID8/IC0xLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/Lmxlbmd0aCA/PyAwLFxuICAgIGhhc0ZhdGhlcixcbiAgXSlcbiAgY29uc3Qgc2hvd1Byb2plY3RUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHByb2plY3RSZWYsIFtwcm9qZWN0TmFtZURpc3BsYXksIHByaW1hcnldKVxuICBjb25zdCBzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPSBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyB8fCBzaG93UHJvamVjdFRvb2x0aXBcblxuICByZXR1cm4gKFxuICAgIDxTQ01JVGFza1Jvd1dyYXAgb25Nb3VzZURvd249e29uTW91c2VEb3dufSBvbk1vdXNlRW50ZXI9e29uSG92ZXJ9PlxuICAgICAgPFNDTUlUYXNrUm93U3VyZmFjZSAkYWN0aXZlPXthY3RpdmV9PlxuICAgICAgICA8U0NNSVRhc2tSb3dJbm5lcj5cbiAgICAgICAgICA8U0NNSVRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgIDxUYXNrTGlua0ljb24gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvU0NNSVRhc2tJY29uV3JhcD5cbiAgICAgICAgICA8U0NNSVRhc2tUaXRsZVJvdz5cbiAgICAgICAgICAgIHtoYXNGYXRoZXIgPyAoXG4gICAgICAgICAgICAgIDxTQ01JVGFza1N1YnRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgICAgICA8U3VidGFza0ljb24gd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIGNvbG9yPVwiIzAwMFwiIHZhcmlhbnQ9XCJyZWd1bGFyXCIgLz5cbiAgICAgICAgICAgICAgPC9TQ01JVGFza1N1YnRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUaXRsZVRvb2x0aXAgPyBwcmltYXJ5IDogJyd9PlxuICAgICAgICAgICAgICA8U0NNSVRhc2tUaXRsZSByZWY9e3RpdGxlUmVmfT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAge3Byb2plY3ROYW1lID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvdWxkU2hvd1Byb2plY3RUb29sdGlwID8gcHJvamVjdE5hbWUgOiAnJ30+XG4gICAgICAgICAgICAgICAgPFNDTUlUYXNrUHJvamVjdE5hbWUgcmVmPXtwcm9qZWN0UmVmfT57cHJvamVjdE5hbWVEaXNwbGF5fTwvU0NNSVRhc2tQcm9qZWN0TmFtZT5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TQ01JVGFza1RpdGxlUm93PlxuICAgICAgICA8L1NDTUlUYXNrUm93SW5uZXI+XG4gICAgICA8L1NDTUlUYXNrUm93U3VyZmFjZT5cbiAgICA8L1NDTUlUYXNrUm93V3JhcD5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25JdGVtOiBGQzxDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcz4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uU2VsZWN0LCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCB0eXBlLCByYXcgfSA9IGl0ZW1cblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9uU2VsZWN0KGl0ZW0pXG4gIH1cblxuICBjb25zdCBoYXNDb3VudCA9IHR5cGVvZiBicmVhZGNydW1iPy5jb3VudCA9PT0gJ251bWJlcidcbiAgY29uc3QgaGFzUGFyZW50ID0gISFicmVhZGNydW1iPy5wYXJlbnRcbiAgY29uc3QgY291bnRMYWJlbCA9XG4gICAgYnJlYWRjcnVtYj8uY291bnRMYWJlbCAmJlxuICAgIHQoYGNvbnRleHRNZW50aW9uLmNvdW50ZXJzLiR7YnJlYWRjcnVtYi5jb3VudExhYmVsfWAsIHsgZGVmYXVsdFZhbHVlOiBicmVhZGNydW1iLmNvdW50TGFiZWwgfSlcblxuICBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgY29uc3QgcG9zaXRpb25OYW1lVHJpbW1lZCA9IHR5cGVvZiByYXcucG9zaXRpb25OYW1lID09PSAnc3RyaW5nJyA/IHJhdy5wb3NpdGlvbk5hbWUudHJpbSgpIDogJydcbiAgICBjb25zdCBwb3NpdGlvbkxpbmUgPSBwb3NpdGlvbk5hbWVUcmltbWVkIHx8IHQoJ2NvbnRleHRNZW50aW9uLnVzZXJOb1Bvc2l0aW9uJywgeyBkZWZhdWx0VmFsdWU6ICdTaW4gcG9zaWNpw7NuJyB9KVxuICAgIGNvbnN0IHVzZXJOYW1lRm9ySW5pdGlhbHMgPSB0eXBlb2YgcmF3Lm5hbWUgPT09ICdzdHJpbmcnICYmIHJhdy5uYW1lLnRyaW0oKSA/IHJhdy5uYW1lIDogcHJpbWFyeVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JUm93VXNlciAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgICA8VXNlclJvd0F2YXRhciBwaWN0dXJlPXtyYXcucGljdHVyZX0gbmFtZUZvckluaXRpYWxzPXt1c2VyTmFtZUZvckluaXRpYWxzfSAvPlxuICAgICAgICA8U0NNVXNlckluZm8+XG4gICAgICAgICAgPFNDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgICAgICA8U0NNVXNlck5hbWVDZWxsICR3aXRoRGl2aWRlcj5cbiAgICAgICAgICAgICAgPFNDTVVzZXJOYW1lVGV4dD57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01Vc2VyTmFtZVRleHQ+XG4gICAgICAgICAgICA8L1NDTVVzZXJOYW1lQ2VsbD5cbiAgICAgICAgICAgIDxTQ01Vc2VyUG9zaXRpb25UZXh0IHRpdGxlPXtwb3NpdGlvbkxpbmV9Pntwb3NpdGlvbkxpbmV9PC9TQ01Vc2VyUG9zaXRpb25UZXh0PlxuICAgICAgICAgIDwvU0NNVXNlck5hbWVQb3NpdGlvblJvdz5cbiAgICAgICAgPC9TQ01Vc2VySW5mbz5cbiAgICAgIDwvU0NNSVJvd1VzZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NNSVByb2plY3RSb3cgb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JUHJvamVjdENvbnRlbnQgJGFjdGl2ZT17YWN0aXZlfT5cbiAgICAgICAgICA8U0NNSU5hbWU+XG4gICAgICAgICAgICA8U0NNSVByb2plY3RUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVByb2plY3RUaXRsZT5cbiAgICAgICAgICA8L1NDTUlOYW1lPlxuICAgICAgICA8L1NDTUlQcm9qZWN0Q29udGVudD5cbiAgICAgIDwvU0NNSVByb2plY3RSb3c+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8Q29udGV4dE1lbnRpb25UYXNrUm93IGl0ZW09e2l0ZW19IGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uSG92ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0gLz5cbiAgICApXG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlSb3cgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxNixcbiAgICAgICAgICAgICAgZmxleDogJzAgMCAxNnB4JyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzTm90aW9uTWNwU2x1ZyhyYXcuaWQpID8gKFxuICAgICAgICAgICAgICA8Tm90aW9uSWNvbiB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICBnZXRDb250ZXh0TWVudGlvbkljb24oJ21jcCcsICcjMmQ3N2JkJywgcmF3LmlkLCAxNilcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHRpdGxlPXtwcmltYXJ5fT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICA8L1NDTUlUYXNrUm93SW5uZXI+XG4gICAgICA8L1NDTUlSb3c+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVJvdyAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgPFNDTUlOYW1lPlxuICAgICAgICA8U0NNSVRpdGxlPntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUaXRsZT5cbiAgICAgICAgeyhoYXNDb3VudCB8fCBoYXNQYXJlbnQpICYmIChcbiAgICAgICAgICA8U0NNSUJyZWFkY3J1bWI+XG4gICAgICAgICAgICB7aGFzQ291bnQgJiYgKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICB7YnJlYWRjcnVtYj8uY291bnR9IHtjb3VudExhYmVsfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge2hhc1BhcmVudCAmJiAoXG4gICAgICAgICAgICAgIDxTQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPnticmVhZGNydW1iPy5wYXJlbnR9PC9zcGFuPlxuICAgICAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iUGFyZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iPlxuICAgICAgICApfVxuICAgICAgPC9TQ01JTmFtZT5cbiAgICA8L1NDTUlSb3c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXlCQSxlQUFlLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUF3QixPQUFPO0FBQ3pGLFNBQVNDLFlBQVksUUFBUSwrQ0FBK0M7QUFDNUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBRTFDLFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7QUFDaEQsU0FBU0MsV0FBVyxRQUFRLHNCQUFzQjtBQUNsRCxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLHFCQUFxQixFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQzNGLFNBQ0VDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxnQkFBZ0IsRUFDaEJDLGtCQUFrQixFQUNsQkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsV0FB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R0FBRyxDQUFDNEMsRUFBRSxDQUFDLGdCQUN0QmxJLElBQUEsQ0FBQ2hDLFVBQVU7WUFBQ29JLEtBQUssRUFBRSxFQUFHO1lBQUNDLE1BQU0sRUFBRTtVQUFHLENBQUUsQ0FBQyxHQUVyQ2xJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUVtSCxHQUFHLENBQUM0QyxFQUFFLEVBQUUsRUFBRTtRQUNuRCxDQUNHLENBQUMsZUFDUGxJLElBQUEsQ0FBQ0YsYUFBYTtVQUFDMEcsS0FBSyxFQUFFeEYsT0FBUTtVQUFBSSxRQUFBLEVBQUVMLFdBQVcsQ0FBQ0MsT0FBTyxFQUFFb0UsZ0JBQWdCO1FBQUMsQ0FBZ0IsQ0FBQztNQUFBLENBQ3ZFO0lBQUMsQ0FDWixDQUFDO0VBRWQ7RUFFQSxvQkFDRXBGLElBQUEsQ0FBQzNCLE9BQU87SUFBQzhILE9BQU8sRUFBRWxCLE1BQU87SUFBQ0MsV0FBVyxFQUFFNkIsV0FBWTtJQUFDYixZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtNQUFBLE9BQVFmLFFBQU8sYUFBUEEsUUFBTyx1QkFBUEEsUUFBTyxDQUFHSCxJQUFJLENBQUM7SUFBQSxDQUFDO0lBQUE1RCxRQUFBLGVBQ3RGaEIsS0FBQSxDQUFDNUIsUUFBUTtNQUFBNEMsUUFBQSxnQkFDUHBCLElBQUEsQ0FBQ3ZCLFNBQVM7UUFBQTJDLFFBQUEsRUFBRUwsV0FBVyxDQUFDQyxPQUFPLEVBQUVvRSxnQkFBZ0I7TUFBQyxDQUFZLENBQUMsRUFDOUQsQ0FBQytCLFFBQVEsSUFBSUUsU0FBUyxrQkFDckJqSCxLQUFBLENBQUN4QixjQUFjO1FBQUF3QyxRQUFBLEdBQ1orRixRQUFRLGlCQUNQL0csS0FBQTtVQUFBZ0IsUUFBQSxHQUNHaUUsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUUrQixLQUFLLEVBQUMsR0FBQyxFQUFDRSxVQUFVO1FBQUEsQ0FDM0IsQ0FDUCxFQUNBRCxTQUFTLGlCQUNSakgsS0FBQSxDQUFDdkIsb0JBQW9CO1VBQUF1QyxRQUFBLGdCQUNuQnBCLElBQUEsQ0FBQ25DLFlBQVk7WUFBQ3VJLEtBQUssRUFBQyxNQUFNO1lBQUNDLE1BQU0sRUFBQyxNQUFNO1lBQUNDLEtBQUssRUFBQztVQUFTLENBQUUsQ0FBQyxlQUMzRHRHLElBQUE7WUFBQW9CLFFBQUEsRUFBT2lFLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFRztVQUFNLENBQU8sQ0FBQztRQUFBLENBQ2IsQ0FDdkI7TUFBQSxDQUNhLENBQ2pCO0lBQUEsQ0FDTztFQUFDLENBQ0osQ0FBQztBQUVkLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
309
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiTm90aW9uSWNvbiIsIlN1YnRhc2tJY29uIiwiVGFza0xpbmtJY29uIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwiaXNOb3Rpb25NY3BTbHVnIiwiU0NNSVJvdyIsIlNDTUlQcm9qZWN0Um93IiwiU0NNSVByb2plY3RDb250ZW50IiwiU0NNSU5hbWUiLCJTQ01JVGl0bGUiLCJTQ01JUHJvamVjdFRpdGxlIiwiU0NNSVRpdGxlSGlnaGxpZ2h0IiwiU0NNSUJyZWFkY3J1bWIiLCJTQ01JQnJlYWRjcnVtYlBhcmVudCIsIlNDTUlSb3dVc2VyIiwiU0NNVXNlckF2YXRhcldyYXAiLCJTQ01Vc2VyQXZhdGFySW1nIiwiU0NNVXNlckF2YXRhckZhbGxiYWNrIiwiU0NNVXNlckluZm8iLCJTQ01Vc2VyTmFtZVBvc2l0aW9uUm93IiwiU0NNVXNlck5hbWVDZWxsIiwiU0NNVXNlck5hbWVUZXh0IiwiU0NNVXNlclBvc2l0aW9uVGV4dCIsIlNDTUlUYXNrUm93V3JhcCIsIlNDTUlUYXNrUm93U3VyZmFjZSIsIlNDTUlTa2lsbFJvd1N1cmZhY2UiLCJTQ01JVGFza1Jvd0lubmVyIiwiU0NNSVRhc2tUaXRsZVJvdyIsIlNDTUlUYXNrU3VidGFza0ljb25XcmFwIiwiU0NNSVRhc2tQcm9qZWN0TmFtZSIsIlNDTUlUYXNrSWNvbldyYXAiLCJTQ01JVGFza1RpdGxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTIiwidHJ1bmNhdGVXaXRoRWxsaXBzaXMiLCJ2YWx1ZSIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNYXRoIiwibWF4IiwidHJpbUVuZCIsInJlbmRlclRpdGxlIiwicHJpbWFyeSIsImhpZ2hsaWdodCIsInN0YXJ0IiwiZW5kIiwiY2hpbGRyZW4iLCJ1c2VPdmVyZmxvd1Rvb2x0aXAiLCJyZWYiLCJkZXBzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImVsIiwiY3VycmVudCIsInVuZGVmaW5lZCIsIm1lYXN1cmUiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwicm8iLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzY29ubmVjdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJ0cmltIiwicGFydHMiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJfcGFydHMkMCRjaGFyQXQiLCJfcGFydHMkIiwiX3BhcnRzJGNoYXJBdCIsIl9wYXJ0cyIsImZpcnN0IiwiY2hhckF0IiwibGFzdCIsInRvVXBwZXJDYXNlIiwic2luZ2xlIiwiVXNlclJvd0F2YXRhciIsIl9yZWYiLCJwaWN0dXJlIiwibmFtZUZvckluaXRpYWxzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJicm9rZW4iLCJzZXRCcm9rZW4iLCJpbml0aWFscyIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJsb2FkaW5nIiwiZGVjb2RpbmciLCJDb250ZXh0TWVudGlvblRhc2tSb3ciLCJfcmVmMiIsIl9yYXckcHJvamVjdE5hbWUiLCJfYnJlYWRjcnVtYiRwYXJlbnQiLCJfcHJpbWFyeUhpZ2hsaWdodCRzdGEiLCJfcHJpbWFyeUhpZ2hsaWdodCRsZW4iLCJpdGVtIiwiYWN0aXZlIiwib25Nb3VzZURvd24iLCJvbkhvdmVyIiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJyYXciLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsInByb2plY3ROYW1lRGlzcGxheSIsImlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzIiwiaGFzRmF0aGVyIiwiZmF0aGVySWQiLCJ0aXRsZVJlZiIsInByb2plY3RSZWYiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Byb2plY3RUb29sdGlwIiwic2hvdWxkU2hvd1Byb2plY3RUb29sdGlwIiwib25Nb3VzZUVudGVyIiwiJGFjdGl2ZSIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ2YXJpYW50IiwidGl0bGUiLCJDb250ZXh0TWVudGlvbkl0ZW0iLCJfcmVmMyIsIm9uU2VsZWN0IiwiX3VzZVQiLCJ0IiwidHlwZSIsImhhbmRsZUNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFzQ291bnQiLCJjb3VudCIsImhhc1BhcmVudCIsImNvdW50TGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJwb3NpdGlvbk5hbWVUcmltbWVkIiwicG9zaXRpb25OYW1lIiwicG9zaXRpb25MaW5lIiwidXNlck5hbWVGb3JJbml0aWFscyIsIiR3aXRoRGl2aWRlciIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImZsZXgiLCJpZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uSXRlbS9Db250ZXh0TWVudGlvbkl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDLCBNb3VzZUV2ZW50LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHR5cGUgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGV2cm9uUmlnaHQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uUmlnaHQnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uSXRlbSBhcyBDb250ZXh0TWVudGlvbkl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBOb3Rpb25JY29uIH0gZnJvbSAnLi4vaWNvbnMvTm90aW9uSWNvbidcbmltcG9ydCB7IFN1YnRhc2tJY29uIH0gZnJvbSAnLi4vaWNvbnMvU3VidGFza0ljb24nXG5pbXBvcnQgeyBUYXNrTGlua0ljb24gfSBmcm9tICcuLi9pY29ucy9UYXNrTGlua0ljb24nXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24sIGlzTm90aW9uTWNwU2x1ZyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQge1xuICBTQ01JUm93LFxuICBTQ01JUHJvamVjdFJvdyxcbiAgU0NNSVByb2plY3RDb250ZW50LFxuICBTQ01JTmFtZSxcbiAgU0NNSVRpdGxlLFxuICBTQ01JUHJvamVjdFRpdGxlLFxuICBTQ01JVGl0bGVIaWdobGlnaHQsXG4gIFNDTUlCcmVhZGNydW1iLFxuICBTQ01JQnJlYWRjcnVtYlBhcmVudCxcbiAgU0NNSVJvd1VzZXIsXG4gIFNDTVVzZXJBdmF0YXJXcmFwLFxuICBTQ01Vc2VyQXZhdGFySW1nLFxuICBTQ01Vc2VyQXZhdGFyRmFsbGJhY2ssXG4gIFNDTVVzZXJJbmZvLFxuICBTQ01Vc2VyTmFtZVBvc2l0aW9uUm93LFxuICBTQ01Vc2VyTmFtZUNlbGwsXG4gIFNDTVVzZXJOYW1lVGV4dCxcbiAgU0NNVXNlclBvc2l0aW9uVGV4dCxcbiAgU0NNSVRhc2tSb3dXcmFwLFxuICBTQ01JVGFza1Jvd1N1cmZhY2UsXG4gIFNDTUlTa2lsbFJvd1N1cmZhY2UsXG4gIFNDTUlUYXNrUm93SW5uZXIsXG4gIFNDTUlUYXNrVGl0bGVSb3csXG4gIFNDTUlUYXNrU3VidGFza0ljb25XcmFwLFxuICBTQ01JVGFza1Byb2plY3ROYW1lLFxuICBTQ01JVGFza0ljb25XcmFwLFxuICBTQ01JVGFza1RpdGxlLFxufSBmcm9tICcuL0NvbnRleHRNZW50aW9uSXRlbS5zdHlsZXMnXG5cbnR5cGUgQ29udGV4dE1lbnRpb25JdGVtUHJvcHMgPSB7XG4gIGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGVcbiAgYWN0aXZlPzogYm9vbGVhblxuICBvblNlbGVjdDogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbiAgb25Ib3Zlcj86IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlKSA9PiB2b2lkXG59XG5cbmNvbnN0IFRBU0tfUFJPSkVDVF9OQU1FX01BWF9DSEFSUyA9IDQwXG5cbmNvbnN0IHRydW5jYXRlV2l0aEVsbGlwc2lzID0gKHZhbHVlOiBzdHJpbmcsIG1heENoYXJzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoIDw9IG1heENoYXJzKSByZXR1cm4gdmFsdWVcbiAgcmV0dXJuIGAke3ZhbHVlLnNsaWNlKDAsIE1hdGgubWF4KDAsIG1heENoYXJzIC0gMSkpLnRyaW1FbmQoKX3igKZgXG59XG5cbmNvbnN0IHJlbmRlclRpdGxlID0gKHByaW1hcnk6IHN0cmluZywgaGlnaGxpZ2h0PzogeyBzdGFydDogbnVtYmVyOyBsZW5ndGg6IG51bWJlciB9KSA9PiB7XG4gIGlmICghaGlnaGxpZ2h0IHx8IGhpZ2hsaWdodC5sZW5ndGggPD0gMCkgcmV0dXJuIHByaW1hcnlcbiAgY29uc3QgeyBzdGFydCwgbGVuZ3RoIH0gPSBoaWdobGlnaHRcbiAgY29uc3QgZW5kID0gc3RhcnQgKyBsZW5ndGhcbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+IHByaW1hcnkubGVuZ3RoIHx8IGVuZCA+IHByaW1hcnkubGVuZ3RoKSByZXR1cm4gcHJpbWFyeVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cHJpbWFyeS5zbGljZSgwLCBzdGFydCl9XG4gICAgICA8U0NNSVRpdGxlSGlnaGxpZ2h0PntwcmltYXJ5LnNsaWNlKHN0YXJ0LCBlbmQpfTwvU0NNSVRpdGxlSGlnaGxpZ2h0PlxuICAgICAge3ByaW1hcnkuc2xpY2UoZW5kKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiB1c2VPdmVyZmxvd1Rvb2x0aXA8VCBleHRlbmRzIEhUTUxFbGVtZW50PihyZWY6IFJlZk9iamVjdDxUIHwgbnVsbD4sIGRlcHM6IHJlYWRvbmx5IHVua25vd25bXSkge1xuICBjb25zdCBbc2hvd1Rvb2x0aXAsIHNldFNob3dUb29sdGlwXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSByZWYuY3VycmVudFxuICAgIGlmICghZWwpIHtcbiAgICAgIHNldFNob3dUb29sdGlwKGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG1lYXN1cmUgPSAoKSA9PiB7XG4gICAgICBzZXRTaG93VG9vbHRpcChlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoKVxuICAgIH1cblxuICAgIG1lYXN1cmUoKVxuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKG1lYXN1cmUpXG4gICAgcm8ub2JzZXJ2ZShlbClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcm8uZGlzY29ubmVjdCgpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZSlcbiAgICB9XG4gIH0sIGRlcHMpXG5cbiAgcmV0dXJuIHNob3dUb29sdGlwXG59XG5cbi8qKiBJbmljaWFsZXMgcGFyYSBhdmF0YXIgKG5vbWJyZSBsZWdhbCksIG5vIGVsIHRleHRvIHZpc2libGUgZGUgbGEgZmlsYSAoZWouIFwiWW9cIikuICovXG5jb25zdCBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbmFtZS50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gJz8nXG4gIGNvbnN0IHBhcnRzID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuICBpZiAocGFydHMubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCBmaXJzdCA9IHBhcnRzWzBdPy5jaGFyQXQoMCkgPz8gJydcbiAgICBjb25zdCBsYXN0ID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIHJldHVybiBgJHtmaXJzdH0ke2xhc3R9YC50b1VwcGVyQ2FzZSgpXG4gIH1cbiAgY29uc3Qgc2luZ2xlID0gcGFydHNbMF0gPz8gJydcbiAgaWYgKHNpbmdsZS5sZW5ndGggPj0gMikgcmV0dXJuIHNpbmdsZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpXG4gIHJldHVybiAoc2luZ2xlLmNoYXJBdCgwKSB8fCAnPycpLnRvVXBwZXJDYXNlKClcbn1cblxuY29uc3QgVXNlclJvd0F2YXRhcjogRkM8eyBwaWN0dXJlPzogc3RyaW5nIHwgbnVsbDsgbmFtZUZvckluaXRpYWxzOiBzdHJpbmcgfT4gPSAoeyBwaWN0dXJlLCBuYW1lRm9ySW5pdGlhbHMgfSkgPT4ge1xuICBjb25zdCBbYnJva2VuLCBzZXRCcm9rZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxzID0gaW5pdGlhbHNGcm9tRGlzcGxheU5hbWUobmFtZUZvckluaXRpYWxzKVxuXG4gIHJldHVybiAoXG4gICAgPFNDTVVzZXJBdmF0YXJXcmFwPlxuICAgICAge3BpY3R1cmUgJiYgIWJyb2tlbiA/IChcbiAgICAgICAgPFNDTVVzZXJBdmF0YXJJbWcgc3JjPXtwaWN0dXJlfSBhbHQ9XCJcIiBvbkVycm9yPXsoKSA9PiBzZXRCcm9rZW4odHJ1ZSl9IGxvYWRpbmc9XCJsYXp5XCIgZGVjb2Rpbmc9XCJhc3luY1wiIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNVXNlckF2YXRhckZhbGxiYWNrIGFyaWEtaGlkZGVuPntpbml0aWFsc308L1NDTVVzZXJBdmF0YXJGYWxsYmFjaz5cbiAgICAgICl9XG4gICAgPC9TQ01Vc2VyQXZhdGFyV3JhcD5cbiAgKVxufVxuXG5jb25zdCBDb250ZXh0TWVudGlvblRhc2tSb3c6IEZDPHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uTW91c2VEb3duOiAoZTogTW91c2VFdmVudCkgPT4gdm9pZFxuICBvbkhvdmVyPzogKCkgPT4gdm9pZFxufT4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uTW91c2VEb3duLCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCByYXcgfSA9IGl0ZW1cbiAgY29uc3QgcHJvamVjdE5hbWUgPSByYXcucHJvamVjdE5hbWU/LnRyaW0oKSB8fCBicmVhZGNydW1iPy5wYXJlbnQ/LnRyaW0oKSB8fCAnJ1xuICBjb25zdCBwcm9qZWN0TmFtZURpc3BsYXkgPSB0cnVuY2F0ZVdpdGhFbGxpcHNpcyhwcm9qZWN0TmFtZSwgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTKVxuICBjb25zdCBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyA9IHByb2plY3ROYW1lRGlzcGxheSAhPT0gcHJvamVjdE5hbWVcbiAgY29uc3QgaGFzRmF0aGVyID0gcmF3LmZhdGhlcklkICE9IG51bGxcbiAgY29uc3QgdGl0bGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHByb2plY3RSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBzaG93VGl0bGVUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHRpdGxlUmVmLCBbXG4gICAgcHJpbWFyeSxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0Py5zdGFydCA/PyAtMSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0Py5sZW5ndGggPz8gMCxcbiAgICBoYXNGYXRoZXIsXG4gIF0pXG4gIGNvbnN0IHNob3dQcm9qZWN0VG9vbHRpcCA9IHVzZU92ZXJmbG93VG9vbHRpcChwcm9qZWN0UmVmLCBbcHJvamVjdE5hbWVEaXNwbGF5LCBwcmltYXJ5XSlcbiAgY29uc3Qgc2hvdWxkU2hvd1Byb2plY3RUb29sdGlwID0gaXNQcm9qZWN0TmFtZVRydW5jYXRlZEJ5Q2hhcnMgfHwgc2hvd1Byb2plY3RUb29sdGlwXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVRhc2tSb3dXcmFwIG9uTW91c2VEb3duPXtvbk1vdXNlRG93bn0gb25Nb3VzZUVudGVyPXtvbkhvdmVyfT5cbiAgICAgIDxTQ01JVGFza1Jvd1N1cmZhY2UgJGFjdGl2ZT17YWN0aXZlfT5cbiAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgPFNDTUlUYXNrSWNvbldyYXA+XG4gICAgICAgICAgICA8VGFza0xpbmtJY29uIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L1NDTUlUYXNrSWNvbldyYXA+XG4gICAgICAgICAgPFNDTUlUYXNrVGl0bGVSb3c+XG4gICAgICAgICAgICB7aGFzRmF0aGVyID8gKFxuICAgICAgICAgICAgICA8U0NNSVRhc2tTdWJ0YXNrSWNvbldyYXA+XG4gICAgICAgICAgICAgICAgPFN1YnRhc2tJY29uIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj1cIiMwMDBcIiB2YXJpYW50PVwicmVndWxhclwiIC8+XG4gICAgICAgICAgICAgIDwvU0NNSVRhc2tTdWJ0YXNrSWNvbldyYXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VGl0bGVUb29sdGlwID8gcHJpbWFyeSA6ICcnfT5cbiAgICAgICAgICAgICAgPFNDTUlUYXNrVGl0bGUgcmVmPXt0aXRsZVJlZn0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVRhc2tUaXRsZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIHtwcm9qZWN0TmFtZSA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3VsZFNob3dQcm9qZWN0VG9vbHRpcCA/IHByb2plY3ROYW1lIDogJyd9PlxuICAgICAgICAgICAgICAgIDxTQ01JVGFza1Byb2plY3ROYW1lIHJlZj17cHJvamVjdFJlZn0+e3Byb2plY3ROYW1lRGlzcGxheX08L1NDTUlUYXNrUHJvamVjdE5hbWU+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNSVRhc2tUaXRsZVJvdz5cbiAgICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgICAgPC9TQ01JVGFza1Jvd1N1cmZhY2U+XG4gICAgPC9TQ01JVGFza1Jvd1dyYXA+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uSXRlbTogRkM8Q29udGV4dE1lbnRpb25JdGVtUHJvcHM+ID0gKHsgaXRlbSwgYWN0aXZlLCBvblNlbGVjdCwgb25Ib3ZlciB9KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgcHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCwgYnJlYWRjcnVtYiwgdHlwZSwgcmF3IH0gPSBpdGVtXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBvblNlbGVjdChpdGVtKVxuICB9XG5cbiAgY29uc3QgaGFzQ291bnQgPSB0eXBlb2YgYnJlYWRjcnVtYj8uY291bnQgPT09ICdudW1iZXInXG4gIGNvbnN0IGhhc1BhcmVudCA9ICEhYnJlYWRjcnVtYj8ucGFyZW50XG4gIGNvbnN0IGNvdW50TGFiZWwgPVxuICAgIGJyZWFkY3J1bWI/LmNvdW50TGFiZWwgJiZcbiAgICB0KGBjb250ZXh0TWVudGlvbi5jb3VudGVycy4ke2JyZWFkY3J1bWIuY291bnRMYWJlbH1gLCB7IGRlZmF1bHRWYWx1ZTogYnJlYWRjcnVtYi5jb3VudExhYmVsIH0pXG5cbiAgaWYgKHR5cGUgPT09ICd1c2VyJykge1xuICAgIGNvbnN0IHBvc2l0aW9uTmFtZVRyaW1tZWQgPSB0eXBlb2YgcmF3LnBvc2l0aW9uTmFtZSA9PT0gJ3N0cmluZycgPyByYXcucG9zaXRpb25OYW1lLnRyaW0oKSA6ICcnXG4gICAgY29uc3QgcG9zaXRpb25MaW5lID0gcG9zaXRpb25OYW1lVHJpbW1lZCB8fCB0KCdjb250ZXh0TWVudGlvbi51c2VyTm9Qb3NpdGlvbicsIHsgZGVmYXVsdFZhbHVlOiAnU2luIHBvc2ljacOzbicgfSlcbiAgICBjb25zdCB1c2VyTmFtZUZvckluaXRpYWxzID0gdHlwZW9mIHJhdy5uYW1lID09PSAnc3RyaW5nJyAmJiByYXcubmFtZS50cmltKCkgPyByYXcubmFtZSA6IHByaW1hcnlcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NNSVJvd1VzZXIgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgICAgPFVzZXJSb3dBdmF0YXIgcGljdHVyZT17cmF3LnBpY3R1cmV9IG5hbWVGb3JJbml0aWFscz17dXNlck5hbWVGb3JJbml0aWFsc30gLz5cbiAgICAgICAgPFNDTVVzZXJJbmZvPlxuICAgICAgICAgIDxTQ01Vc2VyTmFtZVBvc2l0aW9uUm93PlxuICAgICAgICAgICAgPFNDTVVzZXJOYW1lQ2VsbCAkd2l0aERpdmlkZXI+XG4gICAgICAgICAgICAgIDxTQ01Vc2VyTmFtZVRleHQ+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNVXNlck5hbWVUZXh0PlxuICAgICAgICAgICAgPC9TQ01Vc2VyTmFtZUNlbGw+XG4gICAgICAgICAgICA8U0NNVXNlclBvc2l0aW9uVGV4dCB0aXRsZT17cG9zaXRpb25MaW5lfT57cG9zaXRpb25MaW5lfTwvU0NNVXNlclBvc2l0aW9uVGV4dD5cbiAgICAgICAgICA8L1NDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgIDwvU0NNVXNlckluZm8+XG4gICAgICA8L1NDTUlSb3dVc2VyPlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlQcm9qZWN0Um93IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgICA8U0NNSVByb2plY3RDb250ZW50ICRhY3RpdmU9e2FjdGl2ZX0+XG4gICAgICAgICAgPFNDTUlOYW1lPlxuICAgICAgICAgICAgPFNDTUlQcm9qZWN0VGl0bGUgdGl0bGU9e3ByaW1hcnl9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlQcm9qZWN0VGl0bGU+XG4gICAgICAgICAgPC9TQ01JTmFtZT5cbiAgICAgICAgPC9TQ01JUHJvamVjdENvbnRlbnQ+XG4gICAgICA8L1NDTUlQcm9qZWN0Um93PlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbnRleHRNZW50aW9uVGFza1JvdyBpdGVtPXtpdGVtfSBhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbkhvdmVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9IC8+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdtY3AnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JUm93ICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JVGFza1Jvd0lubmVyPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB3aWR0aDogMTYsXG4gICAgICAgICAgICAgIGhlaWdodDogMTYsXG4gICAgICAgICAgICAgIGZsZXg6ICcwIDAgMTZweCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc05vdGlvbk1jcFNsdWcocmF3LmlkKSA/IChcbiAgICAgICAgICAgICAgPE5vdGlvbkljb24gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKCdtY3AnLCAnIzJkNzdiZCcsIHJhdy5pZCwgMTYpXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8U0NNSVRhc2tUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVRhc2tUaXRsZT5cbiAgICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgICAgPC9TQ01JUm93PlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAnc2tpbGwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JVGFza1Jvd1dyYXAgb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JU2tpbGxSb3dTdXJmYWNlICRhY3RpdmU9e2FjdGl2ZX0+XG4gICAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICAgICAgICAgIGZsZXg6ICcwIDAgMTZweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24oJ3NraWxsJywgJyM4MDgwODAnLCByYXcuaWQsIDE2KX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHRpdGxlPXtwcmltYXJ5fT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICAgIDwvU0NNSVRhc2tSb3dJbm5lcj5cbiAgICAgICAgPC9TQ01JU2tpbGxSb3dTdXJmYWNlPlxuICAgICAgPC9TQ01JVGFza1Jvd1dyYXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVJvdyAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgPFNDTUlOYW1lPlxuICAgICAgICA8U0NNSVRpdGxlPntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUaXRsZT5cbiAgICAgICAgeyhoYXNDb3VudCB8fCBoYXNQYXJlbnQpICYmIChcbiAgICAgICAgICA8U0NNSUJyZWFkY3J1bWI+XG4gICAgICAgICAgICB7aGFzQ291bnQgJiYgKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICB7YnJlYWRjcnVtYj8uY291bnR9IHtjb3VudExhYmVsfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge2hhc1BhcmVudCAmJiAoXG4gICAgICAgICAgICAgIDxTQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPnticmVhZGNydW1iPy5wYXJlbnR9PC9zcGFuPlxuICAgICAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iUGFyZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iPlxuICAgICAgICApfVxuICAgICAgPC9TQ01JTmFtZT5cbiAgICA8L1NDTUlSb3c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXlCQSxlQUFlLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUF3QixPQUFPO0FBQ3pGLFNBQVNDLFlBQVksUUFBUSwrQ0FBK0M7QUFDNUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBRTFDLFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7QUFDaEQsU0FBU0MsV0FBVyxRQUFRLHNCQUFzQjtBQUNsRCxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLHFCQUFxQixFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQzNGLFNBQ0VDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxnQkFBZ0IsRUFDaEJDLGtCQUFrQixFQUNsQkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsV0FBVyxFQUNYQyxzQkFBc0IsRUFDdEJDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxtQkFBbUIsRUFDbkJDLGVB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