@projectcor/maia-components 2.44.5-0 → 2.44.5-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import { memo, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
+ import { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
4
4
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
5
5
  import { ChatDisclaimerMessage } from '../../atoms/ChatDisclaimerMessage';
6
6
  import { ChatFooter } from '../../molecules/ChatFooter/ChatFooter';
@@ -46,8 +46,12 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
46
46
  agent = _useGlobalContext.agent;
47
47
  var hasAgent = Boolean(agent);
48
48
  var isMAIA = hasAgent && validateIsMaia(agent);
49
- var showActionCards = isMAIA && isCollaboratorRole(user.role_id);
50
- var _useFrequentlyUsedAct = useFrequentlyUsedActions(showActionCards ? agent === null || agent === void 0 ? void 0 : agent.id : undefined, 'home_collaborator'),
49
+ var isOrchestratorHomePending = !hasAgent;
50
+ var isMaiaHome = isMAIA || isOrchestratorHomePending;
51
+ var showActionCards = isMaiaHome && isCollaboratorRole(user.role_id);
52
+ var agentIdForActions = showActionCards && agent !== null && agent !== void 0 && agent.id ? agent.id : undefined;
53
+ var awaitingAgentIdForActions = showActionCards && !(agent !== null && agent !== void 0 && agent.id);
54
+ var _useFrequentlyUsedAct = useFrequentlyUsedActions(agentIdForActions, 'home_collaborator'),
51
55
  actions = _useFrequentlyUsedAct.actions,
52
56
  loading = _useFrequentlyUsedAct.loading,
53
57
  error = _useFrequentlyUsedAct.error,
@@ -70,10 +74,10 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
70
74
  canEditCustomAgent = _useAgentChangeModelA.canEditCustomAgent,
71
75
  openChangeModelModal = _useAgentChangeModelA.openChangeModelModal;
72
76
  var disclaimerMessage = function () {
73
- if (!hasAgent) return '';
74
- if (isMAIA) return t('chat.footer.disclaimer', {
77
+ if (isMaiaHome) return t('chat.footer.disclaimer', {
75
78
  agentName: t('globals.brandName')
76
79
  });
80
+ if (!hasAgent) return '';
77
81
  return t('chat.footer.disclaimerAgent');
78
82
  }();
79
83
  var _useState = useState(false),
@@ -89,7 +93,9 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
89
93
  var firstInputTopRef = useRef(0);
90
94
  var pendingSendRef = useRef(null);
91
95
  var onSendMessageRef = useRef(onSendMessage);
92
- onSendMessageRef.current = onSendMessage;
96
+ useEffect(function () {
97
+ onSendMessageRef.current = onSendMessage;
98
+ }, [onSendMessage]);
93
99
  var handleSend = useCallback(function () {
94
100
  var _inputRef$current$get, _inputRef$current;
95
101
  if (leaving || !canUseComposer) return;
@@ -120,7 +126,7 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
120
126
  var renderActionCards = function renderActionCards() {
121
127
  var isLeaving = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
122
128
  var showActionsSection = showActionCards && canUseComposer;
123
- var showSkeleton = loading && !error && actions.length === 0;
129
+ var showSkeleton = awaitingAgentIdForActions || loading && !error && actions.length === 0;
124
130
  var showActionsList = actions.length > 0;
125
131
  var showActionsRow = showActionsSection && (showSkeleton || showActionsList || Boolean(error));
126
132
  var slotCount = showSkeleton ? HOME_PAGE_FUA_SKELETON_COUNT : actions.length;
@@ -133,6 +139,7 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
133
139
  };
134
140
  return /*#__PURE__*/_jsx(SCPageHomeActionsReveal, {
135
141
  $leaving: isLeaving,
142
+ $animateEnter: showActionsSection && !isLeaving,
136
143
  children: showActionsRow ? /*#__PURE__*/_jsxs(SCPageHomeActions, {
137
144
  "aria-busy": loading && showSkeleton,
138
145
  children: [error ? /*#__PURE__*/_jsx("button", {
@@ -146,11 +153,9 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
146
153
  }, function (_, index) {
147
154
  var action = actions[index];
148
155
  return /*#__PURE__*/_jsx(ChatAIPageHomeActionCardSlot, {
149
- index: index,
150
156
  action: action,
151
157
  showSkeleton: !action && showSkeleton,
152
158
  showContent: Boolean(action),
153
- enterMotion: showSkeleton && !action,
154
159
  disabled: leaving,
155
160
  onSelect: handleActionSelect
156
161
  }, "home-fua-slot-".concat(index));
@@ -215,9 +220,9 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
215
220
  })
216
221
  }) : null, /*#__PURE__*/_jsx(SCPageHomeWelcomeReveal, {
217
222
  $leaving: leaving,
218
- children: hasAgent ? /*#__PURE__*/_jsx(SCPageHomeWelcome, {
219
- $agent: !isMAIA,
220
- children: isMAIA ? /*#__PURE__*/_jsxs(_Fragment, {
223
+ children: isMaiaHome || hasAgent ? /*#__PURE__*/_jsx(SCPageHomeWelcome, {
224
+ $agent: hasAgent && !isMAIA,
225
+ children: isMaiaHome ? /*#__PURE__*/_jsxs(_Fragment, {
221
226
  children: [/*#__PURE__*/_jsx(SCPageHomeGreeting, {
222
227
  children: greeting
223
228
  }), /*#__PURE__*/_jsx(SCPageHomeSubtitle, {
@@ -264,4 +269,4 @@ export var ChatAIPageHome = function ChatAIPageHome(_ref2) {
264
269
  })]
265
270
  });
266
271
  };
267
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiQ2hhdEZvb3RlciIsIkFnZW50SW5wdXRCbG9ja01lc3NhZ2UiLCJyZXNvbHZlQWdlbnRJbnB1dEJsb2NrIiwidXNlQWdlbnRDaGFuZ2VNb2RlbEFjdGlvbiIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsImlzQ29sbGFib3JhdG9yUm9sZSIsInZhbGlkYXRlSXNNYWlhIiwiZ2V0RGF5cGFydCIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInJlc29sdmVRdWlja0FjdGlvblR5cGUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIkNoYXRBSVBhZ2VIb21lQWN0aW9uQ2FyZFNsb3QiLCJIT01FX1BBR0VfRlVBX1NLRUxFVE9OX0NPVU5UIiwiU0NQYWdlSG9tZUFjdGlvbnMiLCJTQ1BhZ2VIb21lQWN0aW9uc1JldmVhbCIsIlNDUGFnZUhvbWVBZ2VudEF1dGhvciIsIlNDUGFnZUhvbWVBZ2VudEludHJvIiwiU0NQYWdlSG9tZUNlbnRlciIsIlNDUGFnZUhvbWVDb21wb3NlciIsIlNDUGFnZUhvbWVEaXNjbGFpbWVyIiwiU0NQYWdlSG9tZUdsb3dCbHVlSW5uZXIiLCJTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlciIsIlNDUGFnZUhvbWVHbG93TGF5ZXIiLCJTQ1BhZ2VIb21lR2xvd1Zpb2xldCIsIlNDUGFnZUhvbWVHcmVldGluZyIsIlNDUGFnZUhvbWVJbnB1dCIsIlNDUGFnZUhvbWVMZWF2ZUJ1YmJsZSIsIlNDUGFnZUhvbWVMZWF2ZUZvb3RlciIsIlNDUGFnZUhvbWVMZWF2ZU1lc3NhZ2UiLCJTQ1BhZ2VIb21lUm9vdCIsIlNDUGFnZUhvbWVTdWJ0aXRsZSIsIlNDUGFnZUhvbWVXZWxjb21lIiwiU0NQYWdlSG9tZVdlbGNvbWVSZXZlYWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJnZXRBZ2VudEludHJvZHVjdGlvbiIsImludHJvZHVjdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIml0ZW0iLCJ0cmltIiwibGVuZ3RoIiwiam9pbiIsIkxFQVZFX01TIiwiQ2hhdEFJUGFnZUhvbWVJbnB1dCIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiZGlzYWJsZWQiLCJoaWRlRGlzY2xhaW1lciIsImRpc3BsYXlOYW1lIiwiQ2hhdEFJUGFnZUhvbWUiLCJfcmVmMiIsIm9uTGVhdmVTdGFydCIsIl91c2VUIiwidCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiaGFzQWdlbnQiLCJCb29sZWFuIiwiaXNNQUlBIiwic2hvd0FjdGlvbkNhcmRzIiwicm9sZV9pZCIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsImlkIiwidW5kZWZpbmVkIiwiYWN0aW9ucyIsImxvYWRpbmciLCJlcnJvciIsImhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsImV2ZW50QW1wbGl0dWRlIiwiZGF5cGFydCIsImdyZWV0aW5nIiwiY29uY2F0IiwibmFtZSIsImZpcnN0TmFtZSIsImlucHV0QmxvY2siLCJjYW5Vc2VDb21wb3NlciIsIl91c2VBZ2VudENoYW5nZU1vZGVsQSIsImNhbkVkaXRDdXN0b21BZ2VudCIsIm9wZW5DaGFuZ2VNb2RlbE1vZGFsIiwiZGlzY2xhaW1lck1lc3NhZ2UiLCJhZ2VudE5hbWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsZWF2aW5nIiwic2V0TGVhdmluZyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibGVhdmVUZXh0Iiwic2V0TGVhdmVUZXh0IiwiaW5wdXRSZWYiLCJtZXNzYWdlUmVmIiwiZmlyc3RJbnB1dFRvcFJlZiIsInBlbmRpbmdTZW5kUmVmIiwib25TZW5kTWVzc2FnZVJlZiIsImN1cnJlbnQiLCJoYW5kbGVTZW5kIiwiX2lucHV0UmVmJGN1cnJlbnQkZ2V0IiwiX2lucHV0UmVmJGN1cnJlbnQiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIl9rZXkiLCJtZXNzYWdlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwicmVuZGVyQ29tcG9zZXJJbnB1dCIsImJsb2NrIiwidmFyaWFudCIsIm9uQ2hhbmdlTW9kZWwiLCJzaG93Q2hhbmdlTW9kZWxCdXR0b24iLCJraW5kIiwicmVuZGVyQWN0aW9uQ2FyZHMiLCJpc0xlYXZpbmciLCJzaG93QWN0aW9uc1NlY3Rpb24iLCJzaG93U2tlbGV0b24iLCJzaG93QWN0aW9uc0xpc3QiLCJzaG93QWN0aW9uc1JvdyIsInNsb3RDb3VudCIsImhhbmRsZUFjdGlvblNlbGVjdCIsImFjdGlvbiIsImFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0IiwidHlwZV9xdWlja19hY3Rpb24iLCJvcmlnaW5fcXVpY2tfYWN0aW9uIiwidGl0bGUiLCIkbGVhdmluZyIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJmcm9tIiwiXyIsImluZGV4Iiwic2hvd0NvbnRlbnQiLCJlbnRlck1vdGlvbiIsIm9uU2VsZWN0IiwiaW5wdXRFbCIsIm1lc3NhZ2VFbCIsImZpcnN0VG9wIiwiZHkiLCJzdHlsZSIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJzdGFydFkiLCJvcGFjaXR5IiwiaW5uZXJQbGF5IiwicGxheSIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImRvbmUiLCJzZXRUaW1lb3V0IiwicGVuZGluZyIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJjbGVhclRpbWVvdXQiLCJyZWYiLCIkYWdlbnQiLCJjcmVhdGVkX2J5IiwiaXNfZGVsZXRlZCIsIiRjb21wYWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSVBhZ2UvQ2hhdEFJUGFnZUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4uLy4uL2F0b21zL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmltcG9ydCB7IENoYXRGb290ZXIgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHtcbiAgQWdlbnRJbnB1dEJsb2NrTWVzc2FnZSxcbiAgcmVzb2x2ZUFnZW50SW5wdXRCbG9jayxcbiAgdXNlQWdlbnRDaGFuZ2VNb2RlbEFjdGlvbixcbn0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0FnZW50SW5wdXRCbG9jaydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyLCBpc0NvbGxhYm9yYXRvclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGdldERheXBhcnQgfSBmcm9tICcuL2dldERheXBhcnQnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyByZXNvbHZlUXVpY2tBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ2hhdEFJUGFnZUhvbWVBY3Rpb25DYXJkU2xvdCB9IGZyb20gJy4vQ2hhdEFJUGFnZUhvbWVBY3Rpb25DYXJkU2xvdCdcbmltcG9ydCB7IEhPTUVfUEFHRV9GVUFfU0tFTEVUT05fQ09VTlQgfSBmcm9tICcuL0NoYXRBSVBhZ2VIb21lQWN0aW9uQ2FyZHMuc2tlbGV0b24nXG5pbXBvcnQge1xuICBTQ1BhZ2VIb21lQWN0aW9ucyxcbiAgU0NQYWdlSG9tZUFjdGlvbnNSZXZlYWwsXG4gIFNDUGFnZUhvbWVBZ2VudEF1dGhvcixcbiAgU0NQYWdlSG9tZUFnZW50SW50cm8sXG4gIFNDUGFnZUhvbWVDZW50ZXIsXG4gIFNDUGFnZUhvbWVDb21wb3NlcixcbiAgU0NQYWdlSG9tZURpc2NsYWltZXIsXG4gIFNDUGFnZUhvbWVHbG93Qmx1ZUlubmVyLFxuICBTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlcixcbiAgU0NQYWdlSG9tZUdsb3dMYXllcixcbiAgU0NQYWdlSG9tZUdsb3dWaW9sZXQsXG4gIFNDUGFnZUhvbWVHcmVldGluZyxcbiAgU0NQYWdlSG9tZUlucHV0LFxuICBTQ1BhZ2VIb21lTGVhdmVCdWJibGUsXG4gIFNDUGFnZUhvbWVMZWF2ZUZvb3RlcixcbiAgU0NQYWdlSG9tZUxlYXZlTWVzc2FnZSxcbiAgU0NQYWdlSG9tZVJvb3QsXG4gIFNDUGFnZUhvbWVTdWJ0aXRsZSxcbiAgU0NQYWdlSG9tZVdlbGNvbWUsXG4gIFNDUGFnZUhvbWVXZWxjb21lUmV2ZWFsLFxufSBmcm9tICcuL0NoYXRBSVBhZ2VIb21lLnN0eWxlcydcblxuY29uc3QgZ2V0QWdlbnRJbnRyb2R1Y3Rpb24gPSAoaW50cm9kdWN0aW9uOiBBZ2VudFsnaW50cm9kdWN0aW9uJ10pOiBzdHJpbmcgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShpbnRyb2R1Y3Rpb24pKSB7XG4gICAgcmV0dXJuIGludHJvZHVjdGlvbi5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIHN0cmluZyA9PiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgJiYgaXRlbS50cmltKCkubGVuZ3RoID4gMCkuam9pbignICcpXG4gIH1cbiAgcmV0dXJuIHR5cGVvZiBpbnRyb2R1Y3Rpb24gPT09ICdzdHJpbmcnID8gaW50cm9kdWN0aW9uIDogJydcbn1cblxuY29uc3QgTEVBVkVfTVMgPSA2MDBcblxudHlwZSBTZW5kTWVzc2FnZSA9IFBhcmFtZXRlcnM8dHlwZW9mIENoYXRGb290ZXI+WzBdWydvblNlbmRNZXNzYWdlJ11cblxuaW50ZXJmYWNlIENoYXRBSVBhZ2VIb21lUHJvcHMge1xuICBvblNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZVxuICBvbkxlYXZlU3RhcnQ/OiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IENoYXRBSVBhZ2VIb21lSW5wdXQgPSBtZW1vKCh7IG9uU2VuZE1lc3NhZ2UsIGRpc2FibGVkIH06IHsgb25TZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7IGRpc2FibGVkPzogYm9vbGVhbiB9KSA9PiAoXG4gIDxDaGF0Rm9vdGVyIG9uU2VuZE1lc3NhZ2U9e29uU2VuZE1lc3NhZ2V9IGhpZGVEaXNjbGFpbWVyIGRpc2FibGVkPXtkaXNhYmxlZH0gLz5cbikpXG5DaGF0QUlQYWdlSG9tZUlucHV0LmRpc3BsYXlOYW1lID0gJ0NoYXRBSVBhZ2VIb21lSW5wdXQnXG5cbmV4cG9ydCBjb25zdCBDaGF0QUlQYWdlSG9tZSA9ICh7IG9uU2VuZE1lc3NhZ2UsIG9uTGVhdmVTdGFydCB9OiBDaGF0QUlQYWdlSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGhhc0FnZW50ID0gQm9vbGVhbihhZ2VudClcbiAgY29uc3QgaXNNQUlBID0gaGFzQWdlbnQgJiYgdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IHNob3dBY3Rpb25DYXJkcyA9IGlzTUFJQSAmJiBpc0NvbGxhYm9yYXRvclJvbGUodXNlci5yb2xlX2lkKVxuICBjb25zdCB7IGFjdGlvbnMsIGxvYWRpbmcsIGVycm9yLCBoYW5kbGVHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICBzaG93QWN0aW9uQ2FyZHMgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWQsXG4gICAgJ2hvbWVfY29sbGFib3JhdG9yJ1xuICApXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBkYXlwYXJ0ID0gdXNlTWVtbygoKSA9PiBnZXREYXlwYXJ0KCksIFtdKVxuICBjb25zdCBncmVldGluZyA9IHQoYHBhZ2VIb21lLmdyZWV0aW5nLiR7ZGF5cGFydH1gLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pXG4gIGNvbnN0IGludHJvZHVjdGlvbiA9IHVzZU1lbW8oKCkgPT4gZ2V0QWdlbnRJbnRyb2R1Y3Rpb24oYWdlbnQ/LmludHJvZHVjdGlvbiksIFthZ2VudD8uaW50cm9kdWN0aW9uXSlcbiAgY29uc3QgaW5wdXRCbG9jayA9IHVzZU1lbW8oKCkgPT4gcmVzb2x2ZUFnZW50SW5wdXRCbG9jayhhZ2VudCksIFthZ2VudF0pXG4gIGNvbnN0IGNhblVzZUNvbXBvc2VyID0gIWlucHV0QmxvY2tcbiAgY29uc3QgeyBjYW5FZGl0Q3VzdG9tQWdlbnQsIG9wZW5DaGFuZ2VNb2RlbE1vZGFsIH0gPSB1c2VBZ2VudENoYW5nZU1vZGVsQWN0aW9uKGFnZW50KVxuXG4gIGNvbnN0IGRpc2NsYWltZXJNZXNzYWdlID0gKCgpID0+IHtcbiAgICBpZiAoIWhhc0FnZW50KSByZXR1cm4gJydcbiAgICBpZiAoaXNNQUlBKSByZXR1cm4gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lcicsIHsgYWdlbnROYW1lOiB0KCdnbG9iYWxzLmJyYW5kTmFtZScpIH0pXG4gICAgcmV0dXJuIHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXJBZ2VudCcpXG4gIH0pKClcblxuICBjb25zdCBbbGVhdmluZywgc2V0TGVhdmluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xlYXZlVGV4dCwgc2V0TGVhdmVUZXh0XSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgbWVzc2FnZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZmlyc3RJbnB1dFRvcFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBwZW5kaW5nU2VuZFJlZiA9IHVzZVJlZjxQYXJhbWV0ZXJzPFNlbmRNZXNzYWdlPiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG9uU2VuZE1lc3NhZ2VSZWYgPSB1c2VSZWYob25TZW5kTWVzc2FnZSlcbiAgb25TZW5kTWVzc2FnZVJlZi5jdXJyZW50ID0gb25TZW5kTWVzc2FnZVxuXG4gIGNvbnN0IGhhbmRsZVNlbmQ6IFNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChsZWF2aW5nIHx8ICFjYW5Vc2VDb21wb3NlcikgcmV0dXJuXG4gICAgICBjb25zdCBbbWVzc2FnZV0gPSBhcmdzXG4gICAgICBwZW5kaW5nU2VuZFJlZi5jdXJyZW50ID0gYXJnc1xuICAgICAgZmlyc3RJbnB1dFRvcFJlZi5jdXJyZW50ID0gaW5wdXRSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wID8/IDBcbiAgICAgIHNldExlYXZlVGV4dChtZXNzYWdlKVxuICAgICAgb25MZWF2ZVN0YXJ0Py4oKVxuICAgICAgc2V0TGVhdmluZyh0cnVlKVxuICAgIH0sXG4gICAgW2NhblVzZUNvbXBvc2VyLCBsZWF2aW5nLCBvbkxlYXZlU3RhcnRdXG4gIClcblxuICBjb25zdCByZW5kZXJDb21wb3NlcklucHV0ID0gKGRpc2FibGVkPzogYm9vbGVhbikgPT4ge1xuICAgIGlmIChpbnB1dEJsb2NrKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QWdlbnRJbnB1dEJsb2NrTWVzc2FnZVxuICAgICAgICAgIGJsb2NrPXtpbnB1dEJsb2NrfVxuICAgICAgICAgIHZhcmlhbnQ9XCJjb21wb3NlclwiXG4gICAgICAgICAgb25DaGFuZ2VNb2RlbD17b3BlbkNoYW5nZU1vZGVsTW9kYWx9XG4gICAgICAgICAgc2hvd0NoYW5nZU1vZGVsQnV0dG9uPXtpbnB1dEJsb2NrLmtpbmQgPT09ICdjdXN0b21fd2FybmluZycgPyBjYW5FZGl0Q3VzdG9tQWdlbnQgOiBmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gPENoYXRBSVBhZ2VIb21lSW5wdXQgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZH0gZGlzYWJsZWQ9e2Rpc2FibGVkfSAvPlxuICB9XG5cbiAgY29uc3QgcmVuZGVyQWN0aW9uQ2FyZHMgPSAoaXNMZWF2aW5nID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBzaG93QWN0aW9uc1NlY3Rpb24gPSBzaG93QWN0aW9uQ2FyZHMgJiYgY2FuVXNlQ29tcG9zZXJcbiAgICBjb25zdCBzaG93U2tlbGV0b24gPSBsb2FkaW5nICYmICFlcnJvciAmJiBhY3Rpb25zLmxlbmd0aCA9PT0gMFxuICAgIGNvbnN0IHNob3dBY3Rpb25zTGlzdCA9IGFjdGlvbnMubGVuZ3RoID4gMFxuICAgIGNvbnN0IHNob3dBY3Rpb25zUm93ID0gc2hvd0FjdGlvbnNTZWN0aW9uICYmIChzaG93U2tlbGV0b24gfHwgc2hvd0FjdGlvbnNMaXN0IHx8IEJvb2xlYW4oZXJyb3IpKVxuICAgIGNvbnN0IHNsb3RDb3VudCA9IHNob3dTa2VsZXRvbiA/IEhPTUVfUEFHRV9GVUFfU0tFTEVUT05fQ09VTlQgOiBhY3Rpb25zLmxlbmd0aFxuXG4gICAgY29uc3QgaGFuZGxlQWN0aW9uU2VsZWN0ID0gKGFjdGlvbjogKHR5cGVvZiBhY3Rpb25zKVtudW1iZXJdKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QsIHtcbiAgICAgICAgdHlwZV9xdWlja19hY3Rpb246IHJlc29sdmVRdWlja0FjdGlvblR5cGUoYWN0aW9uKSxcbiAgICAgICAgb3JpZ2luX3F1aWNrX2FjdGlvbjogJ2hvbWUnLFxuICAgICAgfSlcbiAgICAgIGhhbmRsZVNlbmQoYWN0aW9uLnRpdGxlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFjdGlvbi5pZClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDUGFnZUhvbWVBY3Rpb25zUmV2ZWFsICRsZWF2aW5nPXtpc0xlYXZpbmd9PlxuICAgICAgICB7c2hvd0FjdGlvbnNSb3cgPyAoXG4gICAgICAgICAgPFNDUGFnZUhvbWVBY3Rpb25zIGFyaWEtYnVzeT17bG9hZGluZyAmJiBzaG93U2tlbGV0b259PlxuICAgICAgICAgICAge2Vycm9yID8gKFxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBhZ2VudD8uaWQgJiYgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zKGFnZW50LmlkKX0+XG4gICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmZ1YS5lcnJvcicpfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nsb3RDb3VudCA+IDBcbiAgICAgICAgICAgICAgPyBBcnJheS5mcm9tKHsgbGVuZ3RoOiBzbG90Q291bnQgfSwgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zW2luZGV4XVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPENoYXRBSVBhZ2VIb21lQWN0aW9uQ2FyZFNsb3RcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Bob21lLWZ1YS1zbG90LSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1NrZWxldG9uPXshYWN0aW9uICYmIHNob3dTa2VsZXRvbn1cbiAgICAgICAgICAgICAgICAgICAgICBzaG93Q29udGVudD17Qm9vbGVhbihhY3Rpb24pfVxuICAgICAgICAgICAgICAgICAgICAgIGVudGVyTW90aW9uPXtzaG93U2tlbGV0b24gJiYgIWFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bGVhdmluZ31cbiAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlQWN0aW9uU2VsZWN0fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICA8L1NDUGFnZUhvbWVBY3Rpb25zPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NQYWdlSG9tZUFjdGlvbnNSZXZlYWw+XG4gICAgKVxuICB9XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxlYXZpbmcpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGlucHV0RWwgPSBpbnB1dFJlZi5jdXJyZW50XG4gICAgY29uc3QgbWVzc2FnZUVsID0gbWVzc2FnZVJlZi5jdXJyZW50XG4gICAgY29uc3QgZmlyc3RUb3AgPSBmaXJzdElucHV0VG9wUmVmLmN1cnJlbnRcblxuICAgIGlmIChpbnB1dEVsKSB7XG4gICAgICBjb25zdCBkeSA9IGZpcnN0VG9wIC0gaW5wdXRFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgIGlucHV0RWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHtkeX1weClgXG4gICAgICBpbnB1dEVsLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSdcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZUVsKSB7XG4gICAgICBjb25zdCBzdGFydFkgPSBmaXJzdFRvcCAtIG1lc3NhZ2VFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgIG1lc3NhZ2VFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke3N0YXJ0WX1weClgXG4gICAgICBtZXNzYWdlRWwuc3R5bGUub3BhY2l0eSA9ICcwJ1xuICAgICAgbWVzc2FnZUVsLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSdcbiAgICB9XG5cbiAgICBsZXQgaW5uZXJQbGF5ID0gMFxuICAgIGNvbnN0IHBsYXkgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlubmVyUGxheSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXRFbCkge1xuICAgICAgICAgIGlucHV0RWwuc3R5bGUudHJhbnNpdGlvbiA9IGB0cmFuc2Zvcm0gJHtMRUFWRV9NU31tcyBjdWJpYy1iZXppZXIoMC4zMiwgMC43MiwgMCwgMSlgXG4gICAgICAgICAgaW5wdXRFbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgwKSdcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVzc2FnZUVsKSB7XG4gICAgICAgICAgbWVzc2FnZUVsLnN0eWxlLnRyYW5zaXRpb24gPSBgdHJhbnNmb3JtICR7TEVBVkVfTVN9bXMgY3ViaWMtYmV6aWVyKDAuMzIsIDAuNzIsIDAsIDEpLCBvcGFjaXR5IDE2MG1zIGVhc2Utb3V0YFxuICAgICAgICAgIG1lc3NhZ2VFbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgwKSdcbiAgICAgICAgICBtZXNzYWdlRWwuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBjb25zdCBkb25lID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgcGVuZGluZyA9IHBlbmRpbmdTZW5kUmVmLmN1cnJlbnRcbiAgICAgIHBlbmRpbmdTZW5kUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBpZiAocGVuZGluZykge1xuICAgICAgICBvblNlbmRNZXNzYWdlUmVmLmN1cnJlbnQoLi4ucGVuZGluZylcbiAgICAgIH1cbiAgICB9LCBMRUFWRV9NUyArIDQwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShwbGF5KVxuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGlubmVyUGxheSlcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoZG9uZSlcbiAgICB9XG4gIH0sIFtsZWF2aW5nXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ1BhZ2VIb21lUm9vdD5cbiAgICAgIDxTQ1BhZ2VIb21lR2xvd0xheWVyICRsZWF2aW5nPXtsZWF2aW5nfSBhcmlhLWhpZGRlbj5cbiAgICAgICAgPFNDUGFnZUhvbWVHbG93Qmx1ZU91dGVyIC8+XG4gICAgICAgIDxTQ1BhZ2VIb21lR2xvd0JsdWVJbm5lciAvPlxuICAgICAgICA8U0NQYWdlSG9tZUdsb3dWaW9sZXQgLz5cbiAgICAgIDwvU0NQYWdlSG9tZUdsb3dMYXllcj5cbiAgICAgIDxTQ1BhZ2VIb21lQ2VudGVyICRsZWF2aW5nPXtsZWF2aW5nfT5cbiAgICAgICAge2xlYXZpbmcgPyAoXG4gICAgICAgICAgPFNDUGFnZUhvbWVMZWF2ZU1lc3NhZ2UgcmVmPXttZXNzYWdlUmVmfT5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lTGVhdmVCdWJibGU+e2xlYXZlVGV4dH08L1NDUGFnZUhvbWVMZWF2ZUJ1YmJsZT5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVMZWF2ZU1lc3NhZ2U+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NQYWdlSG9tZVdlbGNvbWVSZXZlYWwgJGxlYXZpbmc9e2xlYXZpbmd9PlxuICAgICAgICAgIHtoYXNBZ2VudCA/IChcbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lV2VsY29tZSAkYWdlbnQ9eyFpc01BSUF9PlxuICAgICAgICAgICAgICB7aXNNQUlBID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICA8U0NQYWdlSG9tZUdyZWV0aW5nPntncmVldGluZ308L1NDUGFnZUhvbWVHcmVldGluZz5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lU3VidGl0bGU+e3QoJ3BhZ2VIb21lLnN1YnRpdGxlJyl9PC9TQ1BhZ2VIb21lU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lU3VidGl0bGU+e2FnZW50Py5uYW1lfTwvU0NQYWdlSG9tZVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAge2FnZW50Py5jcmVhdGVkX2J5ID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50LmNyZWF0ZWRfYnkuaXNfZGVsZXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NQYWdlSG9tZUFnZW50QXV0aG9yPlxuICAgICAgICAgICAgICAgICAgICAgICAge3QoJ3BhZ2VIb21lLmNyZWF0ZWRCeScsIHsgbmFtZTogYWdlbnQuY3JlYXRlZF9ieS5uYW1lIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NQYWdlSG9tZUFnZW50QXV0aG9yPlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtpbnRyb2R1Y3Rpb24gPyA8U0NQYWdlSG9tZUFnZW50SW50cm8+e2ludHJvZHVjdGlvbn08L1NDUGFnZUhvbWVBZ2VudEludHJvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDUGFnZUhvbWVXZWxjb21lPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1NDUGFnZUhvbWVXZWxjb21lUmV2ZWFsPlxuICAgICAgICB7bGVhdmluZyA/IG51bGwgOiAoXG4gICAgICAgICAgPFNDUGFnZUhvbWVDb21wb3Nlcj5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lSW5wdXQgcmVmPXtpbnB1dFJlZn0+e3JlbmRlckNvbXBvc2VySW5wdXQoKX08L1NDUGFnZUhvbWVJbnB1dD5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVDb21wb3Nlcj5cbiAgICAgICAgKX1cbiAgICAgICAge3JlbmRlckFjdGlvbkNhcmRzKGxlYXZpbmcpfVxuICAgICAgPC9TQ1BhZ2VIb21lQ2VudGVyPlxuICAgICAge2xlYXZpbmcgPyAoXG4gICAgICAgIDxTQ1BhZ2VIb21lTGVhdmVGb290ZXI+XG4gICAgICAgICAgPFNDUGFnZUhvbWVDb21wb3NlciAkbGVhdmluZz5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lSW5wdXQgcmVmPXtpbnB1dFJlZn0+e3JlbmRlckNvbXBvc2VySW5wdXQodHJ1ZSl9PC9TQ1BhZ2VIb21lSW5wdXQ+XG4gICAgICAgICAgPC9TQ1BhZ2VIb21lQ29tcG9zZXI+XG4gICAgICAgICAgPFNDUGFnZUhvbWVEaXNjbGFpbWVyICRjb21wYWN0PlxuICAgICAgICAgICAgPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVEaXNjbGFpbWVyPlxuICAgICAgICA8L1NDUGFnZUhvbWVMZWF2ZUZvb3Rlcj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ1BhZ2VIb21lRGlzY2xhaW1lcj5cbiAgICAgICAgICB7Y2FuVXNlQ29tcG9zZXIgJiYgZGlzY2xhaW1lck1lc3NhZ2UgPyA8Q2hhdERpc2NsYWltZXJNZXNzYWdlIG1lc3NhZ2U9e2Rpc2NsYWltZXJNZXNzYWdlfSAvPiA6IG51bGx9XG4gICAgICAgIDwvU0NQYWdlSG9tZURpc2NsYWltZXI+XG4gICAgICApfVxuICAgIDwvU0NQYWdlSG9tZVJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxJQUFJLEVBQUVDLFdBQVcsRUFBRUMsZUFBZSxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDckYsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxxQkFBcUIsUUFBUSxtQ0FBbUM7QUFDekUsU0FBU0MsVUFBVSxRQUFRLHVDQUF1QztBQUNsRSxTQUNFQyxzQkFBc0IsRUFDdEJDLHNCQUFzQixFQUN0QkMseUJBQXlCLFFBQ3BCLGlDQUFpQztBQUN4QyxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxPQUFPLEVBQUVDLGtCQUFrQixRQUFRLDJCQUEyQjtBQUN2RSxTQUFTQyxjQUFjLFFBQVEsd0NBQXdDO0FBRXZFLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLHdCQUF3QixRQUFRLHlDQUF5QztBQUNsRixTQUFTQyxzQkFBc0IsUUFBUSw0Q0FBNEM7QUFDbkYsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVND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
272
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiQ2hhdEZvb3RlciIsIkFnZW50SW5wdXRCbG9ja01lc3NhZ2UiLCJyZXNvbHZlQWdlbnRJbnB1dEJsb2NrIiwidXNlQWdlbnRDaGFuZ2VNb2RlbEFjdGlvbiIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsImlzQ29sbGFib3JhdG9yUm9sZSIsInZhbGlkYXRlSXNNYWlhIiwiZ2V0RGF5cGFydCIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInJlc29sdmVRdWlja0FjdGlvblR5cGUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIkNoYXRBSVBhZ2VIb21lQWN0aW9uQ2FyZFNsb3QiLCJIT01FX1BBR0VfRlVBX1NLRUxFVE9OX0NPVU5UIiwiU0NQYWdlSG9tZUFjdGlvbnMiLCJTQ1BhZ2VIb21lQWN0aW9uc1JldmVhbCIsIlNDUGFnZUhvbWVBZ2VudEF1dGhvciIsIlNDUGFnZUhvbWVBZ2VudEludHJvIiwiU0NQYWdlSG9tZUNlbnRlciIsIlNDUGFnZUhvbWVDb21wb3NlciIsIlNDUGFnZUhvbWVEaXNjbGFpbWVyIiwiU0NQYWdlSG9tZUdsb3dCbHVlSW5uZXIiLCJTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlciIsIlNDUGFnZUhvbWVHbG93TGF5ZXIiLCJTQ1BhZ2VIb21lR2xvd1Zpb2xldCIsIlNDUGFnZUhvbWVHcmVldGluZyIsIlNDUGFnZUhvbWVJbnB1dCIsIlNDUGFnZUhvbWVMZWF2ZUJ1YmJsZSIsIlNDUGFnZUhvbWVMZWF2ZUZvb3RlciIsIlNDUGFnZUhvbWVMZWF2ZU1lc3NhZ2UiLCJTQ1BhZ2VIb21lUm9vdCIsIlNDUGFnZUhvbWVTdWJ0aXRsZSIsIlNDUGFnZUhvbWVXZWxjb21lIiwiU0NQYWdlSG9tZVdlbGNvbWVSZXZlYWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJnZXRBZ2VudEludHJvZHVjdGlvbiIsImludHJvZHVjdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIml0ZW0iLCJ0cmltIiwibGVuZ3RoIiwiam9pbiIsIkxFQVZFX01TIiwiQ2hhdEFJUGFnZUhvbWVJbnB1dCIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiZGlzYWJsZWQiLCJoaWRlRGlzY2xhaW1lciIsImRpc3BsYXlOYW1lIiwiQ2hhdEFJUGFnZUhvbWUiLCJfcmVmMiIsIm9uTGVhdmVTdGFydCIsIl91c2VUIiwidCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiaGFzQWdlbnQiLCJCb29sZWFuIiwiaXNNQUlBIiwiaXNPcmNoZXN0cmF0b3JIb21lUGVuZGluZyIsImlzTWFpYUhvbWUiLCJzaG93QWN0aW9uQ2FyZHMiLCJyb2xlX2lkIiwiYWdlbnRJZEZvckFjdGlvbnMiLCJpZCIsInVuZGVmaW5lZCIsImF3YWl0aW5nQWdlbnRJZEZvckFjdGlvbnMiLCJfdXNlRnJlcXVlbnRseVVzZWRBY3QiLCJhY3Rpb25zIiwibG9hZGluZyIsImVycm9yIiwiaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zIiwiZXZlbnRBbXBsaXR1ZGUiLCJkYXlwYXJ0IiwiZ3JlZXRpbmciLCJjb25jYXQiLCJuYW1lIiwiZmlyc3ROYW1lIiwiaW5wdXRCbG9jayIsImNhblVzZUNvbXBvc2VyIiwiX3VzZUFnZW50Q2hhbmdlTW9kZWxBIiwiY2FuRWRpdEN1c3RvbUFnZW50Iiwib3BlbkNoYW5nZU1vZGVsTW9kYWwiLCJkaXNjbGFpbWVyTWVzc2FnZSIsImFnZW50TmFtZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxlYXZpbmciLCJzZXRMZWF2aW5nIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsZWF2ZVRleHQiLCJzZXRMZWF2ZVRleHQiLCJpbnB1dFJlZiIsIm1lc3NhZ2VSZWYiLCJmaXJzdElucHV0VG9wUmVmIiwicGVuZGluZ1NlbmRSZWYiLCJvblNlbmRNZXNzYWdlUmVmIiwiY3VycmVudCIsImhhbmRsZVNlbmQiLCJfaW5wdXRSZWYkY3VycmVudCRnZXQiLCJfaW5wdXRSZWYkY3VycmVudCIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsIm1lc3NhZ2UiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3AiLCJyZW5kZXJDb21wb3NlcklucHV0IiwiYmxvY2siLCJ2YXJpYW50Iiwib25DaGFuZ2VNb2RlbCIsInNob3dDaGFuZ2VNb2RlbEJ1dHRvbiIsImtpbmQiLCJyZW5kZXJBY3Rpb25DYXJkcyIsImlzTGVhdmluZyIsInNob3dBY3Rpb25zU2VjdGlvbiIsInNob3dTa2VsZXRvbiIsInNob3dBY3Rpb25zTGlzdCIsInNob3dBY3Rpb25zUm93Iiwic2xvdENvdW50IiwiaGFuZGxlQWN0aW9uU2VsZWN0IiwiYWN0aW9uIiwiYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QiLCJ0eXBlX3F1aWNrX2FjdGlvbiIsIm9yaWdpbl9xdWlja19hY3Rpb24iLCJ0aXRsZSIsIiRsZWF2aW5nIiwiJGFuaW1hdGVFbnRlciIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJmcm9tIiwiXyIsImluZGV4Iiwic2hvd0NvbnRlbnQiLCJvblNlbGVjdCIsImlucHV0RWwiLCJtZXNzYWdlRWwiLCJmaXJzdFRvcCIsImR5Iiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwic3RhcnRZIiwib3BhY2l0eSIsImlubmVyUGxheSIsInBsYXkiLCJ3aW5kb3ciLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJkb25lIiwic2V0VGltZW91dCIsInBlbmRpbmciLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiY2xlYXJUaW1lb3V0IiwicmVmIiwiJGFnZW50IiwiY3JlYXRlZF9ieSIsImlzX2RlbGV0ZWQiLCIkY29tcGFjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29yZ2FuaXNtcy9DaGF0QUlQYWdlL0NoYXRBSVBhZ2VIb21lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4uLy4uL2F0b21zL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmltcG9ydCB7IENoYXRGb290ZXIgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHtcbiAgQWdlbnRJbnB1dEJsb2NrTWVzc2FnZSxcbiAgcmVzb2x2ZUFnZW50SW5wdXRCbG9jayxcbiAgdXNlQWdlbnRDaGFuZ2VNb2RlbEFjdGlvbixcbn0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0FnZW50SW5wdXRCbG9jaydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyLCBpc0NvbGxhYm9yYXRvclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGdldERheXBhcnQgfSBmcm9tICcuL2dldERheXBhcnQnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyByZXNvbHZlUXVpY2tBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaG91cnNQbGFubmVyUXVpY2tBY3Rpb25UeXBlJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ2hhdEFJUGFnZUhvbWVBY3Rpb25DYXJkU2xvdCB9IGZyb20gJy4vQ2hhdEFJUGFnZUhvbWVBY3Rpb25DYXJkU2xvdCdcbmltcG9ydCB7IEhPTUVfUEFHRV9GVUFfU0tFTEVUT05fQ09VTlQgfSBmcm9tICcuL0NoYXRBSVBhZ2VIb21lQWN0aW9uQ2FyZHMuc2tlbGV0b24nXG5pbXBvcnQge1xuICBTQ1BhZ2VIb21lQWN0aW9ucyxcbiAgU0NQYWdlSG9tZUFjdGlvbnNSZXZlYWwsXG4gIFNDUGFnZUhvbWVBZ2VudEF1dGhvcixcbiAgU0NQYWdlSG9tZUFnZW50SW50cm8sXG4gIFNDUGFnZUhvbWVDZW50ZXIsXG4gIFNDUGFnZUhvbWVDb21wb3NlcixcbiAgU0NQYWdlSG9tZURpc2NsYWltZXIsXG4gIFNDUGFnZUhvbWVHbG93Qmx1ZUlubmVyLFxuICBTQ1BhZ2VIb21lR2xvd0JsdWVPdXRlcixcbiAgU0NQYWdlSG9tZUdsb3dMYXllcixcbiAgU0NQYWdlSG9tZUdsb3dWaW9sZXQsXG4gIFNDUGFnZUhvbWVHcmVldGluZyxcbiAgU0NQYWdlSG9tZUlucHV0LFxuICBTQ1BhZ2VIb21lTGVhdmVCdWJibGUsXG4gIFNDUGFnZUhvbWVMZWF2ZUZvb3RlcixcbiAgU0NQYWdlSG9tZUxlYXZlTWVzc2FnZSxcbiAgU0NQYWdlSG9tZVJvb3QsXG4gIFNDUGFnZUhvbWVTdWJ0aXRsZSxcbiAgU0NQYWdlSG9tZVdlbGNvbWUsXG4gIFNDUGFnZUhvbWVXZWxjb21lUmV2ZWFsLFxufSBmcm9tICcuL0NoYXRBSVBhZ2VIb21lLnN0eWxlcydcblxuY29uc3QgZ2V0QWdlbnRJbnRyb2R1Y3Rpb24gPSAoaW50cm9kdWN0aW9uOiBBZ2VudFsnaW50cm9kdWN0aW9uJ10pOiBzdHJpbmcgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShpbnRyb2R1Y3Rpb24pKSB7XG4gICAgcmV0dXJuIGludHJvZHVjdGlvbi5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIHN0cmluZyA9PiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgJiYgaXRlbS50cmltKCkubGVuZ3RoID4gMCkuam9pbignICcpXG4gIH1cbiAgcmV0dXJuIHR5cGVvZiBpbnRyb2R1Y3Rpb24gPT09ICdzdHJpbmcnID8gaW50cm9kdWN0aW9uIDogJydcbn1cblxuY29uc3QgTEVBVkVfTVMgPSA2MDBcblxudHlwZSBTZW5kTWVzc2FnZSA9IFBhcmFtZXRlcnM8dHlwZW9mIENoYXRGb290ZXI+WzBdWydvblNlbmRNZXNzYWdlJ11cblxuaW50ZXJmYWNlIENoYXRBSVBhZ2VIb21lUHJvcHMge1xuICBvblNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZVxuICBvbkxlYXZlU3RhcnQ/OiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IENoYXRBSVBhZ2VIb21lSW5wdXQgPSBtZW1vKCh7IG9uU2VuZE1lc3NhZ2UsIGRpc2FibGVkIH06IHsgb25TZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7IGRpc2FibGVkPzogYm9vbGVhbiB9KSA9PiAoXG4gIDxDaGF0Rm9vdGVyIG9uU2VuZE1lc3NhZ2U9e29uU2VuZE1lc3NhZ2V9IGhpZGVEaXNjbGFpbWVyIGRpc2FibGVkPXtkaXNhYmxlZH0gLz5cbikpXG5DaGF0QUlQYWdlSG9tZUlucHV0LmRpc3BsYXlOYW1lID0gJ0NoYXRBSVBhZ2VIb21lSW5wdXQnXG5cbmV4cG9ydCBjb25zdCBDaGF0QUlQYWdlSG9tZSA9ICh7IG9uU2VuZE1lc3NhZ2UsIG9uTGVhdmVTdGFydCB9OiBDaGF0QUlQYWdlSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGhhc0FnZW50ID0gQm9vbGVhbihhZ2VudClcbiAgY29uc3QgaXNNQUlBID0gaGFzQWdlbnQgJiYgdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9ySG9tZVBlbmRpbmcgPSAhaGFzQWdlbnRcbiAgY29uc3QgaXNNYWlhSG9tZSA9IGlzTUFJQSB8fCBpc09yY2hlc3RyYXRvckhvbWVQZW5kaW5nXG4gIGNvbnN0IHNob3dBY3Rpb25DYXJkcyA9IGlzTWFpYUhvbWUgJiYgaXNDb2xsYWJvcmF0b3JSb2xlKHVzZXIucm9sZV9pZClcbiAgY29uc3QgYWdlbnRJZEZvckFjdGlvbnMgPSBzaG93QWN0aW9uQ2FyZHMgJiYgYWdlbnQ/LmlkID8gYWdlbnQuaWQgOiB1bmRlZmluZWRcbiAgY29uc3QgYXdhaXRpbmdBZ2VudElkRm9yQWN0aW9ucyA9IHNob3dBY3Rpb25DYXJkcyAmJiAhYWdlbnQ/LmlkXG4gIGNvbnN0IHsgYWN0aW9ucywgbG9hZGluZywgZXJyb3IsIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIGFnZW50SWRGb3JBY3Rpb25zLFxuICAgICdob21lX2NvbGxhYm9yYXRvcidcbiAgKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgZGF5cGFydCA9IHVzZU1lbW8oKCkgPT4gZ2V0RGF5cGFydCgpLCBbXSlcbiAgY29uc3QgZ3JlZXRpbmcgPSB0KGBwYWdlSG9tZS5ncmVldGluZy4ke2RheXBhcnR9YCwgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KVxuICBjb25zdCBpbnRyb2R1Y3Rpb24gPSB1c2VNZW1vKCgpID0+IGdldEFnZW50SW50cm9kdWN0aW9uKGFnZW50Py5pbnRyb2R1Y3Rpb24pLCBbYWdlbnQ/LmludHJvZHVjdGlvbl0pXG4gIGNvbnN0IGlucHV0QmxvY2sgPSB1c2VNZW1vKCgpID0+IHJlc29sdmVBZ2VudElucHV0QmxvY2soYWdlbnQpLCBbYWdlbnRdKVxuICBjb25zdCBjYW5Vc2VDb21wb3NlciA9ICFpbnB1dEJsb2NrXG4gIGNvbnN0IHsgY2FuRWRpdEN1c3RvbUFnZW50LCBvcGVuQ2hhbmdlTW9kZWxNb2RhbCB9ID0gdXNlQWdlbnRDaGFuZ2VNb2RlbEFjdGlvbihhZ2VudClcblxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9ICgoKSA9PiB7XG4gICAgaWYgKGlzTWFpYUhvbWUpIHJldHVybiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyJywgeyBhZ2VudE5hbWU6IHQoJ2dsb2JhbHMuYnJhbmROYW1lJykgfSlcbiAgICBpZiAoIWhhc0FnZW50KSByZXR1cm4gJydcbiAgICByZXR1cm4gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lckFnZW50JylcbiAgfSkoKVxuXG4gIGNvbnN0IFtsZWF2aW5nLCBzZXRMZWF2aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbGVhdmVUZXh0LCBzZXRMZWF2ZVRleHRdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBtZXNzYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBmaXJzdElucHV0VG9wUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHBlbmRpbmdTZW5kUmVmID0gdXNlUmVmPFBhcmFtZXRlcnM8U2VuZE1lc3NhZ2U+IHwgbnVsbD4obnVsbClcbiAgY29uc3Qgb25TZW5kTWVzc2FnZVJlZiA9IHVzZVJlZihvblNlbmRNZXNzYWdlKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9uU2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VcbiAgfSwgW29uU2VuZE1lc3NhZ2VdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmQ6IFNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChsZWF2aW5nIHx8ICFjYW5Vc2VDb21wb3NlcikgcmV0dXJuXG4gICAgICBjb25zdCBbbWVzc2FnZV0gPSBhcmdzXG4gICAgICBwZW5kaW5nU2VuZFJlZi5jdXJyZW50ID0gYXJnc1xuICAgICAgZmlyc3RJbnB1dFRvcFJlZi5jdXJyZW50ID0gaW5wdXRSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wID8/IDBcbiAgICAgIHNldExlYXZlVGV4dChtZXNzYWdlKVxuICAgICAgb25MZWF2ZVN0YXJ0Py4oKVxuICAgICAgc2V0TGVhdmluZyh0cnVlKVxuICAgIH0sXG4gICAgW2NhblVzZUNvbXBvc2VyLCBsZWF2aW5nLCBvbkxlYXZlU3RhcnRdXG4gIClcblxuICBjb25zdCByZW5kZXJDb21wb3NlcklucHV0ID0gKGRpc2FibGVkPzogYm9vbGVhbikgPT4ge1xuICAgIGlmIChpbnB1dEJsb2NrKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QWdlbnRJbnB1dEJsb2NrTWVzc2FnZVxuICAgICAgICAgIGJsb2NrPXtpbnB1dEJsb2NrfVxuICAgICAgICAgIHZhcmlhbnQ9XCJjb21wb3NlclwiXG4gICAgICAgICAgb25DaGFuZ2VNb2RlbD17b3BlbkNoYW5nZU1vZGVsTW9kYWx9XG4gICAgICAgICAgc2hvd0NoYW5nZU1vZGVsQnV0dG9uPXtpbnB1dEJsb2NrLmtpbmQgPT09ICdjdXN0b21fd2FybmluZycgPyBjYW5FZGl0Q3VzdG9tQWdlbnQgOiBmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gPENoYXRBSVBhZ2VIb21lSW5wdXQgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZH0gZGlzYWJsZWQ9e2Rpc2FibGVkfSAvPlxuICB9XG5cbiAgY29uc3QgcmVuZGVyQWN0aW9uQ2FyZHMgPSAoaXNMZWF2aW5nID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBzaG93QWN0aW9uc1NlY3Rpb24gPSBzaG93QWN0aW9uQ2FyZHMgJiYgY2FuVXNlQ29tcG9zZXJcbiAgICBjb25zdCBzaG93U2tlbGV0b24gPSBhd2FpdGluZ0FnZW50SWRGb3JBY3Rpb25zIHx8IChsb2FkaW5nICYmICFlcnJvciAmJiBhY3Rpb25zLmxlbmd0aCA9PT0gMClcbiAgICBjb25zdCBzaG93QWN0aW9uc0xpc3QgPSBhY3Rpb25zLmxlbmd0aCA+IDBcbiAgICBjb25zdCBzaG93QWN0aW9uc1JvdyA9IHNob3dBY3Rpb25zU2VjdGlvbiAmJiAoc2hvd1NrZWxldG9uIHx8IHNob3dBY3Rpb25zTGlzdCB8fCBCb29sZWFuKGVycm9yKSlcbiAgICBjb25zdCBzbG90Q291bnQgPSBzaG93U2tlbGV0b24gPyBIT01FX1BBR0VfRlVBX1NLRUxFVE9OX0NPVU5UIDogYWN0aW9ucy5sZW5ndGhcblxuICAgIGNvbnN0IGhhbmRsZUFjdGlvblNlbGVjdCA9IChhY3Rpb246ICh0eXBlb2YgYWN0aW9ucylbbnVtYmVyXSkgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0LCB7XG4gICAgICAgIHR5cGVfcXVpY2tfYWN0aW9uOiByZXNvbHZlUXVpY2tBY3Rpb25UeXBlKGFjdGlvbiksXG4gICAgICAgIG9yaWdpbl9xdWlja19hY3Rpb246ICdob21lJyxcbiAgICAgIH0pXG4gICAgICBoYW5kbGVTZW5kKGFjdGlvbi50aXRsZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBhY3Rpb24uaWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1BhZ2VIb21lQWN0aW9uc1JldmVhbCAkbGVhdmluZz17aXNMZWF2aW5nfSAkYW5pbWF0ZUVudGVyPXtzaG93QWN0aW9uc1NlY3Rpb24gJiYgIWlzTGVhdmluZ30+XG4gICAgICAgIHtzaG93QWN0aW9uc1JvdyA/IChcbiAgICAgICAgICA8U0NQYWdlSG9tZUFjdGlvbnMgYXJpYS1idXN5PXtsb2FkaW5nICYmIHNob3dTa2VsZXRvbn0+XG4gICAgICAgICAgICB7ZXJyb3IgPyAoXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGFnZW50Py5pZCAmJiBoYW5kbGVHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMoYWdlbnQuaWQpfT5cbiAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuZnVhLmVycm9yJyl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2xvdENvdW50ID4gMFxuICAgICAgICAgICAgICA/IEFycmF5LmZyb20oeyBsZW5ndGg6IHNsb3RDb3VudCB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGFjdGlvbnNbaW5kZXhdXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8Q2hhdEFJUGFnZUhvbWVBY3Rpb25DYXJkU2xvdFxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YGhvbWUtZnVhLXNsb3QtJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIHNob3dTa2VsZXRvbj17IWFjdGlvbiAmJiBzaG93U2tlbGV0b259XG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbnRlbnQ9e0Jvb2xlYW4oYWN0aW9uKX1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bGVhdmluZ31cbiAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlQWN0aW9uU2VsZWN0fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICA8L1NDUGFnZUhvbWVBY3Rpb25zPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NQYWdlSG9tZUFjdGlvbnNSZXZlYWw+XG4gICAgKVxuICB9XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxlYXZpbmcpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGlucHV0RWwgPSBpbnB1dFJlZi5jdXJyZW50XG4gICAgY29uc3QgbWVzc2FnZUVsID0gbWVzc2FnZVJlZi5jdXJyZW50XG4gICAgY29uc3QgZmlyc3RUb3AgPSBmaXJzdElucHV0VG9wUmVmLmN1cnJlbnRcblxuICAgIGlmIChpbnB1dEVsKSB7XG4gICAgICBjb25zdCBkeSA9IGZpcnN0VG9wIC0gaW5wdXRFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgIGlucHV0RWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHtkeX1weClgXG4gICAgICBpbnB1dEVsLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSdcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZUVsKSB7XG4gICAgICBjb25zdCBzdGFydFkgPSBmaXJzdFRvcCAtIG1lc3NhZ2VFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3BcbiAgICAgIG1lc3NhZ2VFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke3N0YXJ0WX1weClgXG4gICAgICBtZXNzYWdlRWwuc3R5bGUub3BhY2l0eSA9ICcwJ1xuICAgICAgbWVzc2FnZUVsLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSdcbiAgICB9XG5cbiAgICBsZXQgaW5uZXJQbGF5ID0gMFxuICAgIGNvbnN0IHBsYXkgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlubmVyUGxheSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXRFbCkge1xuICAgICAgICAgIGlucHV0RWwuc3R5bGUudHJhbnNpdGlvbiA9IGB0cmFuc2Zvcm0gJHtMRUFWRV9NU31tcyBjdWJpYy1iZXppZXIoMC4zMiwgMC43MiwgMCwgMSlgXG4gICAgICAgICAgaW5wdXRFbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgwKSdcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVzc2FnZUVsKSB7XG4gICAgICAgICAgbWVzc2FnZUVsLnN0eWxlLnRyYW5zaXRpb24gPSBgdHJhbnNmb3JtICR7TEVBVkVfTVN9bXMgY3ViaWMtYmV6aWVyKDAuMzIsIDAuNzIsIDAsIDEpLCBvcGFjaXR5IDE2MG1zIGVhc2Utb3V0YFxuICAgICAgICAgIG1lc3NhZ2VFbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgwKSdcbiAgICAgICAgICBtZXNzYWdlRWwuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBjb25zdCBkb25lID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgcGVuZGluZyA9IHBlbmRpbmdTZW5kUmVmLmN1cnJlbnRcbiAgICAgIHBlbmRpbmdTZW5kUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBpZiAocGVuZGluZykge1xuICAgICAgICBvblNlbmRNZXNzYWdlUmVmLmN1cnJlbnQoLi4ucGVuZGluZylcbiAgICAgIH1cbiAgICB9LCBMRUFWRV9NUyArIDQwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShwbGF5KVxuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGlubmVyUGxheSlcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoZG9uZSlcbiAgICB9XG4gIH0sIFtsZWF2aW5nXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ1BhZ2VIb21lUm9vdD5cbiAgICAgIDxTQ1BhZ2VIb21lR2xvd0xheWVyICRsZWF2aW5nPXtsZWF2aW5nfSBhcmlhLWhpZGRlbj5cbiAgICAgICAgPFNDUGFnZUhvbWVHbG93Qmx1ZU91dGVyIC8+XG4gICAgICAgIDxTQ1BhZ2VIb21lR2xvd0JsdWVJbm5lciAvPlxuICAgICAgICA8U0NQYWdlSG9tZUdsb3dWaW9sZXQgLz5cbiAgICAgIDwvU0NQYWdlSG9tZUdsb3dMYXllcj5cbiAgICAgIDxTQ1BhZ2VIb21lQ2VudGVyICRsZWF2aW5nPXtsZWF2aW5nfT5cbiAgICAgICAge2xlYXZpbmcgPyAoXG4gICAgICAgICAgPFNDUGFnZUhvbWVMZWF2ZU1lc3NhZ2UgcmVmPXttZXNzYWdlUmVmfT5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lTGVhdmVCdWJibGU+e2xlYXZlVGV4dH08L1NDUGFnZUhvbWVMZWF2ZUJ1YmJsZT5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVMZWF2ZU1lc3NhZ2U+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NQYWdlSG9tZVdlbGNvbWVSZXZlYWwgJGxlYXZpbmc9e2xlYXZpbmd9PlxuICAgICAgICAgIHtpc01haWFIb21lIHx8IGhhc0FnZW50ID8gKFxuICAgICAgICAgICAgPFNDUGFnZUhvbWVXZWxjb21lICRhZ2VudD17aGFzQWdlbnQgJiYgIWlzTUFJQX0+XG4gICAgICAgICAgICAgIHtpc01haWFIb21lID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICA8U0NQYWdlSG9tZUdyZWV0aW5nPntncmVldGluZ308L1NDUGFnZUhvbWVHcmVldGluZz5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lU3VidGl0bGU+e3QoJ3BhZ2VIb21lLnN1YnRpdGxlJyl9PC9TQ1BhZ2VIb21lU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxTQ1BhZ2VIb21lU3VidGl0bGU+e2FnZW50Py5uYW1lfTwvU0NQYWdlSG9tZVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAge2FnZW50Py5jcmVhdGVkX2J5ID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50LmNyZWF0ZWRfYnkuaXNfZGVsZXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NQYWdlSG9tZUFnZW50QXV0aG9yPlxuICAgICAgICAgICAgICAgICAgICAgICAge3QoJ3BhZ2VIb21lLmNyZWF0ZWRCeScsIHsgbmFtZTogYWdlbnQuY3JlYXRlZF9ieS5uYW1lIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NQYWdlSG9tZUFnZW50QXV0aG9yPlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtpbnRyb2R1Y3Rpb24gPyA8U0NQYWdlSG9tZUFnZW50SW50cm8+e2ludHJvZHVjdGlvbn08L1NDUGFnZUhvbWVBZ2VudEludHJvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDUGFnZUhvbWVXZWxjb21lPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1NDUGFnZUhvbWVXZWxjb21lUmV2ZWFsPlxuICAgICAgICB7bGVhdmluZyA/IG51bGwgOiAoXG4gICAgICAgICAgPFNDUGFnZUhvbWVDb21wb3Nlcj5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lSW5wdXQgcmVmPXtpbnB1dFJlZn0+e3JlbmRlckNvbXBvc2VySW5wdXQoKX08L1NDUGFnZUhvbWVJbnB1dD5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVDb21wb3Nlcj5cbiAgICAgICAgKX1cbiAgICAgICAge3JlbmRlckFjdGlvbkNhcmRzKGxlYXZpbmcpfVxuICAgICAgPC9TQ1BhZ2VIb21lQ2VudGVyPlxuICAgICAge2xlYXZpbmcgPyAoXG4gICAgICAgIDxTQ1BhZ2VIb21lTGVhdmVGb290ZXI+XG4gICAgICAgICAgPFNDUGFnZUhvbWVDb21wb3NlciAkbGVhdmluZz5cbiAgICAgICAgICAgIDxTQ1BhZ2VIb21lSW5wdXQgcmVmPXtpbnB1dFJlZn0+e3JlbmRlckNvbXBvc2VySW5wdXQodHJ1ZSl9PC9TQ1BhZ2VIb21lSW5wdXQ+XG4gICAgICAgICAgPC9TQ1BhZ2VIb21lQ29tcG9zZXI+XG4gICAgICAgICAgPFNDUGFnZUhvbWVEaXNjbGFpbWVyICRjb21wYWN0PlxuICAgICAgICAgICAgPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz5cbiAgICAgICAgICA8L1NDUGFnZUhvbWVEaXNjbGFpbWVyPlxuICAgICAgICA8L1NDUGFnZUhvbWVMZWF2ZUZvb3Rlcj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ1BhZ2VIb21lRGlzY2xhaW1lcj5cbiAgICAgICAgICB7Y2FuVXNlQ29tcG9zZXIgJiYgZGlzY2xhaW1lck1lc3NhZ2UgPyA8Q2hhdERpc2NsYWltZXJNZXNzYWdlIG1lc3NhZ2U9e2Rpc2NsYWltZXJNZXNzYWdlfSAvPiA6IG51bGx9XG4gICAgICAgIDwvU0NQYWdlSG9tZURpc2NsYWltZXI+XG4gICAgICApfVxuICAgIDwvU0NQYWdlSG9tZVJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxJQUFJLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxlQUFlLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FB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
@@ -104,7 +104,13 @@ describe('ChatAIPageHome', function () {
104
104
  afterEach(function () {
105
105
  jest.useRealTimers();
106
106
  });
107
- it('keeps the input mounted and waits for the agent greeting', function () {
107
+ it('shows the MAIA greeting immediately while the agent is still loading', function () {
108
+ jest.mocked(useFrequentlyUsedActions).mockReturnValue({
109
+ actions: [],
110
+ loading: false,
111
+ error: null,
112
+ handleGetFrequentlyUsedActions: mockFetchActions
113
+ });
108
114
  var _renderWithProviders = renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
109
115
  value: {
110
116
  agent: null
@@ -118,9 +124,16 @@ describe('ChatAIPageHome', function () {
118
124
  name: 'send'
119
125
  })).toBeInTheDocument();
120
126
  expect(screen.queryByTestId('agent-input-block-message')).not.toBeInTheDocument();
121
- expect(screen.queryByText('pageHome.greeting.morning')).not.toBeInTheDocument();
127
+ expect(screen.getByText('pageHome.greeting.morning')).toBeInTheDocument();
122
128
  expect(screen.queryByText('Cargar mis horas de hoy')).not.toBeInTheDocument();
129
+ expect(document.querySelectorAll('[aria-hidden="true"]').length).toBeGreaterThanOrEqual(3);
123
130
  expect(footerMounts).toBe(1);
131
+ jest.mocked(useFrequentlyUsedActions).mockReturnValue({
132
+ actions: mockActions,
133
+ loading: false,
134
+ error: null,
135
+ handleGetFrequentlyUsedActions: mockFetchActions
136
+ });
124
137
  rerender(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
125
138
  value: {
126
139
  agent: _objectSpread(_objectSpread({}, testAgent), {}, {
@@ -133,6 +146,7 @@ describe('ChatAIPageHome', function () {
133
146
  })
134
147
  }));
135
148
  expect(screen.getByText('Legal')).toBeInTheDocument();
149
+ expect(screen.queryByText('pageHome.greeting.morning')).not.toBeInTheDocument();
136
150
  expect(screen.queryByText('Cargar mis horas de hoy')).not.toBeInTheDocument();
137
151
  expect(screen.getByRole('button', {
138
152
  name: 'send'
@@ -258,4 +272,4 @@ describe('ChatAIPageHome', function () {
258
272
  expect(onSendMessage).not.toHaveBeenCalled();
259
273
  });
260
274
  });
261
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJhY3QiLCJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciIsInRlc3RBZ2VudCIsIkNoYXRBSVBhZ2VIb21lIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwianN4IiwiX2pzeCIsIm1vY2tBY3Rpb25zIiwiaWQiLCJ0aXRsZSIsInN1YnRpdGxlIiwiaWNvbiIsImNhdGVnb3J5IiwibW9ja0ZldGNoQWN0aW9ucyIsImplc3QiLCJmbiIsIm1vY2siLCJFVkVOVFMiLCJhaUNoYXRRdWlja0FjdGlvblNlbGVjdCIsInVzZUV2ZW50IiwiZm9vdGVyTW91bnRzIiwiZ2V0RGF5cGFydCIsInJlbmRlckFjdGlvbkljb24iLCJDaGF0Rm9vdGVyIiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJkaXNhYmxlZCIsInR5cGUiLCJvbkNsaWNrIiwiY2hpbGRyZW4iLCJ1c2VVc2VyIiwiZmlyc3ROYW1lIiwicm9sZV9pZCIsImlzQ29sbGFib3JhdG9yUm9sZSIsInJvbGUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrZWQiLCJtb2NrUmV0dXJuVmFsdWUiLCJhY3Rpb25zIiwibG9hZGluZyIsImVycm9yIiwiaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsIl9yZW5kZXJXaXRoUHJvdmlkZXJzIiwidmFsdWUiLCJhZ2VudCIsInJlcmVuZGVyIiwiZXhwZWN0IiwiZ2V0QnlSb2xlIiwibmFtZSIsInRvQmVJblRoZURvY3VtZW50IiwicXVlcnlCeVRlc3RJZCIsIm5vdCIsInF1ZXJ5QnlUZXh0IiwidG9CZSIsIl9vYmplY3RTcHJlYWQiLCJnZXRCeVRleHQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiZ2V0QnlUZXN0SWQiLCJxdWVyeUJ5Um9sZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsInRvQmVHcmVhdGVyVGhhbk9yRXF1YWwiLCJvbkxlYXZlU3RhcnQiLCJjbGljayIsInRvSGF2ZUJlZW5DYWxsZWQiLCJhZHZhbmNlVGltZXJzQnlUaW1lIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJlYWNoIiwiYWN0aW9uIiwiY29uY2F0IiwidG9IYXZlQmVlbkNhbGxlZFRpbWVzIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSVBhZ2UvQ2hhdEFJUGFnZUhvbWUuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBhY3QsIGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciwgdGVzdEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdGVzdC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IENoYXRBSVBhZ2VIb21lIH0gZnJvbSAnLi9DaGF0QUlQYWdlSG9tZSdcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcblxuY29uc3QgbW9ja0FjdGlvbnMgPSBbXG4gIHsgaWQ6ICdob3Vycy1mdWEnLCB0aXRsZTogJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95Jywgc3VidGl0bGU6ICdIb3JhcycsIGljb246ICdjaGFyZ2VfaG91cnMnLCBjYXRlZ29yeTogJ2hvdXJzJyB9LFxuICB7IGlkOiAndG9kYXktZnVhJywgdGl0bGU6ICfCv1F1w6kgdGVuZ28gcGFyYSBob3k/Jywgc3VidGl0bGU6ICdIb3knLCBpY29uOiAnY2FsZW5kYXInLCBjYXRlZ29yeTogJ3Rhc2tzJyB9LFxuICB7IGlkOiAncmV2aWV3LWZ1YScsIHRpdGxlOiAnwr9RdcOpIGRlYmVyw61hIHJldmlzYXI/Jywgc3VidGl0bGU6ICdSZXZpc2FyJywgaWNvbjogJ3N1bW1hcnlfdGFzaycsIGNhdGVnb3J5OiAndGFza3MnIH0sXG5dXG5jb25zdCBtb2NrRmV0Y2hBY3Rpb25zID0gamVzdC5mbigpXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucycsICgpID0+ICh7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9uczogamVzdC5mbigpIH0pKVxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VFdmVudCcsICgpID0+ICh7XG4gIEVWRU5UUzogeyBhaUNoYXRRdWlja0FjdGlvblNlbGVjdDogJ0FJX0NIQVRfUVVJQ0tfQUNUSU9OX1NFTEVDVCcgfSxcbiAgdXNlRXZlbnQ6ICgpID0+IGplc3QuZm4oKSxcbn0pKVxubGV0IGZvb3Rlck1vdW50cyA9IDBcblxuamVzdC5tb2NrKCcuL2dldERheXBhcnQnLCAoKSA9PiAoe1xuICBnZXREYXlwYXJ0OiAoKSA9PiAnbW9ybmluZycsXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi91dGlscy9hY3Rpb25JY29uTWFwJywgKCkgPT4gKHtcbiAgcmVuZGVyQWN0aW9uSWNvbjogKCkgPT4gbnVsbCxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInLCAoKSA9PiAoe1xuICBDaGF0Rm9vdGVyOiAoeyBvblNlbmRNZXNzYWdlLCBkaXNhYmxlZCB9OiB7IG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7IGRpc2FibGVkPzogYm9vbGVhbiB9KSA9PiB7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGZvb3Rlck1vdW50cyArPSAxXG4gICAgfSwgW10pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQ9e2Rpc2FibGVkfSBvbkNsaWNrPXsoKSA9PiBvblNlbmRNZXNzYWdlKCdob2xhJyl9PlxuICAgICAgICBzZW5kXG4gICAgICA8L2J1dHRvbj5cbiAgICApXG4gIH0sXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJywgKCkgPT4gKHtcbiAgdXNlVXNlcjogKCkgPT4gKHsgaWQ6IDk5LCBmaXJzdE5hbWU6ICdBZGEnLCByb2xlX2lkOiA0IH0pLFxuICBpc0NvbGxhYm9yYXRvclJvbGU6IChyb2xlOiBudW1iZXIpID0+IHJvbGUgPT09IDQsXG59KSlcblxuZGVzY3JpYmUoJ0NoYXRBSVBhZ2VIb21lJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBqZXN0Lm1vY2tlZCh1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICBhY3Rpb25zOiBtb2NrQWN0aW9ucyBhcyBhbnksXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zOiBtb2NrRmV0Y2hBY3Rpb25zLFxuICAgIH0pXG4gICAgZm9vdGVyTW91bnRzID0gMFxuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KCdrZWVwcyB0aGUgaW5wdXQgbW91bnRlZCBhbmQgd2FpdHMgZm9yIHRoZSBhZ2VudCBncmVldGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXIgdmFsdWU9e3sgYWdlbnQ6IG51bGwgfX0+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ3NlbmQnIH0pKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGVzdElkKCdhZ2VudC1pbnB1dC1ibG9jay1tZXNzYWdlJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgncGFnZUhvbWUuZ3JlZXRpbmcubW9ybmluZycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95JykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KGZvb3Rlck1vdW50cykudG9CZSgxKVxuXG4gICAgcmVyZW5kZXIoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciB2YWx1ZT17eyBhZ2VudDogeyAuLi50ZXN0QWdlbnQsIHR5cGU6ICdjdXN0b20nLCBuYW1lOiAnTGVnYWwnIH0gfX0+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0xlZ2FsJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdDYXJnYXIgbWlzIGhvcmFzIGRlIGhveScpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdzZW5kJyB9KSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChmb290ZXJNb3VudHMpLnRvQmUoMSlcbiAgfSlcblxuICBpdCgnc2hvd3MgdGhlIGJsb2NrIGJhbm5lciB3aGVuIHRoZSBzZWxlY3RlZCBhZ2VudCBoYXMgbm8gcGVybWlzc2lvbnMnLCAoKSA9PiB7XG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyXG4gICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgYWdlbnQ6IHsgLi4udGVzdEFnZW50LCB0eXBlOiAnY3VzdG9tJywgbmFtZTogJ0xlZ2FsJywgaGFzX25vdF9wZXJtaXNzaW9uczogdHJ1ZSB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8Q2hhdEFJUGFnZUhvbWUgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXN0SWQoJ2FnZW50LWlucHV0LWJsb2NrLW1lc3NhZ2UnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ3NlbmQnIH0pKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxuXG4gIGl0KCdzaG93cyBza2VsZXRvbiBhY3Rpb24gY2FyZHMgd2hpbGUgRlVBcyBhcmUgbG9hZGluZycsICgpID0+IHtcbiAgICBqZXN0Lm1vY2tlZCh1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICBhY3Rpb25zOiBbXSxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9uczogbW9ja0ZldGNoQWN0aW9ucyxcbiAgICB9KVxuXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgICAgICA8Q2hhdEFJUGFnZUhvbWUgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdzZW5kJyB9KSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95JykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1thcmlhLWhpZGRlbj1cInRydWVcIl0nKS5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbk9yRXF1YWwoMylcbiAgfSlcblxuICBpdCgnZ3JlZXRzIE1BSUEgdXNlcnMgYW5kIHNob3dzIHRoZSBhY3Rpb24gY2FyZHMnLCAoKSA9PiB7XG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgICAgICA8Q2hhdEFJUGFnZUhvbWUgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdwYWdlSG9tZS5ncmVldGluZy5tb3JuaW5nJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgncGFnZUhvbWUuc3VidGl0bGUnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDYXJnYXIgbWlzIGhvcmFzIGRlIGhveScpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG5cbiAgaXQoJ3Nob3dzIGEgY3VzdG9tIGFnZW50IHdpdGhvdXQgYWN0aW9uIGNhcmRzJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciB2YWx1ZT17eyBhZ2VudDogeyAuLi50ZXN0QWdlbnQsIHR5cGU6ICdjdXN0b20nLCBuYW1lOiAnTGVnYWwnIH0gfX0+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0xlZ2FsJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdDYXJnYXIgbWlzIGhvcmFzIGRlIGhveScpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxuXG4gIGl0KCdzdGFydHMgdGhlIGxlYXZlIGFuaW1hdGlvbiBhbmQgdGhlbiBzZW5kcyB0aGUgbWVzc2FnZScsICgpID0+IHtcbiAgICBjb25zdCBvblNlbmRNZXNzYWdlID0gamVzdC5mbigpXG4gICAgY29uc3Qgb25MZWF2ZVN0YXJ0ID0gamVzdC5mbigpXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgICAgICA8Q2hhdEFJUGFnZUhvbWUgb25TZW5kTWVzc2FnZT17b25TZW5kTWVzc2FnZX0gb25MZWF2ZVN0YXJ0PXtvbkxlYXZlU3RhcnR9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ3NlbmQnIH0pKVxuXG4gICAgZXhwZWN0KG9uTGVhdmVTdGFydCkudG9IYXZlQmVlbkNhbGxlZCgpXG4gICAgZXhwZWN0KG9uU2VuZE1lc3NhZ2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnaG9sYScpKS50b0JlSW5UaGVEb2N1bWVudCgpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDcwMClcbiAgICB9KVxuXG4gICAgZXhwZWN0KG9uU2VuZE1lc3NhZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdob2xhJylcbiAgfSlcbiAgaXQuZWFjaChtb2NrQWN0aW9ucykoJ3NlbmRzIHRoZSBzZXJ2ZXIgRlVBIGlkIGZvciAkdGl0bGUnLCBhY3Rpb24gPT4ge1xuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtvblNlbmRNZXNzYWdlfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcbiAgICBleHBlY3QodXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0QWdlbnQuaWQsICdob21lX2NvbGxhYm9yYXRvcicpXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogYCR7YWN0aW9uLnRpdGxlfSAke2FjdGlvbi5zdWJ0aXRsZX1gIH0pKVxuICAgIGFjdCgoKSA9PiB7XG4gICAgICBqZXN0LmFkdmFuY2VUaW1lcnNCeVRpbWUoNzAwKVxuICAgIH0pXG4gICAgZXhwZWN0KG9uU2VuZE1lc3NhZ2UpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKVxuICAgIGV4cGVjdChvblNlbmRNZXNzYWdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChhY3Rpb24udGl0bGUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYWN0aW9uLmlkKVxuICB9KVxuXG4gIGl0KCdkb2VzIG5vdCByZXBsYWNlIGZhaWxlZCBGVUFzIHdpdGggZnJlZS10ZXh0IGNhcmRzIGFuZCBhbGxvd3MgcmV0cnknLCAoKSA9PiB7XG4gICAgamVzdC5tb2NrZWQodXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgYWN0aW9uczogW10sXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiAnZmFpbGVkJyxcbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9uczogbW9ja0ZldGNoQWN0aW9ucyxcbiAgICB9KVxuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtvblNlbmRNZXNzYWdlfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdDYXJnYXIgbWlzIGhvcmFzIGRlIGhveScpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdob21lTWVudS5mdWEuZXJyb3InIH0pKVxuICAgIGV4cGVjdChtb2NrRmV0Y2hBY3Rpb25zKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0QWdlbnQuaWQpXG4gICAgZXhwZWN0KG9uU2VuZE1lc3NhZ2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFNBQVMsUUFBUSxPQUFPO0FBQ2pDLFNBQVNDLEdBQUcsRUFBRUMsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxRQUFRLDBCQUEwQjtBQUN0RixTQUFTQyx5QkFBeUIsRUFBRUMsU0FBUyxRQUFRLDhCQUE4QjtBQUNuRixTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHlDQUF5QztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUVsRixJQUFNQyxXQUFXLEdBQUcsQ0FDbEI7RUFBRUMsRUFBRSxFQUFFLFdBQVc7RUFBRUMsS0FBSyxFQUFFLHlCQUF5QjtFQUFFQyxRQUFRLEVBQUUsT0FBTztFQUFFQyxJQUFJLEVBQUUsY0FBYztFQUFFQyxRQUFRLEVBQUU7QUFBUSxDQUFDLEVBQ2pIO0VBQUVKLEVBQUUsRUFBRSxXQUFXO0VBQUVDLEtBQUssRUFBRSxzQkFBc0I7RUFBRUMsUUFBUSxFQUFFLEtBQUs7RUFBRUMsSUFBSSxFQUFFLFVBQVU7RUFBRUMsUUFBUSxFQUFFO0FBQVEsQ0FBQyxFQUN4RztFQUFFSixFQUFFLEVBQUUsWUFBWTtFQUFFQyxLQUFLLEVBQUUsdUJBQXVCO0VBQUVDLFFBQVEsRUFBRSxTQUFTO0VBQUVDLElBQUksRUFBRSxjQUFjO0VBQUVDLFFBQVEsRUFBRTtBQUFRLENBQUMsQ0FDbkg7QUFDRCxJQUFNQyxnQkFBZ0IsR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztBQUNsQ0QsSUFBSSxDQUFDRSxJQUFJLENBQUMseUNBQXlDLEVBQUU7RUFBQSxPQUFPO0lBQUVaLHdCQUF3QixFQUFFVSxJQUFJLENBQUNDLEVBQUUsQ0FBQztFQUFFLENBQUM7QUFBQSxDQUFDLENBQUM7QUFDckdELElBQUksQ0FBQ0UsSUFBSSxDQUFDLHlCQUF5QixFQUFFO0VBQUEsT0FBTztJQUMxQ0MsTUFBTSxFQUFFO01BQUVDLHVCQUF1QixFQUFFO0lBQThCLENBQUM7SUFDbEVDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBO01BQUEsT0FBUUwsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUFBO0VBQzNCLENBQUM7QUFBQSxDQUFDLENBQUM7QUFDSCxJQUFJSyxZQUFZLEdBQUcsQ0FBQztBQUVwQk4sSUFBSSxDQUFDRSxJQUFJLENBQUMsY0FBYyxFQUFFO0VBQUEsT0FBTztJQUMvQkssVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUE7TUFBQSxPQUFRLFNBQVM7SUFBQTtFQUM3QixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhQLElBQUksQ0FBQ0UsSUFBSSxDQUFDLDhCQUE4QixFQUFFO0VBQUEsT0FBTztJQUMvQ00sZ0JBQWdCLEVBQUUsU0FBbEJBLGdCQUFnQkEsQ0FBQTtNQUFBLE9BQVEsSUFBSTtJQUFBO0VBQzlCLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSFIsSUFBSSxDQUFDRSxJQUFJLENBQUMsdUNBQXVDLEVBQUU7RUFBQSxPQUFPO0lBQ3hETyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBQUMsSUFBQSxFQUFxRztNQUFBLElBQWhHQyxhQUFhLEdBQUFELElBQUEsQ0FBYkMsYUFBYTtRQUFFQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtNQUNwQzlCLFNBQVMsQ0FBQyxZQUFNO1FBQ2R3QixZQUFZLElBQUksQ0FBQztNQUNuQixDQUFDLEVBQUUsRUFBRSxDQUFDO01BRU4sb0JBQ0VkLElBQUE7UUFBUXFCLElBQUksRUFBQyxRQUFRO1FBQUNELFFBQVEsRUFBRUEsUUFBUztRQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFILGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFBQSxDQUFDO1FBQUFJLFFBQUEsRUFBQztNQUVoRixDQUFRLENBQUM7SUFFYjtFQUNGLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSGYsSUFBSSxDQUFDRSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7RUFBQSxPQUFPO0lBQzVDYyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVM7UUFBRXRCLEVBQUUsRUFBRSxFQUFFO1FBQUV1QixTQUFTLEVBQUUsS0FBSztRQUFFQyxPQUFPLEVBQUU7TUFBRSxDQUFDO0lBQUEsQ0FBQztJQUN6REMsa0JBQWtCLEVBQUUsU0FBcEJBLGtCQUFrQkEsQ0FBR0MsSUFBWTtNQUFBLE9BQUtBLElBQUksS0FBSyxDQUFDO0lBQUE7RUFDbEQsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVIQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsWUFBTTtFQUMvQkMsVUFBVSxDQUFDLFlBQU07SUFDZnRCLElBQUksQ0FBQ3VCLE1BQU0sQ0FBQ2pDLHdCQUF3QixDQUFDLENBQUNrQyxlQUFlLENBQUM7TUFDcERDLE9BQU8sRUFBRWhDLFdBQWtCO01BQzNCaUMsT0FBTyxFQUFFLEtBQUs7TUFDZEMsS0FBSyxFQUFFLElBQUk7TUFDWEMsOEJBQThCLEVBQUU3QjtJQUNsQyxDQUFDLENBQUM7SUFDRk8sWUFBWSxHQUFHLENBQUM7SUFDaEJOLElBQUksQ0FBQzZCLGFBQWEsQ0FBQyxDQUFDO0VBQ3RCLENBQUMsQ0FBQztFQUVGQyxTQUFTLENBQUMsWUFBTTtJQUNkOUIsSUFBSSxDQUFDK0IsYUFBYSxDQUFDLENBQUM7RUFDdEIsQ0FBQyxDQUFDO0VBRUZDLEVBQUUsQ0FBQywwREFBMEQsRUFBRSxZQUFNO0lBQ25FLElBQUFDLG9CQUFBLEdBQXFCaEQsbUJBQW1CLGNBQ3RDTyxJQUFBLENBQUNMLHlCQUF5QjtRQUFDK0MsS0FBSyxFQUFFO1VBQUVDLEtBQUssRUFBRTtRQUFLLENBQUU7UUFBQXBCLFFBQUEsZUFDaER2QixJQUFBLENBQUNILGNBQWM7VUFBQ3NCLGFBQWEsRUFBRVgsSUFBSSxDQUFDQyxFQUFFLENBQUM7UUFBRSxDQUFFO01BQUMsQ0FDbkIsQ0FDN0IsQ0FBQztNQUpPbUMsUUFBUSxHQUFBSCxvQkFBQSxDQUFSRyxRQUFRO0lBTWhCQyxNQUFNLENBQUNuRCxNQUFNLENBQUNvRCxTQUFTLENBQUMsUUFBUSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDeEVILE1BQU0sQ0FBQ25ELE1BQU0sQ0FBQ3VELGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUNDLEdBQUcsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUNqRkgsTUFBTSxDQUFDbkQsTUFBTSxDQUFDeUQsV0FBVyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQ0QsR0FBRyxDQUFDRixpQkFBaUIsQ0FBQyxDQUFDO0lBQy9FSCxNQUFNLENBQUNuRCxNQUFNLENBQUN5RCxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDRCxHQUFHLENBQUNGLGlCQUFpQixDQUFDLENBQUM7SUFDN0VILE1BQU0sQ0FBQy9CLFlBQVksQ0FBQyxDQUFDc0MsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUU1QlIsUUFBUSxjQUNONUMsSUFBQSxDQUFDTCx5QkFBeUI7TUFBQytDLEtBQUssRUFBRTtRQUFFQyxLQUFLLEVBQUFVLGFBQUEsQ0FBQUEsYUFBQSxLQUFPekQsU0FBUztVQUFFeUIsSUFBSSxFQUFFLFFBQVE7VUFBRTBCLElBQUksRUFBRTtRQUFPO01BQUcsQ0FBRTtNQUFBeEIsUUFBQSxlQUMzRnZCLElBQUEsQ0FBQ0gsY0FBYztRQUFDc0IsYUFBYSxFQUFFWCxJQUFJLENBQUNDLEVBQUUsQ0FBQztNQUFFLENBQUU7SUFBQyxDQUNuQixDQUM3QixDQUFDO0lBRURvQyxNQUFNLENBQUNuRCxNQUFNLENBQUM0RCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQ04saUJBQWlCLENBQUMsQ0FBQztJQUNyREgsTUFBTSxDQUFDbkQsTUFBTSxDQUFDeUQsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQ0QsR0FBRyxDQUFDRixpQkFBaUIsQ0FBQyxDQUFDO0lBQzdFSCxNQUFNLENBQUNuRCxNQUFNLENBQUNvRCxTQUFTLENBQUMsUUFBUSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDeEVILE1BQU0sQ0FBQy9CLFlBQVksQ0FBQyxDQUFDc0MsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUM5QixDQUFDLENBQUM7RUFFRlosRUFBRSxDQUFDLG1FQUFtRSxFQUFFLFlBQU07SUFDNUUvQyxtQkFBbUIsY0FDakJPLElBQUEsQ0FBQ0wseUJBQXlCO01BQ3hCK0MsS0FBSyxFQUFFO1FBQ0xDLEtBQUssRUFBQVUsYUFBQSxDQUFBQSxhQUFBLEtBQU96RCxTQUFTO1VBQUV5QixJQUFJLEVBQUUsUUFBUTtVQUFFMEIsSUFBSSxFQUFFLE9BQU87VUFBRVEsbUJBQW1CLEVBQUU7UUFBSTtNQUNqRixDQUFFO01BQUFoQyxRQUFBLGVBRUZ2QixJQUFBLENBQUNILGNBQWM7UUFBQ3NCLGFBQWEsRUFBRVgsSUFBSSxDQUFDQyxFQUFFLENBQUM7TUFBRSxDQUFFO0lBQUMsQ0FDbkIsQ0FDN0IsQ0FBQztJQUVEb0MsTUFBTSxDQUFDbkQsTUFBTSxDQUFDOEQsV0FBVyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQ1IsaUJBQWlCLENBQUMsQ0FBQztJQUMzRUgsTUFBTSxDQUFDbkQsTUFBTSxDQUFDK0QsV0FBVyxDQUFDLFFBQVEsRUFBRTtNQUFFVixJQUFJLEVBQUU7SUFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxHQUFHLENBQUNGLGlCQUFpQixDQUFDLENBQUM7RUFDaEYsQ0FBQyxDQUFDO0VBRUZSLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxZQUFNO0lBQzdEaEMsSUFBSSxDQUFDdUIsTUFBTSxDQUFDakMsd0JBQXdCLENBQUMsQ0FBQ2tDLGVBQWUsQ0FBQztNQUNwREMsT0FBTyxFQUFFLEVBQUU7TUFDWEMsT0FBTyxFQUFFLElBQUk7TUFDYkMsS0FBSyxFQUFFLElBQUk7TUFDWEMsOEJBQThCLEVBQUU3QjtJQUNsQyxDQUFDLENBQUM7SUFFRmQsbUJBQW1CLGNBQ2pCTyxJQUFBLENBQUNMLHlCQUF5QjtNQUFBNEIsUUFBQSxlQUN4QnZCLElBQUEsQ0FBQ0gsY0FBYztRQUFDc0IsYUFBYSxFQUFFWCxJQUFJLENBQUNDLEVBQUUsQ0FBQztNQUFFLENBQUU7SUFBQyxDQUNuQixDQUM3QixDQUFDO0lBRURvQyxNQUFNLENBQUNuRCxNQUFNLENBQUNvRCxTQUFTLENBQUMsUUFBUSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDeEVILE1BQU0sQ0FBQ25ELE1BQU0sQ0FBQ3lELFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUNELEdBQUcsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUM3RUgsTUFBTSxDQUFDYSxRQUFRLENBQUNDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7RUFDNUYsQ0FBQyxDQUFDO0VBRUZyQixFQUFFLENBQUMsOENBQThDLEVBQUUsWUFBTTtJQUN2RC9DLG1CQUFtQixjQUNqQk8sSUFBQSxDQUFDTCx5QkFBeUI7TUFBQTRCLFFBQUEsZUFDeEJ2QixJQUFBLENBQUNILGNBQWM7UUFBQ3NCLGFBQWEsRUFBRVgsSUFBSSxDQUFDQyxFQUFFLENBQUM7TUFBRSxDQUFFO0lBQUMsQ0FDbkIsQ0FDN0IsQ0FBQztJQUVEb0MsTUFBTSxDQUFDbkQsTUFBTSxDQUFDNEQsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQ04saUJBQWlCLENBQUMsQ0FBQztJQUN6RUgsTUFBTSxDQUFDbkQsTUFBTSxDQUFDNEQsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQ04saUJBQWlCLENBQUMsQ0FBQztJQUNqRUgsTUFBTSxDQUFDbkQsTUFBTSxDQUFDNEQsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQ04saUJBQWlCLENBQUMsQ0FBQztFQUN6RSxDQUFDLENBQUM7RUFFRlIsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLFlBQU07SUFDcEQvQyxtQkFBbUIsY0FDakJPLElBQUEsQ0FBQ0wseUJBQXlCO01BQUMrQyxLQUFLLEVBQUU7UUFBRUMsS0FBSyxFQUFBVSxhQUFBLENBQUFBLGFBQUEsS0FBT3pELFNBQVM7VUFBRXlCLElBQUksRUFBRSxRQUFRO1VBQUUwQixJQUFJLEVBQUU7UUFBTztNQUFHLENBQUU7TUFBQXhCLFFBQUEsZUFDM0Z2QixJQUFBLENBQUNILGNBQWM7UUFBQ3NCLGFBQWEsRUFBRVgsSUFBSSxDQUFDQyxFQUFFLENBQUM7TUFBRSxDQUFFO0lBQUMsQ0FDbkIsQ0FDN0IsQ0FBQztJQUVEb0MsTUFBTSxDQUFDbkQsTUFBTSxDQUFDNEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUNOLGlCQUFpQixDQUFDLENBQUM7SUFDckRILE1BQU0sQ0FBQ25ELE1BQU0sQ0FBQ3lELFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUNELEdBQUcsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztFQUMvRSxDQUFDLENBQUM7RUFFRlIsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLFlBQU07SUFDaEUsSUFBTXJCLGFBQWEsR0FBR1gsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUMvQixJQUFNcUQsWUFBWSxHQUFHdEQsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUM5QmhCLG1CQUFtQixjQUNqQk8sSUFBQSxDQUFDTCx5QkFBeUI7TUFBQTRCLFFBQUEsZUFDeEJ2QixJQUFBLENBQUNILGNBQWM7UUFBQ3NCLGFBQWEsRUFBRUEsYUFBYztRQUFDMkMsWUFBWSxFQUFFQTtNQUFhLENBQUU7SUFBQyxDQUNuRCxDQUM3QixDQUFDO0lBRUR0RSxTQUFTLENBQUN1RSxLQUFLLENBQUNyRSxNQUFNLENBQUNvRCxTQUFTLENBQUMsUUFBUSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFPLENBQUMsQ0FBQyxDQUFDO0lBRTdERixNQUFNLENBQUNpQixZQUFZLENBQUMsQ0FBQ0UsZ0JBQWdCLENBQUMsQ0FBQztJQUN2Q25CLE1BQU0sQ0FBQzFCLGFBQWEsQ0FBQyxDQUFDK0IsR0FBRyxDQUFDYyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDbkIsTUFBTSxDQUFDbkQsTUFBTSxDQUFDNEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUNOLGlCQUFpQixDQUFDLENBQUM7SUFFcER6RCxHQUFHLENBQUMsWUFBTTtNQUNSaUIsSUFBSSxDQUFDeUQsbUJBQW1CLENBQUMsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUVGcEIsTUFBTSxDQUFDMUIsYUFBYSxDQUFDLENBQUMrQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7RUFDcEQsQ0FBQyxDQUFDO0VBQ0YxQixFQUFFLENBQUMyQixJQUFJLENBQUNsRSxXQUFXLENBQUMsQ0FBQyxvQ0FBb0MsRUFBRSxVQUFBbUUsTUFBTSxFQUFJO0lBQ25FLElBQU1qRCxhQUFhLEdBQUdYLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDL0JoQixtQkFBbUIsY0FDakJPLElBQUEsQ0FBQ0wseUJBQXlCO01BQUE0QixRQUFBLGVBQ3hCdkIsSUFBQSxDQUFDSCxjQUFjO1FBQUNzQixhQUFhLEVBQUVBO01BQWMsQ0FBRTtJQUFDLENBQ3ZCLENBQzdCLENBQUM7SUFDRDBCLE1BQU0sQ0FBQy9DLHdCQUF3QixDQUFDLENBQUNvRSxvQkFBb0IsQ0FBQ3RFLFNBQVMsQ0FBQ00sRUFBRSxFQUFFLG1CQUFtQixDQUFDO0lBQ3hGVixTQUFTLENBQUN1RSxLQUFLLENBQUNyRSxNQUFNLENBQUNvRCxTQUFTLENBQUMsUUFBUSxFQUFFO01BQUVDLElBQUksS0FBQXNCLE1BQUEsQ0FBS0QsTUFBTSxDQUFDakUsS0FBSyxPQUFBa0UsTUFBQSxDQUFJRCxNQUFNLENBQUNoRSxRQUFRO0lBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0ZiLEdBQUcsQ0FBQyxZQUFNO01BQ1JpQixJQUFJLENBQUN5RCxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0lBQ0ZwQixNQUFNLENBQUMxQixhQUFhLENBQUMsQ0FBQ21ELHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUM5Q3pCLE1BQU0sQ0FBQzFCLGFBQWEsQ0FBQyxDQUFDK0Msb0JBQW9CLENBQUNFLE1BQU0sQ0FBQ2pFLEtBQUssRUFBRW9FLFNBQVMsRUFBRUEsU0FBUyxFQUFFQSxTQUFTLEVBQUVBLFNBQVMsRUFBRUgsTUFBTSxDQUFDbEUsRUFBRSxDQUFDO0VBQ2pILENBQUMsQ0FBQztFQUVGc0MsRUFBRSxDQUFDLG9FQUFvRSxFQUFFLFlBQU07SUFDN0VoQyxJQUFJLENBQUN1QixNQUFNLENBQUNqQyx3QkFBd0IsQ0FBQyxDQUFDa0MsZUFBZSxDQUFDO01BQ3BEQyxPQUFPLEVBQUUsRUFBRTtNQUNYQyxPQUFPLEVBQUUsS0FBSztNQUNkQyxLQUFLLEVBQUUsUUFBUTtNQUNmQyw4QkFBOEIsRUFBRTdCO0lBQ2xDLENBQUMsQ0FBQztJQUNGLElBQU1ZLGFBQWEsR0FBR1gsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUMvQmhCLG1CQUFtQixjQUNqQk8sSUFBQSxDQUFDTCx5QkFBeUI7TUFBQTRCLFFBQUEsZUFDeEJ2QixJQUFBLENBQUNILGNBQWM7UUFBQ3NCLGFBQWEsRUFBRUE7TUFBYyxDQUFFO0lBQUMsQ0FDdkIsQ0FDN0IsQ0FBQztJQUNEMEIsTUFBTSxDQUFDbkQsTUFBTSxDQUFDeUQsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQ0QsR0FBRyxDQUFDRixpQkFBaUIsQ0FBQyxDQUFDO0lBQzdFeEQsU0FBUyxDQUFDdUUsS0FBSyxDQUFDckUsTUFBTSxDQUFDb0QsU0FBUyxDQUFDLFFBQVEsRUFBRTtNQUFFQyxJQUFJLEVBQUU7SUFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDM0VGLE1BQU0sQ0FBQ3RDLGdCQUFnQixDQUFDLENBQUMyRCxvQkFBb0IsQ0FBQ3RFLFNBQVMsQ0FBQ00sRUFBRSxDQUFDO0lBQzNEMkMsTUFBTSxDQUFDMUIsYUFBYSxDQUFDLENBQUMrQixHQUFHLENBQUNjLGdCQUFnQixDQUFDLENBQUM7RUFDOUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
275
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJhY3QiLCJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciIsInRlc3RBZ2VudCIsIkNoYXRBSVBhZ2VIb21lIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwianN4IiwiX2pzeCIsIm1vY2tBY3Rpb25zIiwiaWQiLCJ0aXRsZSIsInN1YnRpdGxlIiwiaWNvbiIsImNhdGVnb3J5IiwibW9ja0ZldGNoQWN0aW9ucyIsImplc3QiLCJmbiIsIm1vY2siLCJFVkVOVFMiLCJhaUNoYXRRdWlja0FjdGlvblNlbGVjdCIsInVzZUV2ZW50IiwiZm9vdGVyTW91bnRzIiwiZ2V0RGF5cGFydCIsInJlbmRlckFjdGlvbkljb24iLCJDaGF0Rm9vdGVyIiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJkaXNhYmxlZCIsInR5cGUiLCJvbkNsaWNrIiwiY2hpbGRyZW4iLCJ1c2VVc2VyIiwiZmlyc3ROYW1lIiwicm9sZV9pZCIsImlzQ29sbGFib3JhdG9yUm9sZSIsInJvbGUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrZWQiLCJtb2NrUmV0dXJuVmFsdWUiLCJhY3Rpb25zIiwibG9hZGluZyIsImVycm9yIiwiaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsIl9yZW5kZXJXaXRoUHJvdmlkZXJzIiwidmFsdWUiLCJhZ2VudCIsInJlcmVuZGVyIiwiZXhwZWN0IiwiZ2V0QnlSb2xlIiwibmFtZSIsInRvQmVJblRoZURvY3VtZW50IiwicXVlcnlCeVRlc3RJZCIsIm5vdCIsImdldEJ5VGV4dCIsInF1ZXJ5QnlUZXh0IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwidG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCIsInRvQmUiLCJfb2JqZWN0U3ByZWFkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImdldEJ5VGVzdElkIiwicXVlcnlCeVJvbGUiLCJvbkxlYXZlU3RhcnQiLCJjbGljayIsInRvSGF2ZUJlZW5DYWxsZWQiLCJhZHZhbmNlVGltZXJzQnlUaW1lIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJlYWNoIiwiYWN0aW9uIiwiY29uY2F0IiwidG9IYXZlQmVlbkNhbGxlZFRpbWVzIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSVBhZ2UvQ2hhdEFJUGFnZUhvbWUuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBhY3QsIGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciwgdGVzdEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdGVzdC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IENoYXRBSVBhZ2VIb21lIH0gZnJvbSAnLi9DaGF0QUlQYWdlSG9tZSdcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcblxuY29uc3QgbW9ja0FjdGlvbnMgPSBbXG4gIHsgaWQ6ICdob3Vycy1mdWEnLCB0aXRsZTogJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95Jywgc3VidGl0bGU6ICdIb3JhcycsIGljb246ICdjaGFyZ2VfaG91cnMnLCBjYXRlZ29yeTogJ2hvdXJzJyB9LFxuICB7IGlkOiAndG9kYXktZnVhJywgdGl0bGU6ICfCv1F1w6kgdGVuZ28gcGFyYSBob3k/Jywgc3VidGl0bGU6ICdIb3knLCBpY29uOiAnY2FsZW5kYXInLCBjYXRlZ29yeTogJ3Rhc2tzJyB9LFxuICB7IGlkOiAncmV2aWV3LWZ1YScsIHRpdGxlOiAnwr9RdcOpIGRlYmVyw61hIHJldmlzYXI/Jywgc3VidGl0bGU6ICdSZXZpc2FyJywgaWNvbjogJ3N1bW1hcnlfdGFzaycsIGNhdGVnb3J5OiAndGFza3MnIH0sXG5dXG5jb25zdCBtb2NrRmV0Y2hBY3Rpb25zID0gamVzdC5mbigpXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucycsICgpID0+ICh7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9uczogamVzdC5mbigpIH0pKVxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VFdmVudCcsICgpID0+ICh7XG4gIEVWRU5UUzogeyBhaUNoYXRRdWlja0FjdGlvblNlbGVjdDogJ0FJX0NIQVRfUVVJQ0tfQUNUSU9OX1NFTEVDVCcgfSxcbiAgdXNlRXZlbnQ6ICgpID0+IGplc3QuZm4oKSxcbn0pKVxubGV0IGZvb3Rlck1vdW50cyA9IDBcblxuamVzdC5tb2NrKCcuL2dldERheXBhcnQnLCAoKSA9PiAoe1xuICBnZXREYXlwYXJ0OiAoKSA9PiAnbW9ybmluZycsXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi91dGlscy9hY3Rpb25JY29uTWFwJywgKCkgPT4gKHtcbiAgcmVuZGVyQWN0aW9uSWNvbjogKCkgPT4gbnVsbCxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInLCAoKSA9PiAoe1xuICBDaGF0Rm9vdGVyOiAoeyBvblNlbmRNZXNzYWdlLCBkaXNhYmxlZCB9OiB7IG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7IGRpc2FibGVkPzogYm9vbGVhbiB9KSA9PiB7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGZvb3Rlck1vdW50cyArPSAxXG4gICAgfSwgW10pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQ9e2Rpc2FibGVkfSBvbkNsaWNrPXsoKSA9PiBvblNlbmRNZXNzYWdlKCdob2xhJyl9PlxuICAgICAgICBzZW5kXG4gICAgICA8L2J1dHRvbj5cbiAgICApXG4gIH0sXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJywgKCkgPT4gKHtcbiAgdXNlVXNlcjogKCkgPT4gKHsgaWQ6IDk5LCBmaXJzdE5hbWU6ICdBZGEnLCByb2xlX2lkOiA0IH0pLFxuICBpc0NvbGxhYm9yYXRvclJvbGU6IChyb2xlOiBudW1iZXIpID0+IHJvbGUgPT09IDQsXG59KSlcblxuZGVzY3JpYmUoJ0NoYXRBSVBhZ2VIb21lJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBqZXN0Lm1vY2tlZCh1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICBhY3Rpb25zOiBtb2NrQWN0aW9ucyBhcyBhbnksXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zOiBtb2NrRmV0Y2hBY3Rpb25zLFxuICAgIH0pXG4gICAgZm9vdGVyTW91bnRzID0gMFxuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KCdzaG93cyB0aGUgTUFJQSBncmVldGluZyBpbW1lZGlhdGVseSB3aGlsZSB0aGUgYWdlbnQgaXMgc3RpbGwgbG9hZGluZycsICgpID0+IHtcbiAgICBqZXN0Lm1vY2tlZCh1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICBhY3Rpb25zOiBbXSxcbiAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnM6IG1vY2tGZXRjaEFjdGlvbnMsXG4gICAgfSlcblxuICAgIGNvbnN0IHsgcmVyZW5kZXIgfSA9IHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciB2YWx1ZT17eyBhZ2VudDogbnVsbCB9fT5cbiAgICAgICAgPENoYXRBSVBhZ2VIb21lIG9uU2VuZE1lc3NhZ2U9e2plc3QuZm4oKX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnc2VuZCcgfSkpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXN0SWQoJ2FnZW50LWlucHV0LWJsb2NrLW1lc3NhZ2UnKSkubm90LnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgncGFnZUhvbWUuZ3JlZXRpbmcubW9ybmluZycpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgnQ2FyZ2FyIG1pcyBob3JhcyBkZSBob3knKSkubm90LnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3QoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXScpLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCgzKVxuICAgIGV4cGVjdChmb290ZXJNb3VudHMpLnRvQmUoMSlcblxuICAgIGplc3QubW9ja2VkKHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucykubW9ja1JldHVyblZhbHVlKHtcbiAgICAgIGFjdGlvbnM6IG1vY2tBY3Rpb25zIGFzIGFueSxcbiAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnM6IG1vY2tGZXRjaEFjdGlvbnMsXG4gICAgfSlcblxuICAgIHJlcmVuZGVyKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXIgdmFsdWU9e3sgYWdlbnQ6IHsgLi4udGVzdEFnZW50LCB0eXBlOiAnY3VzdG9tJywgbmFtZTogJ0xlZ2FsJyB9IH19PlxuICAgICAgICA8Q2hhdEFJUGFnZUhvbWUgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdMZWdhbCcpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgncGFnZUhvbWUuZ3JlZXRpbmcubW9ybmluZycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95JykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ3NlbmQnIH0pKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KGZvb3Rlck1vdW50cykudG9CZSgxKVxuICB9KVxuXG4gIGl0KCdzaG93cyB0aGUgYmxvY2sgYmFubmVyIHdoZW4gdGhlIHNlbGVjdGVkIGFnZW50IGhhcyBubyBwZXJtaXNzaW9ucycsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXJcbiAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICBhZ2VudDogeyAuLi50ZXN0QWdlbnQsIHR5cGU6ICdjdXN0b20nLCBuYW1lOiAnTGVnYWwnLCBoYXNfbm90X3Blcm1pc3Npb25zOiB0cnVlIH0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRlc3RJZCgnYWdlbnQtaW5wdXQtYmxvY2stbWVzc2FnZScpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnc2VuZCcgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG5cbiAgaXQoJ3Nob3dzIHNrZWxldG9uIGFjdGlvbiBjYXJkcyB3aGlsZSBGVUFzIGFyZSBsb2FkaW5nJywgKCkgPT4ge1xuICAgIGplc3QubW9ja2VkKHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucykubW9ja1JldHVyblZhbHVlKHtcbiAgICAgIGFjdGlvbnM6IFtdLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zOiBtb2NrRmV0Y2hBY3Rpb25zLFxuICAgIH0pXG5cbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ3NlbmQnIH0pKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgnQ2FyZ2FyIG1pcyBob3JhcyBkZSBob3knKSkubm90LnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3QoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXScpLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCgzKVxuICB9KVxuXG4gIGl0KCdncmVldHMgTUFJQSB1c2VycyBhbmQgc2hvd3MgdGhlIGFjdGlvbiBjYXJkcycsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ3BhZ2VIb21lLmdyZWV0aW5nLm1vcm5pbmcnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdwYWdlSG9tZS5zdWJ0aXRsZScpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95JykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcblxuICBpdCgnc2hvd3MgYSBjdXN0b20gYWdlbnQgd2l0aG91dCBhY3Rpb24gY2FyZHMnLCAoKSA9PiB7XG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyIHZhbHVlPXt7IGFnZW50OiB7IC4uLnRlc3RBZ2VudCwgdHlwZTogJ2N1c3RvbScsIG5hbWU6ICdMZWdhbCcgfSB9fT5cbiAgICAgICAgPENoYXRBSVBhZ2VIb21lIG9uU2VuZE1lc3NhZ2U9e2plc3QuZm4oKX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnTGVnYWwnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95JykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG5cbiAgaXQoJ3N0YXJ0cyB0aGUgbGVhdmUgYW5pbWF0aW9uIGFuZCB0aGVuIHNlbmRzIHRoZSBtZXNzYWdlJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICBjb25zdCBvbkxlYXZlU3RhcnQgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxDaGF0QUlQYWdlSG9tZSBvblNlbmRNZXNzYWdlPXtvblNlbmRNZXNzYWdlfSBvbkxlYXZlU3RhcnQ9e29uTGVhdmVTdGFydH0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnc2VuZCcgfSkpXG5cbiAgICBleHBlY3Qob25MZWF2ZVN0YXJ0KS50b0hhdmVCZWVuQ2FsbGVkKClcbiAgICBleHBlY3Qob25TZW5kTWVzc2FnZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdob2xhJykpLnRvQmVJblRoZURvY3VtZW50KClcblxuICAgIGFjdCgoKSA9PiB7XG4gICAgICBqZXN0LmFkdmFuY2VUaW1lcnNCeVRpbWUoNzAwKVxuICAgIH0pXG5cbiAgICBleHBlY3Qob25TZW5kTWVzc2FnZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2hvbGEnKVxuICB9KVxuICBpdC5lYWNoKG1vY2tBY3Rpb25zKSgnc2VuZHMgdGhlIHNlcnZlciBGVUEgaWQgZm9yICR0aXRsZScsIGFjdGlvbiA9PiB7XG4gICAgY29uc3Qgb25TZW5kTWVzc2FnZSA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICAgICAgPENoYXRBSVBhZ2VIb21lIG9uU2VuZE1lc3NhZ2U9e29uU2VuZE1lc3NhZ2V9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuICAgIGV4cGVjdCh1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRlc3RBZ2VudC5pZCwgJ2hvbWVfY29sbGFib3JhdG9yJylcbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiBgJHthY3Rpb24udGl0bGV9ICR7YWN0aW9uLnN1YnRpdGxlfWAgfSkpXG4gICAgYWN0KCgpID0+IHtcbiAgICAgIGplc3QuYWR2YW5jZVRpbWVyc0J5VGltZSg3MDApXG4gICAgfSlcbiAgICBleHBlY3Qob25TZW5kTWVzc2FnZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gICAgZXhwZWN0KG9uU2VuZE1lc3NhZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGFjdGlvbi50aXRsZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBhY3Rpb24uaWQpXG4gIH0pXG5cbiAgaXQoJ2RvZXMgbm90IHJlcGxhY2UgZmFpbGVkIEZVQXMgd2l0aCBmcmVlLXRleHQgY2FyZHMgYW5kIGFsbG93cyByZXRyeScsICgpID0+IHtcbiAgICBqZXN0Lm1vY2tlZCh1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICBhY3Rpb25zOiBbXSxcbiAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgZXJyb3I6ICdmYWlsZWQnLFxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zOiBtb2NrRmV0Y2hBY3Rpb25zLFxuICAgIH0pXG4gICAgY29uc3Qgb25TZW5kTWVzc2FnZSA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICAgICAgPENoYXRBSVBhZ2VIb21lIG9uU2VuZE1lc3NhZ2U9e29uU2VuZE1lc3NhZ2V9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoJ0NhcmdhciBtaXMgaG9yYXMgZGUgaG95JykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ2hvbWVNZW51LmZ1YS5lcnJvcicgfSkpXG4gICAgZXhwZWN0KG1vY2tGZXRjaEFjdGlvbnMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRlc3RBZ2VudC5pZClcbiAgICBleHBlY3Qob25TZW5kTWVzc2FnZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLE9BQU87QUFDakMsU0FBU0MsR0FBRyxFQUFFQyxTQUFTLEVBQUVDLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ3RGLFNBQVNDLHlCQUF5QixFQUFFQyxTQUFTLFFBQVEsOEJBQThCO0FBQ25GLFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFDakQsU0FBU0Msd0JBQXdCLFFBQVEseUNBQXlDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRWxGLElBQU1DLFdBQVcsR0FBRyxDQUNsQjtFQUFFQyxFQUFFLEVBQUUsV0FBVztFQUFFQyxLQUFLLEVBQUUseUJBQXlCO0VBQUVDLFFBQVEsRUFBRSxPQUFPO0VBQUVDLElBQUksRUFBRSxjQUFjO0VBQUVDLFFBQVEsRUFBRTtBQUFRLENBQUMsRUFDakg7RUFBRUosRUFBRSxFQUFFLFdBQVc7RUFBRUMsS0FBSyxFQUFFLHNCQUFzQjtFQUFFQyxRQUFRLEVBQUUsS0FBSztFQUFFQyxJQUFJLEVBQUUsVUFBVTtFQUFFQyxRQUFRLEVBQUU7QUFBUSxDQUFDLEVBQ3hHO0VBQUVKLEVBQUUsRUFBRSxZQUFZO0VBQUVDLEtBQUssRUFBRSx1QkFBdUI7RUFBRUMsUUFBUSxFQUFFLFNB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