@projectcor/maia-components 2.11.26 → 2.11.27-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,10 +4,12 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
  import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
7
+ import { Alert } from '@projectcor/icons/lib/components/Alert';
7
8
  import { CheckCircle } from '@projectcor/icons/lib/components/CheckCircle';
8
9
  import { CrossCircle } from '@projectcor/icons/lib/components/CrossCircle';
10
+ import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
9
11
  import { useTranslation } from 'react-i18next';
10
- import { SCApprovalBox, SCABHeader, SCABTitle, SCABDescription, SCABActionsList, SCABActionItem, SCABActionName, SCABButtonsContainer, SCABButton, SCABStatusBadge } from './ApprovalBox.styles';
12
+ import { SCApprovalBox, SCABHeader, SCABTitle, SCABDescription, SCABActionsList, SCABActionItem, SCABActionName, SCABButtonsContainer, SCABButton, SCABStatusBadge, SCABStatusWarningIcon } from './ApprovalBox.styles';
11
13
  import { SECTIONS } from '../../../constants/config';
12
14
  import { useGlobalContext } from '../../../context/global-context';
13
15
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
@@ -27,6 +29,27 @@ function getActionLabel(t, toolName, displayName) {
27
29
  if (displayName !== null && displayName !== void 0 && displayName.trim()) return displayName;
28
30
  return formatToolNameFallback(normalizedToolName);
29
31
  }
32
+ function getDeliverableMode(toolArgs) {
33
+ if (!toolArgs || Array.isArray(toolArgs)) return '';
34
+ return String(toolArgs.deliverableType || toolArgs.deliverable_type || '').toLowerCase();
35
+ }
36
+ function getSpecialActionCopy(t, action) {
37
+ var normalizedToolName = normalizeHitlToolName(action.tool_name);
38
+ var deliverableMode = getDeliverableMode(action.tool_args);
39
+ if (normalizedToolName === 'create_rework') {
40
+ return {
41
+ title: t('approvalBox.special.createRework.title'),
42
+ description: t('approvalBox.special.createRework.description')
43
+ };
44
+ }
45
+ if (normalizedToolName === 'update_deliverable' && ['children', 'checkbox'].includes(deliverableMode)) {
46
+ return {
47
+ title: t('approvalBox.special.updateDeliverableChildren.title'),
48
+ description: t('approvalBox.special.updateDeliverableChildren.description')
49
+ };
50
+ }
51
+ return {};
52
+ }
30
53
  function buildHitlAnalyticsPayload(agentTypeForEvent, actions) {
31
54
  return {
32
55
  agent_type: agentTypeForEvent,
@@ -45,7 +68,10 @@ export var ApprovalBox = function ApprovalBox(_ref) {
45
68
  isProjectDeleted = _ref$isProjectDeleted === void 0 ? false : _ref$isProjectDeleted,
46
69
  _ref$isExpanded = _ref.isExpanded,
47
70
  isExpanded = _ref$isExpanded === void 0 ? false : _ref$isExpanded,
48
- hitlInstanceId = _ref.hitlInstanceId;
71
+ hitlInstanceId = _ref.hitlInstanceId,
72
+ warningMessage = _ref.warningMessage,
73
+ _ref$manualApprovalDe = _ref.manualApprovalDetected,
74
+ manualApprovalDetected = _ref$manualApprovalDe === void 0 ? false : _ref$manualApprovalDe;
49
75
  var _useTranslation = useTranslation([SECTIONS.chatAI]),
50
76
  t = _useTranslation.t;
51
77
  var _useState = useState(status),
@@ -56,6 +82,8 @@ export var ApprovalBox = function ApprovalBox(_ref) {
56
82
  agent = _useGlobalContext.agent;
57
83
  var eventAmplitude = useEvent();
58
84
  var lastHitlImpressionKeyRef = useRef(null);
85
+ var userInitiatedHitlDecisionRef = useRef(false);
86
+ var autoResolutionTrackedKeyRef = useRef(null);
59
87
  var hitlBatchKey = useMemo(function () {
60
88
  return hitlInstanceId !== null && hitlInstanceId !== void 0 ? hitlInstanceId : actions.map(function (a) {
61
89
  return "".concat(a.thread_id, ":").concat(a.tool_call_id);
@@ -79,14 +107,36 @@ export var ApprovalBox = function ApprovalBox(_ref) {
79
107
  eventAmplitude(EVENTS.aiChatHitl, buildHitlAnalyticsPayload(hitlAnalyticsAgentType, actions));
80
108
  }, [eventAmplitude, hitlAnalyticsAgentType, hitlBatchKey, localStatus, actions.length]);
81
109
  var trackHitlDecision = useCallback(function (decision) {
110
+ var resolutionSource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'user';
82
111
  eventAmplitude(EVENTS.aiChatHitlOption, _objectSpread(_objectSpread({}, buildHitlAnalyticsPayload(hitlAnalyticsAgentType, actions)), {}, {
83
- decision: decision
112
+ decision: decision,
113
+ resolution_source: resolutionSource
84
114
  }));
85
115
  }, [actions, hitlAnalyticsAgentType, eventAmplitude]);
116
+ useEffect(function () {
117
+ userInitiatedHitlDecisionRef.current = false;
118
+ autoResolutionTrackedKeyRef.current = null;
119
+ }, [hitlBatchKey]);
120
+
121
+ /**
122
+ * Resolución sin clic (p. ej. backend ejecuta la herramienta sola): hubo impresión HITL
123
+ * para este lote y el padre pasó a approved/rejected sin que el usuario pulsara aprobar/denegar.
124
+ */
125
+ useEffect(function () {
126
+ if (status === 'pending' || !actions.length) return;
127
+ if (lastHitlImpressionKeyRef.current !== hitlBatchKey) return;
128
+ if (userInitiatedHitlDecisionRef.current) return;
129
+ if (autoResolutionTrackedKeyRef.current === hitlBatchKey) return;
130
+ autoResolutionTrackedKeyRef.current = hitlBatchKey;
131
+ var isAccept = status === 'approved';
132
+ if (isAccept && hitlBatchIncludesCreateAgent(actions)) return;
133
+ trackHitlDecision(isAccept ? 'accept' : 'deny', 'auto');
134
+ }, [actions, hitlBatchKey, status, trackHitlDecision]);
86
135
  var handleApprove = function handleApprove() {
87
136
  if (isLoading || localStatus !== 'pending') return;
137
+ userInitiatedHitlDecisionRef.current = true;
88
138
  if (!hitlBatchIncludesCreateAgent(actions)) {
89
- trackHitlDecision('accept');
139
+ trackHitlDecision('accept', 'user');
90
140
  }
91
141
  setLocalStatus('approved');
92
142
  onApprove(actions.map(function (a) {
@@ -95,7 +145,8 @@ export var ApprovalBox = function ApprovalBox(_ref) {
95
145
  };
96
146
  var handleReject = function handleReject() {
97
147
  if (isLoading || localStatus !== 'pending') return;
98
- trackHitlDecision('deny');
148
+ userInitiatedHitlDecisionRef.current = true;
149
+ trackHitlDecision('deny', 'user');
99
150
  setLocalStatus('rejected');
100
151
  onReject(actions.map(function (a) {
101
152
  return a.thread_id;
@@ -111,9 +162,11 @@ export var ApprovalBox = function ApprovalBox(_ref) {
111
162
  }), /*#__PURE__*/_jsx(SCABActionsList, {
112
163
  $expanded: isExpanded,
113
164
  children: actions.map(function (action) {
165
+ var specialCopy = getSpecialActionCopy(t, action);
166
+ var label = specialCopy.title || getActionLabel(t, action.tool_name, action.display_name);
114
167
  return /*#__PURE__*/_jsx(SCABActionItem, {
115
168
  children: /*#__PURE__*/_jsx(SCABActionName, {
116
- children: getActionLabel(t, action.tool_name, action.display_name)
169
+ children: label
117
170
  })
118
171
  }, action.thread_id);
119
172
  })
@@ -133,18 +186,28 @@ export var ApprovalBox = function ApprovalBox(_ref) {
133
186
  $status: localStatus,
134
187
  children: localStatus === 'approved' ? /*#__PURE__*/_jsxs(_Fragment, {
135
188
  children: [/*#__PURE__*/_jsx(CheckCircle, {
136
- width: 22,
137
- height: 22,
138
- color: "#008400"
139
- }), t('approvalBox.status.approved')]
189
+ width: 14,
190
+ height: 14,
191
+ color: "#5d5d5c"
192
+ }), t('approvalBox.status.approved'), manualApprovalDetected && /*#__PURE__*/_jsx(Tooltip, {
193
+ title: warningMessage || t('approvalBox.manualApprovalWarning'),
194
+ placement: "right",
195
+ children: /*#__PURE__*/_jsx(SCABStatusWarningIcon, {
196
+ children: /*#__PURE__*/_jsx(Alert, {
197
+ color: "#EAA11A",
198
+ width: "13px",
199
+ height: "13px"
200
+ })
201
+ })
202
+ })]
140
203
  }) : /*#__PURE__*/_jsxs(_Fragment, {
141
204
  children: [/*#__PURE__*/_jsx(CrossCircle, {
142
- width: 22,
143
- height: 22,
144
- color: "#C70505"
205
+ width: 14,
206
+ height: 14,
207
+ color: "#8a8a89"
145
208
  }), t('approvalBox.status.denied')]
146
209
  })
147
210
  })]
148
211
  });
149
212
  };
150
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkNoZWNrQ2lyY2xlIiwiQ3Jvc3NDaXJjbGUiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QiLCJnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwiaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCIsIm5vcm1hbGl6ZUhpdGxUb29sTmFtZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQiLCJhZ2VudFR5cGVGb3JFdmVudCIsImFjdGlvbnMiLCJhZ2VudF90eXBlIiwiYWN0aW9uX3R5cGUiLCJBcHByb3ZhbEJveCIsIl9yZWYiLCJvbkFwcHJvdmUiLCJvblJlamVjdCIsIl9yZWYkc3RhdHVzIiwic3RhdHVzIiwiX3JlZiRpc0xvYWRpbmciLCJpc0xvYWRpbmciLCJfcmVmJGlzUHJvamVjdERlbGV0ZWQiLCJpc1Byb2plY3REZWxldGVkIiwiX3JlZiRpc0V4cGFuZGVkIiwiaXNFeHBhbmRlZCIsImhpdGxJbnN0YW5jZUlkIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJldmVudEFtcGxpdHVkZSIsImxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiIsImhpdGxCYXRjaEtleSIsIm1hcCIsImEiLCJ0aHJlYWRfaWQiLCJ0b29sX2NhbGxfaWQiLCJzb3J0Iiwiam9pbiIsInByZXYiLCJoaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwibGVuZ3RoIiwiaW1wcmVzc2lvbktleSIsImN1cnJlbnQiLCJhaUNoYXRIaXRsIiwidHJhY2tIaXRsRGVjaXNpb24iLCJkZWNpc2lvbiIsImFpQ2hhdEhpdGxPcHRpb24iLCJfb2JqZWN0U3ByZWFkIiwiaGFuZGxlQXBwcm92ZSIsImhhbmRsZVJlamVjdCIsImNoaWxkcmVuIiwiJGV4cGFuZGVkIiwiYWN0aW9uIiwidG9vbF9uYW1lIiwiZGlzcGxheV9uYW1lIiwiJHZhcmlhbnQiLCJvbkNsaWNrIiwiJGRpc2FibGVkIiwiJHN0YXR1cyIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hlY2tDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IENyb3NzQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3NDaXJjbGUnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIFNDQXBwcm92YWxCb3gsXG4gIFNDQUJIZWFkZXIsXG4gIFNDQUJUaXRsZSxcbiAgU0NBQkRlc2NyaXB0aW9uLFxuICBTQ0FCQWN0aW9uc0xpc3QsXG4gIFNDQUJBY3Rpb25JdGVtLFxuICBTQ0FCQWN0aW9uTmFtZSxcbiAgU0NBQkJ1dHRvbnNDb250YWluZXIsXG4gIFNDQUJCdXR0b24sXG4gIFNDQUJTdGF0dXNCYWRnZSxcbn0gZnJvbSAnLi9BcHByb3ZhbEJveC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIGJ1aWxkSGl0bEFjdGlvblR5cGVMaXN0LFxuICBnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlLFxuICBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50LFxuICBub3JtYWxpemVIaXRsVG9vbE5hbWUsXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzL2hpdGxBbmFseXRpY3MnXG5cbmZ1bmN0aW9uIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sodG9vbE5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3Qgd2l0aFNwYWNlcyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXy9nLCAnICcpLnRyaW0oKVxuICBpZiAoIXdpdGhTcGFjZXMpIHJldHVybiAnVW5rbm93bidcbiAgcmV0dXJuIHdpdGhTcGFjZXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3aXRoU3BhY2VzLnNsaWNlKDEpXG59XG5cbmZ1bmN0aW9uIGdldEFjdGlvbkxhYmVsKHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLCB0b29sTmFtZT86IHN0cmluZywgZGlzcGxheU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBhcHByb3ZhbEJveC5hY3Rpb25zLiR7bm9ybWFsaXplZFRvb2xOYW1lfWBcbiAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdCh0cmFuc2xhdGlvbktleSlcblxuICBpZiAodHJhbnNsYXRlZExhYmVsICE9PSB0cmFuc2xhdGlvbktleSkgcmV0dXJuIHRyYW5zbGF0ZWRMYWJlbFxuICBpZiAoZGlzcGxheU5hbWU/LnRyaW0oKSkgcmV0dXJuIGRpc3BsYXlOYW1lXG4gIHJldHVybiBmb3JtYXRUb29sTmFtZUZhbGxiYWNrKG5vcm1hbGl6ZWRUb29sTmFtZSlcbn1cblxuZnVuY3Rpb24gYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChhZ2VudFR5cGVGb3JFdmVudDogc3RyaW5nLCBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW10pIHtcbiAgcmV0dXJuIHtcbiAgICBhZ2VudF90eXBlOiBhZ2VudFR5cGVGb3JFdmVudCxcbiAgICBhY3Rpb25fdHlwZTogYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QoYWN0aW9ucyksXG4gIH1cbn1cblxuaW50ZXJmYWNlIEFwcHJvdmFsQm94UHJvcHMge1xuICBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgb25BcHByb3ZlOiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBvblJlamVjdDogKHRocmVhZElkczogc3RyaW5nW10pID0+IHZvaWRcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCdcbiAgaXNMb2FkaW5nPzogYm9vbGVhblxuICAvKiogU2kgZWwgY2hhdC9wcm95ZWN0byBlc3TDoSBlbGltaW5hZG8sIHNlIG9jdWx0YW4gbG9zIGJvdG9uZXMgZGUgYXByb2Jhci9yZWNoYXphciAqL1xuICBpc1Byb2plY3REZWxldGVkPzogYm9vbGVhblxuICAvKiogU2kgZWwgY2hhdCBlc3TDoSBleHBhbmRpZG8gKHRydWUpIG8gY29sYXBzYWRvIChmYWxzZSkuIEFmZWN0YSBlbCBhbmNobyBkZWwgY29udGVuZWRvci4gKi9cbiAgaXNFeHBhbmRlZD86IGJvb2xlYW5cbiAgLyoqIElkIGVzdGFibGUgcG9yIGxvdGUgSElUTCAocC4gZWouIG9yaWdpbmFsX3RocmVhZF9pZCkgcGFyYSBlbCBldmVudG8gZGUgaW1wcmVzacOzbiAqL1xuICBoaXRsSW5zdGFuY2VJZD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgQXBwcm92YWxCb3ggPSAoe1xuICBhY3Rpb25zLFxuICBvbkFwcHJvdmUsXG4gIG9uUmVqZWN0LFxuICBzdGF0dXMgPSAncGVuZGluZycsXG4gIGlzTG9hZGluZyA9IGZhbHNlLFxuICBpc1Byb2plY3REZWxldGVkID0gZmFsc2UsXG4gIGlzRXhwYW5kZWQgPSBmYWxzZSxcbiAgaGl0bEluc3RhbmNlSWQsXG59OiBBcHByb3ZhbEJveFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmNoYXRBSV0pXG4gIGNvbnN0IFtsb2NhbFN0YXR1cywgc2V0TG9jYWxTdGF0dXNdID0gdXNlU3RhdGU8J3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCc+KHN0YXR1cylcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoaXRsQmF0Y2hLZXkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBoaXRsSW5zdGFuY2VJZCA/P1xuICAgICAgYWN0aW9uc1xuICAgICAgICAubWFwKGEgPT4gYCR7YS50aHJlYWRfaWR9OiR7YS50b29sX2NhbGxfaWR9YClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAuam9pbignfCcpLFxuICAgIFtoaXRsSW5zdGFuY2VJZCwgYWN0aW9uc11cbiAgKVxuXG4gIC8vIFNpbmNyb25pemFyIGxvY2FsU3RhdHVzIGNvbiBlbCBwcm9wIHN0YXR1cyBjdWFuZG8gY2FtYmlhIGRlc2RlIGVsIHBhZHJlIChzb2xvIHBvciB2YWx1ZSwgZXZpdGEgYnVjbGVzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsU3RhdHVzKHByZXYgPT4gKHByZXYgIT09IHN0YXR1cyA/IHN0YXR1cyA6IHByZXYpKVxuICB9LCBbc3RhdHVzXSlcblxuICBjb25zdCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZShhZ2VudClcblxuICAvLyBDQTE6IGNhcmQgZGUgY29uZmlybWFjacOzbiBISVRMIHZpc2libGUgKHNvbG8gcGVuZGllbnRlLCBubyBoaXN0w7NyaWNvIHlhIHJlc3VlbHRvKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnIHx8ICFhY3Rpb25zLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgaW1wcmVzc2lvbktleSA9IGhpdGxCYXRjaEtleVxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9PT0gaW1wcmVzc2lvbktleSkgcmV0dXJuXG4gICAgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPSBpbXByZXNzaW9uS2V5XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGwsIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucykpXG4gIH0sIFtldmVudEFtcGxpdHVkZSwgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgaGl0bEJhdGNoS2V5LCBsb2NhbFN0YXR1cywgYWN0aW9ucy5sZW5ndGhdKVxuXG4gIGNvbnN0IHRyYWNrSGl0bERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGRlY2lzaW9uOiAnYWNjZXB0JyB8ICdkZW55JykgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGxPcHRpb24sIHtcbiAgICAgICAgLi4uYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBhY3Rpb25zKSxcbiAgICAgICAgZGVjaXNpb24sXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2FjdGlvbnMsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQXBwcm92ZSA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIGlmICghaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudChhY3Rpb25zKSkge1xuICAgICAgdHJhY2tIaXRsRGVjaXNpb24oJ2FjY2VwdCcpXG4gICAgfVxuICAgIHNldExvY2FsU3RhdHVzKCdhcHByb3ZlZCcpXG4gICAgb25BcHByb3ZlKGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUmVqZWN0ID0gKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmcgfHwgbG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJykgcmV0dXJuXG4gICAgdHJhY2tIaXRsRGVjaXNpb24oJ2RlbnknKVxuICAgIHNldExvY2FsU3RhdHVzKCdyZWplY3RlZCcpXG4gICAgb25SZWplY3QoYWN0aW9ucy5tYXAoYSA9PiBhLnRocmVhZF9pZCkpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0FwcHJvdmFsQm94PlxuICAgICAgPFNDQUJIZWFkZXI+XG4gICAgICAgIDxTQ0FCVGl0bGU+e3QoJ2FwcHJvdmFsQm94LnRpdGxlJyl9PC9TQ0FCVGl0bGU+XG4gICAgICA8L1NDQUJIZWFkZXI+XG5cbiAgICAgIDxTQ0FCRGVzY3JpcHRpb24+e3QoJ2FwcHJvdmFsQm94LmRlc2NyaXB0aW9uJyl9PC9TQ0FCRGVzY3JpcHRpb24+XG5cbiAgICAgIDxTQ0FCQWN0aW9uc0xpc3QgJGV4cGFuZGVkPXtpc0V4cGFuZGVkfT5cbiAgICAgICAge2FjdGlvbnMubWFwKGFjdGlvbiA9PiAoXG4gICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICA8U0NBQkFjdGlvbk5hbWU+e2dldEFjdGlvbkxhYmVsKHQsIGFjdGlvbi50b29sX25hbWUsIChhY3Rpb24gYXMgYW55KS5kaXNwbGF5X25hbWUpfTwvU0NBQkFjdGlvbk5hbWU+XG4gICAgICAgICAgPC9TQ0FCQWN0aW9uSXRlbT5cbiAgICAgICAgKSl9XG4gICAgICA8L1NDQUJBY3Rpb25zTGlzdD5cblxuICAgICAge2xvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJyZWplY3RcIiBvbkNsaWNrPXtoYW5kbGVSZWplY3R9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5kZW55Jyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwiYXBwcm92ZVwiIG9uQ2xpY2s9e2hhbmRsZUFwcHJvdmV9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5hcHByb3ZlJyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICA8L1NDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHtsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnICYmIChcbiAgICAgICAgPFNDQUJTdGF0dXNCYWRnZSAkc3RhdHVzPXtsb2NhbFN0YXR1c30+XG4gICAgICAgICAge2xvY2FsU3RhdHVzID09PSAnYXBwcm92ZWQnID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlIHdpZHRoPXsyMn0gaGVpZ2h0PXsyMn0gY29sb3I9XCIjMDA4NDAwXCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5hcHByb3ZlZCcpfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDcm9zc0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiI0M3MDUwNVwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuZGVuaWVkJyl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQUJTdGF0dXNCYWRnZT5cbiAgICAgICl9XG4gICAgPC9TQ0FwcHJvdmFsQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLGNBQWMsUUFBUSxl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
213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QiLCJnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwiaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCIsIm5vcm1hbGl6ZUhpdGxUb29sTmFtZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImdldERlbGl2ZXJhYmxlTW9kZSIsInRvb2xBcmdzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiZGVsaXZlcmFibGVUeXBlIiwiZGVsaXZlcmFibGVfdHlwZSIsInRvTG93ZXJDYXNlIiwiZ2V0U3BlY2lhbEFjdGlvbkNvcHkiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJkZWxpdmVyYWJsZU1vZGUiLCJ0b29sX2FyZ3MiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiaW5jbHVkZXMiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiYWdlbnRUeXBlRm9yRXZlbnQiLCJhY3Rpb25zIiwiYWdlbnRfdHlwZSIsImFjdGlvbl90eXBlIiwiQXBwcm92YWxCb3giLCJfcmVmIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxvY2FsU3RhdHVzIiwic2V0TG9jYWxTdGF0dXMiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiZXZlbnRBbXBsaXR1ZGUiLCJsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYiLCJ1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmIiwiYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmIiwiaGl0bEJhdGNoS2V5IiwibWFwIiwiYSIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsInNvcnQiLCJqb2luIiwicHJldiIsImhpdGxBbmFseXRpY3NBZ2VudFR5cGUiLCJsZW5ndGgiLCJpbXByZXNzaW9uS2V5IiwiY3VycmVudCIsImFpQ2hhdEhpdGwiLCJ0cmFja0hpdGxEZWNpc2lvbiIsImRlY2lzaW9uIiwicmVzb2x1dGlvblNvdXJjZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImFpQ2hhdEhpdGxPcHRpb24iLCJfb2JqZWN0U3ByZWFkIiwicmVzb2x1dGlvbl9zb3VyY2UiLCJpc0FjY2VwdCIsImhhbmRsZUFwcHJvdmUiLCJoYW5kbGVSZWplY3QiLCJjaGlsZHJlbiIsIiRleHBhbmRlZCIsInNwZWNpYWxDb3B5IiwibGFiZWwiLCJkaXNwbGF5X25hbWUiLCIkdmFyaWFudCIsIm9uQ2xpY2siLCIkZGlzYWJsZWQiLCIkc3RhdHVzIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInBsYWNlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0FsZXJ0J1xuaW1wb3J0IHsgQ2hlY2tDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IENyb3NzQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3NDaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIFNDQXBwcm92YWxCb3gsXG4gIFNDQUJIZWFkZXIsXG4gIFNDQUJUaXRsZSxcbiAgU0NBQkRlc2NyaXB0aW9uLFxuICBTQ0FCQWN0aW9uc0xpc3QsXG4gIFNDQUJBY3Rpb25JdGVtLFxuICBTQ0FCQWN0aW9uTmFtZSxcbiAgU0NBQkJ1dHRvbnNDb250YWluZXIsXG4gIFNDQUJCdXR0b24sXG4gIFNDQUJTdGF0dXNCYWRnZSxcbiAgU0NBQlN0YXR1c1dhcm5pbmdJY29uLFxufSBmcm9tICcuL0FwcHJvdmFsQm94LnN0eWxlcydcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHtcbiAgYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QsXG4gIGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUsXG4gIGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQsXG4gIG5vcm1hbGl6ZUhpdGxUb29sTmFtZSxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcblxuZnVuY3Rpb24gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayh0b29sTmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB3aXRoU3BhY2VzID0gbm9ybWFsaXplZC5yZXBsYWNlKC9fL2csICcgJykudHJpbSgpXG4gIGlmICghd2l0aFNwYWNlcykgcmV0dXJuICdVbmtub3duJ1xuICByZXR1cm4gd2l0aFNwYWNlcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdpdGhTcGFjZXMuc2xpY2UoMSlcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwodDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsIHRvb2xOYW1lPzogc3RyaW5nLCBkaXNwbGF5TmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZSB8fCAndW5rbm93bicpXG4gIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gYGFwcHJvdmFsQm94LmFjdGlvbnMuJHtub3JtYWxpemVkVG9vbE5hbWV9YFxuICBjb25zdCB0cmFuc2xhdGVkTGFiZWwgPSB0KHRyYW5zbGF0aW9uS2V5KVxuXG4gIGlmICh0cmFuc2xhdGVkTGFiZWwgIT09IHRyYW5zbGF0aW9uS2V5KSByZXR1cm4gdHJhbnNsYXRlZExhYmVsXG4gIGlmIChkaXNwbGF5TmFtZT8udHJpbSgpKSByZXR1cm4gZGlzcGxheU5hbWVcbiAgcmV0dXJuIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sobm9ybWFsaXplZFRvb2xOYW1lKVxufVxuXG5mdW5jdGlvbiBnZXREZWxpdmVyYWJsZU1vZGUodG9vbEFyZ3M6IFBlbmRpbmdBY3Rpb25bJ3Rvb2xfYXJncyddKTogc3RyaW5nIHtcbiAgaWYgKCF0b29sQXJncyB8fCBBcnJheS5pc0FycmF5KHRvb2xBcmdzKSkgcmV0dXJuICcnXG4gIHJldHVybiBTdHJpbmcodG9vbEFyZ3MuZGVsaXZlcmFibGVUeXBlIHx8IHRvb2xBcmdzLmRlbGl2ZXJhYmxlX3R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKClcbn1cblxuZnVuY3Rpb24gZ2V0U3BlY2lhbEFjdGlvbkNvcHkoXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICBhY3Rpb246IFBlbmRpbmdBY3Rpb25cbik6IHsgdGl0bGU/OiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUoYWN0aW9uLnRvb2xfbmFtZSlcbiAgY29uc3QgZGVsaXZlcmFibGVNb2RlID0gZ2V0RGVsaXZlcmFibGVNb2RlKGFjdGlvbi50b29sX2FyZ3MpXG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ2NyZWF0ZV9yZXdvcmsnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwuY3JlYXRlUmV3b3JrLmRlc2NyaXB0aW9uJyksXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ3VwZGF0ZV9kZWxpdmVyYWJsZScgJiYgWydjaGlsZHJlbicsICdjaGVja2JveCddLmluY2x1ZGVzKGRlbGl2ZXJhYmxlTW9kZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7fVxufVxuXG5mdW5jdGlvbiBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGFnZW50VHlwZUZvckV2ZW50OiBzdHJpbmcsIGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXSkge1xuICByZXR1cm4ge1xuICAgIGFnZW50X3R5cGU6IGFnZW50VHlwZUZvckV2ZW50LFxuICAgIGFjdGlvbl90eXBlOiBidWlsZEhpdGxBY3Rpb25UeXBlTGlzdChhY3Rpb25zKSxcbiAgfVxufVxuXG5pbnRlcmZhY2UgQXBwcm92YWxCb3hQcm9wcyB7XG4gIGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXVxuICBvbkFwcHJvdmU6ICh0aHJlYWRJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgW2xvY2FsU3RhdHVzLCBzZXRMb2NhbFN0YXR1c10gPSB1c2VTdGF0ZTwncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJz4oc3RhdHVzKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoaXRsQmF0Y2hLZXkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBoaXRsSW5zdGFuY2VJZCA/P1xuICAgICAgYWN0aW9uc1xuICAgICAgICAubWFwKGEgPT4gYCR7YS50aHJlYWRfaWR9OiR7YS50b29sX2NhbGxfaWR9YClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAuam9pbignfCcpLFxuICAgIFtoaXRsSW5zdGFuY2VJZCwgYWN0aW9uc11cbiAgKVxuXG4gIC8vIFNpbmNyb25pemFyIGxvY2FsU3RhdHVzIGNvbiBlbCBwcm9wIHN0YXR1cyBjdWFuZG8gY2FtYmlhIGRlc2RlIGVsIHBhZHJlIChzb2xvIHBvciB2YWx1ZSwgZXZpdGEgYnVjbGVzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsU3RhdHVzKHByZXYgPT4gKHByZXYgIT09IHN0YXR1cyA/IHN0YXR1cyA6IHByZXYpKVxuICB9LCBbc3RhdHVzXSlcblxuICBjb25zdCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZShhZ2VudClcblxuICAvLyBDQTE6IGNhcmQgZGUgY29uZmlybWFjacOzbiBISVRMIHZpc2libGUgKHNvbG8gcGVuZGllbnRlLCBubyBoaXN0w7NyaWNvIHlhIHJlc3VlbHRvKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnIHx8ICFhY3Rpb25zLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgaW1wcmVzc2lvbktleSA9IGhpdGxCYXRjaEtleVxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9PT0gaW1wcmVzc2lvbktleSkgcmV0dXJuXG4gICAgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPSBpbXByZXNzaW9uS2V5XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGwsIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucykpXG4gIH0sIFtldmVudEFtcGxpdHVkZSwgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgaGl0bEJhdGNoS2V5LCBsb2NhbFN0YXR1cywgYWN0aW9ucy5sZW5ndGhdKVxuXG4gIGNvbnN0IHRyYWNrSGl0bERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGRlY2lzaW9uOiAnYWNjZXB0JyB8ICdkZW55JywgcmVzb2x1dGlvblNvdXJjZTogJ3VzZXInIHwgJ2F1dG8nID0gJ3VzZXInKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bE9wdGlvbiwge1xuICAgICAgICAuLi5idWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpLFxuICAgICAgICBkZWNpc2lvbixcbiAgICAgICAgcmVzb2x1dGlvbl9zb3VyY2U6IHJlc29sdXRpb25Tb3VyY2UsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2FjdGlvbnMsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIG9uQXBwcm92ZShhY3Rpb25zLm1hcChhID0+IGEudGhyZWFkX2lkKSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7bG9jYWxTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiAhaXNQcm9qZWN0RGVsZXRlZCAmJiAoXG4gICAgICAgIDxTQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cInJlamVjdFwiIG9uQ2xpY2s9e2hhbmRsZVJlamVjdH0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmRlbnknKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJhcHByb3ZlXCIgb25DbGljaz17aGFuZGxlQXBwcm92ZX0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmFwcHJvdmUnKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgIDwvU0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICApfVxuICAgICAge2xvY2FsU3RhdHVzICE9PSAncGVuZGluZycgJiYgKFxuICAgICAgICA8U0NBQlN0YXR1c0JhZGdlICRzdGF0dXM9e2xvY2FsU3RhdHVzfT5cbiAgICAgICAgICB7bG9jYWxTdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUgd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiM1ZDVkNWNcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmFwcHJvdmVkJyl9XG4gICAgICAgICAgICAgIHttYW51YWxBcHByb3ZhbERldGVjdGVkICYmIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17d2FybmluZ01lc3NhZ2UgfHwgdCgnYXBwcm92YWxCb3gubWFudWFsQXBwcm92YWxXYXJuaW5nJyl9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8U0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgICAgICA8QWxlcnQgY29sb3I9XCIjRUFBMTFBXCIgd2lkdGg9XCIxM3B4XCIgaGVpZ2h0PVwiMTNweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENyb3NzQ2lyY2xlIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjOGE4YTg5XCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5kZW5pZWQnKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NBQlN0YXR1c0JhZGdlPlxuICAgICAgKX1cbiAgICA8L1NDQXBwcm92YWxCb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBRTlDLFNBQ0VD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
@@ -1,81 +1,80 @@
1
- import styled from 'styled-components';
2
- import { BLUE_IA_COLORS } from '../../../styles/config';
1
+ import styled, { keyframes } from 'styled-components';
2
+ var fadeIn = keyframes(["from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}"]);
3
3
  export var SCApprovalBox = styled.div.withConfig({
4
4
  displayName: "ApprovalBoxstyles__SCApprovalBox",
5
5
  componentId: "sc-1vnmjr4-0"
6
- })(["padding:0px;max-width:100%;min-width:0;"]);
6
+ })(["display:inline-flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:12px;background:#f7f7f6;min-width:0;max-width:340px;animation:", " 200ms ease;"], fadeIn);
7
7
  export var SCABHeader = styled.div.withConfig({
8
8
  displayName: "ApprovalBoxstyles__SCABHeader",
9
9
  componentId: "sc-1vnmjr4-1"
10
- })(["display:flex;align-items:center;gap:8px;"]);
11
- export var SCABTitle = styled.h4.withConfig({
10
+ })(["display:none;"]);
11
+ export var SCABTitle = styled.span.withConfig({
12
12
  displayName: "ApprovalBoxstyles__SCABTitle",
13
13
  componentId: "sc-1vnmjr4-2"
14
- })(["margin:0;color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:700;line-height:1.6;letter-spacing:0px;"]);
15
- export var SCABDescription = styled.p.withConfig({
14
+ })(["display:none;"]);
15
+ export var SCABDescription = styled.span.withConfig({
16
16
  displayName: "ApprovalBoxstyles__SCABDescription",
17
17
  componentId: "sc-1vnmjr4-3"
18
- })(["margin:0 0 12px 0;color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:1.6;letter-spacing:0px;"]);
18
+ })(["display:none;"]);
19
+ export var SCABStatusWarningIcon = styled.span.withConfig({
20
+ displayName: "ApprovalBoxstyles__SCABStatusWarningIcon",
21
+ componentId: "sc-1vnmjr4-4"
22
+ })(["display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:2px;cursor:help;flex-shrink:0;"]);
19
23
  export var SCABActionsList = styled.div.withConfig({
20
24
  displayName: "ApprovalBoxstyles__SCABActionsList",
21
- componentId: "sc-1vnmjr4-4"
22
- })(["background:white;border-radius:8px;padding:12px;margin-bottom:16px;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid #d5d5d5;background:#fff;max-width:100%;overflow:hidden;", ""], function (_ref) {
23
- var $expanded = _ref.$expanded;
24
- return $expanded ? "\n min-width: 480px;\n width: fit-content;\n " : "\n width: 100%;\n ";
25
- });
25
+ componentId: "sc-1vnmjr4-5"
26
+ })(["display:flex;flex-direction:column;gap:2px;"]);
26
27
  export var SCABActionItem = styled.div.withConfig({
27
28
  displayName: "ApprovalBoxstyles__SCABActionItem",
28
- componentId: "sc-1vnmjr4-5"
29
- })(["display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid #eee;min-width:0;&:last-child{border-bottom:none;padding-bottom:0;}&:first-child{padding-top:0;}"]);
29
+ componentId: "sc-1vnmjr4-6"
30
+ })(["display:flex;align-items:center;min-width:0;"]);
30
31
  export var SCABActionName = styled.span.withConfig({
31
32
  displayName: "ApprovalBoxstyles__SCABActionName",
32
- componentId: "sc-1vnmjr4-6"
33
- })(["color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:500;font-style:normal;line-height:140%;letter-spacing:-0.21px;overflow-wrap:break-word;word-break:break-word;min-width:0;"]);
33
+ componentId: "sc-1vnmjr4-7"
34
+ })(["color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:1.4;letter-spacing:-0.1px;min-width:0;overflow-wrap:break-word;word-break:break-word;"]);
35
+ export var SCABActionDescription = styled.p.withConfig({
36
+ displayName: "ApprovalBoxstyles__SCABActionDescription",
37
+ componentId: "sc-1vnmjr4-8"
38
+ })(["display:none;"]);
34
39
  export var SCABActionArgs = styled.ul.withConfig({
35
40
  displayName: "ApprovalBoxstyles__SCABActionArgs",
36
- componentId: "sc-1vnmjr4-7"
37
- })(["font-size:16px;color:#666;list-style-type:disc;list-style-position:outside;padding-left:20px;margin:0;min-width:0;"]);
41
+ componentId: "sc-1vnmjr4-9"
42
+ })(["display:none;"]);
38
43
  export var SCABArgItem = styled.li.withConfig({
39
44
  displayName: "ApprovalBoxstyles__SCABArgItem",
40
- componentId: "sc-1vnmjr4-8"
41
- })(["display:list-item;margin:0;padding-left:4px;min-width:0;overflow-wrap:break-word;word-break:break-word;"]);
45
+ componentId: "sc-1vnmjr4-10"
46
+ })(["display:none;"]);
42
47
  export var SCABArgKey = styled.span.withConfig({
43
48
  displayName: "ApprovalBoxstyles__SCABArgKey",
44
- componentId: "sc-1vnmjr4-9"
45
- })(["color:#999;"]);
49
+ componentId: "sc-1vnmjr4-11"
50
+ })(["display:none;"]);
46
51
  export var SCABArgValue = styled.span.withConfig({
47
52
  displayName: "ApprovalBoxstyles__SCABArgValue",
48
- componentId: "sc-1vnmjr4-10"
49
- })(["color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:140%;letter-spacing:-0.21px;overflow-wrap:break-word;word-break:break-word;min-width:0;"]);
53
+ componentId: "sc-1vnmjr4-12"
54
+ })(["display:none;"]);
50
55
  export var SCABButtonsContainer = styled.div.withConfig({
51
56
  displayName: "ApprovalBoxstyles__SCABButtonsContainer",
52
- componentId: "sc-1vnmjr4-11"
53
- })(["display:flex;align-items:flex-start;gap:18px;align-self:stretch;max-width:480px;width:100%;"]);
57
+ componentId: "sc-1vnmjr4-13"
58
+ })(["display:flex;align-items:center;gap:8px;"]);
54
59
  export var SCABButton = styled.button.withConfig({
55
60
  displayName: "ApprovalBoxstyles__SCABButton",
56
- componentId: "sc-1vnmjr4-12"
57
- })(["display:flex;padding:10px 12px;height:36px;justify-content:center;align-items:center;flex:1 0 0;border-radius:4px;font-family:'Work Sans',sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:14px;text-align:center;cursor:", ";transition:all 0.2s ease;opacity:", ";", ""], function (_ref2) {
58
- var $disabled = _ref2.$disabled;
61
+ componentId: "sc-1vnmjr4-14"
62
+ })(["display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:18px;border:1px solid var(--Gray-100,#d9d9d9);font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:140%;letter-spacing:-0.21px;white-space:nowrap;cursor:", ";opacity:", ";transition:background 160ms ease;", ""], function (_ref) {
63
+ var $disabled = _ref.$disabled;
59
64
  return $disabled ? 'not-allowed' : 'pointer';
65
+ }, function (_ref2) {
66
+ var $disabled = _ref2.$disabled;
67
+ return $disabled ? 0.5 : 1;
60
68
  }, function (_ref3) {
61
- var $disabled = _ref3.$disabled;
62
- return $disabled ? 0.6 : 1;
63
- }, function (_ref4) {
64
- var $variant = _ref4.$variant;
65
- return $variant === 'approve' ? "\n background: ".concat(BLUE_IA_COLORS[500], ";\n color: #FFF;\n border: none;\n\n &:hover:not(:disabled) {\n background: ").concat(BLUE_IA_COLORS[700], ";\n }\n ") : "\n background: transparent;\n color: ".concat(BLUE_IA_COLORS[500], ";\n border: 1px solid ").concat(BLUE_IA_COLORS[500], ";\n\n &:hover:not(:disabled) {\n background: ").concat(BLUE_IA_COLORS[50], ";\n }\n ");
69
+ var $variant = _ref3.$variant;
70
+ return $variant === 'approve' ? "\n background: #d4d4d3;\n color: #20201f;\n\n &:hover:not(:disabled) {\n background: #c4c4c3;\n }\n " : "\n background: transparent;\n color: #5d5d5c;\n\n &:hover:not(:disabled) {\n background: #f2f2f2;\n }\n ";
66
71
  });
67
72
  export var SCABStatusBadge = styled.div.withConfig({
68
73
  displayName: "ApprovalBoxstyles__SCABStatusBadge",
69
- componentId: "sc-1vnmjr4-13"
70
- })(["display:inline-flex;align-items:center;gap:4px;color:#343433;font-family:'Work Sans',sans-serif;font-size:16px;font-style:normal;font-weight:600;line-height:140%;letter-spacing:-0.21px;", ""], function (_ref5) {
71
- var $status = _ref5.$status;
72
- switch ($status) {
73
- case 'approved':
74
- return "";
75
- case 'rejected':
76
- return "";
77
- default:
78
- return "\n background: ".concat(BLUE_IA_COLORS[50], ";\n color: ").concat(BLUE_IA_COLORS[500], ";\n ");
79
- }
74
+ componentId: "sc-1vnmjr4-15"
75
+ })(["display:inline-flex;align-items:center;gap:5px;padding:6px 0;border:none;font-family:'Work Sans',sans-serif;font-size:13px;font-weight:400;line-height:1.4;letter-spacing:-0.1px;", ""], function (_ref4) {
76
+ var $status = _ref4.$status;
77
+ if ($status === 'rejected') return "color: #8a8a89;";
78
+ return "color: #5d5d5c;";
80
79
  });
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJCTFVFX0lBX0NPTE9SUyIsIlNDQXBwcm92YWxCb3giLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDQUJIZWFkZXIiLCJTQ0FCVGl0bGUiLCJoNCIsIlNDQUJEZXNjcmlwdGlvbiIsInAiLCJTQ0FCQWN0aW9uc0xpc3QiLCJfcmVmIiwiJGV4cGFuZGVkIiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsInNwYW4iLCJTQ0FCQWN0aW9uQXJncyIsInVsIiwiU0NBQkFyZ0l0ZW0iLCJsaSIsIlNDQUJBcmdLZXkiLCJTQ0FCQXJnVmFsdWUiLCJTQ0FCQnV0dG9uc0NvbnRhaW5lciIsIlNDQUJCdXR0b24iLCJidXR0b24iLCJfcmVmMiIsIiRkaXNhYmxlZCIsIl9yZWYzIiwiX3JlZjQiLCIkdmFyaWFudCIsImNvbmNhdCIsIlNDQUJTdGF0dXNCYWRnZSIsIl9yZWY1IiwiJHN0YXR1cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuXG5leHBvcnQgY29uc3QgU0NBcHByb3ZhbEJveCA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCVGl0bGUgPSBzdHlsZWQuaDRgXG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkRlc2NyaXB0aW9uID0gc3R5bGVkLnBgXG4gIG1hcmdpbjogMCAwIDEycHggMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQWN0aW9uc0xpc3QgPSBzdHlsZWQuZGl2PHsgJGV4cGFuZGVkPzogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gICR7KHsgJGV4cGFuZGVkIH0pID0+XG4gICAgJGV4cGFuZGVkXG4gICAgICA/IGBcbiAgICBtaW4td2lkdGg6IDQ4MHB4O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYFxuICAgICAgOiBgXG4gICAgd2lkdGg6IDEwMCU7XG4gIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQWN0aW9uSXRlbSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA4cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gIG1pbi13aWR0aDogMDtcblxuICAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbk5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkFyZ3MgPSBzdHlsZWQudWxgXG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM2NjY7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdJdGVtID0gc3R5bGVkLmxpYFxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdLZXkgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICM5OTk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQXJnVmFsdWUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkJ1dHRvbnNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJHZhcmlhbnQ6ICdhcHByb3ZlJyB8ICdyZWplY3QnOyAkZGlzYWJsZWQ/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGhlaWdodDogMzZweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDEgMCAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicpfTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgb3BhY2l0eTogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/IDAuNiA6IDEpfTtcblxuICAkeyh7ICR2YXJpYW50IH0pID0+XG4gICAgJHZhcmlhbnQgPT09ICdhcHByb3ZlJ1xuICAgICAgPyBgXG4gICAgYmFja2dyb3VuZDogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX07XG4gICAgfVxuICBgXG4gICAgICA6IGBcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke0JMVUVfSUFfQ09MT1JTWzUwXX07XG4gICAgfVxuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBQlN0YXR1c0JhZGdlID0gc3R5bGVkLmRpdjx7ICRzdGF0dXM6ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnIHwgJ3BlbmRpbmcnIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG5cbiAgY29sb3I6ICMzNDM0MzM7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcblxuICAkeyh7ICRzdGF0dXMgfSkgPT4ge1xuICAgIHN3aXRjaCAoJHN0YXR1cykge1xuICAgICAgY2FzZSAnYXBwcm92ZWQnOlxuICAgICAgICByZXR1cm4gYGBcbiAgICAgIGNhc2UgJ3JlamVjdGVkJzpcbiAgICAgICAgcmV0dXJuIGBgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYFxuICAgICAgICAgIGJhY2tncm91bmQ6ICR7QkxVRV9JQV9DT0xPUlNbNTBdfTtcbiAgICAgICAgICBjb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICAgICAgYFxuICAgIH1cbiAgfX1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFTQyxjQUFjLFFBQVEsd0JBQXdCO0FBRXZELE9BQU8sSUFBTUMsYUFBYSxHQUFHRixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrQ0FJdEM7QUFFRCxPQUFPLElBQU1DLFVBQVUsR0FBR1AsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0RBSW5DO0FBRUQsT0FBTyxJQUFNRSxTQUFTLEdBQUdSLE1BQU0sQ0FBQ1MsRUFBRSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9JQVFqQztBQUVELE9BQU8sSUFBTUksZUFBZSxHQUFHVixNQUFNLENBQUNXLENBQUMsQ0FBQVAsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrSkFTdEM7QUFFRCxPQUFPLElBQU1NLGVBQWUsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNk1BWXJDLFVBQUFPLElBQUE7RUFBQSxJQUFH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
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJrZXlmcmFtZXMiLCJmYWRlSW4iLCJTQ0FwcHJvdmFsQm94IiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwic3BhbiIsIlNDQUJEZXNjcmlwdGlvbiIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNDQUJBY3Rpb25zTGlzdCIsIlNDQUJBY3Rpb25JdGVtIiwiU0NBQkFjdGlvbk5hbWUiLCJTQ0FCQWN0aW9uRGVzY3JpcHRpb24iLCJwIiwiU0NBQkFjdGlvbkFyZ3MiLCJ1bCIsIlNDQUJBcmdJdGVtIiwibGkiLCJTQ0FCQXJnS2V5IiwiU0NBQkFyZ1ZhbHVlIiwiU0NBQkJ1dHRvbnNDb250YWluZXIiLCJTQ0FCQnV0dG9uIiwiYnV0dG9uIiwiX3JlZiIsIiRkaXNhYmxlZCIsIl9yZWYyIiwiX3JlZjMiLCIkdmFyaWFudCIsIlNDQUJTdGF0dXNCYWRnZSIsIl9yZWY0IiwiJHN0YXR1cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FwcHJvdmFsQm94ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y2O1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMzQwcHg7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDIwMG1zIGVhc2U7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBub25lO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkRlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IG5vbmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCU3RhdHVzV2FybmluZ0ljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICBjdXJzb3I6IGhlbHA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbnNMaXN0ID0gc3R5bGVkLmRpdjx7ICRleHBhbmRlZD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQWN0aW9uTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4xcHg7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBY3Rpb25EZXNjcmlwdGlvbiA9IHN0eWxlZC5wYFxuICBkaXNwbGF5OiBub25lO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkFyZ3MgPSBzdHlsZWQudWxgXG4gIGRpc3BsYXk6IG5vbmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQXJnSXRlbSA9IHN0eWxlZC5saWBcbiAgZGlzcGxheTogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdLZXkgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdWYWx1ZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBub25lO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkJ1dHRvbnNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJHZhcmlhbnQ6ICdhcHByb3ZlJyB8ICdyZWplY3QnOyAkZGlzYWJsZWQ/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1HcmF5LTEwMCwgI2Q5ZDlkOSk7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicpfTtcbiAgb3BhY2l0eTogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/IDAuNSA6IDEpfTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xuXG4gICR7KHsgJHZhcmlhbnQgfSkgPT5cbiAgICAkdmFyaWFudCA9PT0gJ2FwcHJvdmUnXG4gICAgICA/IGBcbiAgICBiYWNrZ3JvdW5kOiAjZDRkNGQzO1xuICAgIGNvbG9yOiAjMjAyMDFmO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjYzRjNGMzO1xuICAgIH1cbiAgYFxuICAgICAgOiBgXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM1ZDVkNWM7XG5cbiAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgfVxuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBQlN0YXR1c0JhZGdlID0gc3R5bGVkLmRpdjx7ICRzdGF0dXM6ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnIHwgJ3BlbmRpbmcnIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDZweCAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMXB4O1xuXG4gICR7KHsgJHN0YXR1cyB9KSA9PiB7XG4gICAgaWYgKCRzdGF0dXMgPT09ICdyZWplY3RlZCcpIHJldHVybiBgY29sb3I6ICM4YThhODk7YFxuICAgIHJldHVybiBgY29sb3I6ICM1ZDVkNWM7YFxuICB9fVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLFNBQVMsUUFBUSxtQkFBbUI7QUFFckQsSUFBTUMsTUFBTSxHQUFHRCxTQUFTLHNGQUd2QjtBQUVELE9BQU8sSUFBTUUsYUFBYSxHQUFHSCxNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwS0FTeEJMLE1BQU0sQ0FDcEI7QUFFRCxPQUFPLElBQU1NLFVBQVUsR0FBR1IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEscUJBRW5DO0FBRUQsT0FBTyxJQUFNRSxTQUFTLEdBQUdULE1BQU0sQ0FBQ1UsSUFBSSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUVuQztBQUVELE9BQU8sSUFBTUksZUFBZSxHQUFHWCxNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxQkFFekM7QUFFRCxPQUFPLElBQU1LLHFCQUFxQixHQUFHWixNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1SUFTL0M7QUFFRCxPQUFPLElBQU1NLGVBQWUsR0FBR2IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbURBSXhDO0FBRUQsT0FBTyxJQUFNTyxjQUFjLEdBQUdkLE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9EQUl2QztBQUVELE9BQU8sSUFBTVEsY0FBYyxHQUFHZixNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5TEFVeEM7QUFFRCxPQUFPLElBQU1TLHFCQUFxQixHQUFHaEIsTUFBTSxDQUFDaUIsQ0FBQyxDQUFBWixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUU1QztBQUVELE9BQU8sSUFBTVcsY0FBYyxHQUFHbEIsTUFBTSxDQUFDbUIsRUFBRSxDQUFBZCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUV0QztBQUVELE9BQU8sSUFBTWEsV0FBVyxHQUFHcEIsTUFBTSxDQUFDcUIsRUFBRSxDQUFBaEIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxQkFFbkM7QUFFRCxPQUFPLElBQU1lLFVBQVUsR0FBR3RCLE1BQU0sQ0FBQ1UsSUFBSSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUVwQztBQUVELE9BQU8sSUFBTWdCLFlBQVksR0FBR3ZCLE1BQU0sQ0FBQ1UsSUFBSSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUV0QztBQUVELE9BQU8sSUFBTWlCLG9CQUFvQixHQUFHeEIsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0RBSTdDO0FBRUQsT0FBTyxJQUFNa0IsVUFBVSxHQUFHekIsTUFBTSxDQUFDMEIsTUFBTSxDQUFBckIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrVUFhM0IsVUFBQW9CLElBQUE7RUFBQSxJQUFHQyxTQUFTLEdBQUFELElBQUEsQ0FBVEMsU0FBUztFQUFBLE9BQVFBLFNBQVMsR0FBRyxhQUFhLEdBQUcsU0FBUztBQUFBLENBQUMsRUFDekQsVUFBQUMsS0FBQTtFQUFBLElBQUdELFNBQVMsR0FBQUMsS0FBQSxDQUFURCxTQUFTO0VBQUEsT0FBUUEsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQUEsQ0FBQyxFQUdqRCxVQUFBRSxLQUFBO0VBQUEsSUFBR0MsUUFBUSxHQUFBRCxLQUFBLENBQVJDLFFBQVE7RUFBQSxPQUNYQSxRQUFRLEtBQUssU0FBUywwUEFnQnZCO0FBQUEsRUFDRjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHaEMsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOExBWXJDLFVBQUEwQixLQUFBLEVBQWlCO0VBQUEsSUFBZEMsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87RUFDVixJQUFJQSxPQUFPLEtBQUssVUFBVSxFQUFFO0VBQzVCO0FBQ0YsQ0FBQyxDQUNGIiwiaWdub3JlTGlzdCI6W119