@projectcor/maia-components 2.11.31-3 → 2.11.31-4

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,4 +1,4 @@
1
- import { memo } from 'react';
1
+ import { memo, useEffect, useRef } from 'react';
2
2
  import { SpinnerLottie } from '@projectcor/cor-commons/lib/components/spinner-lottie';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { ChipStatus } from '../../atoms/ChipStatus';
@@ -42,11 +42,39 @@ var ContentTable = /*#__PURE__*/memo(function (_ref) {
42
42
  return file.status === nextProps.files[index].status;
43
43
  });
44
44
  });
45
+
46
+ // Timeout de seguridad para evitar que el modal quede colgado si el WebSocket
47
+ // no responde. Se reinicia ante cada cambio de estado de los archivos.
48
+ var PROCESSING_TIMEOUT_MS = 10000;
45
49
  export var AbmLoaderFiles = function AbmLoaderFiles(_ref2) {
46
50
  var attachments = _ref2.attachments,
47
- label = _ref2.label;
51
+ label = _ref2.label,
52
+ onTimeout = _ref2.onTimeout,
53
+ _ref2$timeoutMs = _ref2.timeoutMs,
54
+ timeoutMs = _ref2$timeoutMs === void 0 ? PROCESSING_TIMEOUT_MS : _ref2$timeoutMs;
48
55
  var _useTranslation2 = useTranslation(['abm_agent_section']),
49
56
  t = _useTranslation2.t;
57
+ var attachmentsRef = useRef(attachments);
58
+ attachmentsRef.current = attachments;
59
+ var pendingStatuses = attachments.filter(function (file) {
60
+ return file.status === 'pending' || file.status === 'processing' || file.status === 'started';
61
+ }).map(function (file) {
62
+ return "".concat(file.name, ":").concat(file.status);
63
+ }).join('|');
64
+ useEffect(function () {
65
+ if (!onTimeout || !pendingStatuses) return undefined;
66
+ var timeoutId = setTimeout(function () {
67
+ var stillPending = attachmentsRef.current.some(function (file) {
68
+ return file.status === 'pending' || file.status === 'processing' || file.status === 'started';
69
+ });
70
+ if (stillPending) {
71
+ onTimeout();
72
+ }
73
+ }, timeoutMs);
74
+ return function () {
75
+ return clearTimeout(timeoutId);
76
+ };
77
+ }, [pendingStatuses, onTimeout, timeoutMs]);
50
78
  return /*#__PURE__*/_jsxs(SCALFWrapper, {
51
79
  children: [/*#__PURE__*/_jsxs(SCALFHeader, {
52
80
  children: [/*#__PURE__*/_jsx(SCALFLoadingText, {
@@ -61,4 +89,4 @@ export var AbmLoaderFiles = function AbmLoaderFiles(_ref2) {
61
89
  })]
62
90
  });
63
91
  };
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwiU3Bpbm5lckxvdHRpZSIsInVzZVRyYW5zbGF0aW9uIiwiQ2hpcFN0YXR1cyIsIlNDQUxGQ29udGVudCIsIlNDQUxGSGVhZGVyIiwiU0NBTEZUZXh0IiwiU0NBTEZXcmFwcGVyIiwiU0NBTEZXcmFwcGVyQ29udGVudFRhYmxlIiwiU0NBTEZXcmFwcGVySGVhZGVyVGFibGUiLCJTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGUiLCJTQ0FMRldyYXBwZXJSb3dUYWJsZSIsIlNDQUxGV3JhcHBlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZSIsIlNDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZMb2FkaW5nVGV4dCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJIZWFkZXJUYWJsZSIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJsYWJlbHMiLCJjaGlsZHJlbiIsIm1hcCIsImxhYmVsIiwiaW5kZXgiLCJ3aWR0aCIsIkNvbnRlbnRUYWJsZSIsIl9yZWYiLCJmaWxlcyIsImZpbGUiLCJuYW1lIiwic3RhdHVzIiwic2l6ZSIsImNvbG9yIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZXZlcnkiLCJBYm1Mb2FkZXJGaWxlcyIsIl9yZWYyIiwiYXR0YWNobWVudHMiLCJfdXNlVHJhbnNsYXRpb24yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtTG9hZGVyRmlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFNwaW5uZXJMb3R0aWUgfSBmcm9tICdAcHJvamVjdGNvci9jb3ItY29tbW9ucy9saWIvY29tcG9uZW50cy9zcGlubmVyLWxvdHRpZSdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IENoaXBTdGF0dXMgfSBmcm9tICcuLi8uLi9hdG9tcy9DaGlwU3RhdHVzJ1xuaW1wb3J0IHtcbiAgU0NBTEZDb250ZW50LFxuICBTQ0FMRkhlYWRlcixcbiAgU0NBTEZUZXh0LFxuICBTQ0FMRldyYXBwZXIsXG4gIFNDQUxGV3JhcHBlckNvbnRlbnRUYWJsZSxcbiAgU0NBTEZXcmFwcGVySGVhZGVyVGFibGUsXG4gIFNDQUxGV3JhcHBlclN0YXR1c0NlbGxUYWJsZSxcbiAgU0NBTEZXcmFwcGVyUm93VGFibGUsXG4gIFNDQUxGV3JhcHBlckxhYmVsQ2VsbFRhYmxlLFxuICBTQ0FMRldyYXBwZXJTcGlubmVyQ2VsbFRhYmxlLFxuICBTQ0FMRldyYXBwZXJIZWFkZXJMYWJlbENlbGxUYWJsZSxcbiAgU0NBTEZMb2FkaW5nVGV4dCxcbn0gZnJvbSAnLi9BYm1Mb2FkZXJGaWxlcy5zdHlsZXMnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IENoaXBTdGF0dXNQcm9wcyB9IGZyb20gJy4uLy4uL2F0b21zL0NoaXBTdGF0dXMvQ2hpcFN0YXR1cy5pbnRlcmZhY2UnXG5cbmNvbnN0IEhlYWRlclRhYmxlID0gbWVtbygoKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydhYm1fYWdlbnRfc2VjdGlvbiddKVxuICBjb25zdCBsYWJlbHMgPSBbdCgncHJvY2Vzc2luZ0tub3dsZWRnZS5maWxlUm93JyksIHQoJ3Byb2Nlc3NpbmdLbm93bGVkZ2Uuc3RhdHVzUm93JyldXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBTEZXcmFwcGVySGVhZGVyVGFibGU+XG4gICAgICB7bGFiZWxzLm1hcCgobGFiZWwsIGluZGV4KSA9PiAoXG4gICAgICAgIDxTQ0FMRldyYXBwZXJIZWFkZXJMYWJlbENlbGxUYWJsZSBrZXk9e2xhYmVsfSB3aWR0aD17aW5kZXggPT09IDAgPyAnYXV0bycgOiAnMTIwcHgnfT5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvU0NBTEZXcmFwcGVySGVhZGVyTGFiZWxDZWxsVGFibGU+XG4gICAgICApKX1cbiAgICA8L1NDQUxGV3JhcHBlckhlYWRlclRhYmxlPlxuICApXG59KVxuXG5jb25zdCBDb250ZW50VGFibGUgPSBtZW1vKFxuICAoeyBmaWxlcyB9OiB7IGZpbGVzOiBBdHRhY2htZW50RmlsZVtdIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQUxGV3JhcHBlckNvbnRlbnRUYWJsZT5cbiAgICAgICAge2ZpbGVzLm1hcChmaWxlID0+IChcbiAgICAgICAgICA8U0NBTEZXcmFwcGVyUm93VGFibGUga2V5PXtmaWxlLm5hbWV9PlxuICAgICAgICAgICAgPFNDQUxGV3JhcHBlckxhYmVsQ2VsbFRhYmxlPntmaWxlLm5hbWV9PC9TQ0FMRldyYXBwZXJMYWJlbENlbGxUYWJsZT5cbiAgICAgICAgICAgIDxTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGU+XG4gICAgICAgICAgICAgIDxTQ0FMRldyYXBwZXJTcGlubmVyQ2VsbFRhYmxlPlxuICAgICAgICAgICAgICAgIHsoZmlsZS5zdGF0dXMgPT09ICdwZW5kaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3Byb2Nlc3NpbmcnIHx8IGZpbGUuc3RhdHVzID09PSAnc3RhcnRlZCcpICYmIChcbiAgICAgICAgICAgICAgICAgIDxTcGlubmVyTG90dGllIHNpemU9XCIxOFwiIGNvbG9yPVwicHJpbWFyeVwiIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TQ0FMRldyYXBwZXJTcGlubmVyQ2VsbFRhYmxlPlxuICAgICAgICAgICAgICA8Q2hpcFN0YXR1cyBzdGF0dXM9e2ZpbGUuc3RhdHVzIGFzIENoaXBTdGF0dXNQcm9wc1snc3RhdHVzJ119IC8+XG4gICAgICAgICAgICA8L1NDQUxGV3JhcHBlclN0YXR1c0NlbGxUYWJsZT5cbiAgICAgICAgICA8L1NDQUxGV3JhcHBlclJvd1RhYmxlPlxuICAgICAgICApKX1cbiAgICAgIDwvU0NBTEZXcmFwcGVyQ29udGVudFRhYmxlPlxuICAgIClcbiAgfSxcbiAgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiB7XG4gICAgcmV0dXJuIHByZXZQcm9wcy5maWxlcy5ldmVyeSgoZmlsZSwgaW5kZXgpID0+IGZpbGUuc3RhdHVzID09PSBuZXh0UHJvcHMuZmlsZXNbaW5kZXhdLnN0YXR1cylcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgQWJtTG9hZGVyRmlsZXMgPSAoeyBhdHRhY2htZW50cywgbGFiZWwgfTogeyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydhYm1fYWdlbnRfc2VjdGlvbiddKVxuICByZXR1cm4gKFxuICAgIDxTQ0FMRldyYXBwZXI+XG4gICAgICA8U0NBTEZIZWFkZXI+XG4gICAgICAgIDxTQ0FMRkxvYWRpbmdUZXh0Pnt0KCdwcm9jZXNzaW5nS25vd2xlZGdlLmxvYWRpbmdGaWxlcycpfTwvU0NBTEZMb2FkaW5nVGV4dD5cbiAgICAgICAgPFNDQUxGVGV4dD57bGFiZWx9PC9TQ0FMRlRleHQ+XG4gICAgICA8L1NDQUxGSGVhZGVyPlxuICAgICAgPFNDQUxGQ29udGVudD5cbiAgICAgICAgPEhlYWRlclRhYmxlIC8+XG4gICAgICAgIDxDb250ZW50VGFibGUgZmlsZXM9e2F0dGFjaG1lbnRzfSAvPlxuICAgICAgPC9TQ0FMRkNvbnRlbnQ+XG4gICAgPC9TQ0FMRldyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsYUFBYSxRQUFRLHVEQUF1RDtBQUNyRixTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxVQUFVLFFBQVEsd0JBQXdCO0FBQ25ELFNBQ0VDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsd0JBQXdCLEVBQ3hCQyx1QkFBdUIsRUFD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
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiU3Bpbm5lckxvdHRpZSIsInVzZVRyYW5zbGF0aW9uIiwiQ2hpcFN0YXR1cyIsIlNDQUxGQ29udGVudCIsIlNDQUxGSGVhZGVyIiwiU0NBTEZUZXh0IiwiU0NBTEZXcmFwcGVyIiwiU0NBTEZXcmFwcGVyQ29udGVudFRhYmxlIiwiU0NBTEZXcmFwcGVySGVhZGVyVGFibGUiLCJTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGUiLCJTQ0FMRldyYXBwZXJSb3dUYWJsZSIsIlNDQUxGV3JhcHBlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZSIsIlNDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZMb2FkaW5nVGV4dCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJIZWFkZXJUYWJsZSIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJsYWJlbHMiLCJjaGlsZHJlbiIsIm1hcCIsImxhYmVsIiwiaW5kZXgiLCJ3aWR0aCIsIkNvbnRlbnRUYWJsZSIsIl9yZWYiLCJmaWxlcyIsImZpbGUiLCJuYW1lIiwic3RhdHVzIiwic2l6ZSIsImNvbG9yIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZXZlcnkiLCJQUk9DRVNTSU5HX1RJTUVPVVRfTVMiLCJBYm1Mb2FkZXJGaWxlcyIsIl9yZWYyIiwiYXR0YWNobWVudHMiLCJvblRpbWVvdXQiLCJfcmVmMiR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJfdXNlVHJhbnNsYXRpb24yIiwiYXR0YWNobWVudHNSZWYiLCJjdXJyZW50IiwicGVuZGluZ1N0YXR1c2VzIiwiZmlsdGVyIiwiY29uY2F0Iiwiam9pbiIsInVuZGVmaW5lZCIsInRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJzdGlsbFBlbmRpbmciLCJzb21lIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtTG9hZGVyRmlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBTcGlubmVyTG90dGllIH0gZnJvbSAnQHByb2plY3Rjb3IvY29yLWNvbW1vbnMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci1sb3R0aWUnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBDaGlwU3RhdHVzIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hpcFN0YXR1cydcbmltcG9ydCB7XG4gIFNDQUxGQ29udGVudCxcbiAgU0NBTEZIZWFkZXIsXG4gIFNDQUxGVGV4dCxcbiAgU0NBTEZXcmFwcGVyLFxuICBTQ0FMRldyYXBwZXJDb250ZW50VGFibGUsXG4gIFNDQUxGV3JhcHBlckhlYWRlclRhYmxlLFxuICBTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGUsXG4gIFNDQUxGV3JhcHBlclJvd1RhYmxlLFxuICBTQ0FMRldyYXBwZXJMYWJlbENlbGxUYWJsZSxcbiAgU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZSxcbiAgU0NBTEZXcmFwcGVySGVhZGVyTGFiZWxDZWxsVGFibGUsXG4gIFNDQUxGTG9hZGluZ1RleHQsXG59IGZyb20gJy4vQWJtTG9hZGVyRmlsZXMuc3R5bGVzJ1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGlwU3RhdHVzUHJvcHMgfSBmcm9tICcuLi8uLi9hdG9tcy9DaGlwU3RhdHVzL0NoaXBTdGF0dXMuaW50ZXJmYWNlJ1xuXG5jb25zdCBIZWFkZXJUYWJsZSA9IG1lbW8oKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnYWJtX2FnZW50X3NlY3Rpb24nXSlcbiAgY29uc3QgbGFiZWxzID0gW3QoJ3Byb2Nlc3NpbmdLbm93bGVkZ2UuZmlsZVJvdycpLCB0KCdwcm9jZXNzaW5nS25vd2xlZGdlLnN0YXR1c1JvdycpXVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUxGV3JhcHBlckhlYWRlclRhYmxlPlxuICAgICAge2xhYmVscy5tYXAoKGxhYmVsLCBpbmRleCkgPT4gKFxuICAgICAgICA8U0NBTEZXcmFwcGVySGVhZGVyTGFiZWxDZWxsVGFibGUga2V5PXtsYWJlbH0gd2lkdGg9e2luZGV4ID09PSAwID8gJ2F1dG8nIDogJzEyMHB4J30+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L1NDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlPlxuICAgICAgKSl9XG4gICAgPC9TQ0FMRldyYXBwZXJIZWFkZXJUYWJsZT5cbiAgKVxufSlcblxuY29uc3QgQ29udGVudFRhYmxlID0gbWVtbyhcbiAgKHsgZmlsZXMgfTogeyBmaWxlczogQXR0YWNobWVudEZpbGVbXSB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0FMRldyYXBwZXJDb250ZW50VGFibGU+XG4gICAgICAgIHtmaWxlcy5tYXAoZmlsZSA9PiAoXG4gICAgICAgICAgPFNDQUxGV3JhcHBlclJvd1RhYmxlIGtleT17ZmlsZS5uYW1lfT5cbiAgICAgICAgICAgIDxTQ0FMRldyYXBwZXJMYWJlbENlbGxUYWJsZT57ZmlsZS5uYW1lfTwvU0NBTEZXcmFwcGVyTGFiZWxDZWxsVGFibGU+XG4gICAgICAgICAgICA8U0NBTEZXcmFwcGVyU3RhdHVzQ2VsbFRhYmxlPlxuICAgICAgICAgICAgICA8U0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZT5cbiAgICAgICAgICAgICAgICB7KGZpbGUuc3RhdHVzID09PSAncGVuZGluZycgfHwgZmlsZS5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3N0YXJ0ZWQnKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3Bpbm5lckxvdHRpZSBzaXplPVwiMThcIiBjb2xvcj1cInByaW1hcnlcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZT5cbiAgICAgICAgICAgICAgPENoaXBTdGF0dXMgc3RhdHVzPXtmaWxlLnN0YXR1cyBhcyBDaGlwU3RhdHVzUHJvcHNbJ3N0YXR1cyddfSAvPlxuICAgICAgICAgICAgPC9TQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGU+XG4gICAgICAgICAgPC9TQ0FMRldyYXBwZXJSb3dUYWJsZT5cbiAgICAgICAgKSl9XG4gICAgICA8L1NDQUxGV3JhcHBlckNvbnRlbnRUYWJsZT5cbiAgICApXG4gIH0sXG4gIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIHJldHVybiBwcmV2UHJvcHMuZmlsZXMuZXZlcnkoKGZpbGUsIGluZGV4KSA9PiBmaWxlLnN0YXR1cyA9PT0gbmV4dFByb3BzLmZpbGVzW2luZGV4XS5zdGF0dXMpXG4gIH1cbilcblxuLy8gVGltZW91dCBkZSBzZWd1cmlkYWQgcGFyYSBldml0YXIgcXVlIGVsIG1vZGFsIHF1ZWRlIGNvbGdhZG8gc2kgZWwgV2ViU29ja2V0XG4vLyBubyByZXNwb25kZS4gU2UgcmVpbmljaWEgYW50ZSBjYWRhIGNhbWJpbyBkZSBlc3RhZG8gZGUgbG9zIGFyY2hpdm9zLlxuY29uc3QgUFJPQ0VTU0lOR19USU1FT1VUX01TID0gMTAwMDBcblxuZXhwb3J0IGNvbnN0IEFibUxvYWRlckZpbGVzID0gKHtcbiAgYXR0YWNobWVudHMsXG4gIGxhYmVsLFxuICBvblRpbWVvdXQsXG4gIHRpbWVvdXRNcyA9IFBST0NFU1NJTkdfVElNRU9VVF9NUyxcbn06IHtcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgbGFiZWw6IHN0cmluZ1xuICBvblRpbWVvdXQ/OiAoKSA9PiB2b2lkXG4gIHRpbWVvdXRNcz86IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnYWJtX2FnZW50X3NlY3Rpb24nXSlcbiAgY29uc3QgYXR0YWNobWVudHNSZWYgPSB1c2VSZWYoYXR0YWNobWVudHMpXG4gIGF0dGFjaG1lbnRzUmVmLmN1cnJlbnQgPSBhdHRhY2htZW50c1xuXG4gIGNvbnN0IHBlbmRpbmdTdGF0dXNlcyA9IGF0dGFjaG1lbnRzXG4gICAgLmZpbHRlcihmaWxlID0+IGZpbGUuc3RhdHVzID09PSAncGVuZGluZycgfHwgZmlsZS5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3N0YXJ0ZWQnKVxuICAgIC5tYXAoZmlsZSA9PiBgJHtmaWxlLm5hbWV9OiR7ZmlsZS5zdGF0dXN9YClcbiAgICAuam9pbignfCcpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9uVGltZW91dCB8fCAhcGVuZGluZ1N0YXR1c2VzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHN0aWxsUGVuZGluZyA9IGF0dGFjaG1lbnRzUmVmLmN1cnJlbnQuc29tZShcbiAgICAgICAgZmlsZSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnIHx8IGZpbGUuc3RhdHVzID09PSAncHJvY2Vzc2luZycgfHwgZmlsZS5zdGF0dXMgPT09ICdzdGFydGVkJ1xuICAgICAgKVxuICAgICAgaWYgKHN0aWxsUGVuZGluZykge1xuICAgICAgICBvblRpbWVvdXQoKVxuICAgICAgfVxuICAgIH0sIHRpbWVvdXRNcylcblxuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICB9LCBbcGVuZGluZ1N0YXR1c2VzLCBvblRpbWVvdXQsIHRpbWVvdXRNc10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBTEZXcmFwcGVyPlxuICAgICAgPFNDQUxGSGVhZGVyPlxuICAgICAgICA8U0NBTEZMb2FkaW5nVGV4dD57dCgncHJvY2Vzc2luZ0tub3dsZWRnZS5sb2FkaW5nRmlsZXMnKX08L1NDQUxGTG9hZGluZ1RleHQ+XG4gICAgICAgIDxTQ0FMRlRleHQ+e2xhYmVsfTwvU0NBTEZUZXh0PlxuICAgICAgPC9TQ0FMRkhlYWRlcj5cbiAgICAgIDxTQ0FMRkNvbnRlbnQ+XG4gICAgICAgIDxIZWFkZXJUYWJsZSAvPlxuICAgICAgICA8Q29udGVudFRhYmxlIGZpbGVzPXthdHRhY2htZW50c30gLz5cbiAgICAgIDwvU0NBTEZDb250ZW50PlxuICAgIDwvU0NBTEZXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLElBQUksRUFBRUMsU0FBUyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUMvQyxTQUFTQyxhQUFhLFFBQVEsdURBQXVEO0FBQ3JGLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FDRUMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyx3QkFBd0IsRUFDeEJDLHVCQUF1QixFQUN2QkMsMkJBQTJCLEVBQzNCQyxvQkFBb0IsRUFDcEJDLDBCQUEwQixFQUMxQkMsNEJBQTRCLEVBQzVCQyxnQ0FBZ0MsRUFDaENDLGdCQUFnQixRQUNYLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFJaEMsSUFBTUMsV0FBVyxnQkFBR3RCLElBQUksQ0FBQyxZQUFNO0VBQzdCLElBQUF1QixlQUFBLEdBQWNuQixjQUFjLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQTNDb0IsQ0FBQyxHQUFBRCxlQUFBLENBQURDLENBQUM7RUFDVCxJQUFNQyxNQUFNLEdBQUcsQ0FBQ0QsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEVBQUVBLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0VBRXJGLG9CQUNFTCxJQUFBLENBQUNSLHVCQUF1QjtJQUFBZSxRQUFBLEVBQ3JCRCxNQUFNLENBQUNFLEdBQUcsQ0FBQyxVQUFDQyxLQUFLLEVBQUVDLEtBQUs7TUFBQSxvQkFD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
@@ -644,20 +644,26 @@ export var ChatAIModal = function ChatAIModal(_ref) {
644
644
  }, [agent === null || agent === void 0 ? void 0 : agent.id, removeAgent, selectFirstAgent]);
645
645
  var hideFooterOnMaiakerMarketplaceHome = computedCurrentOption === options.home && isMaiakerAgentSelected;
646
646
  var modalPanel = /*#__PURE__*/_jsxs(_Fragment, {
647
- children: [validateAccessByFeature(section) && layoutMode !== 'floating' ? /*#__PURE__*/_jsx(Sidebar, {
648
- onGoToChat: goToChat,
649
- onError: function onError() {
650
- return setSidebarHasError(true);
647
+ children: [validateAccessByFeature(section) ? /*#__PURE__*/_jsx("div", {
648
+ style: {
649
+ display: isFloating ? 'none' : 'contents'
651
650
  },
652
- handleGoToHome: handleGoHome,
653
- handleOpenMarketplace: handleOpenMarketplace,
654
- showNewChat: showNewChat,
655
- refetchChats: refetchChats,
656
- handleSetRefetchChats: setRefetchChats,
657
- hasError: sidebarHasError,
658
- resetSelectedChatRef: resetSelectedChatRef,
659
- agentsNavActive: sidebarAgentsNavActive,
660
- onNewChat: handleNewChatAction
651
+ "aria-hidden": isFloating,
652
+ children: /*#__PURE__*/_jsx(Sidebar, {
653
+ onGoToChat: goToChat,
654
+ onError: function onError() {
655
+ return setSidebarHasError(true);
656
+ },
657
+ handleGoToHome: handleGoHome,
658
+ handleOpenMarketplace: handleOpenMarketplace,
659
+ showNewChat: showNewChat,
660
+ refetchChats: refetchChats,
661
+ handleSetRefetchChats: setRefetchChats,
662
+ hasError: sidebarHasError,
663
+ resetSelectedChatRef: resetSelectedChatRef,
664
+ agentsNavActive: sidebarAgentsNavActive,
665
+ onNewChat: handleNewChatAction
666
+ })
661
667
  }) : null, /*#__PURE__*/_jsxs(SCCAIMContent, {
662
668
  expanded: expanded,
663
669
  floating: isFloating,
@@ -729,10 +735,11 @@ export var ChatAIModal = function ChatAIModal(_ref) {
729
735
  expanded: expanded,
730
736
  layoutMode: layoutMode,
731
737
  dragPosition: resolvedDragPosition,
732
- children: [isFloating ? /*#__PURE__*/_jsx(FloatingPanelMotion, {
738
+ children: [/*#__PURE__*/_jsx(FloatingPanelMotion, {
733
739
  tilt: tiltMotion,
740
+ expanded: expanded,
734
741
  children: contentWrapper
735
- }) : contentWrapper, userHasPermissions && /*#__PURE__*/_jsx(AbmAgentModal, {
742
+ }), userHasPermissions && /*#__PURE__*/_jsx(AbmAgentModal, {
736
743
  addAgent: addAgent,
737
744
  updateAgent: updateAgent,
738
745
  removeAgent: removeAgent,
@@ -741,4 +748,4 @@ export var ChatAIModal = function ChatAIModal(_ref) {
741
748
  }), /*#__PURE__*/_jsx(Snackbar, {})]
742
749
  }), selector);
743
750
  };
744
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwiQ2hhdEFJQ29udGVudCIsImJ1aWxkSGFuZGxlcnMiLCJvcHRpb25zIiwiU2lkZWJhciIsInVzZUdldEFnZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIlNFQ1RJT05TIiwiU0NDQUlNQ29udGVudCIsIlNDQ0FJTUNvbnRlbnRXcmFwcGVyIiwiU0NDQUlNV3JhcHBlciIsImdldE1haWFGbG9hdGluZ1BhbmVsV2lkdGhQeCIsIkNoYXRBaU1vZGFsRm9vdGVyIiwidmFsaWRhdGVJc01haWEiLCJ1c2VGYXFzU3RvcmUiLCJmZXRjaE1haWEiLCJnZXRTZXNzaW9uQnlBZ2VudCIsIm1hcENPUkxhbmciLCJGbG9hdGluZ1BhbmVsTW90aW9uIiwidXNlRmxvYXRpbmdQYW5lbERyYWdUaWx0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiSURfTU9EQUxfQ0hBVF9BR0VOVCIsInZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlIiwic2VjdGlvbiIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJDaGF0QUlNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsIl9hZ2VudHMkZGF0YSIsImhhbmRsZUNsb3NlIiwidXNlciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwiaTE4biIsImhhbmRsZUNsb3NlTW9kYWwiLCJnZXRTdGF0ZSIsImNsZWFyRmFxcyIsIl91c2VTdGF0ZSIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVzZXJJbml0aWFsTWVzc2FnZSIsInNldFVzZXJJbml0aWFsTWVzc2FnZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaW5pdGlhbENoYXRJZCIsInNldEluaXRpYWxDaGF0SWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm5ld0NoYXRLZXkiLCJzZXROZXdDaGF0S2V5IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZW5kTWVzc2FnZUZ1bmN0aW9uIiwic2V0U2VuZE1lc3NhZ2VGdW5jdGlvbiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsInNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNSIsImhvbWUiLCJfdXNlU3RhdGUxNiIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsImxhbmciLCJsYW5ndWFnZSIsImxvY2FsZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJhZ2VudCIsInByb2plY3QiLCJjbGllbnQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsInNldENsaWVudCIsInNldFByb2plY3QiLCJfdXNlR2V0QWdlbnRzIiwiaGFuZGxlR29Ib21lIiwiYWdlbnRzIiwibG9hZGluZyIsImxvYWRpbmdNb3JlIiwiYWdlbnRFcnJvciIsImVycm9yIiwiaGFuZGxlR2V0QWdlbnRzIiwibG9hZE1vcmVBZ2VudHMiLCJhZGRBZ2VudCIsInJlbW92ZUFnZW50IiwidXBkYXRlQWdlbnQiLCJ1cGRhdGVBZ2VudEZhdm9yaXRlIiwic2VsZWN0Rmlyc3RBZ2VudCIsInNvcnRBZ2VudHNMaXN0IiwiaXNNQUlBIiwidXNlckhhc1Blcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjcmVhdGUiLCJlZGl0IiwiY29tcHV0ZWRDdXJyZW50T3B0aW9uIiwiaXNHbG9iYWxTcGVjaWFsaXN0IiwiZW50aXR5IiwiaXNQcm9qZWN0U3BlY2lhbGlzdCIsImlzQ2xpZW50U3BlY2lhbGlzdCIsImlzTWFpYWtlciIsInRlc3QiLCJuYW1lIiwibXlBZ2VudHMiLCJjaGF0Iiwic2hvdWxkU2hvd1Byb2plY3RTZWxlY3RvciIsInNob3VsZFNob3dDbGllbnRTZWxlY3RvciIsInByb2plY3RTZWxlY3RvciIsImNsaWVudFNlbGVjdG9yIiwiaXNNYWlha2VyQWdlbnRTZWxlY3RlZCIsInR5cGUiLCJzaWRlYmFyQWdlbnRzTmF2QWN0aXZlIiwiYWdlbnRzRmV0Y2hlZFJlZiIsInJlc29sdmVSZXF1ZXN0UmVmIiwic2VsZWN0b3IiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjb25jYXQiLCJfdXNlU3RhdGUyMSIsIl91c2VTdGF0ZTIyIiwibGF5b3V0TW9kZSIsInNldExheW91dE1vZGUiLCJleHBhbmRlZCIsImlzRmxvYXRpbmciLCJjb250ZW50V3JhcHBlclJlZiIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJkcmFnUG9zaXRpb24iLCJzZXREcmFnUG9zaXRpb24iLCJfdXNlRmxvYXRpbmdQYW5lbERyYWciLCJ0aWx0TW90aW9uIiwic3RhcnRQb2ludGVyVHJhY2tpbmciLCJzYW1wbGVQb2ludGVyTW92ZSIsImVuZFBvaW50ZXJUcmFja2luZyIsImRyYWdTdGF0ZVJlZiIsImNsYW1wRHJhZ1Bvc2l0aW9uIiwieCIsInkiLCJjb250ZW50V3JhcHBlciIsImN1cnJlbnQiLCJfY29udGVudFdyYXBwZXIkZ2V0Qm8iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImhlaWdodCIsIm9mZnNldCIsIm1heFgiLCJNYXRoIiwibWF4IiwiaW5uZXJXaWR0aCIsIm1heFkiLCJpbm5lckhlaWdodCIsIm1pbiIsInByZXYiLCJwYWQiLCJoYW5kbGVEcmFnRW5kIiwiZXZlbnQiLCJfZHJhZ1N0YXRlUmVmJGN1cnJlbnQiLCJwb2ludGVySWQiLCJib2R5Iiwic3R5bGUiLCJ1c2VyU2VsZWN0IiwiY3Vyc29yIiwiaGFuZGxlRHJhZ01vdmUiLCJkcmFnU3RhdGUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm5leHRQb3NpdGlvbiIsIm9mZnNldFgiLCJvZmZzZXRZIiwicmVzb2x2ZWREcmFnUG9zaXRpb24iLCJoYW5kbGVEcmFnU3RhcnQiLCJidXR0b24iLCJ0YXJnZXQiLCJjbG9zZXN0IiwicmVjdCIsImluaXRpYWxQb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJwb2ludGVyT2Zmc2V0WCIsInBvaW50ZXJPZmZzZXRZIiwiY3VycmVudFRhcmdldCIsInNldFBvaW50ZXJDYXB0dXJlIiwicHJldmVudERlZmF1bHQiLCJzdGFydENoYXQiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiX29iamVjdFNwcmVhZCIsImdvVG9DaGF0Iiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZWxlY3RlZEFnZW50IiwiZGF0YSIsImZpbmQiLCJhZ2VudEl0ZW0iLCJpZCIsImFnZW50SWQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJyZXNvbHZlQWdlbnRDaGF0IiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIm5leHRBZ2VudCIsImVudGl0eUlkIiwicmVxdWVzdElkIiwic2Vzc2lvbiIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsInNlbnQiLCJjb25zb2xlIiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVTZW5kTWVzc2FnZVJlYWR5Iiwic2VuZE1lc3NhZ2UiLCJzdG9wR2VuZXJhdGlvbiIsInN0cmVhbWluZyIsIndyaXRpbmciLCJoYW5kbGVTZW5kTWVzc2FnZSIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCJwcm9qZWN0X2RlbGV0ZWQiLCJsZW5ndGgiLCJoYW5kbGVSZXNldENoYXQiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsIm9uTWVyZ2VDcmVhdGVkQWdlbnQiLCJldnQiLCJfcmVmNCIsImRldGFpbCIsIm5hdmlnYXRlSG9tZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25TeW5jRWRpdGVkQWdlbnQiLCJfcmVmNSIsIm9wZW5DaGF0VmlldyIsIm9wZW5OZXdDaGF0V2l0aEFnZW50IiwiX2RldGFpbCIsIm5lZWRzRW50aXR5Iiwic2hvd05ld0NoYXQiLCJoaWRlSGVhZGVyQWdlbnRTZWxlY3RvciIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsImhhbmRsZU5ld0NoYXRBY3Rpb24iLCJjdXJyZW50QWdlbnQiLCJoYW5kbGVHb1RvTWFpYWtlciIsIl9jYWxsZWUzIiwibWFpYWtlckFnZW50IiwicmVzcG9uc2UiLCJfdDIiLCJfY29udGV4dDMiLCJhIiwicGF0aCIsIm1ldGhvZCIsImpzb24iLCJoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50cyIsImhpZGVGb290ZXJPbk1haWFrZXJNYXJrZXRwbGFjZUhvbWUiLCJtb2RhbFBhbmVsIiwiY2hpbGRyZW4iLCJvbkdvVG9DaGF0Iiwib25FcnJvciIsImhhbmRsZUdvVG9Ib21lIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiYWdlbnRzTmF2QWN0aXZlIiwib25OZXdDaGF0IiwiZmxvYXRpbmciLCJvbkxheW91dE1vZGVDaGFuZ2UiLCJkcmFnZ2FibGUiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ01vdmUiLCJvbkRyYWdFbmQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJvbkFnZW50VXBkYXRlIiwiaGlkZUFnZW50U2VsZWN0b3IiLCJvbkFnZW50U2VsZWN0ZWQiLCJyZWZzIiwib25TZW5kTWVzc2FnZVJlYWR5Iiwib25EZWxldGVBZ2VudCIsIm9uRmF2b3JpdGVBZ2VudFVwZGF0ZSIsImhhc01vcmVBZ2VudHMiLCJsb2FkaW5nTW9yZUFnZW50cyIsIm9uTG9hZE1vcmVBZ2VudHMiLCJvbkdvVG9NYWlha2VyIiwib25SZXNvbHZlQWdlbnRDaGF0Iiwib25SZXN0YXJ0U3VtbWFyeSIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiY2hhdElkIiwic2hvd0ZhcXMiLCJyZWYiLCJjcmVhdGVQb3J0YWwiLCJ0aWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL0NoYXRBSU1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQge1xuICBSZWZPYmplY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbiAgdXNlUmVmLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgUG9pbnRlckV2ZW50IGFzIFJlYWN0UG9pbnRlckV2ZW50LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUVycm9yJ1xuXG5pbXBvcnQgeyBDaGF0QUlDb250ZW50IH0gZnJvbSAnLi4vQ2hhdEFJQ29udGVudCdcbmltcG9ydCB7IGJ1aWxkSGFuZGxlcnMsIG9wdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICcuLi9TaWRlYmFyJ1xuaW1wb3J0IHsgdXNlR2V0QWdlbnRzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IENoYXRBSU1vZGFsSGVhZGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyJ1xuaW1wb3J0IHsgU25hY2tiYXIgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvU25hY2tCYXIvU25hY2tiYXInXG5pbXBvcnQgeyBQcm9qZWN0U3VtbWFyeUNvbnRlbnQgfSBmcm9tICcuLi9Qcm9qZWN0U3VtbWFyeUNvbnRlbnQnXG5pbXBvcnQgeyBBYm1BZ2VudE1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0FibUFnZW50TW9kYWwvQWJtQWdlbnRNb2RhbCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFNDQ0FJTUNvbnRlbnQsIFNDQ0FJTUNvbnRlbnRXcmFwcGVyLCBTQ0NBSU1XcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlNb2RhbC5zdHlsZXMnXG5pbXBvcnQgeyBnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgsIE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlIH0gZnJvbSAnLi9sYXlvdXQnXG5pbXBvcnQgeyBDaGF0QWlNb2RhbEZvb3RlciB9IGZyb20gJy4vY29tcG9uZW50cy9DaGF0QWlNb2RhbEZvb3RlcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlRmFxc1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvdXNlRmFxc1N0b3JlJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBnZXRTZXNzaW9uQnlBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQ2hhdHMvZ2V0U2Vzc2lvbkJ5QWdlbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IEZsb2F0aW5nUGFuZWxNb3Rpb24sIHVzZUZsb2F0aW5nUGFuZWxEcmFnVGlsdCB9IGZyb20gJy4vZmxvYXRpbmdQYW5lbE1vdGlvbidcblxudHlwZSBDaGF0QUlNb2RhbFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHBhcmVudFJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbn1cblxuZXhwb3J0IGNvbnN0IElEX01PREFMX0NIQVRfQUdFTlQgPSAnbW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnQnXG5cbmNvbnN0IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlID0gKHNlY3Rpb246IHN0cmluZykgPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgKHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8IHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50JykgJiYgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbCA9ICh7IGhhbmRsZUNsb3NlIH06IENoYXRBSU1vZGFsUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1c2VGYXFzU3RvcmUuZ2V0U3RhdGUoKS5jbGVhckZhcXMoKVxuICAgIGhhbmRsZUNsb3NlPy4oKVxuICB9LCBbaGFuZGxlQ2xvc2VdKVxuICBjb25zdCBbdXNlckluaXRpYWxNZXNzYWdlLCBzZXRVc2VySW5pdGlhbE1lc3NhZ2VdID0gdXNlU3RhdGU8e1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICAgIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gICAgZmFxSWQ/OiBzdHJpbmdcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICB9Pih7XG4gICAgbWVzc2FnZTogJycsXG4gICAgYXR0YWNobWVudHM6IFtdLFxuICB9KVxuICBjb25zdCBbaW5pdGlhbENoYXRJZCwgc2V0SW5pdGlhbENoYXRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbbmV3Q2hhdEtleSwgc2V0TmV3Q2hhdEtleV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc2V0U2VuZE1lc3NhZ2VGdW5jdGlvbl0gPSB1c2VTdGF0ZTxcbiAgICAoKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZywgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcpID0+IHZvaWQpIHwgbnVsbFxuICA+KG51bGwpXG4gIGNvbnN0IFtzdG9wR2VuZXJhdGlvbkZ1bmN0aW9uLCBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uXSA9IHVzZVN0YXRlPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc1N0cmVhbWluZywgc2V0SXNTdHJlYW1pbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1dyaXRpbmcsIHNldElzV3JpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBbcmVmZXRjaENoYXRzLCBzZXRSZWZldGNoQ2hhdHNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtjdXJyZW50T3B0aW9uLCBzZXRDdXJyZW50T3B0aW9uXSA9IHVzZVN0YXRlKG9wdGlvbnMuaG9tZSlcbiAgY29uc3QgW2hhc0Vycm9yLCBzZXRIYXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaGFuZGxlcnMgPSB1c2VNZW1vKCgpID0+IGJ1aWxkSGFuZGxlcnMoc2V0Q3VycmVudE9wdGlvbiwgc2V0SGFzRXJyb3IpLCBbXSlcbiAgY29uc3QgW3NpZGViYXJIYXNFcnJvciwgc2V0U2lkZWJhckhhc0Vycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCByZXNldFNlbGVjdGVkQ2hhdFJlZiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdC1icicgOiBpMThuLmxhbmd1YWdlXG5cbiAgbW9tZW50LmxvY2FsZShsYW5nKVxuXG4gIGNvbnN0IHtcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZWN0aW9uLFxuICAgIGFnZW50LFxuICAgIHByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgc2V0Q2xpZW50LFxuICAgIHNldFByb2plY3QsXG4gIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3I6IGFnZW50RXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfSA9IHVzZUdldEFnZW50cyh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lOiBoYW5kbGVycy5ob21lIH0pXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG5cbiAgY29uc3QgdXNlckhhc1Blcm1pc3Npb25zID1cbiAgICAodXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uY3JlYXRlIHx8XG4gICAgICB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5lZGl0IHx8XG4gICAgICB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5kZWxldGUpICYmXG4gICAgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICBjb25zdCBjb21wdXRlZEN1cnJlbnRPcHRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpc0dsb2JhbFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCdcbiAgICBjb25zdCBpc1Byb2plY3RTcGVjaWFsaXN0ID0gaXNNQUlBICYmIChhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCcgfHwgYWdlbnQ/LmVudGl0eSA9PSBudWxsKVxuICAgIGNvbnN0IGlzQ2xpZW50U3BlY2lhbGlzdCA9IGlzTUFJQSAmJiBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50J1xuICAgIGNvbnN0IGlzTWFpYWtlciA9IGlzR2xvYmFsU3BlY2lhbGlzdCAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJylcblxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5teUFnZW50c1xuICAgIH1cblxuICAgIGlmIChpc0dsb2JhbFNwZWNpYWxpc3QgJiYgIWlzTWFpYWtlciAmJiBjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmNoYXRcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yID0gY3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0ICYmIGlzUHJvamVjdFNwZWNpYWxpc3QgJiYgIXByb2plY3RcbiAgICBjb25zdCBzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IgPSBjdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXQgJiYgaXNDbGllbnRTcGVjaWFsaXN0ICYmICFjbGllbnRcblxuICAgIGlmIChzaG91bGRTaG93UHJvamVjdFNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3JcbiAgICB9XG4gICAgaWYgKHNob3VsZFNob3dDbGllbnRTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY2xpZW50U2VsZWN0b3JcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRPcHRpb25cbiAgfSwgW2N1cnJlbnRPcHRpb24sIHByb2plY3QsIGNsaWVudCwgaXNNQUlBLCBhZ2VudD8uZW50aXR5LCBhZ2VudD8ubmFtZV0pXG5cbiAgY29uc3QgaXNNYWlha2VyQWdlbnRTZWxlY3RlZCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGlzTUFJQSAmJlxuICAgICAgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcgJiZcbiAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmXG4gICAgICAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJyksXG4gICAgW2lzTUFJQSwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGFnZW50Py5uYW1lXVxuICApXG5cbiAgY29uc3Qgc2lkZWJhckFnZW50c05hdkFjdGl2ZSA9IHVzZU1lbW8oKCk6ICdtYWlha2VyJyB8ICdteUFnZW50cycgfCBudWxsID0+IHtcbiAgICBpZiAoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLm15QWdlbnRzKSByZXR1cm4gJ215QWdlbnRzJ1xuICAgIGlmIChpc01haWFrZXJBZ2VudFNlbGVjdGVkKSByZXR1cm4gJ21haWFrZXInXG4gICAgcmV0dXJuIG51bGxcbiAgfSwgW2NvbXB1dGVkQ3VycmVudE9wdGlvbiwgaXNNYWlha2VyQWdlbnRTZWxlY3RlZF0pXG5cbiAgLyogUmVhY3RpdmFyIGNvbiBsYSBmaWxhIOKAnE1pcyBhZ2VudGVz4oCdIGVuIFNpZGViYXI6IG15QWdlbnRzQ291bnQgcHJvcFxuICBjb25zdCBzaWRlYmFyTXlBZ2VudHNDb3VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBhZ2VudHMuZGF0YS5maWx0ZXIoXG4gICAgICBhID0+ICEoYS50eXBlID09PSAnY2xvbmUnICYmIGEuZW50aXR5ID09PSAnZ2xvYmFsJyAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhLm5hbWUgfHwgJycpKVxuICAgIClcbiAgICAgIC5sZW5ndGhcbiAgfSwgW2FnZW50cy5kYXRhXSlcbiAgKi9cblxuICBjb25zdCBhZ2VudHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuICAvKipcbiAgICogR3VhcmQgY29udHJhIHJhY2U6IHNpIGVsIHVzdWFyaW8gY2FtYmlhIGRlIGFnZW50ZS9lbnRpdHkgYW50ZXMgZGUgcXVlIHRlcm1pbmVcbiAgICogdW5hIHJlc29sdWNpw7NuIHByZXZpYSwgZGVzY2FydGFtb3MgbGEgcmVzcHVlc3RhIHZpZWphIHBhcmEgbm8gbmF2ZWdhciBhIHVuYVxuICAgKiBjb252ZXJzYWNpw7NuIHF1ZSB5YSBubyBjb3JyZXNwb25kZSBjb24gbGEgc2VsZWNjacOzbiBhY3R1YWwuXG4gICAqL1xuICBjb25zdCByZXNvbHZlUmVxdWVzdFJlZiA9IHVzZVJlZigwKVxuXG4gIGNvbnN0IHNlbGVjdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7SURfTU9EQUxfQ0hBVF9BR0VOVH1gKVxuXG4gIGNvbnN0IFtsYXlvdXRNb2RlLCBzZXRMYXlvdXRNb2RlXSA9IHVzZVN0YXRlPE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlPignc2lkZWJhcicpXG4gIGNvbnN0IGV4cGFuZGVkID0gbGF5b3V0TW9kZSA9PT0gJ2Z1bGxzY3JlZW4nXG4gIGNvbnN0IGlzRmxvYXRpbmcgPSBsYXlvdXRNb2RlID09PSAnZmxvYXRpbmcnXG4gIGNvbnN0IGNvbnRlbnRXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbZHJhZ1Bvc2l0aW9uLCBzZXREcmFnUG9zaXRpb25dID0gdXNlU3RhdGU8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyB0aWx0TW90aW9uLCBzdGFydFBvaW50ZXJUcmFja2luZywgc2FtcGxlUG9pbnRlck1vdmUsIGVuZFBvaW50ZXJUcmFja2luZyB9ID1cbiAgICB1c2VGbG9hdGluZ1BhbmVsRHJhZ1RpbHQoaXNGbG9hdGluZylcbiAgY29uc3QgZHJhZ1N0YXRlUmVmID0gdXNlUmVmPHtcbiAgICBwb2ludGVySWQ6IG51bWJlclxuICAgIG9mZnNldFg6IG51bWJlclxuICAgIG9mZnNldFk6IG51bWJlclxuICB9IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBjbGFtcERyYWdQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKCh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnRXcmFwcGVyID0gY29udGVudFdyYXBwZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGVudFdyYXBwZXIpIHtcbiAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gY29udGVudFdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBvZmZzZXQgPSAxNlxuICAgIGNvbnN0IG1heFggPSBNYXRoLm1heChvZmZzZXQsIHdpbmRvdy5pbm5lcldpZHRoIC0gd2lkdGggLSBvZmZzZXQpXG4gICAgY29uc3QgbWF4WSA9IE1hdGgubWF4KG9mZnNldCwgd2luZG93LmlubmVySGVpZ2h0IC0gaGVpZ2h0IC0gb2Zmc2V0KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IE1hdGgubWluKE1hdGgubWF4KHgsIG9mZnNldCksIG1heFgpLFxuICAgICAgeTogTWF0aC5taW4oTWF0aC5tYXgoeSwgb2Zmc2V0KSwgbWF4WSksXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsYXlvdXRNb2RlICE9PSAnZmxvYXRpbmcnKSB7XG4gICAgICBzZXREcmFnUG9zaXRpb24obnVsbClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldERyYWdQb3NpdGlvbihwcmV2ID0+IHtcbiAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgIHJldHVybiBjbGFtcERyYWdQb3NpdGlvbihwcmV2LngsIHByZXYueSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhZCA9IDE2XG4gICAgICBjb25zdCB4ID0gd2luZG93LmlubmVyV2lkdGggLSBnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgoKSAtIHBhZFxuICAgICAgcmV0dXJuIGNsYW1wRHJhZ1Bvc2l0aW9uKHgsIHBhZClcbiAgICB9KVxuICB9LCBbbGF5b3V0TW9kZSwgY2xhbXBEcmFnUG9zaXRpb25dKVxuXG4gIGNvbnN0IGhhbmRsZURyYWdFbmQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0UG9pbnRlckV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgZW5kUG9pbnRlclRyYWNraW5nKClcbiAgICAgIGlmIChkcmFnU3RhdGVSZWYuY3VycmVudD8ucG9pbnRlcklkICE9PSBldmVudC5wb2ludGVySWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGRyYWdTdGF0ZVJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJydcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJydcbiAgICB9LFxuICAgIFtlbmRQb2ludGVyVHJhY2tpbmddXG4gIClcblxuICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBjb25zdCBkcmFnU3RhdGUgPSBkcmFnU3RhdGVSZWYuY3VycmVudFxuICAgICAgaWYgKCFkcmFnU3RhdGUgfHwgZHJhZ1N0YXRlLnBvaW50ZXJJZCAhPT0gZXZlbnQucG9pbnRlcklkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzYW1wbGVQb2ludGVyTW92ZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKVxuXG4gICAgICBjb25zdCBuZXh0UG9zaXRpb24gPSBjbGFtcERyYWdQb3NpdGlvbihldmVudC5jbGllbnRYIC0gZHJhZ1N0YXRlLm9mZnNldFgsIGV2ZW50LmNsaWVudFkgLSBkcmFnU3RhdGUub2Zmc2V0WSlcblxuICAgICAgc2V0RHJhZ1Bvc2l0aW9uKHByZXYgPT4ge1xuICAgICAgICBpZiAocHJldiAmJiBwcmV2LnggPT09IG5leHRQb3NpdGlvbi54ICYmIHByZXYueSA9PT0gbmV4dFBvc2l0aW9uLnkpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0UG9zaXRpb25cbiAgICAgIH0pXG4gICAgfSxcbiAgICBbY2xhbXBEcmFnUG9zaXRpb24sIHNhbXBsZVBvaW50ZXJNb3ZlXVxuICApXG5cbiAgY29uc3QgcmVzb2x2ZWREcmFnUG9zaXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAobGF5b3V0TW9kZSAhPT0gJ2Zsb2F0aW5nJykge1xuICAgICAgcmV0dXJuIGRyYWdQb3NpdGlvblxuICAgIH1cbiAgICBpZiAoZHJhZ1Bvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gZHJhZ1Bvc2l0aW9uXG4gICAgfVxuICAgIGNvbnN0IHBhZCA9IDE2XG4gICAgY29uc3QgeCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmlubmVyV2lkdGggLSBnZXRNYWlhRmxvYXRpbmdQYW5lbFdpZHRoUHgoKSAtIHBhZCA6IHBhZFxuICAgIHJldHVybiBjbGFtcERyYWdQb3NpdGlvbih4LCBwYWQpXG4gIH0sIFtsYXlvdXRNb2RlLCBkcmFnUG9zaXRpb24sIGNsYW1wRHJhZ1Bvc2l0aW9uXSlcblxuICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0UG9pbnRlckV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Zsb2F0aW5nIHx8IGV2ZW50LmJ1dHRvbiAhPT0gMCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgICBpZiAodGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbiwgYSwgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIFtyb2xlPVwiYnV0dG9uXCJdLCBbZGF0YS1uby1kcmFnPVwidHJ1ZVwiXScpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZW50V3JhcHBlciA9IGNvbnRlbnRXcmFwcGVyUmVmLmN1cnJlbnRcbiAgICAgIGlmICghY29udGVudFdyYXBwZXIpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlY3QgPSBjb250ZW50V3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgaW5pdGlhbFBvc2l0aW9uID0gcmVzb2x2ZWREcmFnUG9zaXRpb24gPz8gY2xhbXBEcmFnUG9zaXRpb24ocmVjdC5sZWZ0LCByZWN0LnRvcClcbiAgICAgIGNvbnN0IHBvaW50ZXJPZmZzZXRYID0gZXZlbnQuY2xpZW50WCAtIGluaXRpYWxQb3NpdGlvbi54XG4gICAgICBjb25zdCBwb2ludGVyT2Zmc2V0WSA9IGV2ZW50LmNsaWVudFkgLSBpbml0aWFsUG9zaXRpb24ueVxuXG4gICAgICBzZXREcmFnUG9zaXRpb24oaW5pdGlhbFBvc2l0aW9uKVxuICAgICAgZHJhZ1N0YXRlUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgIHBvaW50ZXJJZDogZXZlbnQucG9pbnRlcklkLFxuICAgICAgICBvZmZzZXRYOiBwb2ludGVyT2Zmc2V0WCxcbiAgICAgICAgb2Zmc2V0WTogcG9pbnRlck9mZnNldFksXG4gICAgICB9XG5cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnbm9uZSdcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJ1xuICAgICAgc3RhcnRQb2ludGVyVHJhY2tpbmcoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcbiAgICB9LFxuICAgIFtjbGFtcERyYWdQb3NpdGlvbiwgaXNGbG9hdGluZywgcmVzb2x2ZWREcmFnUG9zaXRpb24sIHN0YXJ0UG9pbnRlclRyYWNraW5nXVxuICApXG5cbiAgY29uc3Qgc3RhcnRDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U/OiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcsIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoc2lkZWJhckhhc0Vycm9yKSB7XG4gICAgICAgIHNldFNpZGViYXJIYXNFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgJycsXG4gICAgICAgIGF0dGFjaG1lbnRzOiBhdHRhY2htZW50cyB8fCBbXSxcbiAgICAgICAgLi4uKGZhcUlkID8geyBmYXFJZCB9IDoge30pLFxuICAgICAgICAuLi4oYWdlbnRTdWdnZXN0aW9uSWQgPyB7IGFnZW50U3VnZ2VzdGlvbklkIH0gOiB7fSksXG4gICAgICB9KVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGdvVG9DaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgc2V0VXNlckluaXRpYWxNZXNzYWdlKHsgbWVzc2FnZTogJycsIGF0dGFjaG1lbnRzOiBbXSB9KVxuICAgICAgc2V0SW5pdGlhbENoYXRJZChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgY29uc3Qgc2VsZWN0ZWRBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYWdlbnRJdGVtID0+IGFnZW50SXRlbS5pZCA9PT0gY2hhdC5hZ2VudElkKVxuICAgICAgaWYgKHNlbGVjdGVkQWdlbnQpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoc2VsZWN0ZWRBZ2VudClcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgICBoYW5kbGVycy5jaGF0KClcbiAgICB9LFxuICAgIFtoYW5kbGVycywgYWdlbnRzLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIC8qKlxuICAgKiBSZXNvbHVjacOzbiB2MiBgR0VUIC92Mi9zZXNzaW9ucy9hZ2VudC97YWdlbnRfaWR9Wy97ZW50aXR5X2lkfV1gLlxuICAgKlxuICAgKiBTaSBlbCB1c3VhcmlvIHlhIHRlbsOtYSB1bmEgY29udmVyc2FjacOzbiBwYXJhIGVzYSBjb21iaW5hY2nDs24gYWdlbnQrZW50aXR5LFxuICAgKiBuYXZlZ2Ftb3MgYSBlbGxhIChgZ29Ub0NoYXRgKS4gU2kgbm8gKG8gc2kgZmFsbGEgbGEgcmVkKSBkZXZvbHZlbW9zIGBmYWxzZWBcbiAgICogeSBlbCBjYWxsZXIgZGVjaWRlIGVsIGZhbGxiYWNrIChxdWVkYXJzZSBlbiBob21lL3NlbGVjdG9yIGFjdHVhbCkuXG4gICAqXG4gICAqIFB1bnRvcyBkZSBlamVjdWNpw7NuOlxuICAgKiAtIEFsIHNlbGVjY2lvbmFyIHVuIGFnZW50ZSBlbiBlbCBoZWFkZXIgKGN1c3RvbSBvIGNsb25lK2dsb2JhbCkuXG4gICAqIC0gQWwgc2VsZWNjaW9uYXIgcHJveWVjdG8vY2xpZW50ZSBlbiBsb3Mgc2VsZWN0b3JzIChjbG9uZStwcm9qZWN0IHwgY2xvbmUrY2xpZW50KS5cbiAgICogLSBBbCByZWNpYmlyIGBtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudGAgeSBlbiBgaGFuZGxlR29Ub01haWFrZXJgLlxuICAgKi9cbiAgY29uc3QgcmVzb2x2ZUFnZW50Q2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChuZXh0QWdlbnQ6IEFnZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgZW50aXR5SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgICBpZiAoIW5leHRBZ2VudD8uaWQpIHJldHVybiBmYWxzZVxuICAgICAgcmVzb2x2ZVJlcXVlc3RSZWYuY3VycmVudCArPSAxXG4gICAgICBjb25zdCByZXF1ZXN0SWQgPSByZXNvbHZlUmVxdWVzdFJlZi5jdXJyZW50XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgZ2V0U2Vzc2lvbkJ5QWdlbnQoe1xuICAgICAgICAgIGFnZW50OiBuZXh0QWdlbnQsXG4gICAgICAgICAgZW50aXR5SWQsXG4gICAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgICAgfSlcbiAgICAgICAgLy8gU2kgZW50cmUgdGFudG8gaHVibyBvdHJhIHJlc29sdWNpw7NuIGluaWNpYWRhLCBpZ25vcmFtb3MgZXN0YSByZXNwdWVzdGEuXG4gICAgICAgIGlmIChyZXF1ZXN0SWQgIT09IHJlc29sdmVSZXF1ZXN0UmVmLmN1cnJlbnQpIHJldHVybiBmYWxzZVxuICAgICAgICBpZiAoc2Vzc2lvbikge1xuICAgICAgICAgIGdvVG9DaGF0KHNlc3Npb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tNQUlBXSBnZXRTZXNzaW9uQnlBZ2VudCBmYWlsZWQnLCBlcnIpXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LFxuICAgIFtnb1RvQ2hhdCwgaTE4bi5sYW5ndWFnZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlUmVhZHkgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBzZW5kTWVzc2FnZTogKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICAgICApID0+IHZvaWQsXG4gICAgICBzdG9wR2VuZXJhdGlvbjogKCkgPT4gdm9pZCxcbiAgICAgIHN0cmVhbWluZzogYm9vbGVhbixcbiAgICAgIHdyaXRpbmc6IGJvb2xlYW5cbiAgICApID0+IHtcbiAgICAgIHNldFNlbmRNZXNzYWdlRnVuY3Rpb24oKCkgPT4gc2VuZE1lc3NhZ2UpXG4gICAgICBzZXRTdG9wR2VuZXJhdGlvbkZ1bmN0aW9uKCgpID0+IHN0b3BHZW5lcmF0aW9uKVxuICAgICAgc2V0SXNTdHJlYW1pbmcoc3RyZWFtaW5nKVxuICAgICAgc2V0SXNXcml0aW5nKHdyaXRpbmcpXG4gICAgfSxcbiAgICBbXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nLCBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHNpZGViYXJIYXNFcnJvcikge1xuICAgICAgICBzZXRTaWRlYmFySGFzRXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgICBpZiAoc2VuZE1lc3NhZ2VGdW5jdGlvbiAmJiBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgICBzZW5kTWVzc2FnZUZ1bmN0aW9uKG1lc3NhZ2UsIGF0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZW5kTWVzc2FnZUZ1bmN0aW9uLCBzdGFydENoYXQsIGNvbXB1dGVkQ3VycmVudE9wdGlvbiwgc2lkZWJhckhhc0Vycm9yXVxuICApXG5cbiAgY29uc3QgaGFuZGxlR29Ib21lID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFNpIGVzdGFtb3MgZW4gdW5hIGNvbnZlcnNhY2nDs24geSB2YW1vcyBhIGhvbWUsIHJlc2V0ZWFyIGluaXRpYWxDaGF0SWQgeSBpbmNyZW1lbnRhciBuZXdDaGF0S2V5XG4gICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgICAgc2V0TmV3Q2hhdEtleShwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgLy8gTm8gYm9ycmFyIGVsIGNsaWVudGUgc2kgZXMgYWdlbnRlIGRlIGNsaWVudGVzIChpZ3VhbCBxdWUgZWwgcHJveWVjdG8gc2UgbWFudGllbmUpXG4gICAgICBpZiAoYWdlbnQ/LmVudGl0eSAhPT0gJ2NsaWVudCcpIHtcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgKCFhZ2VudCB8fCBhZ2VudD8uaXNfZGVsZXRlZCB8fCBhZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCBhZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHwgYWdlbnQ/LnByb2plY3RfZGVsZXRlZCkgJiZcbiAgICAgIGFnZW50cy5kYXRhLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50cy5kYXRhWzBdKVxuICAgIH1cbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSAmJiB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50KClcbiAgICB9XG4gIH0sIFtcbiAgICBvcHRpb25zLmhvbWUsXG4gICAgb3B0aW9ucy5jaGF0LFxuICAgIGN1cnJlbnRPcHRpb24sXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGFnZW50LFxuICAgIGFnZW50cyxcbiAgICBzZWxlY3RBZ2VudCxcbiAgICBzZXRDbGllbnQsXG4gIF0pXG5cbiAgY29uc3QgaGFuZGxlUmVzZXRDaGF0ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgLy8gRGlzcGF0Y2ggZXZlbnQgdG8gY2xlYXIgdGhlIGlucHV0IHRleHRhcmVhXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgaGFuZGxlR29Ib21lKClcbiAgfSwgW2hhbmRsZUdvSG9tZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFnZW50c0ZldGNoZWRSZWYuY3VycmVudCkge1xuICAgICAgYWdlbnRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaGFuZGxlR2V0QWdlbnRzKClcbiAgICB9XG4gIH0sIFtoYW5kbGVHZXRBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25NZXJnZUNyZWF0ZWRBZ2VudCA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IGFnZW50OiBuZXh0QWdlbnQgfSA9IChldnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbCB8fCB7fVxuICAgICAgaWYgKG5leHRBZ2VudD8uaWQpIHtcbiAgICAgICAgYWRkQWdlbnQobmV4dEFnZW50LCB7IG5hdmlnYXRlSG9tZTogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1tZXJnZS1jcmVhdGVkLWFnZW50LWludG8tbGlzdCcsIG9uTWVyZ2VDcmVhdGVkQWdlbnQpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtbWVyZ2UtY3JlYXRlZC1hZ2VudC1pbnRvLWxpc3QnLCBvbk1lcmdlQ3JlYXRlZEFnZW50KVxuICAgIH1cbiAgfSwgW2FkZEFnZW50XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uU3luY0VkaXRlZEFnZW50ID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYWdlbnQ6IG5leHRBZ2VudCB9ID0gKGV2dCBhcyBDdXN0b21FdmVudDx7IGFnZW50OiBBZ2VudCB9PikuZGV0YWlsIHx8IHt9XG4gICAgICBpZiAoIW5leHRBZ2VudD8uaWQpIHJldHVyblxuICAgICAgdXBkYXRlQWdlbnQobmV4dEFnZW50KVxuICAgICAgaWYgKGFnZW50Py5pZCA9PT0gbmV4dEFnZW50LmlkKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KG5leHRBZ2VudClcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1zeW5jLWVkaXRlZC1hZ2VudC1mcm9tLWNoYXQnLCBvblN5bmNFZGl0ZWRBZ2VudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1zeW5jLWVkaXRlZC1hZ2VudC1mcm9tLWNoYXQnLCBvblN5bmNFZGl0ZWRBZ2VudClcbiAgICB9XG4gIH0sIFt1cGRhdGVBZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50Py5pZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcGVuQ2hhdFZpZXcgPSAoKSA9PiB7XG4gICAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5jaGF0KVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJykpXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1jaGF0LXZpZXcnLCBvcGVuQ2hhdFZpZXcpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1jaGF0LXZpZXcnLCBvcGVuQ2hhdFZpZXcpXG4gICAgfVxuICB9LCBbXSlcblxuICAvKiogTWlzbW8gZmx1am8gcXVlIENoYXRBSU15QWdlbnRzLmhhbmRsZVVzZUFnZW50ICsgb25CYWNrIChoYW5kbGVycy5ob21lKS4gKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcGVuTmV3Q2hhdFdpdGhBZ2VudCA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IG5leHRBZ2VudCA9IChldmVudCBhcyBDdXN0b21FdmVudDx7IGFnZW50OiBBZ2VudCB9PikuZGV0YWlsPy5hZ2VudFxuICAgICAgaWYgKCFuZXh0QWdlbnQpIHJldHVyblxuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2VsZWN0QWdlbnQobmV4dEFnZW50KVxuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcblxuICAgICAgLy8gQ3VzdG9tIC8gY2xvbmUrZ2xvYmFsIG5vIHJlcXVpZXJlbiBlbnRpdHk6IHJlc29sdmVtb3Mgc2VzacOzbiBleGlzdGVudGUgaW5tZWRpYXRhbWVudGUuXG4gICAgICAvLyBDbG9uZStwcm9qZWN0fGNsaWVudCBxdWVkYW4gZXNwZXJhbmRvIHNlbGVjY2nDs24gZGUgZW50aWRhZCAocmVzb2x2ZXLDoSBlbCBzZWxlY3RvcikuXG4gICAgICBjb25zdCBuZWVkc0VudGl0eSA9XG4gICAgICAgIG5leHRBZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiAobmV4dEFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBuZXh0QWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcpXG4gICAgICBpZiAoIW5lZWRzRW50aXR5KSB7XG4gICAgICAgIHJlc29sdmVBZ2VudENoYXQobmV4dEFnZW50KVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1uZXctY2hhdC13aXRoLWFnZW50Jywgb3Blbk5ld0NoYXRXaXRoQWdlbnQpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtb3Blbi1uZXctY2hhdC13aXRoLWFnZW50Jywgb3Blbk5ld0NoYXRXaXRoQWdlbnQpXG4gICAgfVxuICB9LCBbc2VsZWN0QWdlbnQsIHNldENsaWVudCwgc2V0UHJvamVjdCwgcmVzb2x2ZUFnZW50Q2hhdF0pXG5cbiAgY29uc3Qgc2hvd05ld0NoYXQgPSBjb21wdXRlZEN1cnJlbnRPcHRpb24gIT09IG9wdGlvbnMuY2hhdFxuICBjb25zdCBoaWRlSGVhZGVyQWdlbnRTZWxlY3RvciA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5teUFnZW50c1xuICBjb25zdCBoYW5kbGVPcGVuTWFya2V0cGxhY2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLm15QWdlbnRzKVxuICB9LCBbXSlcblxuICAvKipcbiAgICogQWNjacOzbiBkZWwgYm90w7NuIFwibnVldm8gY2hhdFwiIGRlbCB0b29sYmFyIGRlIGxhIFNpZGViYXIuXG4gICAqXG4gICAqIExhIHBhbnRhbGxhIGRlc3Rpbm8gZGVwZW5kZSBkZWwgYWdlbnRlIGFjdHVhbDpcbiAgICogLSBgY3VzdG9tYCAgICAgICAgICAgICAgICAgICAgICAgICDihpIgYG9wdGlvbnMubXlBZ2VudHNgIChlbGVnaXIgb3RybyBhZ2VudGUpLlxuICAgKiAtIGBjbG9uZWAgKyBgZW50aXR5OiAncHJvamVjdCdgICAgIOKGkiBgb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3JgIChlbGVnaXIgcHJveWVjdG8pLlxuICAgKiAtIGBjbG9uZWAgKyBgZW50aXR5OiAnY2xpZW50J2AgICAgIOKGkiBgb3B0aW9ucy5jbGllbnRTZWxlY3RvcmAgKGVsZWdpciBjbGllbnRlKS5cbiAgICogLSBgY2xvbmVgICsgYGVudGl0eTogJ2dsb2JhbCdgIGNvbiBub21icmUgbWFpYWtlci9tYXJrZXRwbGFjZSDihpIgYG9wdGlvbnMuaG9tZWBcbiAgICogICAocmVuZGVyaXphIGBDaGF0QUlIb21lTWFpYWtlcmApLlxuICAgKiAtIEZhbGxiYWNrIOKGkiBgb3B0aW9ucy5ob21lYC5cbiAgICovXG4gIGNvbnN0IGhhbmRsZU5ld0NoYXRBY3Rpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEFnZW50ID0gYWdlbnRcblxuICAgIC8vIEFzZWd1cmFtb3MgcXVlIGxhIHNlbGVjY2nDs24gZGUgZW50aXR5IHF1ZWRlIGxpbXBpYSBwYXJhIGxvcyBzZWxlY3RvcnMuXG4gICAgaWYgKGN1cnJlbnRBZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiBjdXJyZW50QWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgfSBlbHNlIGlmIChjdXJyZW50QWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgY3VycmVudEFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKSB7XG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgIH1cblxuICAgIGhhbmRsZUdvSG9tZSgpXG5cbiAgICAvLyBQYXJhIGFnZW50ZXMgY3VzdG9tLCBoYW5kbGVHb0hvbWUgeWEgaGl6byBsb3MgcmVzZXRzIGNvbXVuZXM7IHPDs2xvXG4gICAgLy8gcmVkaXJpZ2ltb3MgZWwgZGVzdGlubyBhIE1pcyBBZ2VudGVzLlxuICAgIGlmIChjdXJyZW50QWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMubXlBZ2VudHMpXG4gICAgfVxuICB9LCBbYWdlbnQsIGhhbmRsZUdvSG9tZSwgc2V0UHJvamVjdCwgc2V0Q2xpZW50XSlcblxuICBjb25zdCBoYW5kbGVHb1RvTWFpYWtlciA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRIYXNFcnJvcihmYWxzZSlcbiAgICBsZXQgbWFpYWtlckFnZW50ID0gYWdlbnRzLmRhdGEuZmluZCgoYTogQWdlbnQpID0+IGEudHlwZSA9PT0gJ2Nsb25lJyAmJiBhLmVudGl0eSA9PT0gJ2dsb2JhbCcpXG4gICAgaWYgKCFtYWlha2VyQWdlbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9YCxcbiAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgIG1haWFrZXJBZ2VudCA9IChkYXRhLmRhdGEgfHwgW10pLmZpbmQoKGE6IEFnZW50KSA9PiBhLnR5cGUgPT09ICdjbG9uZScgJiYgYS5lbnRpdHkgPT09ICdnbG9iYWwnKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFByb2plY3QobnVsbClcbiAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgIHNlbGVjdEFnZW50KG1haWFrZXJBZ2VudClcbiAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuaG9tZSlcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCkge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCgpXG4gICAgfVxuICAgIC8vIG1haWFrZXIvbWFya2V0cGxhY2UgPSBjbG9uZStnbG9iYWwg4oaSIG5vIHJlcXVpZXJlIGVudGl0eV9pZFxuICAgIHJlc29sdmVBZ2VudENoYXQobWFpYWtlckFnZW50KVxuICB9LCBbYWdlbnRzLmRhdGEsIGkxOG4ubGFuZ3VhZ2UsIHNlbGVjdEFnZW50LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHJlc29sdmVBZ2VudENoYXRdKVxuICBjb25zdCBoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJlbW92ZUFnZW50KGFnZW50SWQpXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSBhZ2VudElkKSB7XG4gICAgICAgIHNlbGVjdEZpcnN0QWdlbnQoYWdlbnRJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudD8uaWQsIHJlbW92ZUFnZW50LCBzZWxlY3RGaXJzdEFnZW50XVxuICApXG5cbiAgY29uc3QgaGlkZUZvb3Rlck9uTWFpYWtlck1hcmtldHBsYWNlSG9tZSA9IGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lICYmIGlzTWFpYWtlckFnZW50U2VsZWN0ZWRcblxuICBjb25zdCBtb2RhbFBhbmVsID0gKFxuICAgIDw+XG4gICAgICB7dmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgJiYgbGF5b3V0TW9kZSAhPT0gJ2Zsb2F0aW5nJyA/IChcbiAgICAgICAgPFNpZGViYXJcbiAgICAgICAgICBvbkdvVG9DaGF0PXtnb1RvQ2hhdH1cbiAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRTaWRlYmFySGFzRXJyb3IodHJ1ZSl9XG4gICAgICAgICAgaGFuZGxlR29Ub0hvbWU9e2hhbmRsZUdvSG9tZX1cbiAgICAgICAgICBoYW5kbGVPcGVuTWFya2V0cGxhY2U9e2hhbmRsZU9wZW5NYXJrZXRwbGFjZX1cbiAgICAgICAgICBzaG93TmV3Q2hhdD17c2hvd05ld0NoYXR9XG4gICAgICAgICAgcmVmZXRjaENoYXRzPXtyZWZldGNoQ2hhdHN9XG4gICAgICAgICAgaGFuZGxlU2V0UmVmZXRjaENoYXRzPXtzZXRSZWZldGNoQ2hhdHN9XG4gICAgICAgICAgaGFzRXJyb3I9e3NpZGViYXJIYXNFcnJvcn1cbiAgICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZj17cmVzZXRTZWxlY3RlZENoYXRSZWZ9XG4gICAgICAgICAgYWdlbnRzTmF2QWN0aXZlPXtzaWRlYmFyQWdlbnRzTmF2QWN0aXZlfVxuICAgICAgICAgIG9uTmV3Q2hhdD17aGFuZGxlTmV3Q2hhdEFjdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFNDQ0FJTUNvbnRlbnQgZXhwYW5kZWQ9e2V4cGFuZGVkfSBmbG9hdGluZz17aXNGbG9hdGluZ30+XG4gICAgICAgIDxDaGF0QUlNb2RhbEhlYWRlclxuICAgICAgICAgIGxheW91dE1vZGU9e2xheW91dE1vZGV9XG4gICAgICAgICAgb25MYXlvdXRNb2RlQ2hhbmdlPXtzZXRMYXlvdXRNb2RlfVxuICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e2lzRmxvYXRpbmd9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9e2hhbmRsZURyYWdTdGFydH1cbiAgICAgICAgICBvbkRyYWdNb3ZlPXtoYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZURyYWdFbmR9XG4gICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgYWdlbnRzPXthZ2VudHMuZGF0YX1cbiAgICAgICAgICBoYXNFcnJvcj17ISFhZ2VudEVycm9yfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgbG9hZGluZ01vcmU9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgIGhhc01vcmU9e2FnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICBvbkFnZW50VXBkYXRlPXt1cGRhdGVBZ2VudEZhdm9yaXRlfVxuICAgICAgICAgIGxvYWRNb3JlQWdlbnRzPXtsb2FkTW9yZUFnZW50c31cbiAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgaGlkZUFnZW50U2VsZWN0b3I9e2hpZGVIZWFkZXJBZ2VudFNlbGVjdG9yfVxuICAgICAgICAgIG9uQWdlbnRTZWxlY3RlZD17cmVzb2x2ZUFnZW50Q2hhdH1cbiAgICAgICAgLz5cbiAgICAgICAge2hhc0Vycm9yID8gKFxuICAgICAgICAgIDxNQUlBRXJyb3IgLz5cbiAgICAgICAgKSA6IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pID8gKFxuICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICBjdXJyZW50T3B0aW9uPXtjb21wdXRlZEN1cnJlbnRPcHRpb259XG4gICAgICAgICAgICBoYW5kbGVycz17eyAuLi5oYW5kbGVycywgY2hhdDogc3RhcnRDaGF0LCBob21lOiBoYW5kbGVycy5ob21lLCBoYW5kbGVHb0hvbWUgfX1cbiAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgcmVmcz17eyB1c2VySW5pdGlhbE1lc3NhZ2UsIGluaXRpYWxDaGF0SWQgfX1cbiAgICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17aGFuZGxlU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICBvbkRlbGV0ZUFnZW50PXtoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50c31cbiAgICAgICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgIGhhc01vcmVBZ2VudHM9eyEhYWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgbG9hZGluZ01vcmVBZ2VudHM9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgICAgb25Mb2FkTW9yZUFnZW50cz17bG9hZE1vcmVBZ2VudHN9XG4gICAgICAgICAgICBvbkdvVG9NYWlha2VyPXtoYW5kbGVHb1RvTWFpYWtlcn1cbiAgICAgICAgICAgIG9uUmVzb2x2ZUFnZW50Q2hhdD17cmVzb2x2ZUFnZW50Q2hhdH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgeygoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgISFhZ2VudHM/LmRhdGE/Lmxlbmd0aCkgfHxcbiAgICAgICAgICBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkgJiZcbiAgICAgICAgICAhaGlkZUZvb3Rlck9uTWFpYWtlck1hcmtldHBsYWNlSG9tZSAmJlxuICAgICAgICAgICFoYXNFcnJvciAmJlxuICAgICAgICAgICFsb2FkaW5nICYmXG4gICAgICAgICAgdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgJiYgKFxuICAgICAgICAgICAgPENoYXRBaU1vZGFsRm9vdGVyXG4gICAgICAgICAgICAgIGFnZW50PXthZ2VudH1cbiAgICAgICAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICBoYW5kbGVTdG9wR2VuZXJhdGlvbj17c3RvcEdlbmVyYXRpb25GdW5jdGlvbn1cbiAgICAgICAgICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICBpc1dyaXRpbmc9e2lzV3JpdGluZ31cbiAgICAgICAgICAgICAgY2hhdElkPXtpbml0aWFsQ2hhdElkfVxuICAgICAgICAgICAgICBuZXdDaGF0S2V5PXtuZXdDaGF0S2V5fVxuICAgICAgICAgICAgICBzaG93RmFxcz17Y29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUNvbnRlbnQ+XG4gICAgPC8+XG4gIClcblxuICBjb25zdCBjb250ZW50V3JhcHBlciA9IChcbiAgICA8U0NDQUlNQ29udGVudFdyYXBwZXIgZXhwYW5kZWQ9e2V4cGFuZGVkfSBmbG9hdGluZz17aXNGbG9hdGluZ30gcmVmPXtjb250ZW50V3JhcHBlclJlZn0+XG4gICAgICB7bW9kYWxQYW5lbH1cbiAgICA8L1NDQ0FJTUNvbnRlbnRXcmFwcGVyPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICBzZWxlY3RvciAmJlxuICAgIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0NBSU1XcmFwcGVyIGV4cGFuZGVkPXtleHBhbmRlZH0gbGF5b3V0TW9kZT17bGF5b3V0TW9kZX0gZHJhZ1Bvc2l0aW9uPXtyZXNvbHZlZERyYWdQb3NpdGlvbn0+XG4gICAgICAgIHtpc0Zsb2F0aW5nID8gPEZsb2F0aW5nUGFuZWxNb3Rpb24gdGlsdD17dGlsdE1vdGlvbn0+e2NvbnRlbnRXcmFwcGVyfTwvRmxvYXRpbmdQYW5lbE1vdGlvbj4gOiBjb250ZW50V3JhcHBlcn1cbiAgICAgICAge3VzZXJIYXNQZXJtaXNzaW9ucyAmJiAoXG4gICAgICAgICAgPEFibUFnZW50TW9kYWxcbiAgICAgICAgICAgIGFkZEFnZW50PXthZGRBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50PXt1cGRhdGVBZ2VudH1cbiAgICAgICAgICAgIHJlbW92ZUFnZW50PXtyZW1vdmVBZ2VudH1cbiAgICAgICAgICAgIHVwZGF0ZUFnZW50RmF2b3JpdGU9e3VwZGF0ZUFnZW50RmF2b3JpdGV9XG4gICAgICAgICAgICBzZWxlY3RGaXJzdEFnZW50PXtzZWxlY3RGaXJzdEFnZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTbmFja2JhciAvPlxuICAgICAgPC9TQ0NBSU1XcmFwcGVyPixcbiAgICAgIHNlbGVjdG9yXG4gICAgKVxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FFRUEsV0FBVyxFQUNYQyxPQUFPLEVBQ1BDLFFBQVEsRUFDUkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLGVBQWUsUUFFVixPQUFPO0FBQ2QsT0FBT0MsUUFBUSxNQUFNLFdBQVc7QUFDaEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBRWpELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsYUFBYSxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxZQUFZLFFBQVEseUNBQXlDO0FBQ3RFLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUVsRSxTQUFTQyxpQkFBaUIsUUFBUSxrREFBa0Q7QUFDcEYsU0FBU0MsUUFBUSxRQUFRLG1DQUFtQztBQUM1RCxTQUFTQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFDaEUsU0FBU0MsYUFBYSxRQUFRLDZDQUE2QztBQUMzRSxTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLGFBQWEsRUFBRUMsb0JBQW9CLEVBQUVDLGFBQWEsUUFBUSxzQkFBc0I7QUFDekYsU0FBU0MsMkJBQTJCLFFBQWlDLFVBQVU7QUFDL0UsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLFNBQVNDLGNBQWMsUUFBUSx3Q0FBd0M7QUFFdkUsU0FBU0MsWUFBWSxRQUFRLDZCQUE2QjtBQUMxRCxTQUFTQyxTQUFTLFFBQVEsK0JBQStCO0FBQ3pELFNBQVNDLGlCQUFpQixRQUFRLGdEQUFnRDtBQUNsRixTQUFTQyxVQUFVLFFBQVEscUJBQXFCO0FBQ2hELFNBQVNDLG1CQUFtQixFQUFFQyx3QkFBd0IsUUFBUSx1QkFBdUI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQVFyRixPQUFPLElBQU1DLG1CQUFtQixHQUFHLCtCQUErQjtBQUVsRSxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJQyxPQUFlLEVBQUs7RUFDbkQsSUFBSUEsT0FBTyxLQUFLLFFBQVEsS0FBS0MsTUFBTSxDQUFDQyx3Q0FBd0MsSUFBSUQsTUFBTSxDQUFDRSwyQkFBMkIsQ0FBQyxFQUFFO0lBQ25ILE9BQU8sSUFBSTtFQUNiO0VBQ0EsSUFBSSxDQUFDSCxPQUFPLEtBQUssU0FBUyxJQUFJQSxPQUFPLEtBQUssUUFBUSxLQUFLQyxNQUFNLENBQUNFLDJCQUEyQixFQUFFO0lBQ3pGLE9BQU8sSUFBSTtFQUNiO0VBQ0EsT0FBTyxLQUFLO0FBQ2QsQ0FBQztBQUVELE9BQU8sSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUFDLElBQUEsRUFBMEM7RUFBQSxJQUFBQyxpQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyxZQUFBO0VBQUEsSUFBcENDLFdBQVcsR0FBQUwsSUFBQSxDQUFYSyxXQUFXO0VBQ3ZDLElBQU1DLElBQUksR0FBRzVDLE9BQU8sQ0FBQyxDQUFDO0VBQ3RCLElBQUE2QyxlQUFBLEdBQWlCOUMsY0FBYyxDQUFDLENBQUNhLFFBQVEsQ0FBQ2tDLFFBQVEsQ0FBQyxDQUFDO0lBQTVDQyxJQUFJLEdBQUFGLGVBQUEsQ0FBSkUsSUFBSTtFQUVaLElBQU1DLGdCQUFnQixHQUFHekQsV0FBVyxDQUFDLFlBQU07SUFDekM0QixZQUFZLENBQUM4QixRQUFRLENBQUMsQ0FBQyxDQUFDQyxTQUFTLENBQUMsQ0FBQztJQUNuQ1AsV0FBVyxhQUFYQSxXQUFXLGVBQVhBLFdBQVcsQ0FBRyxDQUFDO0VBQ2pCLENBQUMsRUFBRSxDQUFDQSxXQUFXLENBQUMsQ0FBQztFQUNqQixJQUFBUSxTQUFBLEdBQW9EMUQsUUFBUSxDQUt6RDtNQUNEMkQsT0FBTyxFQUFFLEVBQUU7TUFDWEMsV0FBVyxFQUFFO0lBQ2YsQ0FBQyxDQUFDO0lBQUFDLFVBQUEsR0FBQUMsY0FBQSxDQUFBSixTQUFBO0lBUktLLGtCQUFrQixHQUFBRixVQUFBO0lBQUVHLHFCQUFxQixHQUFBSCxVQUFBO0VBU2hELElBQUFJLFVBQUEsR0FBMENqRSxRQUFRLENBQWdCLElBQUksQ0FBQztJQUFBa0UsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBaEVFLGFBQWEsR0FBQUQsVUFBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsVUFBQTtFQUN0QyxJQUFBRyxVQUFBLEdBQW9DckUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUFBc0UsVUFBQSxHQUFBUixjQUFBLENBQUFPLFVBQUE7SUFBeENFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQUcsVUFBQSxHQUFzRHpFLFFBQVEsQ0FFNUQsSUFBSSxDQUFDO0lBQUEwRSxVQUFBLEdBQUFaLGNBQUEsQ0FBQVcsVUFBQTtJQUZBRSxtQkFBbUIsR0FBQUQsVUFBQTtJQUFFRSxzQkFBc0IsR0FBQUYsVUFBQTtFQUdsRCxJQUFBRyxVQUFBLEdBQTREN0UsUUFBUSxDQUFzQixJQUFJLENBQUM7SUFBQThFLFVBQUEsR0FBQWhCLGNBQUEsQ0FBQWUsVUFBQTtJQUF4RkUsc0JBQXNCLEdBQUFELFVBQUE7SUFBRUUseUJBQXlCLEdBQUFGLFVBQUE7RUFDeEQsSUFBQUcsVUFBQSxHQUFzQ2pGLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQWtGLFdBQUEsR0FBQXBCLGNBQUEsQ0FBQW1CLFVBQUE7SUFBOUNFLFdBQVcsR0FBQUQsV0FBQTtJQUFFRSxjQUFjLEdBQUFGLFdBQUE7RUFDbEMsSUFBQUcsV0FBQSxHQUFrQ3JGLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXNGLFdBQUEsR0FBQXhCLGNBQUEsQ0FBQXVCLFdBQUE7SUFBMUNFLFNBQVMsR0FBQUQsV0FBQTtJQUFFRSxZQUFZLEdBQUFGLFdBQUE7RUFFOUIsSUFBQUcsV0FBQSxHQUF3Q3pGLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTBGLFdBQUEsR0FBQTVCLGNBQUEsQ0FBQTJCLFdBQUE7SUFBaERFLFlBQVksR0FBQUQsV0FBQTtJQUFFRSxlQUFlLEdBQUFGLFdBQUE7RUFDcEMsSUFBQUcsV0FBQSxHQUEwQzdGLFFBQVEsQ0FBQ1csT0FBTyxDQUFDbUYsSUFBSSxDQUFDO0lBQUFDLFdBQUEsR0FBQWpDLGNBQUEsQ0FBQStCLFdBQUE7SUFBekRHLGFBQWEsR0FBQUQsV0FBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsV0FBQTtFQUN0QyxJQUFBRyxXQUFBLEdBQWdDbEcsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBbUcsV0FBQSxHQUFBckMsY0FBQSxDQUFBb0MsV0FBQTtJQUF4Q0UsUUFBUSxHQUFBRCxXQUFBO0lBQUVFLFdBQVcsR0FBQUYsV0FBQTtFQUM1QixJQUFNRyxRQUFRLEdBQUd2RyxPQUFPLENBQUM7SUFBQSxPQUFNVyxhQUFhLENBQUN1RixnQkFBZ0IsRUFBRUksV0FBVyxDQUFDO0VBQUEsR0FBRSxFQUFFLENBQUM7RUFDaEYsSUFBQUUsV0FBQSxHQUE4Q3ZHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXdHLFdBQUEsR0FBQTFDLGNBQUEsQ0FBQXlDLFdBQUE7SUFBdERFLGVBQWUsR0FBQUQsV0FBQTtJQUFFRSxrQkFBa0IsR0FBQUYsV0FBQTtFQUMxQyxJQUFNRyxvQkFBb0IsR0FBRzFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDO0VBQzlELElBQU0yRyxJQUFJLEdBQUd0RCxJQUFJLENBQUN1RCxRQUFRLEtBQUssSUFBSSxHQUFHLE9BQU8sR0FBR3ZELElBQUksQ0FBQ3VELFFBQVE7RUFFN0R4RyxNQUFNLENBQUN5RyxNQUFNLENBQUNGLElBQUksQ0FBQztFQUVuQixJQUFBRyxpQkFBQSxHQVdJakcsZ0JBQWdCLENBQUMsQ0FBQztJQVZwQmtHLFdBQVcsR0FBQUQsaUJBQUEsQ0FBWEMsV0FBVztJQUNYeEUsT0FBTyxHQUFBdUUsaUJBQUEsQ0FBUHZFLE9BQU87SUFDUHlFLEtBQUssR0FBQUYsaUJBQUEsQ0FBTEUsS0FBSztJQUNMQyxPQUFPLEdBQUFILGlCQUFBLENBQVBHLE9BQU87SUFDUEMsTUFBTSxHQUFBSixpQkFBQSxDQUFOSSxNQUFNO0lBQ05DLGVBQWUsR0FBQUwsaUJBQUEsQ0FBZkssZUFBZTtJQUNmQyxpQkFBaUIsR0FBQU4saUJBQUEsQ0FBakJNLGlCQUFpQjtJQUNqQkMsZUFBZSxHQUFBUCxpQkFBQSxDQUFmTyxlQUFlO0lBQ2ZDLFNBQVMsR0FBQVIsaUJBQUEsQ0FBVFEsU0FBUztJQUNUQyxVQUFVLEdBQUFULGlCQUFBLENBQVZTLFVBQVU7RUFHWixJQUFBQyxhQUFBLEdBYUk1RyxZQUFZLENBQUM7TUFBRW1HLFdBQVcsRUFBWEEsV0FBVztNQUFFeEUsT0FBTyxFQUFQQSxPQUFPO01BQUV5RSxLQUFLLEVBQUxBLEtBQUs7TUFBRVMsWUFBWSxFQUFFcEIsUUFBUSxDQUFDUjtJQUFLLENBQUMsQ0FBQztJQVo1RTZCLE1BQU0sR0FBQUYsYUFBQSxDQUFORSxNQUFNO0lBQ05DLE9BQU8sR0FBQUgsYUFBQSxDQUFQRyxPQUFPO0lBQ1BDLFdBQVcsR0FBQUosYUFBQSxDQUFYSSxXQUFXO0lBQ0pDLFVBQVUsR0FBQUwsYUFBQSxDQUFqQk0sS0FBSztJQUNMQyxlQUFlLEdBQUFQLGFBQUEsQ0FBZk8sZUFBZTtJQUNmQyxjQUFjLEdBQUFSLGFBQUEsQ0FBZFEsY0FBYztJQUNkQyxRQUFRLEdBQUFULGFBQUEsQ0FBUlMsUUFBUTtJQUNSQyxXQUFXLEdBQUFWLGFBQUEsQ0FBWFUsV0FBVztJQUNYQyxXQUFXLEdBQUFYLGFBQUEsQ0FBWFcsV0FBVztJQUNYQyxtQkFBbUIsR0FBQVosYUFBQSxDQUFuQlksbUJBQW1CO0lBQ25CQyxnQkFBZ0IsR0FBQWIsYUFBQSxDQUFoQmEsZ0JBQWdCO0lBQ2hCQyxjQUFjLEdBQUFkLGFBQUEsQ0FBZGMsY0FBYztFQUdoQixJQUFNQyxNQUFNLEdBQUcvRyxjQUFjLENBQUN3RixLQUFjLENBQUM7RUFFN0MsSUFBTXdCLGtCQUFrQixHQUN0QixDQUFDLENBQUF0RixJQUFJLGFBQUpBLElBQUksZ0JBQUFMLGlCQUFBLEdBQUpLLElBQUksQ0FBRXVGLFdBQVcsY0FBQTVGLGlCQUFBLGdCQUFBQSxpQkFBQSxHQUFqQkEsaUJBQUEsQ0FBbUI2RixTQUFTLGNBQUE3RixpQkFBQSx1QkFBNUJBLGlCQUFBLENBQThCOEYsTUFBTSxNQUNuQ3pGLElBQUksYUFBSkEsSUFBSSxnQkFBQUosa0JBQUEsR0FBSkksSUFBSSxDQUFFdUYsV0FBVyxjQUFBM0Ysa0JBQUEsZ0JBQUFBLGtCQUFBLEdBQWpCQSxrQkFBQSxDQUFtQjRGLFNBQVMsY0FBQTVGLGtCQUFBLHVCQUE1QkEsa0JBQUEsQ0FBOEI4RixJQUFJLE1BQ2xDMUYsSUFBSSxhQUFKQSxJQUFJLGdCQUFBSCxrQkFBQSxHQUFKRyxJQUFJLENBQUV1RixXQUFXLGNBQUExRixrQkFBQSxnQkFBQUEsa0JBQUEsR0FBakJBLGtCQUFBLENBQW1CMkYsU0FBUyxjQUFBM0Ysa0JBQUEsdUJBQTVCQSxrQkFBQSxVQUFvQyxNQUN0Q1AsTUFBTSxDQUFDQyx3Q0FBd0M7RUFFakQsSUFBTW9HLHFCQUFxQixHQUFHL0ksT0FBTyxDQUFDLFlBQU07SUFDMUMsSUFBTWdKLGtCQUFrQixHQUFHUCxNQUFNLElBQUksQ0FBQXZCLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0IsTUFBTSxNQUFLLFFBQVE7SUFDL0QsSUFBTUMsbUJBQW1CLEdBQUdULE1BQU0sS0FBSyxDQUFBdkIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUrQixNQUFNLE1BQUssU0FBUyxJQUFJLENBQUEvQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sS0FBSSxJQUFJLENBQUM7SUFDNUYsSUFBTUUsa0JBQWtCLEdBQUdWLE1BQU0sSUFBSSxDQUFBdkIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUrQixNQUFNLE1BQUssUUFBUTtJQUMvRCxJQUFNRyxTQUFTLEdBQUdKLGtCQUFrQixJQUFJLHdCQUF3QixDQUFDSyxJQUFJLENBQUMsQ0FBQW5DLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFb0MsSUFBSSxLQUFJLEVBQUUsQ0FBQztJQUV4RixJQUFJckQsYUFBYSxLQUFLckYsT0FBTyxDQUFDMkksUUFBUSxFQUFFO01BQ3RDLE9BQU8zSSxPQUFPLENBQUMySSxRQUFRO0lBQ3pCO0lBRUEsSUFBSVAsa0JBQWtCLElBQUksQ0FBQ0ksU0FBUyxJQUFJbkQsYUFBYSxLQUFLckYsT0FBTyxDQUFDbUYsSUFBSSxFQUFFO01BQ3RFLE9BQU9uRixPQUFPLENBQUM0SSxJQUFJO0lBQ3JCO0lBRUEsSUFBTUMseUJBQXlCLEdBQUd4RCxhQUFhLEtBQUtyRixPQUFPLENBQUM0SSxJQUFJLElBQUlOLG1CQUFtQixJQUFJLENBQUMvQixPQUFPO0lBQ25HLElBQU11Qyx3QkFBd0IsR0FBR3pELGFBQWEsS0FBS3JGLE9BQU8sQ0FBQzRJLElBQUksSUFBSUwsa0JBQWtCLElBQUksQ0FBQy9CLE1BQU07SUFFaEcsSUFBSXFDLHlCQUF5QixFQUFFO01BQzdCLE9BQU83SSxPQUFPLENBQUMrSSxlQUFlO0lBQ2hDO0lBQ0EsSUFBSUQsd0JBQXdCLEVBQUU7TUFDNUIsT0FBTzlJLE9BQU8sQ0FBQ2dKLGNBQWM7SUFDL0I7SUFDQSxPQUFPM0QsYUFBYTtFQUN0QixDQUFDLEVBQUUsQ0FBQ0EsYUFBYSxFQUFFa0IsT0FBTyxFQUFFQyxNQUFNLEVBQUVxQixNQUFNLEVBQUV2QixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sRUFBRS9CLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFb0MsSUFBSSxDQUFDLENBQUM7RUFFeEUsSUFBTU8sc0JBQXNCLEdBQUc3SixPQUFPLENBQ3BDO0lBQUEsT0FDRXlJLE1BQU0sSUFDTixDQUFBdkIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUrQixNQUFNLE1BQUssUUFBUSxJQUMxQixDQUFBL0IsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUU0QyxJQUFJLE1BQUssT0FBTyxJQUN2Qix3QkFBd0IsQ0FBQ1QsSUFBSSxDQUFDLENBQUFuQyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRW9DLElBQUksS0FBSSxFQUFFLENBQUM7RUFBQSxHQUNsRCxDQUFDYixNQUFNLEVBQUV2QixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sRUFBRS9CLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFNEMsSUFBSSxFQUFFNUMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVvQyxJQUFJLENBQ2xELENBQUM7RUFFRCxJQUFNUyxzQkFBc0IsR0FBRy9KLE9BQU8sQ0FBQyxZQUFxQztJQUMxRSxJQUFJK0kscUJBQXFCLEtBQUtuSSxPQUFPLENBQUMySSxRQUFRLEVBQUUsT0FBTyxVQUFVO0lBQ2pFLElBQUlNLHNCQUFzQixFQUFFLE9BQU8sU0FBUztJQUM1QyxPQUFPLElBQUk7RUFDYixDQUFDLEVBQUUsQ0FBQ2QscUJBQXFCLEVBQUVjLHNCQUFzQixDQUFDLENBQUM7O0VBRW5EO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0VBRUUsSUFBTUcsZ0JBQWdCLEdBQUc5SixNQUFNLENBQUMsS0FBSyxDQUFDO0VBQ3RDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7RUFDRSxJQUFNK0osaUJBQWlCLEdBQUcvSixNQUFNLENBQUMsQ0FBQyxDQUFDO0VBRW5DLElBQU1nSyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxLQUFBQyxNQUFBLENBQUs5SCxtQkFBbUIsQ0FBRSxDQUFDO0VBRWxFLElBQUErSCxXQUFBLEdBQW9DckssUUFBUSxDQUEwQixTQUFTLENBQUM7SUFBQXNLLFdBQUEsR0FBQXhHLGNBQUEsQ0FBQXVHLFdBQUE7SUFBekVFLFVBQVUsR0FBQUQsV0FBQTtJQUFFRSxhQUFhLEdBQUFGLFdBQUE7RUFDaEMsSUFBTUcsUUFBUSxHQUFHRixVQUFVLEtBQUssWUFBWTtFQUM1QyxJQUFNRyxVQUFVLEdBQUdILFVBQVUsS0FBSyxVQUFVO0VBQzVDLElBQU1JLGlCQUFpQixHQUFHMUssTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDdEQsSUFBQTJLLFdBQUEsR0FBd0M1SyxRQUFRLENBQWtDLElBQUksQ0FBQztJQUFBNkssV0FBQSxHQUFBL0csY0FBQSxDQUFBOEcsV0FBQTtJQUFoRkUsWUFBWSxHQUFBRCxXQUFBO0lBQUVFLGVBQWUsR0FBQUYsV0FBQTtFQUNwQyxJQUFBRyxxQkFBQSxHQUNFakosd0JBQXdCLENBQUMySSxVQUFVLENBQUM7SUFEOUJPLFVBQVUsR0FBQUQscUJBQUEsQ0FBVkMsVUFBVTtJQUFFQyxvQkFBb0IsR0FBQUYscUJBQUEsQ0FBcEJFLG9CQUFvQjtJQUFFQyxpQkFBaUIsR0FBQUgscUJBQUEsQ0FBakJHLGlCQUFpQjtJQUFFQyxrQkFBa0IsR0FBQUoscUJBQUEsQ0FBbEJJLGtCQUFrQjtFQUUvRSxJQUFNQyxZQUFZLEdBQUdwTCxNQUFNLENBSWpCLElBQUksQ0FBQztFQUVmLElBQU1xTCxpQkFBaUIsR0FBR3hMLFdBQVcsQ0FBQyxVQUFDeUwsQ0FBUyxFQUFFQyxDQUFTLEVBQUs7SUFDOUQsSUFBTUMsY0FBYyxHQUFHZCxpQkFBaUIsQ0FBQ2UsT0FBTztJQUNoRCxJQUFJLENBQUNELGNBQWMsRUFBRTtNQUNuQixPQUFPO1FBQUVGLENBQUMsRUFBREEsQ0FBQztRQUFFQyxDQUFDLEVBQURBO01BQUUsQ0FBQztJQUNqQjtJQUVBLElBQUFHLHFCQUFBLEdBQTBCRixjQUFjLENBQUNHLHFCQUFxQixDQUFDLENBQUM7TUFBeERDLEtBQUssR0FBQUYscUJBQUEsQ0FBTEUsS0FBSztNQUFFQyxNQUFNLEdBQUFILHFCQUFBLENBQU5HLE1BQU07SUFDckIsSUFBTUMsTUFBTSxHQUFHLEVBQUU7SUFDakIsSUFBTUMsSUFBSSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0gsTUFBTSxFQUFFdEosTUFBTSxDQUFDMEosVUFBVSxHQUFHTixLQUFLLEdBQUdFLE1BQU0sQ0FBQztJQUNqRSxJQUFNSyxJQUFJLEdBQUdILElBQUksQ0FBQ0MsR0FBRyxDQUFDSCxNQUFNLEVBQUV0SixNQUFNLENBQUM0SixXQUFXLEdBQUdQLE1BQU0sR0FBR0MsTUFBTSxDQUFDO0lBRW5FLE9BQU87TUFDTFIsQ0FBQyxFQUFFVSxJQUFJLENBQUNLLEdBQUcsQ0FBQ0wsSUFBSSxDQUFDQyxHQUFHLENBQUNYLENBQUMsRUFBRVEsTUFBTSxDQUFDLEVBQUVDLElBQUksQ0FBQztNQUN0Q1IsQ0FBQyxFQUFFUyxJQUFJLENBQUNLLEdBQUcsQ0FBQ0wsSUFBSSxDQUFDQyxHQUFHLENBQUNWLENBQUMsRUFBRU8sTUFBTSxDQUFDLEVBQUVLLElBQUk7SUFDdkMsQ0FBQztFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTmpNLGVBQWUsQ0FBQyxZQUFNO0lBQ3BCLElBQUlvSyxVQUFVLEtBQUssVUFBVSxFQUFFO01BQzdCUSxlQUFlLENBQUMsSUFBSSxDQUFDO01BQ3JCO0lBQ0Y7SUFFQUEsZUFBZSxDQUFDLFVBQUF3QixJQUFJLEVBQUk7TUFDdEIsSUFBSUEsSUFBSSxFQUFFO1FBQ1IsT0FBT2pCLGlCQUFpQixDQUFDaUIsSUFBSSxDQUFDaEIsQ0FBQyxFQUFFZ0IsSUFBSSxDQUFDZixDQUFDLENBQUM7TUFDMUM7TUFDQSxJQUFNZ0IsR0FBRyxHQUFHLEVBQUU7TUFDZCxJQUFNakIsQ0FBQyxHQUFHOUksTUFBTSxDQUFDMEosVUFBVSxHQUFHNUssMkJBQTJCLENBQUMsQ0FBQyxHQUFHaUwsR0FBRztNQUNqRSxPQUFPbEIsaUJBQWlCLENBQUNDLENBQUMsRUFBRWlCLEdBQUcsQ0FBQztJQUNsQyxDQUFDLENBQUM7RUFDSixDQUFDLEVBQUUsQ0FBQ2pDLFVBQVUsRUFBRWUsaUJBQWlCLENBQUMsQ0FBQztFQUVuQyxJQUFNbUIsYUFBYSxHQUFHM00sV0FBVyxDQUMvQixVQUFDNE0sS0FBd0MsRUFBSztJQUFBLElBQUFDLHFCQUFBO0lBQzVDdkIsa0JBQWtCLENBQUMsQ0FBQztJQUNwQixJQUFJLEVBQUF1QixxQkFBQSxHQUFBdEIsWUFBWSxDQUFDSyxPQUFPLGNBQUFpQixxQkFBQSx1QkFBcEJBLHFCQUFBLENBQXNCQyxTQUFTLE1BQUtGLEtBQUssQ0FBQ0UsU0FBUyxFQUFFO01BQ3ZEO0lBQ0Y7SUFFQXZCLFlBQVksQ0FBQ0ssT0FBTyxHQUFHLElBQUk7SUFDM0J4QixRQUFRLENBQUMyQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsVUFBVSxHQUFHLEVBQUU7SUFDbkM3QyxRQUFRLENBQUMyQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0UsTUFBTSxHQUFHLEVBQUU7RUFDakMsQ0FBQyxFQUNELENBQUM1QixrQkFBa0IsQ0FDckIsQ0FBQztFQUVELElBQU02QixjQUFjLEdBQUduTixXQUFXLENBQ2hDLFVBQUM0TSxLQUF3QyxFQUFLO0lBQzVDLElBQU1RLFNBQVMsR0FBRzdCLFlBQVksQ0FBQ0ssT0FBTztJQUN0QyxJQUFJLENBQUN3QixTQUFTLElBQUlBLFNBQVMsQ0FBQ04sU0FBUyxLQUFLRixLQUFLLENBQUNFLFNBQVMsRUFBRTtNQUN6RDtJQUNGO0lBRUF6QixpQkFBaUIsQ0FBQ3VCLEtBQUssQ0FBQ1MsT0FBTyxFQUFFVCxLQUFLLENBQUNVLE9BQU8sQ0FBQztJQUUvQyxJQUFNQyxZQUFZLEdBQUcvQixpQkFBaUIsQ0FBQ29CLEtBQUssQ0FBQ1MsT0FBTyxHQUFHRCxTQUFTLENBQUNJLE9BQU8sRUFBRVosS0FBSyxDQUFDVSxPQUFPLEdBQUdGLFNBQVMsQ0FBQ0ssT0FBTyxDQUFDO0lBRTVHeEMsZUFBZSxDQUFDLFVBQUF3QixJQUFJLEVBQUk7TUFDdEIsSUFBSUEsSUFBSSxJQUFJQSxJQUFJLENBQUNoQixDQUFDLEtBQUs4QixZQUFZLENBQUM5QixDQUFDLElBQUlnQixJQUFJLENBQUNmLENBQUMsS0FBSzZCLFlBQVksQ0FBQzdCLENBQUMsRUFBRTtRQUNsRSxPQUFPZSxJQUFJO01BQ2I7TUFDQSxPQUFPYyxZQUFZO0lBQ3JCLENBQUMsQ0FBQztFQUNKLENBQUMsRUFDRCxDQUFDL0IsaUJBQWlCLEVBQUVILGlCQUFpQixDQUN2QyxDQUFDO0VBRUQsSUFBTXFDLG9CQUFvQixHQUFHek4sT0FBTyxDQUFDLFlBQU07SUFDekMsSUFBSXdLLFVBQVUsS0FBSyxVQUFVLEVBQUU7TUFDN0IsT0FBT08sWUFBWTtJQUNyQjtJQUNBLElBQUlBLFlBQVksRUFBRTtNQUNoQixPQUFPQSxZQUFZO0lBQ3JCO0lBQ0EsSUFBTTBCLEdBQUcsR0FBRyxFQUFFO0lBQ2QsSUFBTWpCLENBQUMsR0FBRyxPQUFPOUksTUFBTSxLQUFLLFdBQVcsR0FBR0EsTUFBTSxDQUFDMEosVUFBVSxHQUFHNUssMkJBQTJCLENBQUMsQ0FBQyxHQUFHaUwsR0FBRyxHQUFHQSxHQUFHO0lBQ3ZHLE9BQU9sQixpQkFBaUIsQ0FBQ0MsQ0FBQyxFQUFFaUIsR0FBRyxDQUFDO0VBQ2xDLENBQUMsRUFBRSxDQUFDakMsVUFBVSxFQUFFTyxZQUFZLEVBQUVRLGlCQUFpQixDQUFDLENBQUM7RUFFakQsSUFBTW1DLGVBQWUsR0FBRzNOLFdBQVcsQ0FDakMsVUFBQzRNLEtBQXdDLEVBQUs7SUFDNUMsSUFBSSxDQUFDaEMsVUFBVSxJQUFJZ0MsS0FBSyxDQUFDZ0IsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUNyQztJQUNGO0lBRUEsSUFBTUMsTUFBTSxHQUFHakIsS0FBSyxDQUFDaUIsTUFBcUI7SUFDMUMsSUFBSUEsTUFBTSxDQUFDQyxPQUFPLENBQUMsNEVBQTRFLENBQUMsRUFBRTtNQUNoRztJQUNGO0lBRUEsSUFBTW5DLGNBQWMsR0FBR2QsaUJBQWlCLENBQUNlLE9BQU87SUFDaEQsSUFBSSxDQUFDRCxjQUFjLEVBQUU7TUFDbkI7SUFDRjtJQUVBLElBQU1vQyxJQUFJLEdBQUdwQyxjQUFjLENBQUNHLHFCQUFxQixDQUFDLENBQUM7SUFDbkQsSUFBTWtDLGVBQWUsR0FBR04sb0JBQW9CLGFBQXBCQSxvQkFBb0IsY0FBcEJBLG9CQUFvQixHQUFJbEMsaUJBQWlCLENBQUN1QyxJQUFJLENBQUNFLElBQUksRUFBRUYsSUFBSSxDQUFDRyxHQUFHLENBQUM7SUFDdEYsSUFBTUMsY0FBYyxHQUFHdkIsS0FBSyxDQUFDUyxPQUFPLEdBQUdXLGVBQWUsQ0FBQ3ZDLENBQUM7SUFDeEQsSUFBTTJDLGNBQWMsR0FBR3hCLEtBQUssQ0FBQ1UsT0FBTyxHQUFHVSxlQUFlLENBQUN0QyxDQUFDO0lBRXhEVCxlQUFlLENBQUMrQyxlQUFlLENBQUM7SUFDaEN6QyxZQUFZLENBQUNLLE9BQU8sR0FBRztNQUNyQmtCLFNBQVMsRUFBRUYsS0FBSyxDQUFDRSxTQUFTO01BQzFCVSxPQUFPLEVBQUVXLGNBQWM7TUFDdkJWLE9BQU8sRUFBRVc7SUFDWCxDQUFDO0lBRUR4QixLQUFLLENBQUN5QixhQUFhLENBQUNDLGlCQUFpQixDQUFDMUIsS0FBSyxDQUFDRSxTQUFTLENBQUM7SUFDdERGLEtBQUssQ0FBQzJCLGNBQWMsQ0FBQyxDQUFDO0lBRXRCbkUsUUFBUSxDQUFDMkMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFVBQVUsR0FBRyxNQUFNO0lBQ3ZDN0MsUUFBUSxDQUFDMkMsSUFBSSxDQUFDQyxLQUFLLENBQUNFLE1BQU0sR0FBRyxVQUFVO0lBQ3ZDOUIsb0JBQW9CLENBQUN3QixLQUFLLENBQUNTLE9BQU8sRUFBRVQsS0FBSyxDQUFDVSxPQUFPLENBQUM7RUFDcEQsQ0FBQyxFQUNELENBQUM5QixpQkFBaUIsRUFBRVosVUFBVSxFQUFFOEMsb0JBQW9CLEVBQUV0QyxvQkFBb0IsQ0FDNUUsQ0FBQztFQUVELElBQU1vRCxTQUFTLEdBQUd4TyxXQUFXLENBQzNCLFVBQUM2RCxPQUFnQixFQUFFQyxXQUE4QixFQUFFMkssS0FBYyxFQUFFQyxpQkFBMEIsRUFBSztJQUNoRyxJQUFJL0gsZUFBZSxFQUFFO01BQ25CQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7SUFDM0I7SUFDQXRDLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUN0QkksYUFBYSxDQUFDLFVBQUErSCxJQUFJO01BQUEsT0FBSUEsSUFBSSxHQUFHLENBQUM7SUFBQSxFQUFDO0lBQy9CdkkscUJBQXFCLENBQUF5SyxhQUFBLENBQUFBLGFBQUE7TUFDbkI5SyxPQUFPLEVBQUVBLE9BQU8sSUFBSSxFQUFFO01BQ3RCQyxXQUFXLEVBQUVBLFdBQVcsSUFBSTtJQUFFLEdBQzFCMkssS0FBSyxHQUFHO01BQUVBLEtBQUssRUFBTEE7SUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ3RCQyxpQkFBaUIsR0FBRztNQUFFQSxpQkFBaUIsRUFBakJBO0lBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNGbEksUUFBUSxDQUFDaUQsSUFBSSxDQUFDLENBQUM7RUFDakIsQ0FBQyxFQUNELENBQUNqRCxRQUFRLEVBQUVHLGVBQWUsQ0FDNUIsQ0FBQztFQUVELElBQU1pSSxRQUFRLEdBQUc1TyxXQUFXLENBQzFCLFVBQUN5SixJQUFTLEVBQUs7SUFDYnZGLHFCQUFxQixDQUFDO01BQUVMLE9BQU8sRUFBRSxFQUFFO01BQUVDLFdBQVcsRUFBRTtJQUFHLENBQUMsQ0FBQztJQUN2RFEsZ0JBQWdCLENBQUNtRixJQUFJLENBQUNvRixpQkFBaUIsQ0FBQztJQUN4QyxJQUFNQyxhQUFhLEdBQUdqSCxNQUFNLENBQUNrSCxJQUFJLENBQUNDLElBQUksQ0FBQyxVQUFBQyxTQUFTO01BQUEsT0FBSUEsU0FBUyxDQUFDQyxFQUFFLEtBQUt6RixJQUFJLENBQUMwRixPQUFPO0lBQUEsRUFBQztJQUNsRixJQUFJTCxhQUFhLEVBQUU7TUFDakI1SCxXQUFXLENBQUM0SCxhQUFhLENBQUM7SUFDNUI7SUFDQTtJQUNBMUUsUUFBUSxDQUFDZ0YsYUFBYSxDQUFDLElBQUlDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQy9EN0ksUUFBUSxDQUFDaUQsSUFBSSxDQUFDLENBQUM7RUFDakIsQ0FBQyxFQUNELENBQUNqRCxRQUFRLEVBQUVxQixNQUFNLEVBQUVYLFdBQVcsQ0FDaEMsQ0FBQzs7RUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRSxJQUFNb0ksZ0JBQWdCLEdBQUd0UCxXQUFXO0lBQUEsSUFBQXVQLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUNsQyxTQUFBQyxRQUFPQyxTQUFtQyxFQUFFQyxRQUFpQztNQUFBLElBQUFDLFNBQUEsRUFBQUMsT0FBQSxFQUFBQyxFQUFBO01BQUEsT0FBQVAsbUJBQUEsQ0FBQVEsSUFBQSxXQUFBQyxRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQXpELElBQUEsR0FBQXlELFFBQUEsQ0FBQUMsSUFBQTtVQUFBO1lBQUEsSUFDdEVQLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVWLEVBQUU7Y0FBQWdCLFFBQUEsQ0FBQUMsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBRCxRQUFBLENBQUFFLE1BQUEsV0FBUyxLQUFLO1VBQUE7WUFDaENsRyxpQkFBaUIsQ0FBQzBCLE9BQU8sSUFBSSxDQUFDO1lBQ3hCa0UsU0FBUyxHQUFHNUYsaUJBQWlCLENBQUMwQixPQUFPO1lBQUFzRSxRQUFBLENBQUF6RCxJQUFBO1lBQUF5RCxRQUFBLENBQUFDLElBQUE7WUFBQSxPQUVuQnJPLGlCQUFpQixDQUFDO2NBQ3RDcUYsS0FBSyxFQUFFeUksU0FBUztjQUNoQkMsUUFBUSxFQUFSQSxRQUFRO2NBQ1IvSSxJQUFJLEVBQUUvRSxVQUFVLENBQUN5QixJQUFJLENBQUN1RCxRQUFRO1lBQ2hDLENBQUMsQ0FBQztVQUFBO1lBSklnSixPQUFPLEdBQUFHLFFBQUEsQ0FBQUcsSUFBQTtZQUFBLE1BTVRQLFNBQVMsS0FBSzVGLGlCQUFpQixDQUFDMEIsT0FBTztjQUFBc0UsUUFBQSxDQUFBQyxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFELFFBQUEsQ0FBQUUsTUFBQSxXQUFTLEtBQUs7VUFBQTtZQUFBLEtBQ3JETCxPQUFPO2NBQUFHLFFBQUEsQ0FBQUMsSUFBQTtjQUFBO1lBQUE7WUFDVHZCLFFBQVEsQ0FBQ21CLE9BQU8sQ0FBQztZQUFBLE9BQUFHLFFBQUEsQ0FBQUUsTUFBQSxXQUNWLElBQUk7VUFBQTtZQUFBRixRQUFBLENBQUFDLElBQUE7WUFBQTtVQUFBO1lBQUFELFFBQUEsQ0FBQXpELElBQUE7WUFBQXVELEVBQUEsR0FBQUUsUUFBQTtZQUdiSSxPQUFPLENBQUNySSxLQUFLLENBQUMsaUNBQWlDLEVBQUErSCxFQUFLLENBQUM7VUFBQTtZQUFBLE9BQUFFLFFBQUEsQ0FBQUUsTUFBQSxXQUVoRCxLQUFLO1VBQUE7VUFBQTtZQUFBLE9BQUFGLFFBQUEsQ0FBQUssSUFBQTtRQUFBO01BQUEsR0FBQVosT0FBQTtJQUFBLENBQ2I7SUFBQSxpQkFBQWEsRUFBQSxFQUFBQyxHQUFBO01BQUEsT0FBQWxCLEtBQUEsQ0FBQW1CLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0VBQUEsS0FDRCxDQUFDL0IsUUFBUSxFQUFFcEwsSUFBSSxDQUFDdUQsUUFBUSxDQUMxQixDQUFDO0VBRUQsSUFBTTZKLHNCQUFzQixHQUFHNVEsV0FBVyxDQUN4QyxVQUNFNlEsV0FLUyxFQUNUQyxjQUEwQixFQUMxQkMsU0FBa0IsRUFDbEJDLE9BQWdCLEVBQ2I7SUFDSGxNLHNCQUFzQixDQUFDO01BQUEsT0FBTStMLFdBQVc7SUFBQSxFQUFDO0lBQ3pDM0wseUJBQXlCLENBQUM7TUFBQSxPQUFNNEwsY0FBYztJQUFBLEVBQUM7SUFDL0N4TCxjQUFjLENBQUN5TCxTQUFTLENBQUM7SUFDekJyTCxZQUFZLENBQUNzTCxPQUFPLENBQUM7RUFDdkIsQ0FBQyxFQUNELEVBQ0YsQ0FBQztFQUVELElBQU1DLGlCQUFpQixHQUFHalIsV0FBVyxDQUNuQyxVQUFDNkQsT0FBZSxFQUFFQyxXQUE4QixFQUFFMkssS0FBYyxFQUFFQyxpQkFBMEIsRUFBSztJQUMvRixJQUFJL0gsZUFBZSxFQUFFO01BQ25CQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7SUFDM0I7SUFDQSxJQUFJL0IsbUJBQW1CLElBQUltRSxxQkFBcUIsS0FBS25JLE9BQU8sQ0FBQzRJLElBQUksRUFBRTtNQUNqRTVFLG1CQUFtQixDQUFDaEIsT0FBTyxFQUFFQyxXQUFXLEVBQUUySyxLQUFLLEVBQUVDLGlCQUFpQixDQUFDO0lBQ3JFLENBQUMsTUFBTTtNQUNMRixTQUFTLENBQUMzSyxPQUFPLEVBQUVDLFdBQVcsRUFBRTJLLEtBQUssRUFBRUMsaUJBQWlCLENBQUM7SUFDM0Q7RUFDRixDQUFDLEVBQ0QsQ0FBQzdKLG1CQUFtQixFQUFFMkosU0FBUyxFQUFFeEYscUJBQXFCLEVBQUVyQyxlQUFlLENBQ3pFLENBQUM7RUFFRCxJQUFNaUIsWUFBWSxHQUFHNUgsV0FBVyxDQUFDLFlBQU07SUFDckM7SUFDQSxJQUFJa0csYUFBYSxLQUFLckYsT0FBTyxDQUFDNEksSUFBSSxFQUFFO01BQ2xDbkYsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO01BQ3RCSSxhQUFhLENBQUMsVUFBQStILElBQUk7UUFBQSxPQUFJQSxJQUFJLEdBQUcsQ0FBQztNQUFBLEVBQUM7TUFDL0I7TUFDQSxJQUFJLENBQUF0RixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRStCLE1BQU0sTUFBSyxRQUFRLEVBQUU7UUFDOUJ6QixTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFHLElBQUksQ0FBQztNQUNuQjtJQUNGO0lBQ0EsSUFDRSxDQUFDLENBQUNOLEtBQUssSUFBSUEsS0FBSyxhQUFMQSxLQUFLLGVBQUxBLEtBQUssQ0FBRStKLFVBQVUsSUFBSS9KLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVnSyxtQkFBbUIsSUFBSWhLLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVpSyxjQUFjLElBQUlqSyxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFa0ssZUFBZSxLQUM3R3hKLE1BQU0sQ0FBQ2tILElBQUksQ0FBQ3VDLE1BQU0sR0FBRyxDQUFDLEVBQ3RCO01BQ0FwSyxXQUFXLENBQUNXLE1BQU0sQ0FBQ2tILElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QjtJQUNBNUksZ0JBQWdCLENBQUN0RixPQUFPLENBQUNtRixJQUFJLENBQUM7SUFDOUJ3QixlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3JCakIsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQmdCLGlCQUFpQixJQUFJRCxlQUFlLENBQUMsQ0FBQztJQUN0QyxJQUFJVCxvQkFBb0IsQ0FBQytFLE9BQU8sRUFBRTtNQUNoQy9FLG9CQUFvQixDQUFDK0UsT0FBTyxDQUFDLENBQUM7SUFDaEM7RUFDRixDQUFDLEVBQUUsQ0FDRC9LLE9BQU8sQ0FBQ21GLElBQUksRUFDWm5GLE9BQU8sQ0FBQzRJLElBQUksRUFDWnZELGFBQWEsRUFDYnFCLGlCQUFpQixFQUNqQkQsZUFBZSxFQUNmSCxLQUFLLEVBQ0xVLE1BQU0sRUFDTlgsV0FBVyxFQUNYTyxTQUFTLENBQ1YsQ0FBQztFQUVGLElBQU04SixlQUFlLEdBQUd2UixXQUFXLGNBQUF3UCxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUMsU0FBQThCLFNBQUE7SUFBQSxPQUFBL0IsbUJBQUEsQ0FBQVEsSUFBQSxXQUFBd0IsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUFoRixJQUFBLEdBQUFnRixTQUFBLENBQUF0QixJQUFBO1FBQUE7VUFDbENqTSxxQkFBcUIsQ0FBQztZQUFFTCxPQUFPLEVBQUUsRUFBRTtZQUFFQyxXQUFXLEVBQUU7VUFBRyxDQUFDLENBQUM7VUFDdkRRLGdCQUFnQixDQUFDLElBQUksQ0FBQztVQUN0QjtVQUNBOEYsUUFBUSxDQUFDZ0YsYUFBYSxDQUFDLElBQUlDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1VBQy9EekgsWUFBWSxDQUFDLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQTZKLFNBQUEsQ0FBQWxCLElBQUE7TUFBQTtJQUFBLEdBQUFpQixRQUFBO0VBQUEsQ0FDZixJQUFFLENBQUM1SixZQUFZLENBQUMsQ0FBQztFQUVsQnhILFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNkosZ0JBQWdCLENBQUMyQixPQUFPLEVBQUU7TUFDN0IzQixnQkFBZ0IsQ0FBQzJCLE9BQU8sR0FBRyxJQUFJO01BQy9CMUQsZUFBZSxDQUFDLENBQUM7SUFDbkI7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsZUFBZSxDQUFDLENBQUM7RUFFckI5SCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU1zUixtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxHQUFVLEVBQUs7TUFDMUMsSUFBQUMsS0FBQSxHQUE4QkQsR0FBRyxDQUFtQ0UsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUFqRWpDLFNBQVMsR0FBQWdDLEtBQUEsQ0FBaEJ6SyxLQUFLO01BQ2IsSUFBSXlJLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVWLEVBQUUsRUFBRTtRQUNqQjlHLFFBQVEsQ0FBQ3dILFNBQVMsRUFBRTtVQUFFa0MsWUFBWSxFQUFFO1FBQU0sQ0FBQyxDQUFDO01BQzlDO0lBQ0YsQ0FBQztJQUNEMUgsUUFBUSxDQUFDMkgsZ0JBQWdCLENBQUMsb0NBQW9DLEVBQUVMLG1CQUFtQixDQUFDO0lBQ3BGLE9BQU8sWUFBTTtNQUNYdEgsUUFBUSxDQUFDNEgsbUJBQW1CLENBQUMsb0NBQW9DLEVBQUVOLG1CQUFtQixDQUFDO0lBQ3pGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ3RKLFFBQVEsQ0FBQyxDQUFDO0VBRWRoSSxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU02UixpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJTixHQUFVLEVBQUs7TUFDeEMsSUFBQU8sS0FBQSxHQUE4QlAsR0FBRyxDQUFtQ0UsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUFqRWpDLFNBQVMsR0FBQXNDLEtBQUEsQ0FBaEIvSyxLQUFLO01BQ2IsSUFBSSxFQUFDeUksU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRVYsRUFBRSxHQUFFO01BQ3BCNUcsV0FBVyxDQUFDc0gsU0FBUyxDQUFDO01BQ3RCLElBQUksQ0FBQXpJLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0gsRUFBRSxNQUFLVSxTQUFTLENBQUNWLEVBQUUsRUFBRTtRQUM5QmhJLFdBQVcsQ0FBQzBJLFNBQVMsQ0FBQztNQUN4QjtJQUNGLENBQUM7SUFDRHhGLFFBQVEsQ0FBQzJILGdCQUFnQixDQUFDLGtDQUFrQyxFQUFFRSxpQkFBaUIsQ0FBQztJQUNoRixPQUFPLFlBQU07TUFDWDdILFFBQVEsQ0FBQzRILG1CQUFtQixDQUFDLGtDQUFrQyxFQUFFQyxpQkFBaUIsQ0FBQztJQUNyRixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUMzSixXQUFXLEVBQUVwQixXQUFXLEVBQUVDLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0gsRUFBRSxDQUFDLENBQUM7RUFFekM5TyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU0rUixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO01BQ3pCNUwsV0FBVyxDQUFDLEtBQUssQ0FBQztNQUNsQmpDLGdCQUFnQixDQUFDLElBQUksQ0FBQztNQUN0QkksYUFBYSxDQUFDLFVBQUErSCxJQUFJO1FBQUEsT0FBSUEsSUFBSSxHQUFHLENBQUM7TUFBQSxFQUFDO01BQy9CdkkscUJBQXFCLENBQUM7UUFBRUwsT0FBTyxFQUFFLEVBQUU7UUFBRUMsV0FBVyxFQUFFO01BQUcsQ0FBQyxDQUFDO01BQ3ZEcUMsZ0JBQWdCLENBQUN0RixPQUFPLENBQUM0SSxJQUFJLENBQUM7TUFDOUJXLFFBQVEsQ0FBQ2dGLGFBQWEsQ0FBQyxJQUFJQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0RqRixRQUFRLENBQUMySCxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRUksWUFBWSxDQUFDO0lBQzlELE9BQU8sWUFBTTtNQUNYL0gsUUFBUSxDQUFDNEgsbUJBQW1CLENBQUMscUJBQXFCLEVBQUVHLFlBQVksQ0FBQztJQUNuRSxDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs7RUFFTjtFQUNBL1IsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNZ1Msb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSXhGLEtBQVksRUFBSztNQUFBLElBQUF5RixPQUFBO01BQzdDLElBQU16QyxTQUFTLElBQUF5QyxPQUFBLEdBQUl6RixLQUFLLENBQW1DaUYsTUFBTSxjQUFBUSxPQUFBLHVCQUEvQ0EsT0FBQSxDQUFpRGxMLEtBQUs7TUFDeEUsSUFBSSxDQUFDeUksU0FBUyxFQUFFO01BRWhCbEksVUFBVSxDQUFDLElBQUksQ0FBQztNQUNoQkQsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRyxJQUFJLENBQUM7TUFDakJQLFdBQVcsQ0FBQzBJLFNBQVMsQ0FBQztNQUN0QnJKLFdBQVcsQ0FBQyxLQUFLLENBQUM7TUFDbEJKLGdCQUFnQixDQUFDdEYsT0FBTyxDQUFDbUYsSUFBSSxDQUFDOztNQUU5QjtNQUNBO01BQ0EsSUFBTXNNLFdBQVcsR0FDZixDQUFBMUMsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUU3RixJQUFJLE1BQUssT0FBTyxLQUFLLENBQUE2RixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRTFHLE1BQU0sTUFBSyxTQUFTLElBQUksQ0FBQTBHLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFMUcsTUFBTSxNQUFLLFFBQVEsQ0FBQztNQUNwRyxJQUFJLENBQUNvSixXQUFXLEVBQUU7UUFDaEJoRCxnQkFBZ0IsQ0FBQ00sU0FBUyxDQUFDO01BQzdCO0lBQ0YsQ0FBQztJQUVEeEYsUUFBUSxDQUFDMkgsZ0JBQWdCLENBQUMsK0JBQStCLEVBQUVLLG9CQUFvQixDQUFDO0lBQ2hGLE9BQU8sWUFBTTtNQUNYaEksUUFBUSxDQUFDNEgsbUJBQW1CLENBQUMsK0JBQStCLEVBQUVJLG9CQUFvQixDQUFDO0lBQ3JGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ2xMLFdBQVcsRUFBRU8sU0FBUyxFQUFFQyxVQUFVLEVBQUU0SCxnQkFBZ0IsQ0FBQyxDQUFDO0VBRTFELElBQU1pRCxXQUFXLEdBQUd2SixxQkFBcUIsS0FBS25JLE9BQU8sQ0FBQzRJLElBQUk7RUFDMUQsSUFBTStJLHVCQUF1QixHQUFHeEoscUJBQXFCLEtBQUtuSSxPQUFPLENBQUMySSxRQUFRO0VBQzFFLElBQU1pSixxQkFBcUIsR0FBR3pTLFdBQVcsQ0FBQyxZQUFNO0lBQzlDbUcsZ0JBQWdCLENBQUN0RixPQUFPLENBQUMySSxRQUFRLENBQUM7RUFDcEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs7RUFFTjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsSUFBTWtKLG1CQUFtQixHQUFHMVMsV0FBVyxDQUFDLFlBQU07SUFDNUMsSUFBTTJTLFlBQVksR0FBR3hMLEtBQUs7O0lBRTFCO0lBQ0EsSUFBSSxDQUFBd0wsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUU1SSxJQUFJLE1BQUssT0FBTyxJQUFJLENBQUE0SSxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRXpKLE1BQU0sTUFBSyxTQUFTLEVBQUU7TUFDeEV4QixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUMsTUFBTSxJQUFJLENBQUFpTCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRTVJLElBQUksTUFBSyxPQUFPLElBQUksQ0FBQTRJLFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFekosTUFBTSxNQUFLLFFBQVEsRUFBRTtNQUM5RXpCLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUcsSUFBSSxDQUFDO0lBQ25CO0lBRUFHLFlBQVksQ0FBQyxDQUFDOztJQUVkO0lBQ0E7SUFDQSxJQUFJLENBQUErSyxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRTVJLElBQUksTUFBSyxRQUFRLEVBQUU7TUFDbkM1RCxnQkFBZ0IsQ0FBQ3RGLE9BQU8sQ0FBQzJJLFFBQVEsQ0FBQztJQUNwQztFQUNGLENBQUMsRUFBRSxDQUFDckMsS0FBSyxFQUFFUyxZQUFZLEVBQUVGLFVBQVUsRUFBRUQsU0FBUyxDQUFDLENBQUM7RUFFaEQsSUFBTW1MLGlCQUFpQixHQUFHNVMsV0FBVyxjQUFBd1AsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFDLFNBQUFtRCxTQUFBO0lBQUEsSUFBQUMsWUFBQSxFQUFBQyxRQUFBLEVBQUFoRSxJQUFBLEVBQUFpRSxHQUFBO0lBQUEsT0FBQXZELG1CQUFBLENBQUFRLElBQUEsV0FBQWdELFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBeEcsSUFBQSxHQUFBd0csU0FBQSxDQUFBOUMsSUFBQTtRQUFBO1VBQ3BDNUosV0FBVyxDQUFDLEtBQUssQ0FBQztVQUNkdU0sWUFBWSxHQUFHakwsTUFBTSxDQUFDa0gsSUFBSSxDQUFDQyxJQUFJLENBQUMsVUFBQ2tFLENBQVE7WUFBQSxPQUFLQSxDQUFDLENBQUNuSixJQUFJLEtBQUssT0FBTyxJQUFJbUosQ0FBQyxDQUFDaEssTUFBTSxLQUFLLFFBQVE7VUFBQSxFQUFDO1VBQUEsSUFDekY0SixZQUFZO1lBQUFHLFNBQUEsQ0FBQTlDLElBQUE7WUFBQTtVQUFBO1VBQUE4QyxTQUFBLENBQUF4RyxJQUFBO1VBQUF3RyxTQUFBLENBQUE5QyxJQUFBO1VBQUEsT0FFVXRPLFNBQVMsQ0FBQztZQUMvQnNSLElBQUksa0NBQUE3SSxNQUFBLENBQWtDdkksVUFBVSxDQUFDeUIsSUFBSSxDQUFDdUQsUUFBUSxDQUFDLENBQUU7WUFDakVxTSxNQUFNLEVBQUU7VUFDVixDQUFDLENBQUM7UUFBQTtVQUhJTCxRQUFRLEdBQUFFLFNBQUEsQ0FBQTVDLElBQUE7VUFBQTRDLFNBQUEsQ0FBQTlDLElBQUE7VUFBQSxPQUlLNEMsUUFBUSxDQUFDTSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQTVCdEUsSUFBSSxHQUFBa0UsU0FBQSxDQUFBNUMsSUFBQTtVQUNWeUMsWUFBWSxHQUFHLENBQUMvRCxJQUFJLENBQUNBLElBQUksSUFBSSxFQUFFLEVBQUVDLElBQUksQ0FBQyxVQUFDa0UsQ0FBUTtZQUFBLE9BQUtBLENBQUMsQ0FBQ25KLElBQUksS0FBSyxPQUFPLElBQUltSixDQUFDLENBQUNoSyxNQUFNLEtBQUssUUFBUTtVQUFBLEVBQUM7VUFBQStKLFNBQUEsQ0FBQTlDLElBQUE7VUFBQTtRQUFBO1VBQUE4QyxTQUFBLENBQUF4RyxJQUFBO1VBQUF1RyxHQUFBLEdBQUFDLFNBQUE7VUFBQSxPQUFBQSxTQUFBLENBQUE3QyxNQUFBO1FBQUE7VUFBQSxJQUsvRjBDLFlBQVk7WUFBQUcsU0FBQSxDQUFBOUMsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBOEMsU0FBQSxDQUFBN0MsTUFBQTtRQUFBO1VBR2pCMUksVUFBVSxDQUFDLElBQUksQ0FBQztVQUNoQkQsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRyxJQUFJLENBQUM7VUFDakJQLFdBQVcsQ0FBQzRMLFlBQVksQ0FBQztVQUN6QjNNLGdCQUFnQixDQUFDdEYsT0FBTyxDQUFDbUYsSUFBSSxDQUFDO1VBQzlCLElBQUlhLG9CQUFvQixDQUFDK0UsT0FBTyxFQUFFO1lBQ2hDL0Usb0JBQW9CLENBQUMrRSxPQUFPLENBQUMsQ0FBQztVQUNoQztVQUNBO1VBQ0EwRCxnQkFBZ0IsQ0FBQ3dELFlBQVksQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBRyxTQUFBLENBQUExQyxJQUFBO01BQUE7SUFBQSxHQUFBc0MsUUFBQTtFQUFBLENBQy9CLElBQUUsQ0FBQ2hMLE1BQU0sQ0FBQ2tILElBQUksRUFBRXZMLElBQUksQ0FBQ3VELFFBQVEsRUFBRUcsV0FBVyxFQUFFTyxTQUFTLEVBQUVDLFVBQVUsRUFBRTRILGdCQUFnQixDQUFDLENBQUM7RUFDdEYsSUFBTWdFLDZCQUE2QixHQUFHdFQsV0FBVyxDQUMvQyxVQUFDbVAsT0FBZSxFQUFLO0lBQ25COUcsV0FBVyxDQUFDOEcsT0FBTyxDQUFDO0lBQ3BCLElBQUksQ0FBQWhJLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFK0gsRUFBRSxNQUFLQyxPQUFPLEVBQUU7TUFDekIzRyxnQkFBZ0IsQ0FBQzJHLE9BQU8sQ0FBQztJQUMzQjtFQUNGLENBQUMsRUFDRCxDQUFDaEksS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUrSCxFQUFFLEVBQUU3RyxXQUFXLEVBQUVHLGdCQUFnQixDQUMzQyxDQUFDO0VBRUQsSUFBTStLLGtDQUFrQyxHQUFHdksscUJBQXFCLEtBQUtuSSxPQUFPLENBQUNtRixJQUFJLElBQUk4RCxzQkFBc0I7RUFFM0csSUFBTTBKLFVBQVUsZ0JBQ2RuUixLQUFBLENBQUFFLFNBQUE7SUFBQWtSLFFBQUEsR0FDR2hSLHVCQUF1QixDQUFDQyxPQUFPLENBQUMsSUFBSStILFVBQVUsS0FBSyxVQUFVLGdCQUM1RHRJLElBQUEsQ0FBQ3JCLE9BQU87TUFDTjRTLFVBQVUsRUFBRTlFLFFBQVM7TUFDckIrRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVEvTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7TUFBQSxDQUFDO01BQ3hDZ04sY0FBYyxFQUFFaE0sWUFBYTtNQUM3QjZLLHFCQUFxQixFQUFFQSxxQkFBc0I7TUFDN0NGLFdBQVcsRUFBRUEsV0FBWTtNQUN6QjFNLFlBQVksRUFBRUEsWUFBYTtNQUMzQmdPLHFCQUFxQixFQUFFL04sZUFBZ0I7TUFDdkNRLFFBQVEsRUFBRUssZUFBZ0I7TUFDMUJFLG9CQUFvQixFQUFFQSxvQkFBcUI7TUFDM0NpTixlQUFlLEVBQUU5SixzQkFBdUI7TUFDeEMrSixTQUFTLEVBQUVyQjtJQUFvQixDQUNoQyxDQUFDLEdBQ0EsSUFBSSxlQUNSclEsS0FBQSxDQUFDZixhQUFhO01BQUNxSixRQUFRLEVBQUVBLFFBQVM7TUFBQ3FKLFFBQVEsRUFBRXBKLFVBQVc7TUFBQTZJLFFBQUEsZ0JBQ3REdFIsSUFBQSxDQUFDbEIsaUJBQWlCO1FBQ2hCd0osVUFBVSxFQUFFQSxVQUFXO1FBQ3ZCd0osa0JBQWtCLEVBQUV2SixhQUFjO1FBQ2xDQyxRQUFRLEVBQUVBLFFBQVM7UUFDbkJ1SixTQUFTLEVBQUV0SixVQUFXO1FBQ3RCdUosV0FBVyxFQUFFeEcsZUFBZ0I7UUFDN0J5RyxVQUFVLEVBQUVqSCxjQUFlO1FBQzNCa0gsU0FBUyxFQUFFMUgsYUFBYztRQUN6QnZKLFdBQVcsRUFBRUssZ0JBQWlCO1FBQzlCb0UsTUFBTSxFQUFFQSxNQUFNLENBQUNrSCxJQUFLO1FBQ3BCekksUUFBUSxFQUFFLENBQUMsQ0FBQzBCLFVBQVc7UUFDdkJGLE9BQU8sRUFBRUEsT0FBUTtRQUNqQkMsV0FBVyxFQUFFQSxXQUFZO1FBQ3pCdU0sT0FBTyxFQUFFek0sTUFBTSxDQUFDME0sUUFBUztRQUN6QmhELGVBQWUsRUFBRUEsZUFBZ0I7UUFDakNpRCxhQUFhLEVBQUVqTSxtQkFBb0I7UUFDbkNKLGNBQWMsRUFBRUEsY0FBZTtRQUMvQk0sY0FBYyxFQUFFQSxjQUFlO1FBQy9CZ00saUJBQWlCLEVBQUVqQyx1QkFBd0I7UUFDM0NrQyxlQUFlLEVBQUVwRjtNQUFpQixDQUNuQyxDQUFDLEVBQ0RoSixRQUFRLGdCQUNQbkUsSUFBQSxDQUFDekIsU0FBUyxJQUFFLENBQUMsR0FDWCtCLHVCQUF1QixDQUFDQyxPQUFPLENBQUMsZ0JBQ2xDUCxJQUFBLENBQUN4QixhQUFhO1FBQ1p1RixhQUFhLEVBQUU4QyxxQkFBc0I7UUFDckN4QyxRQUFRLEVBQUFtSSxhQUFBLENBQUFBLGFBQUEsS0FBT25JLFFBQVE7VUFBRWlELElBQUksRUFBRStFLFNBQVM7VUFBRXhJLElBQUksRUFBRVEsUUFBUSxDQUFDUixJQUFJO1VBQUU0QixZQUFZLEVBQVpBO1FBQVksRUFBRztRQUM5RStMLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUXBOLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFBQSxDQUFDO1FBQ2pDb08sSUFBSSxFQUFFO1VBQUUxUSxrQkFBa0IsRUFBbEJBLGtCQUFrQjtVQUFFSSxhQUFhLEVBQWJBO1FBQWMsQ0FBRTtRQUM1Q3VRLGtCQUFrQixFQUFFaEUsc0JBQXVCO1FBQzNDakcsUUFBUSxFQUFFQSxRQUFTO1FBQ25COUMsTUFBTSxFQUFFQSxNQUFNLENBQUNrSCxJQUFLO1FBQ3BCOEYsYUFBYSxFQUFFdkIsNkJBQThCO1FBQzdDd0IscUJBQXFCLEVBQUV2TSxtQkFBb0I7UUFDM0N3TSxhQUFhLEVBQUUsQ0FBQyxDQUFDbE4sTUFBTSxDQUFDME0sUUFBUztRQUNqQ1MsaUJBQWlCLEVBQUVqTixXQUFZO1FBQy9Ca04sZ0JBQWdCLEVBQUU5TSxjQUFlO1FBQ2pDK00sYUFBYSxFQUFFdEMsaUJBQWtCO1FBQ2pDdUMsa0JBQWtCLEVBQUU3RjtNQUFpQixDQUN0QyxDQUFDLGdCQUVGbk4sSUFBQSxDQUFDaEIscUJBQXFCO1FBQUNpVSxnQkFBZ0IsRUFBRTVPLFFBQVEsQ0FBQ1I7TUFBSyxDQUFFLENBQzFELEVBQ0EsQ0FBRWdELHFCQUFxQixLQUFLbkksT0FBTyxDQUFDbUYsSUFBSSxJQUFJLENBQUMsRUFBQzZCLE1BQU0sYUFBTkEsTUFBTSxnQkFBQTFFLFlBQUEsR0FBTjBFLE1BQU0sQ0FBRWtILElBQUksY0FBQTVMLFlBQUEsZUFBWkEsWUFBQSxDQUFjbU8sTUFBTSxLQUNqRXRJLHFCQUFxQixLQUFLbkksT0FBTyxDQUFDNEksSUFBSSxLQUN0QyxDQUFDOEosa0NBQWtDLElBQ25DLENBQUNqTixRQUFRLElBQ1QsQ0FBQ3dCLE9BQU8sSUFDUnJGLHVCQUF1QixDQUFDQyxPQUFPLENBQUMsaUJBQzlCUCxJQUFBLENBQUNULGlCQUFpQjtRQUNoQnlGLEtBQUssRUFBRUEsS0FBTTtRQUNiOEosaUJBQWlCLEVBQUVBLGlCQUFrQjtRQUNyQ29FLG9CQUFvQixFQUFFcFEsc0JBQXVCO1FBQzdDSSxXQUFXLEVBQUVBLFdBQVk7UUFDekJJLFNBQVMsRUFBRUEsU0FBVTtRQUNyQjZQLE1BQU0sRUFBRWpSLGFBQWM7UUFDdEJJLFVBQVUsRUFBRUEsVUFBVztRQUN2QjhRLFFBQVEsRUFBRXZNLHFCQUFxQixLQUFLbkksT0FBTyxDQUFDNEk7TUFBSyxDQUNsRCxDQUNGO0lBQUEsQ0FDVSxDQUFDO0VBQUEsQ0FDaEIsQ0FDSDtFQUVELElBQU1rQyxjQUFjLGdCQUNsQnhKLElBQUEsQ0FBQ1osb0JBQW9CO0lBQUNvSixRQUFRLEVBQUVBLFFBQVM7SUFBQ3FKLFFBQVEsRUFBRXBKLFVBQVc7SUFBQzRLLEdBQUcsRUFBRTNLLGlCQUFrQjtJQUFBNEksUUFBQSxFQUNwRkQ7RUFBVSxDQUNTLENBQ3ZCO0VBRUQsT0FDRXJKLFFBQVEsaUJBQ1I3SixRQUFRLENBQUNtVixZQUFZLGNBQ25CcFQsS0FBQSxDQUFDYixhQUFhO0lBQUNtSixRQUFRLEVBQUVBLFFBQVM7SUFBQ0YsVUFBVSxFQUFFQSxVQUFXO0lBQUNPLFlBQVksRUFBRTBDLG9CQUFxQjtJQUFBK0YsUUFBQSxHQUMzRjdJLFVBQVUsZ0JBQUd6SSxJQUFBLENBQUNILG1CQUFtQjtNQUFDMFQsSUFBSSxFQUFFdkssVUFBVztNQUFBc0ksUUFBQSxFQUFFOUg7SUFBYyxDQUFzQixDQUFDLEdBQUdBLGNBQWMsRUFDM0doRCxrQkFBa0IsaUJBQ2pCeEcsSUFBQSxDQUFDZixhQUFhO01BQ1pnSCxRQUFRLEVBQUVBLFFBQVM7TUFDbkJFLFdBQVcsRUFBRUEsV0FBWTtNQUN6QkQsV0FBVyxFQUFFQSxXQUFZO01BQ3pCRSxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDQyxnQkFBZ0IsRUFBRUE7SUFBaUIsQ0FDcEMsQ0FDRixlQUNEckcsSUFBQSxDQUFDakIsUUFBUSxJQUFFLENBQUM7RUFBQSxDQUNDLENBQUMsRUFDaEJpSixRQUNGLENBQUM7QUFFTCxDQUFDIiwiaWdub3JlTGlzdCI6W119
751
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsIlJlYWN0RE9NIiwibW9tZW50IiwidXNlVHJhbnNsYXRpb24iLCJ1c2VVc2VyIiwiTUFJQUVycm9yIiwiQ2hhdEFJQ29udGVudCIsImJ1aWxkSGFuZGxlcnMiLCJvcHRpb25zIiwiU2lkZWJhciIsInVzZUdldEFnZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIlNuYWNrYmFyIiwiUHJvamVjdFN1bW1hcnlDb250ZW50IiwiQWJtQWdlbnRNb2RhbCIsIlNFQ1RJT05TIiwiU0NDQUlNQ29udGVudCIsIlNDQ0FJTUNvbnRlbnRXcmFwcGVyIiwiU0NDQUlNV3JhcHBlciIsImdldE1haWFGbG9hdGluZ1BhbmVsV2lkdGhQeCIsIkNoYXRBaU1vZGFsRm9vdGVyIiwidmFsaWRhdGVJc01haWEiLCJ1c2VGYXFzU3RvcmUiLCJmZXRjaE1haWEiLCJnZXRTZXNzaW9uQnlBZ2VudCIsIm1hcENPUkxhbmciLCJGbG9hdGluZ1BhbmVsTW90aW9uIiwidXNlRmxvYXRpbmdQYW5lbERyYWdUaWx0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiSURfTU9EQUxfQ0hBVF9BR0VOVCIsInZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlIiwic2VjdGlvbiIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJDaGF0QUlNb2RhbCIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIl91c2VyJHBlcm1pc3Npb25zMiIsIl91c2VyJHBlcm1pc3Npb25zMyIsIl9hZ2VudHMkZGF0YSIsImhhbmRsZUNsb3NlIiwidXNlciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwiaTE4biIsImhhbmRsZUNsb3NlTW9kYWwiLCJnZXRTdGF0ZSIsImNsZWFyRmFxcyIsIl91c2VTdGF0ZSIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVzZXJJbml0aWFsTWVzc2FnZSIsInNldFVzZXJJbml0aWFsTWVzc2FnZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaW5pdGlhbENoYXRJZCIsInNldEluaXRpYWxDaGF0SWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm5ld0NoYXRLZXkiLCJzZXROZXdDaGF0S2V5IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZW5kTWVzc2FnZUZ1bmN0aW9uIiwic2V0U2VuZE1lc3NhZ2VGdW5jdGlvbiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic3RvcEdlbmVyYXRpb25GdW5jdGlvbiIsInNldFN0b3BHZW5lcmF0aW9uRnVuY3Rpb24iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJpc1N0cmVhbWluZyIsInNldElzU3RyZWFtaW5nIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImlzV3JpdGluZyIsInNldElzV3JpdGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJyZWZldGNoQ2hhdHMiLCJzZXRSZWZldGNoQ2hhdHMiLCJfdXNlU3RhdGUxNSIsImhvbWUiLCJfdXNlU3RhdGUxNiIsImN1cnJlbnRPcHRpb24iLCJzZXRDdXJyZW50T3B0aW9uIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsImhhc0Vycm9yIiwic2V0SGFzRXJyb3IiLCJoYW5kbGVycyIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJzaWRlYmFySGFzRXJyb3IiLCJzZXRTaWRlYmFySGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsImxhbmciLCJsYW5ndWFnZSIsImxvY2FsZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJhZ2VudCIsInByb2plY3QiLCJjbGllbnQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInNldENoaXBzUHJvamVjdCIsInNldENsaWVudCIsInNldFByb2plY3QiLCJfdXNlR2V0QWdlbnRzIiwiaGFuZGxlR29Ib21lIiwiYWdlbnRzIiwibG9hZGluZyIsImxvYWRpbmdNb3JlIiwiYWdlbnRFcnJvciIsImVycm9yIiwiaGFuZGxlR2V0QWdlbnRzIiwibG9hZE1vcmVBZ2VudHMiLCJhZGRBZ2VudCIsInJlbW92ZUFnZW50IiwidXBkYXRlQWdlbnQiLCJ1cGRhdGVBZ2VudEZhdm9yaXRlIiwic2VsZWN0Rmlyc3RBZ2VudCIsInNvcnRBZ2VudHNMaXN0IiwiaXNNQUlBIiwidXNlckhhc1Blcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjcmVhdGUiLCJlZGl0IiwiY29tcHV0ZWRDdXJyZW50T3B0aW9uIiwiaXNHbG9iYWxTcGVjaWFsaXN0IiwiZW50aXR5IiwiaXNQcm9qZWN0U3BlY2lhbGlzdCIsImlzQ2xpZW50U3BlY2lhbGlzdCIsImlzTWFpYWtlciIsInRlc3QiLCJuYW1lIiwibXlBZ2VudHMiLCJjaGF0Iiwic2hvdWxkU2hvd1Byb2plY3RTZWxlY3RvciIsInNob3VsZFNob3dDbGllbnRTZWxlY3RvciIsInByb2plY3RTZWxlY3RvciIsImNsaWVudFNlbGVjdG9yIiwiaXNNYWlha2VyQWdlbnRTZWxlY3RlZCIsInR5cGUiLCJzaWRlYmFyQWdlbnRzTmF2QWN0aXZlIiwiYWdlbnRzRmV0Y2hlZFJlZiIsInJlc29sdmVSZXF1ZXN0UmVmIiwic2VsZWN0b3IiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjb25jYXQiLCJfdXNlU3RhdGUyMSIsIl91c2VTdGF0ZTIyIiwibGF5b3V0TW9kZSIsInNldExheW91dE1vZGUiLCJleHBhbmRlZCIsImlzRmxvYXRpbmciLCJjb250ZW50V3JhcHBlclJlZiIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJkcmFnUG9zaXRpb24iLCJzZXREcmFnUG9zaXRpb24iLCJfdXNlRmxvYXRpbmdQYW5lbERyYWciLCJ0aWx0TW90aW9uIiwic3RhcnRQb2ludGVyVHJhY2tpbmciLCJzYW1wbGVQb2ludGVyTW92ZSIsImVuZFBvaW50ZXJUcmFja2luZyIsImRyYWdTdGF0ZVJlZiIsImNsYW1wRHJhZ1Bvc2l0aW9uIiwieCIsInkiLCJjb250ZW50V3JhcHBlciIsImN1cnJlbnQiLCJfY29udGVudFdyYXBwZXIkZ2V0Qm8iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImhlaWdodCIsIm9mZnNldCIsIm1heFgiLCJNYXRoIiwibWF4IiwiaW5uZXJXaWR0aCIsIm1heFkiLCJpbm5lckhlaWdodCIsIm1pbiIsInByZXYiLCJwYWQiLCJoYW5kbGVEcmFnRW5kIiwiZXZlbnQiLCJfZHJhZ1N0YXRlUmVmJGN1cnJlbnQiLCJwb2ludGVySWQiLCJib2R5Iiwic3R5bGUiLCJ1c2VyU2VsZWN0IiwiY3Vyc29yIiwiaGFuZGxlRHJhZ01vdmUiLCJkcmFnU3RhdGUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm5leHRQb3NpdGlvbiIsIm9mZnNldFgiLCJvZmZzZXRZIiwicmVzb2x2ZWREcmFnUG9zaXRpb24iLCJoYW5kbGVEcmFnU3RhcnQiLCJidXR0b24iLCJ0YXJnZXQiLCJjbG9zZXN0IiwicmVjdCIsImluaXRpYWxQb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJwb2ludGVyT2Zmc2V0WCIsInBvaW50ZXJPZmZzZXRZIiwiY3VycmVudFRhcmdldCIsInNldFBvaW50ZXJDYXB0dXJlIiwicHJldmVudERlZmF1bHQiLCJzdGFydENoYXQiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiX29iamVjdFNwcmVhZCIsImdvVG9DaGF0Iiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZWxlY3RlZEFnZW50IiwiZGF0YSIsImZpbmQiLCJhZ2VudEl0ZW0iLCJpZCIsImFnZW50SWQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJyZXNvbHZlQWdlbnRDaGF0IiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIm5leHRBZ2VudCIsImVudGl0eUlkIiwicmVxdWVzdElkIiwic2Vzc2lvbiIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsInNlbnQiLCJjb25zb2xlIiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVTZW5kTWVzc2FnZVJlYWR5Iiwic2VuZE1lc3NhZ2UiLCJzdG9wR2VuZXJhdGlvbiIsInN0cmVhbWluZyIsIndyaXRpbmciLCJoYW5kbGVTZW5kTWVzc2FnZSIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCJwcm9qZWN0X2RlbGV0ZWQiLCJsZW5ndGgiLCJoYW5kbGVSZXNldENoYXQiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsIm9uTWVyZ2VDcmVhdGVkQWdlbnQiLCJldnQiLCJfcmVmNCIsImRldGFpbCIsIm5hdmlnYXRlSG9tZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25TeW5jRWRpdGVkQWdlbnQiLCJfcmVmNSIsIm9wZW5DaGF0VmlldyIsIm9wZW5OZXdDaGF0V2l0aEFnZW50IiwiX2RldGFpbCIsIm5lZWRzRW50aXR5Iiwic2hvd05ld0NoYXQiLCJoaWRlSGVhZGVyQWdlbnRTZWxlY3RvciIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsImhhbmRsZU5ld0NoYXRBY3Rpb24iLCJjdXJyZW50QWdlbnQiLCJoYW5kbGVHb1RvTWFpYWtlciIsIl9jYWxsZWUzIiwibWFpYWtlckFnZW50IiwicmVzcG9uc2UiLCJfdDIiLCJfY29udGV4dDMiLCJhIiwicGF0aCIsIm1ldGhvZCIsImpzb24iLCJoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50cyIsImhpZGVGb290ZXJPbk1haWFrZXJNYXJrZXRwbGFjZUhvbWUiLCJtb2RhbFBhbmVsIiwiY2hpbGRyZW4iLCJkaXNwbGF5Iiwib25Hb1RvQ2hhdCIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZVNldFJlZmV0Y2hDaGF0cyIsImFnZW50c05hdkFjdGl2ZSIsIm9uTmV3Q2hhdCIsImZsb2F0aW5nIiwib25MYXlvdXRNb2RlQ2hhbmdlIiwiZHJhZ2dhYmxlIiwib25EcmFnU3RhcnQiLCJvbkRyYWdNb3ZlIiwib25EcmFnRW5kIiwiaGFzTW9yZSIsImhhc19tb3JlIiwib25BZ2VudFVwZGF0ZSIsImhpZGVBZ2VudFNlbGVjdG9yIiwib25BZ2VudFNlbGVjdGVkIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsIm9uRGVsZXRlQWdlbnQiLCJvbkZhdm9yaXRlQWdlbnRVcGRhdGUiLCJoYXNNb3JlQWdlbnRzIiwibG9hZGluZ01vcmVBZ2VudHMiLCJvbkxvYWRNb3JlQWdlbnRzIiwib25Hb1RvTWFpYWtlciIsIm9uUmVzb2x2ZUFnZW50Q2hhdCIsIm9uUmVzdGFydFN1bW1hcnkiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsInNob3dGYXFzIiwicmVmIiwiY3JlYXRlUG9ydGFsIiwidGlsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9DaGF0QUlNb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1uby11c2VsZXNzLWZyYWdtZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHtcbiAgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZVJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIFBvaW50ZXJFdmVudCBhcyBSZWFjdFBvaW50ZXJFdmVudCxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFFcnJvcidcblxuaW1wb3J0IHsgQ2hhdEFJQ29udGVudCB9IGZyb20gJy4uL0NoYXRBSUNvbnRlbnQnXG5pbXBvcnQgeyBidWlsZEhhbmRsZXJzLCBvcHRpb25zIH0gZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQgeyBTaWRlYmFyIH0gZnJvbSAnLi4vU2lkZWJhcidcbmltcG9ydCB7IHVzZUdldEFnZW50cyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50cydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGF0QUlNb2RhbEhlYWRlciB9IGZyb20gJy4vY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlcidcbmltcG9ydCB7IFNuYWNrYmFyIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL1NuYWNrQmFyL1NuYWNrYmFyJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vUHJvamVjdFN1bW1hcnlDb250ZW50J1xuaW1wb3J0IHsgQWJtQWdlbnRNb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9BYm1BZ2VudE1vZGFsL0FibUFnZW50TW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBTQ0NBSU1Db250ZW50LCBTQ0NBSU1Db250ZW50V3JhcHBlciwgU0NDQUlNV3JhcHBlciB9IGZyb20gJy4vQ2hhdEFJTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgZ2V0TWFpYUZsb2F0aW5nUGFuZWxXaWR0aFB4LCBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4vbGF5b3V0J1xuaW1wb3J0IHsgQ2hhdEFpTW9kYWxGb290ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hhdEFpTW9kYWxGb290ZXInXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZUZhcXNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3VzZUZhcXNTdG9yZSdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuaW1wb3J0IHsgZ2V0U2Vzc2lvbkJ5QWdlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0NoYXRzL2dldFNlc3Npb25CeUFnZW50J1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBGbG9hdGluZ1BhbmVsTW90aW9uLCB1c2VGbG9hdGluZ1BhbmVsRHJhZ1RpbHQgfSBmcm9tICcuL2Zsb2F0aW5nUGFuZWxNb3Rpb24nXG5cbnR5cGUgQ2hhdEFJTW9kYWxQcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBwYXJlbnRSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+XG59XG5cbmV4cG9ydCBjb25zdCBJRF9NT0RBTF9DSEFUX0FHRU5UID0gJ21vZGFscy1wb3J0YWwtbWFpYS1jaGF0LWFnZW50J1xuXG5jb25zdCB2YWxpZGF0ZUFjY2Vzc0J5RmVhdHVyZSA9IChzZWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICh3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpICYmIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTW9kYWwgPSAoeyBoYW5kbGVDbG9zZSB9OiBDaGF0QUlNb2RhbFByb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuYWJtQWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdXNlRmFxc1N0b3JlLmdldFN0YXRlKCkuY2xlYXJGYXFzKClcbiAgICBoYW5kbGVDbG9zZT8uKClcbiAgfSwgW2hhbmRsZUNsb3NlXSlcbiAgY29uc3QgW3VzZXJJbml0aWFsTWVzc2FnZSwgc2V0VXNlckluaXRpYWxNZXNzYWdlXSA9IHVzZVN0YXRlPHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICAgIGZhcUlkPzogc3RyaW5nXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgfT4oe1xuICAgIG1lc3NhZ2U6ICcnLFxuICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgfSlcbiAgY29uc3QgW2luaXRpYWxDaGF0SWQsIHNldEluaXRpYWxDaGF0SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW25ld0NoYXRLZXksIHNldE5ld0NoYXRLZXldID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3NlbmRNZXNzYWdlRnVuY3Rpb24sIHNldFNlbmRNZXNzYWdlRnVuY3Rpb25dID0gdXNlU3RhdGU8XG4gICAgKChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcsIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nKSA9PiB2b2lkKSB8IG51bGxcbiAgPihudWxsKVxuICBjb25zdCBbc3RvcEdlbmVyYXRpb25GdW5jdGlvbiwgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbl0gPSB1c2VTdGF0ZTwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNTdHJlYW1pbmcsIHNldElzU3RyZWFtaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNXcml0aW5nLCBzZXRJc1dyaXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW3JlZmV0Y2hDaGF0cywgc2V0UmVmZXRjaENoYXRzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbY3VycmVudE9wdGlvbiwgc2V0Q3VycmVudE9wdGlvbl0gPSB1c2VTdGF0ZShvcHRpb25zLmhvbWUpXG4gIGNvbnN0IFtoYXNFcnJvciwgc2V0SGFzRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhbmRsZXJzID0gdXNlTWVtbygoKSA9PiBidWlsZEhhbmRsZXJzKHNldEN1cnJlbnRPcHRpb24sIHNldEhhc0Vycm9yKSwgW10pXG4gIGNvbnN0IFtzaWRlYmFySGFzRXJyb3IsIHNldFNpZGViYXJIYXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgcmVzZXRTZWxlY3RlZENoYXRSZWYgPSB1c2VSZWY8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQtYnInIDogaTE4bi5sYW5ndWFnZVxuXG4gIG1vbWVudC5sb2NhbGUobGFuZylcblxuICBjb25zdCB7XG4gICAgc2VsZWN0QWdlbnQsXG4gICAgc2VjdGlvbixcbiAgICBhZ2VudCxcbiAgICBwcm9qZWN0LFxuICAgIGNsaWVudCxcbiAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIHNldENsaWVudCxcbiAgICBzZXRQcm9qZWN0LFxuICB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3Qge1xuICAgIGFnZW50cyxcbiAgICBsb2FkaW5nLFxuICAgIGxvYWRpbmdNb3JlLFxuICAgIGVycm9yOiBhZ2VudEVycm9yLFxuICAgIGhhbmRsZUdldEFnZW50cyxcbiAgICBsb2FkTW9yZUFnZW50cyxcbiAgICBhZGRBZ2VudCxcbiAgICByZW1vdmVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudEZhdm9yaXRlLFxuICAgIHNlbGVjdEZpcnN0QWdlbnQsXG4gICAgc29ydEFnZW50c0xpc3QsXG4gIH0gPSB1c2VHZXRBZ2VudHMoeyBzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGhhbmRsZUdvSG9tZTogaGFuZGxlcnMuaG9tZSB9KVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuXG4gIGNvbnN0IHVzZXJIYXNQZXJtaXNzaW9ucyA9XG4gICAgKHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSB8fFxuICAgICAgdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uZWRpdCB8fFxuICAgICAgdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50cz8uZGVsZXRlKSAmJlxuICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgY29uc3QgY29tcHV0ZWRDdXJyZW50T3B0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaXNHbG9iYWxTcGVjaWFsaXN0ID0gaXNNQUlBICYmIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnXG4gICAgY29uc3QgaXNQcm9qZWN0U3BlY2lhbGlzdCA9IGlzTUFJQSAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT0gbnVsbClcbiAgICBjb25zdCBpc0NsaWVudFNwZWNpYWxpc3QgPSBpc01BSUEgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCdcbiAgICBjb25zdCBpc01haWFrZXIgPSBpc0dsb2JhbFNwZWNpYWxpc3QgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYWdlbnQ/Lm5hbWUgfHwgJycpXG5cbiAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5teUFnZW50cykge1xuICAgICAgcmV0dXJuIG9wdGlvbnMubXlBZ2VudHNcbiAgICB9XG5cbiAgICBpZiAoaXNHbG9iYWxTcGVjaWFsaXN0ICYmICFpc01haWFrZXIgJiYgY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5ob21lKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5jaGF0XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Byb2plY3RTZWxlY3RvciA9IGN1cnJlbnRPcHRpb24gIT09IG9wdGlvbnMuY2hhdCAmJiBpc1Byb2plY3RTcGVjaWFsaXN0ICYmICFwcm9qZWN0XG4gICAgY29uc3Qgc2hvdWxkU2hvd0NsaWVudFNlbGVjdG9yID0gY3VycmVudE9wdGlvbiAhPT0gb3B0aW9ucy5jaGF0ICYmIGlzQ2xpZW50U3BlY2lhbGlzdCAmJiAhY2xpZW50XG5cbiAgICBpZiAoc2hvdWxkU2hvd1Byb2plY3RTZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMucHJvamVjdFNlbGVjdG9yXG4gICAgfVxuICAgIGlmIChzaG91bGRTaG93Q2xpZW50U2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmNsaWVudFNlbGVjdG9yXG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50T3B0aW9uXG4gIH0sIFtjdXJyZW50T3B0aW9uLCBwcm9qZWN0LCBjbGllbnQsIGlzTUFJQSwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/Lm5hbWVdKVxuXG4gIGNvbnN0IGlzTWFpYWtlckFnZW50U2VsZWN0ZWQgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBpc01BSUEgJiZcbiAgICAgIGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmXG4gICAgICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJlxuICAgICAgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYWdlbnQ/Lm5hbWUgfHwgJycpLFxuICAgIFtpc01BSUEsIGFnZW50Py5lbnRpdHksIGFnZW50Py50eXBlLCBhZ2VudD8ubmFtZV1cbiAgKVxuXG4gIGNvbnN0IHNpZGViYXJBZ2VudHNOYXZBY3RpdmUgPSB1c2VNZW1vKCgpOiAnbWFpYWtlcicgfCAnbXlBZ2VudHMnIHwgbnVsbCA9PiB7XG4gICAgaWYgKGNvbXB1dGVkQ3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5teUFnZW50cykgcmV0dXJuICdteUFnZW50cydcbiAgICBpZiAoaXNNYWlha2VyQWdlbnRTZWxlY3RlZCkgcmV0dXJuICdtYWlha2VyJ1xuICAgIHJldHVybiBudWxsXG4gIH0sIFtjb21wdXRlZEN1cnJlbnRPcHRpb24sIGlzTWFpYWtlckFnZW50U2VsZWN0ZWRdKVxuXG4gIC8qIFJlYWN0aXZhciBjb24gbGEgZmlsYSDigJxNaXMgYWdlbnRlc+KAnSBlbiBTaWRlYmFyOiBteUFnZW50c0NvdW50IHByb3BcbiAgY29uc3Qgc2lkZWJhck15QWdlbnRzQ291bnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gYWdlbnRzLmRhdGEuZmlsdGVyKFxuICAgICAgYSA9PiAhKGEudHlwZSA9PT0gJ2Nsb25lJyAmJiBhLmVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYS5uYW1lIHx8ICcnKSlcbiAgICApXG4gICAgICAubGVuZ3RoXG4gIH0sIFthZ2VudHMuZGF0YV0pXG4gICovXG5cbiAgY29uc3QgYWdlbnRzRmV0Y2hlZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgLyoqXG4gICAqIEd1YXJkIGNvbnRyYSByYWNlOiBzaSBlbCB1c3VhcmlvIGNhbWJpYSBkZSBhZ2VudGUvZW50aXR5IGFudGVzIGRlIHF1ZSB0ZXJtaW5lXG4gICAqIHVuYSByZXNvbHVjacOzbiBwcmV2aWEsIGRlc2NhcnRhbW9zIGxhIHJlc3B1ZXN0YSB2aWVqYSBwYXJhIG5vIG5hdmVnYXIgYSB1bmFcbiAgICogY29udmVyc2FjacOzbiBxdWUgeWEgbm8gY29ycmVzcG9uZGUgY29uIGxhIHNlbGVjY2nDs24gYWN0dWFsLlxuICAgKi9cbiAgY29uc3QgcmVzb2x2ZVJlcXVlc3RSZWYgPSB1c2VSZWYoMClcblxuICBjb25zdCBzZWxlY3RvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke0lEX01PREFMX0NIQVRfQUdFTlR9YClcblxuICBjb25zdCBbbGF5b3V0TW9kZSwgc2V0TGF5b3V0TW9kZV0gPSB1c2VTdGF0ZTxNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZT4oJ3NpZGViYXInKVxuICBjb25zdCBleHBhbmRlZCA9IGxheW91dE1vZGUgPT09ICdmdWxsc2NyZWVuJ1xuICBjb25zdCBpc0Zsb2F0aW5nID0gbGF5b3V0TW9kZSA9PT0gJ2Zsb2F0aW5nJ1xuICBjb25zdCBjb250ZW50V3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW2RyYWdQb3NpdGlvbiwgc2V0RHJhZ1Bvc2l0aW9uXSA9IHVzZVN0YXRlPHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgdGlsdE1vdGlvbiwgc3RhcnRQb2ludGVyVHJhY2tpbmcsIHNhbXBsZVBvaW50ZXJNb3ZlLCBlbmRQb2ludGVyVHJhY2tpbmcgfSA9XG4gICAgdXNlRmxvYXRpbmdQYW5lbERyYWdUaWx0KGlzRmxvYXRpbmcpXG4gIGNvbnN0IGRyYWdTdGF0ZVJlZiA9IHVzZVJlZjx7XG4gICAgcG9pbnRlcklkOiBudW1iZXJcbiAgICBvZmZzZXRYOiBudW1iZXJcbiAgICBvZmZzZXRZOiBudW1iZXJcbiAgfSB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgY2xhbXBEcmFnUG9zaXRpb24gPSB1c2VDYWxsYmFjaygoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjb250ZW50V3JhcHBlciA9IGNvbnRlbnRXcmFwcGVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRlbnRXcmFwcGVyKSB7XG4gICAgICByZXR1cm4geyB4LCB5IH1cbiAgICB9XG5cbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGNvbnRlbnRXcmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3Qgb2Zmc2V0ID0gMTZcbiAgICBjb25zdCBtYXhYID0gTWF0aC5tYXgob2Zmc2V0LCB3aW5kb3cuaW5uZXJXaWR0aCAtIHdpZHRoIC0gb2Zmc2V0KVxuICAgIGNvbnN0IG1heFkgPSBNYXRoLm1heChvZmZzZXQsIHdpbmRvdy5pbm5lckhlaWdodCAtIGhlaWdodCAtIG9mZnNldClcblxuICAgIHJldHVybiB7XG4gICAgICB4OiBNYXRoLm1pbihNYXRoLm1heCh4LCBvZmZzZXQpLCBtYXhYKSxcbiAgICAgIHk6IE1hdGgubWluKE1hdGgubWF4KHksIG9mZnNldCksIG1heFkpLFxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGF5b3V0TW9kZSAhPT0gJ2Zsb2F0aW5nJykge1xuICAgICAgc2V0RHJhZ1Bvc2l0aW9uKG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXREcmFnUG9zaXRpb24ocHJldiA9PiB7XG4gICAgICBpZiAocHJldikge1xuICAgICAgICByZXR1cm4gY2xhbXBEcmFnUG9zaXRpb24ocHJldi54LCBwcmV2LnkpXG4gICAgICB9XG4gICAgICBjb25zdCBwYWQgPSAxNlxuICAgICAgY29uc3QgeCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZ2V0TWFpYUZsb2F0aW5nUGFuZWxXaWR0aFB4KCkgLSBwYWRcbiAgICAgIHJldHVybiBjbGFtcERyYWdQb3NpdGlvbih4LCBwYWQpXG4gICAgfSlcbiAgfSwgW2xheW91dE1vZGUsIGNsYW1wRHJhZ1Bvc2l0aW9uXSlcblxuICBjb25zdCBoYW5kbGVEcmFnRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGVuZFBvaW50ZXJUcmFja2luZygpXG4gICAgICBpZiAoZHJhZ1N0YXRlUmVmLmN1cnJlbnQ/LnBvaW50ZXJJZCAhPT0gZXZlbnQucG9pbnRlcklkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBkcmFnU3RhdGVSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdCA9ICcnXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICcnXG4gICAgfSxcbiAgICBbZW5kUG9pbnRlclRyYWNraW5nXVxuICApXG5cbiAgY29uc3QgaGFuZGxlRHJhZ01vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0UG9pbnRlckV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgZHJhZ1N0YXRlID0gZHJhZ1N0YXRlUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZHJhZ1N0YXRlIHx8IGRyYWdTdGF0ZS5wb2ludGVySWQgIT09IGV2ZW50LnBvaW50ZXJJZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2FtcGxlUG9pbnRlck1vdmUoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgICAgY29uc3QgbmV4dFBvc2l0aW9uID0gY2xhbXBEcmFnUG9zaXRpb24oZXZlbnQuY2xpZW50WCAtIGRyYWdTdGF0ZS5vZmZzZXRYLCBldmVudC5jbGllbnRZIC0gZHJhZ1N0YXRlLm9mZnNldFkpXG5cbiAgICAgIHNldERyYWdQb3NpdGlvbihwcmV2ID0+IHtcbiAgICAgICAgaWYgKHByZXYgJiYgcHJldi54ID09PSBuZXh0UG9zaXRpb24ueCAmJiBwcmV2LnkgPT09IG5leHRQb3NpdGlvbi55KSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dFBvc2l0aW9uXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2NsYW1wRHJhZ1Bvc2l0aW9uLCBzYW1wbGVQb2ludGVyTW92ZV1cbiAgKVxuXG4gIGNvbnN0IHJlc29sdmVkRHJhZ1Bvc2l0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGxheW91dE1vZGUgIT09ICdmbG9hdGluZycpIHtcbiAgICAgIHJldHVybiBkcmFnUG9zaXRpb25cbiAgICB9XG4gICAgaWYgKGRyYWdQb3NpdGlvbikge1xuICAgICAgcmV0dXJuIGRyYWdQb3NpdGlvblxuICAgIH1cbiAgICBjb25zdCBwYWQgPSAxNlxuICAgIGNvbnN0IHggPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5pbm5lcldpZHRoIC0gZ2V0TWFpYUZsb2F0aW5nUGFuZWxXaWR0aFB4KCkgLSBwYWQgOiBwYWRcbiAgICByZXR1cm4gY2xhbXBEcmFnUG9zaXRpb24oeCwgcGFkKVxuICB9LCBbbGF5b3V0TW9kZSwgZHJhZ1Bvc2l0aW9uLCBjbGFtcERyYWdQb3NpdGlvbl0pXG5cbiAgY29uc3QgaGFuZGxlRHJhZ1N0YXJ0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGlmICghaXNGbG9hdGluZyB8fCBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudFxuICAgICAgaWYgKHRhcmdldC5jbG9zZXN0KCdidXR0b24sIGEsIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBbcm9sZT1cImJ1dHRvblwiXSwgW2RhdGEtbm8tZHJhZz1cInRydWVcIl0nKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGVudFdyYXBwZXIgPSBjb250ZW50V3JhcHBlclJlZi5jdXJyZW50XG4gICAgICBpZiAoIWNvbnRlbnRXcmFwcGVyKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWN0ID0gY29udGVudFdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGluaXRpYWxQb3NpdGlvbiA9IHJlc29sdmVkRHJhZ1Bvc2l0aW9uID8/IGNsYW1wRHJhZ1Bvc2l0aW9uKHJlY3QubGVmdCwgcmVjdC50b3ApXG4gICAgICBjb25zdCBwb2ludGVyT2Zmc2V0WCA9IGV2ZW50LmNsaWVudFggLSBpbml0aWFsUG9zaXRpb24ueFxuICAgICAgY29uc3QgcG9pbnRlck9mZnNldFkgPSBldmVudC5jbGllbnRZIC0gaW5pdGlhbFBvc2l0aW9uLnlcblxuICAgICAgc2V0RHJhZ1Bvc2l0aW9uKGluaXRpYWxQb3NpdGlvbilcbiAgICAgIGRyYWdTdGF0ZVJlZi5jdXJyZW50ID0ge1xuICAgICAgICBwb2ludGVySWQ6IGV2ZW50LnBvaW50ZXJJZCxcbiAgICAgICAgb2Zmc2V0WDogcG9pbnRlck9mZnNldFgsXG4gICAgICAgIG9mZnNldFk6IHBvaW50ZXJPZmZzZXRZLFxuICAgICAgfVxuXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJ25vbmUnXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICdncmFiYmluZydcbiAgICAgIHN0YXJ0UG9pbnRlclRyYWNraW5nKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpXG4gICAgfSxcbiAgICBbY2xhbXBEcmFnUG9zaXRpb24sIGlzRmxvYXRpbmcsIHJlc29sdmVkRHJhZ1Bvc2l0aW9uLCBzdGFydFBvaW50ZXJUcmFja2luZ11cbiAgKVxuXG4gIGNvbnN0IHN0YXJ0Q2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIChtZXNzYWdlPzogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nLCBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHNpZGViYXJIYXNFcnJvcikge1xuICAgICAgICBzZXRTaWRlYmFySGFzRXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2Uoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlIHx8ICcnLFxuICAgICAgICBhdHRhY2htZW50czogYXR0YWNobWVudHMgfHwgW10sXG4gICAgICAgIC4uLihmYXFJZCA/IHsgZmFxSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGFnZW50U3VnZ2VzdGlvbklkID8geyBhZ2VudFN1Z2dlc3Rpb25JZCB9IDoge30pLFxuICAgICAgfSlcbiAgICAgIGhhbmRsZXJzLmNoYXQoKVxuICAgIH0sXG4gICAgW2hhbmRsZXJzLCBzaWRlYmFySGFzRXJyb3JdXG4gIClcblxuICBjb25zdCBnb1RvQ2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIChjaGF0OiBhbnkpID0+IHtcbiAgICAgIHNldFVzZXJJbml0aWFsTWVzc2FnZSh7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfSlcbiAgICAgIHNldEluaXRpYWxDaGF0SWQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIGNvbnN0IHNlbGVjdGVkQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKGFnZW50SXRlbSA9PiBhZ2VudEl0ZW0uaWQgPT09IGNoYXQuYWdlbnRJZClcbiAgICAgIGlmIChzZWxlY3RlZEFnZW50KSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHNlbGVjdGVkQWdlbnQpXG4gICAgICB9XG4gICAgICAvLyBEaXNwYXRjaCBldmVudCB0byBjbGVhciB0aGUgaW5wdXQgdGV4dGFyZWFcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgICAgaGFuZGxlcnMuY2hhdCgpXG4gICAgfSxcbiAgICBbaGFuZGxlcnMsIGFnZW50cywgc2VsZWN0QWdlbnRdXG4gIClcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gdjIgYEdFVCAvdjIvc2Vzc2lvbnMvYWdlbnQve2FnZW50X2lkfVsve2VudGl0eV9pZH1dYC5cbiAgICpcbiAgICogU2kgZWwgdXN1YXJpbyB5YSB0ZW7DrWEgdW5hIGNvbnZlcnNhY2nDs24gcGFyYSBlc2EgY29tYmluYWNpw7NuIGFnZW50K2VudGl0eSxcbiAgICogbmF2ZWdhbW9zIGEgZWxsYSAoYGdvVG9DaGF0YCkuIFNpIG5vIChvIHNpIGZhbGxhIGxhIHJlZCkgZGV2b2x2ZW1vcyBgZmFsc2VgXG4gICAqIHkgZWwgY2FsbGVyIGRlY2lkZSBlbCBmYWxsYmFjayAocXVlZGFyc2UgZW4gaG9tZS9zZWxlY3RvciBhY3R1YWwpLlxuICAgKlxuICAgKiBQdW50b3MgZGUgZWplY3VjacOzbjpcbiAgICogLSBBbCBzZWxlY2Npb25hciB1biBhZ2VudGUgZW4gZWwgaGVhZGVyIChjdXN0b20gbyBjbG9uZStnbG9iYWwpLlxuICAgKiAtIEFsIHNlbGVjY2lvbmFyIHByb3llY3RvL2NsaWVudGUgZW4gbG9zIHNlbGVjdG9ycyAoY2xvbmUrcHJvamVjdCB8IGNsb25lK2NsaWVudCkuXG4gICAqIC0gQWwgcmVjaWJpciBgbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnRgIHkgZW4gYGhhbmRsZUdvVG9NYWlha2VyYC5cbiAgICovXG4gIGNvbnN0IHJlc29sdmVBZ2VudENoYXQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAobmV4dEFnZW50OiBBZ2VudCB8IG51bGwgfCB1bmRlZmluZWQsIGVudGl0eUlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgaWYgKCFuZXh0QWdlbnQ/LmlkKSByZXR1cm4gZmFsc2VcbiAgICAgIHJlc29sdmVSZXF1ZXN0UmVmLmN1cnJlbnQgKz0gMVxuICAgICAgY29uc3QgcmVxdWVzdElkID0gcmVzb2x2ZVJlcXVlc3RSZWYuY3VycmVudFxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IGdldFNlc3Npb25CeUFnZW50KHtcbiAgICAgICAgICBhZ2VudDogbmV4dEFnZW50LFxuICAgICAgICAgIGVudGl0eUlkLFxuICAgICAgICAgIGxhbmc6IG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSksXG4gICAgICAgIH0pXG4gICAgICAgIC8vIFNpIGVudHJlIHRhbnRvIGh1Ym8gb3RyYSByZXNvbHVjacOzbiBpbmljaWFkYSwgaWdub3JhbW9zIGVzdGEgcmVzcHVlc3RhLlxuICAgICAgICBpZiAocmVxdWVzdElkICE9PSByZXNvbHZlUmVxdWVzdFJlZi5jdXJyZW50KSByZXR1cm4gZmFsc2VcbiAgICAgICAgaWYgKHNlc3Npb24pIHtcbiAgICAgICAgICBnb1RvQ2hhdChzZXNzaW9uKVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbTUFJQV0gZ2V0U2Vzc2lvbkJ5QWdlbnQgZmFpbGVkJywgZXJyKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSxcbiAgICBbZ29Ub0NoYXQsIGkxOG4ubGFuZ3VhZ2VdXG4gIClcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZVJlYWR5ID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgc2VuZE1lc3NhZ2U6IChcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICAgIGZhcUlkPzogc3RyaW5nLFxuICAgICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICAgICAgKSA9PiB2b2lkLFxuICAgICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgICBzdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgICB3cml0aW5nOiBib29sZWFuXG4gICAgKSA9PiB7XG4gICAgICBzZXRTZW5kTWVzc2FnZUZ1bmN0aW9uKCgpID0+IHNlbmRNZXNzYWdlKVxuICAgICAgc2V0U3RvcEdlbmVyYXRpb25GdW5jdGlvbigoKSA9PiBzdG9wR2VuZXJhdGlvbilcbiAgICAgIHNldElzU3RyZWFtaW5nKHN0cmVhbWluZylcbiAgICAgIHNldElzV3JpdGluZyh3cml0aW5nKVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZywgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChzaWRlYmFySGFzRXJyb3IpIHtcbiAgICAgICAgc2V0U2lkZWJhckhhc0Vycm9yKGZhbHNlKVxuICAgICAgfVxuICAgICAgaWYgKHNlbmRNZXNzYWdlRnVuY3Rpb24gJiYgY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2VGdW5jdGlvbihtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRDaGF0KG1lc3NhZ2UsIGF0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VuZE1lc3NhZ2VGdW5jdGlvbiwgc3RhcnRDaGF0LCBjb21wdXRlZEN1cnJlbnRPcHRpb24sIHNpZGViYXJIYXNFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdvSG9tZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTaSBlc3RhbW9zIGVuIHVuYSBjb252ZXJzYWNpw7NuIHkgdmFtb3MgYSBob21lLCByZXNldGVhciBpbml0aWFsQ2hhdElkIHkgaW5jcmVtZW50YXIgbmV3Q2hhdEtleVxuICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXQpIHtcbiAgICAgIHNldEluaXRpYWxDaGF0SWQobnVsbClcbiAgICAgIHNldE5ld0NoYXRLZXkocHJldiA9PiBwcmV2ICsgMSlcbiAgICAgIC8vIE5vIGJvcnJhciBlbCBjbGllbnRlIHNpIGVzIGFnZW50ZSBkZSBjbGllbnRlcyAoaWd1YWwgcXVlIGVsIHByb3llY3RvIHNlIG1hbnRpZW5lKVxuICAgICAgaWYgKGFnZW50Py5lbnRpdHkgIT09ICdjbGllbnQnKSB7XG4gICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgICghYWdlbnQgfHwgYWdlbnQ/LmlzX2RlbGV0ZWQgfHwgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHwgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8IGFnZW50Py5wcm9qZWN0X2RlbGV0ZWQpICYmXG4gICAgICBhZ2VudHMuZGF0YS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVswXSlcbiAgICB9XG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUgJiYgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCkge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCgpXG4gICAgfVxuICB9LCBbXG4gICAgb3B0aW9ucy5ob21lLFxuICAgIG9wdGlvbnMuY2hhdCxcbiAgICBjdXJyZW50T3B0aW9uLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICBhZ2VudCxcbiAgICBhZ2VudHMsXG4gICAgc2VsZWN0QWdlbnQsXG4gICAgc2V0Q2xpZW50LFxuICBdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgc2V0SW5pdGlhbENoYXRJZChudWxsKVxuICAgIC8vIERpc3BhdGNoIGV2ZW50IHRvIGNsZWFyIHRoZSBpbnB1dCB0ZXh0YXJlYVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIGhhbmRsZUdvSG9tZSgpXG4gIH0sIFtoYW5kbGVHb0hvbWVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhZ2VudHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGFnZW50c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldEFnZW50cygpXG4gICAgfVxuICB9LCBbaGFuZGxlR2V0QWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uTWVyZ2VDcmVhdGVkQWdlbnQgPSAoZXZ0OiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBhZ2VudDogbmV4dEFnZW50IH0gPSAoZXZ0IGFzIEN1c3RvbUV2ZW50PHsgYWdlbnQ6IEFnZW50IH0+KS5kZXRhaWwgfHwge31cbiAgICAgIGlmIChuZXh0QWdlbnQ/LmlkKSB7XG4gICAgICAgIGFkZEFnZW50KG5leHRBZ2VudCwgeyBuYXZpZ2F0ZUhvbWU6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtbWVyZ2UtY3JlYXRlZC1hZ2VudC1pbnRvLWxpc3QnLCBvbk1lcmdlQ3JlYXRlZEFnZW50KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW1lcmdlLWNyZWF0ZWQtYWdlbnQtaW50by1saXN0Jywgb25NZXJnZUNyZWF0ZWRBZ2VudClcbiAgICB9XG4gIH0sIFthZGRBZ2VudF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvblN5bmNFZGl0ZWRBZ2VudCA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IGFnZW50OiBuZXh0QWdlbnQgfSA9IChldnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbCB8fCB7fVxuICAgICAgaWYgKCFuZXh0QWdlbnQ/LmlkKSByZXR1cm5cbiAgICAgIHVwZGF0ZUFnZW50KG5leHRBZ2VudClcbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IG5leHRBZ2VudC5pZCkge1xuICAgICAgICBzZWxlY3RBZ2VudChuZXh0QWdlbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtc3luYy1lZGl0ZWQtYWdlbnQtZnJvbS1jaGF0Jywgb25TeW5jRWRpdGVkQWdlbnQpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21haWEtc3luYy1lZGl0ZWQtYWdlbnQtZnJvbS1jaGF0Jywgb25TeW5jRWRpdGVkQWdlbnQpXG4gICAgfVxuICB9LCBbdXBkYXRlQWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudD8uaWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3BlbkNoYXRWaWV3ID0gKCkgPT4ge1xuICAgICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgICBzZXRJbml0aWFsQ2hhdElkKG51bGwpXG4gICAgICBzZXROZXdDaGF0S2V5KHByZXYgPT4gcHJldiArIDEpXG4gICAgICBzZXRVc2VySW5pdGlhbE1lc3NhZ2UoeyBtZXNzYWdlOiAnJywgYXR0YWNobWVudHM6IFtdIH0pXG4gICAgICBzZXRDdXJyZW50T3B0aW9uKG9wdGlvbnMuY2hhdClcbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGF0LXNlc3Npb24tY2hhbmdlZCcpKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tY2hhdC12aWV3Jywgb3BlbkNoYXRWaWV3KVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLyoqIE1pc21vIGZsdWpvIHF1ZSBDaGF0QUlNeUFnZW50cy5oYW5kbGVVc2VBZ2VudCArIG9uQmFjayAoaGFuZGxlcnMuaG9tZSkuICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3Blbk5ld0NoYXRXaXRoQWdlbnQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBuZXh0QWdlbnQgPSAoZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8eyBhZ2VudDogQWdlbnQgfT4pLmRldGFpbD8uYWdlbnRcbiAgICAgIGlmICghbmV4dEFnZW50KSByZXR1cm5cblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNlbGVjdEFnZW50KG5leHRBZ2VudClcbiAgICAgIHNldEhhc0Vycm9yKGZhbHNlKVxuICAgICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG5cbiAgICAgIC8vIEN1c3RvbSAvIGNsb25lK2dsb2JhbCBubyByZXF1aWVyZW4gZW50aXR5OiByZXNvbHZlbW9zIHNlc2nDs24gZXhpc3RlbnRlIGlubWVkaWF0YW1lbnRlLlxuICAgICAgLy8gQ2xvbmUrcHJvamVjdHxjbGllbnQgcXVlZGFuIGVzcGVyYW5kbyBzZWxlY2Npw7NuIGRlIGVudGlkYWQgKHJlc29sdmVyw6EgZWwgc2VsZWN0b3IpLlxuICAgICAgY29uc3QgbmVlZHNFbnRpdHkgPVxuICAgICAgICBuZXh0QWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKG5leHRBZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCcgfHwgbmV4dEFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKVxuICAgICAgaWYgKCFuZWVkc0VudGl0eSkge1xuICAgICAgICByZXNvbHZlQWdlbnRDaGF0KG5leHRBZ2VudClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9wZW5OZXdDaGF0V2l0aEFnZW50KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9wZW5OZXdDaGF0V2l0aEFnZW50KVxuICAgIH1cbiAgfSwgW3NlbGVjdEFnZW50LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHJlc29sdmVBZ2VudENoYXRdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0ID0gY29tcHV0ZWRDdXJyZW50T3B0aW9uICE9PSBvcHRpb25zLmNoYXRcbiAgY29uc3QgaGlkZUhlYWRlckFnZW50U2VsZWN0b3IgPSBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMubXlBZ2VudHNcbiAgY29uc3QgaGFuZGxlT3Blbk1hcmtldHBsYWNlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEN1cnJlbnRPcHRpb24ob3B0aW9ucy5teUFnZW50cylcbiAgfSwgW10pXG5cbiAgLyoqXG4gICAqIEFjY2nDs24gZGVsIGJvdMOzbiBcIm51ZXZvIGNoYXRcIiBkZWwgdG9vbGJhciBkZSBsYSBTaWRlYmFyLlxuICAgKlxuICAgKiBMYSBwYW50YWxsYSBkZXN0aW5vIGRlcGVuZGUgZGVsIGFnZW50ZSBhY3R1YWw6XG4gICAqIC0gYGN1c3RvbWAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIGBvcHRpb25zLm15QWdlbnRzYCAoZWxlZ2lyIG90cm8gYWdlbnRlKS5cbiAgICogLSBgY2xvbmVgICsgYGVudGl0eTogJ3Byb2plY3QnYCAgICDihpIgYG9wdGlvbnMucHJvamVjdFNlbGVjdG9yYCAoZWxlZ2lyIHByb3llY3RvKS5cbiAgICogLSBgY2xvbmVgICsgYGVudGl0eTogJ2NsaWVudCdgICAgICDihpIgYG9wdGlvbnMuY2xpZW50U2VsZWN0b3JgIChlbGVnaXIgY2xpZW50ZSkuXG4gICAqIC0gYGNsb25lYCArIGBlbnRpdHk6ICdnbG9iYWwnYCBjb24gbm9tYnJlIG1haWFrZXIvbWFya2V0cGxhY2Ug4oaSIGBvcHRpb25zLmhvbWVgXG4gICAqICAgKHJlbmRlcml6YSBgQ2hhdEFJSG9tZU1haWFrZXJgKS5cbiAgICogLSBGYWxsYmFjayDihpIgYG9wdGlvbnMuaG9tZWAuXG4gICAqL1xuICBjb25zdCBoYW5kbGVOZXdDaGF0QWN0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRBZ2VudCA9IGFnZW50XG5cbiAgICAvLyBBc2VndXJhbW9zIHF1ZSBsYSBzZWxlY2Npw7NuIGRlIGVudGl0eSBxdWVkZSBsaW1waWEgcGFyYSBsb3Mgc2VsZWN0b3JzLlxuICAgIGlmIChjdXJyZW50QWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgY3VycmVudEFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgIH0gZWxzZSBpZiAoY3VycmVudEFnZW50Py50eXBlID09PSAnY2xvbmUnICYmIGN1cnJlbnRBZ2VudD8uZW50aXR5ID09PSAnY2xpZW50Jykge1xuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICB9XG5cbiAgICBoYW5kbGVHb0hvbWUoKVxuXG4gICAgLy8gUGFyYSBhZ2VudGVzIGN1c3RvbSwgaGFuZGxlR29Ib21lIHlhIGhpem8gbG9zIHJlc2V0cyBjb211bmVzOyBzw7Nsb1xuICAgIC8vIHJlZGlyaWdpbW9zIGVsIGRlc3Rpbm8gYSBNaXMgQWdlbnRlcy5cbiAgICBpZiAoY3VycmVudEFnZW50Py50eXBlID09PSAnY3VzdG9tJykge1xuICAgICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLm15QWdlbnRzKVxuICAgIH1cbiAgfSwgW2FnZW50LCBoYW5kbGVHb0hvbWUsIHNldFByb2plY3QsIHNldENsaWVudF0pXG5cbiAgY29uc3QgaGFuZGxlR29Ub01haWFrZXIgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0SGFzRXJyb3IoZmFsc2UpXG4gICAgbGV0IG1haWFrZXJBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoKGE6IEFnZW50KSA9PiBhLnR5cGUgPT09ICdjbG9uZScgJiYgYS5lbnRpdHkgPT09ICdnbG9iYWwnKVxuICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgcGF0aDogYGFnZW50cz9hZ2VudF90eXBlPWNsb25lJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICBtYWlha2VyQWdlbnQgPSAoZGF0YS5kYXRhIHx8IFtdKS5maW5kKChhOiBBZ2VudCkgPT4gYS50eXBlID09PSAnY2xvbmUnICYmIGEuZW50aXR5ID09PSAnZ2xvYmFsJylcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFtYWlha2VyQWdlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpXG4gICAgc2V0Q3VycmVudE9wdGlvbihvcHRpb25zLmhvbWUpXG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQoKVxuICAgIH1cbiAgICAvLyBtYWlha2VyL21hcmtldHBsYWNlID0gY2xvbmUrZ2xvYmFsIOKGkiBubyByZXF1aWVyZSBlbnRpdHlfaWRcbiAgICByZXNvbHZlQWdlbnRDaGF0KG1haWFrZXJBZ2VudClcbiAgfSwgW2FnZW50cy5kYXRhLCBpMThuLmxhbmd1YWdlLCBzZWxlY3RBZ2VudCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCByZXNvbHZlQWdlbnRDaGF0XSlcbiAgY29uc3QgaGFuZGxlRGVsZXRlQWdlbnRGcm9tTXlBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICAoYWdlbnRJZDogc3RyaW5nKSA9PiB7XG4gICAgICByZW1vdmVBZ2VudChhZ2VudElkKVxuICAgICAgaWYgKGFnZW50Py5pZCA9PT0gYWdlbnRJZCkge1xuICAgICAgICBzZWxlY3RGaXJzdEFnZW50KGFnZW50SWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQ/LmlkLCByZW1vdmVBZ2VudCwgc2VsZWN0Rmlyc3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhpZGVGb290ZXJPbk1haWFrZXJNYXJrZXRwbGFjZUhvbWUgPSBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuaG9tZSAmJiBpc01haWFrZXJBZ2VudFNlbGVjdGVkXG5cbiAgY29uc3QgbW9kYWxQYW5lbCA9IChcbiAgICA8PlxuICAgICAge3ZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pID8gKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IGlzRmxvYXRpbmcgPyAnbm9uZScgOiAnY29udGVudHMnIH19IGFyaWEtaGlkZGVuPXtpc0Zsb2F0aW5nfT5cbiAgICAgICAgICA8U2lkZWJhclxuICAgICAgICAgICAgb25Hb1RvQ2hhdD17Z29Ub0NoYXR9XG4gICAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRTaWRlYmFySGFzRXJyb3IodHJ1ZSl9XG4gICAgICAgICAgICBoYW5kbGVHb1RvSG9tZT17aGFuZGxlR29Ib21lfVxuICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlPXtoYW5kbGVPcGVuTWFya2V0cGxhY2V9XG4gICAgICAgICAgICBzaG93TmV3Q2hhdD17c2hvd05ld0NoYXR9XG4gICAgICAgICAgICByZWZldGNoQ2hhdHM9e3JlZmV0Y2hDaGF0c31cbiAgICAgICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cz17c2V0UmVmZXRjaENoYXRzfVxuICAgICAgICAgICAgaGFzRXJyb3I9e3NpZGViYXJIYXNFcnJvcn1cbiAgICAgICAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmPXtyZXNldFNlbGVjdGVkQ2hhdFJlZn1cbiAgICAgICAgICAgIGFnZW50c05hdkFjdGl2ZT17c2lkZWJhckFnZW50c05hdkFjdGl2ZX1cbiAgICAgICAgICAgIG9uTmV3Q2hhdD17aGFuZGxlTmV3Q2hhdEFjdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFNDQ0FJTUNvbnRlbnQgZXhwYW5kZWQ9e2V4cGFuZGVkfSBmbG9hdGluZz17aXNGbG9hdGluZ30+XG4gICAgICAgIDxDaGF0QUlNb2RhbEhlYWRlclxuICAgICAgICAgIGxheW91dE1vZGU9e2xheW91dE1vZGV9XG4gICAgICAgICAgb25MYXlvdXRNb2RlQ2hhbmdlPXtzZXRMYXlvdXRNb2RlfVxuICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e2lzRmxvYXRpbmd9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9e2hhbmRsZURyYWdTdGFydH1cbiAgICAgICAgICBvbkRyYWdNb3ZlPXtoYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZURyYWdFbmR9XG4gICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgYWdlbnRzPXthZ2VudHMuZGF0YX1cbiAgICAgICAgICBoYXNFcnJvcj17ISFhZ2VudEVycm9yfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgbG9hZGluZ01vcmU9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgIGhhc01vcmU9e2FnZW50cy5oYXNfbW9yZX1cbiAgICAgICAgICBoYW5kbGVSZXNldENoYXQ9e2hhbmRsZVJlc2V0Q2hhdH1cbiAgICAgICAgICBvbkFnZW50VXBkYXRlPXt1cGRhdGVBZ2VudEZhdm9yaXRlfVxuICAgICAgICAgIGxvYWRNb3JlQWdlbnRzPXtsb2FkTW9yZUFnZW50c31cbiAgICAgICAgICBzb3J0QWdlbnRzTGlzdD17c29ydEFnZW50c0xpc3R9XG4gICAgICAgICAgaGlkZUFnZW50U2VsZWN0b3I9e2hpZGVIZWFkZXJBZ2VudFNlbGVjdG9yfVxuICAgICAgICAgIG9uQWdlbnRTZWxlY3RlZD17cmVzb2x2ZUFnZW50Q2hhdH1cbiAgICAgICAgLz5cbiAgICAgICAge2hhc0Vycm9yID8gKFxuICAgICAgICAgIDxNQUlBRXJyb3IgLz5cbiAgICAgICAgKSA6IHZhbGlkYXRlQWNjZXNzQnlGZWF0dXJlKHNlY3Rpb24pID8gKFxuICAgICAgICAgIDxDaGF0QUlDb250ZW50XG4gICAgICAgICAgICBjdXJyZW50T3B0aW9uPXtjb21wdXRlZEN1cnJlbnRPcHRpb259XG4gICAgICAgICAgICBoYW5kbGVycz17eyAuLi5oYW5kbGVycywgY2hhdDogc3RhcnRDaGF0LCBob21lOiBoYW5kbGVycy5ob21lLCBoYW5kbGVHb0hvbWUgfX1cbiAgICAgICAgICAgIG9uRXJyb3I9eygpID0+IHNldEhhc0Vycm9yKHRydWUpfVxuICAgICAgICAgICAgcmVmcz17eyB1c2VySW5pdGlhbE1lc3NhZ2UsIGluaXRpYWxDaGF0SWQgfX1cbiAgICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17aGFuZGxlU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgIGFnZW50cz17YWdlbnRzLmRhdGF9XG4gICAgICAgICAgICBvbkRlbGV0ZUFnZW50PXtoYW5kbGVEZWxldGVBZ2VudEZyb21NeUFnZW50c31cbiAgICAgICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT17dXBkYXRlQWdlbnRGYXZvcml0ZX1cbiAgICAgICAgICAgIGhhc01vcmVBZ2VudHM9eyEhYWdlbnRzLmhhc19tb3JlfVxuICAgICAgICAgICAgbG9hZGluZ01vcmVBZ2VudHM9e2xvYWRpbmdNb3JlfVxuICAgICAgICAgICAgb25Mb2FkTW9yZUFnZW50cz17bG9hZE1vcmVBZ2VudHN9XG4gICAgICAgICAgICBvbkdvVG9NYWlha2VyPXtoYW5kbGVHb1RvTWFpYWtlcn1cbiAgICAgICAgICAgIG9uUmVzb2x2ZUFnZW50Q2hhdD17cmVzb2x2ZUFnZW50Q2hhdH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgeygoY29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmhvbWUgJiYgISFhZ2VudHM/LmRhdGE/Lmxlbmd0aCkgfHxcbiAgICAgICAgICBjb21wdXRlZEN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkgJiZcbiAgICAgICAgICAhaGlkZUZvb3Rlck9uTWFpYWtlck1hcmtldHBsYWNlSG9tZSAmJlxuICAgICAgICAgICFoYXNFcnJvciAmJlxuICAgICAgICAgICFsb2FkaW5nICYmXG4gICAgICAgICAgdmFsaWRhdGVBY2Nlc3NCeUZlYXR1cmUoc2VjdGlvbikgJiYgKFxuICAgICAgICAgICAgPENoYXRBaU1vZGFsRm9vdGVyXG4gICAgICAgICAgICAgIGFnZW50PXthZ2VudH1cbiAgICAgICAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICBoYW5kbGVTdG9wR2VuZXJhdGlvbj17c3RvcEdlbmVyYXRpb25GdW5jdGlvbn1cbiAgICAgICAgICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICBpc1dyaXRpbmc9e2lzV3JpdGluZ31cbiAgICAgICAgICAgICAgY2hhdElkPXtpbml0aWFsQ2hhdElkfVxuICAgICAgICAgICAgICBuZXdDaGF0S2V5PXtuZXdDaGF0S2V5fVxuICAgICAgICAgICAgICBzaG93RmFxcz17Y29tcHV0ZWRDdXJyZW50T3B0aW9uID09PSBvcHRpb25zLmNoYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUNvbnRlbnQ+XG4gICAgPC8+XG4gIClcblxuICBjb25zdCBjb250ZW50V3JhcHBlciA9IChcbiAgICA8U0NDQUlNQ29udGVudFdyYXBwZXIgZXhwYW5kZWQ9e2V4cGFuZGVkfSBmbG9hdGluZz17aXNGbG9hdGluZ30gcmVmPXtjb250ZW50V3JhcHBlclJlZn0+XG4gICAgICB7bW9kYWxQYW5lbH1cbiAgICA8L1NDQ0FJTUNvbnRlbnRXcmFwcGVyPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICBzZWxlY3RvciAmJlxuICAgIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0NBSU1XcmFwcGVyIGV4cGFuZGVkPXtleHBhbmRlZH0gbGF5b3V0TW9kZT17bGF5b3V0TW9kZX0gZHJhZ1Bvc2l0aW9uPXtyZXNvbHZlZERyYWdQb3NpdGlvbn0+XG4gICAgICAgIDxGbG9hdGluZ1BhbmVsTW90aW9uIHRpbHQ9e3RpbHRNb3Rpb259IGV4cGFuZGVkPXtleHBhbmRlZH0+XG4gICAgICAgICAge2NvbnRlbnRXcmFwcGVyfVxuICAgICAgICA8L0Zsb2F0aW5nUGFuZWxNb3Rpb24+XG4gICAgICAgIHt1c2VySGFzUGVybWlzc2lvbnMgJiYgKFxuICAgICAgICAgIDxBYm1BZ2VudE1vZGFsXG4gICAgICAgICAgICBhZGRBZ2VudD17YWRkQWdlbnR9XG4gICAgICAgICAgICB1cGRhdGVBZ2VudD17dXBkYXRlQWdlbnR9XG4gICAgICAgICAgICByZW1vdmVBZ2VudD17cmVtb3ZlQWdlbnR9XG4gICAgICAgICAgICB1cGRhdGVBZ2VudEZhdm9yaXRlPXt1cGRhdGVBZ2VudEZhdm9yaXRlfVxuICAgICAgICAgICAgc2VsZWN0Rmlyc3RBZ2VudD17c2VsZWN0Rmlyc3RBZ2VudH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8U25hY2tiYXIgLz5cbiAgICAgIDwvU0NDQUlNV3JhcHBlcj4sXG4gICAgICBzZWxlY3RvclxuICAgIClcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBRUVBLFdBQVcsRUFDWEMsT0FBTyxFQUNQQyxRQUFRLEVBQ1JDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxlQUFlLFFBRVYsT0FBTztBQUNkLE9BQU9DLFFBQVEsTUFBTSxXQUFXO0FBQ2hDLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFDbkQsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUVqRCxTQUFTQyxhQUFhLFFBQVEsa0JBQWtCO0FBQ2hELFNBQVNDLGFBQWEsRUFBRUMsT0FBTyxRQUFRLGFBQWE7QUFDcEQsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsWUFBWSxRQUFRLHlDQUF5QztBQUN0RSxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFFbEUsU0FBU0MsaUJBQWlCLFFBQVEsa0RBQWtEO0FBQ3BGLFNBQVNDLFFBQVEsUUFBUSxtQ0FBbUM7QUFDNUQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBQ2hFLFNBQVNDLGFBQWEsUUFBUSw2Q0FBNkM7QUFDM0UsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxhQUFhLEVBQUVDLG9CQUFvQixFQUFFQyxhQUFhLFFBQVEsc0JBQXNCO0FBQ3pGLFNBQVNDLDJCQUEyQixRQUFpQyxVQUFVO0FBQy9FLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxTQUFTQyxjQUFjLFFBQVEsd0NBQXdDO0FBRXZFLFNBQVNDLFlBQVks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
@@ -2,12 +2,15 @@ import { SCCAIMFloatingPanelMotionRoot } from './FloatingPanelMotion.styles';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  export function FloatingPanelMotion(_ref) {
4
4
  var tilt = _ref.tilt,
5
- children = _ref.children;
5
+ children = _ref.children,
6
+ _ref$expanded = _ref.expanded,
7
+ expanded = _ref$expanded === void 0 ? false : _ref$expanded;
6
8
  return /*#__PURE__*/_jsx(SCCAIMFloatingPanelMotionRoot, {
9
+ $expanded: expanded,
7
10
  style: {
8
11
  rotate: tilt
9
12
  },
10
13
  children: children
11
14
  });
12
15
  }
13
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCIsImpzeCIsIl9qc3giLCJGbG9hdGluZ1BhbmVsTW90aW9uIiwiX3JlZiIsInRpbHQiLCJjaGlsZHJlbiIsInN0eWxlIiwicm90YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2Zsb2F0aW5nUGFuZWxNb3Rpb24vRmxvYXRpbmdQYW5lbE1vdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNb3Rpb25WYWx1ZSB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCB9IGZyb20gJy4vRmxvYXRpbmdQYW5lbE1vdGlvbi5zdHlsZXMnXG5cbnR5cGUgRmxvYXRpbmdQYW5lbE1vdGlvblByb3BzID0ge1xuICB0aWx0OiBNb3Rpb25WYWx1ZTxudW1iZXI+XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZsb2F0aW5nUGFuZWxNb3Rpb24oeyB0aWx0LCBjaGlsZHJlbiB9OiBGbG9hdGluZ1BhbmVsTW90aW9uUHJvcHMpIHtcbiAgcmV0dXJuIDxTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCBzdHlsZT17eyByb3RhdGU6IHRpbHQgfX0+e2NoaWxkcmVufTwvU0NDQUlNRmxvYXRpbmdQYW5lbE1vdGlvblJvb3Q+XG59XG4iXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLDZCQUE2QixRQUFRLDhCQUE4QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQU81RSxPQUFPLFNBQVNDLG1CQUFtQkEsQ0FBQUMsSUFBQSxFQUErQztFQUFBLElBQTVDQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUFFQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtFQUNsRCxvQkFBT0osSUFBQSxDQUFDRiw2QkFBNkI7SUFBQ08sS0FBSyxFQUFFO01BQUVDLE1BQU0sRUFBRUg7SUFBSyxDQUFFO0lBQUFDLFFBQUEsRUFBRUE7RUFBUSxDQUFnQyxDQUFDO0FBQzNHIiwiaWdub3JlTGlzdCI6W119
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCIsImpzeCIsIl9qc3giLCJGbG9hdGluZ1BhbmVsTW90aW9uIiwiX3JlZiIsInRpbHQiLCJjaGlsZHJlbiIsIl9yZWYkZXhwYW5kZWQiLCJleHBhbmRlZCIsIiRleHBhbmRlZCIsInN0eWxlIiwicm90YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2Zsb2F0aW5nUGFuZWxNb3Rpb24vRmxvYXRpbmdQYW5lbE1vdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNb3Rpb25WYWx1ZSB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCB9IGZyb20gJy4vRmxvYXRpbmdQYW5lbE1vdGlvbi5zdHlsZXMnXG5cbnR5cGUgRmxvYXRpbmdQYW5lbE1vdGlvblByb3BzID0ge1xuICB0aWx0OiBNb3Rpb25WYWx1ZTxudW1iZXI+XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGbG9hdGluZ1BhbmVsTW90aW9uKHsgdGlsdCwgY2hpbGRyZW4sIGV4cGFuZGVkID0gZmFsc2UgfTogRmxvYXRpbmdQYW5lbE1vdGlvblByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPFNDQ0FJTUZsb2F0aW5nUGFuZWxNb3Rpb25Sb290ICRleHBhbmRlZD17ZXhwYW5kZWR9IHN0eWxlPXt7IHJvdGF0ZTogdGlsdCB9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDQ0FJTUZsb2F0aW5nUGFuZWxNb3Rpb25Sb290PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLDZCQUE2QixRQUFRLDhCQUE4QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQVE1RSxPQUFPLFNBQVNDLG1CQUFtQkEsQ0FBQUMsSUFBQSxFQUFpRTtFQUFBLElBQTlEQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUFFQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtJQUFBQyxhQUFBLEdBQUFILElBQUEsQ0FBRUksUUFBUTtJQUFSQSxRQUFRLEdBQUFELGFBQUEsY0FBRyxLQUFLLEdBQUFBLGFBQUE7RUFDcEUsb0JBQ0VMLElBQUEsQ0FBQ0YsNkJBQTZCO0lBQUNTLFNBQVMsRUFBRUQsUUFBUztJQUFDRSxLQUFLLEVBQUU7TUFBRUMsTUFBTSxFQUFFTjtJQUFLLENBQUU7SUFBQUMsUUFBQSxFQUN6RUE7RUFBUSxDQUNvQixDQUFDO0FBRXBDIiwiaWdub3JlTGlzdCI6W119
@@ -1,9 +1,12 @@
1
1
  import { motion } from 'framer-motion';
2
- import styled from 'styled-components';
2
+ import styled, { css } from 'styled-components';
3
3
 
4
4
  /** Contenedor motion del panel flotante: pivote inferior (cuelga desde abajo). */
5
5
  export var SCCAIMFloatingPanelMotionRoot = styled(motion.div).withConfig({
6
6
  displayName: "FloatingPanelMotionstyles__SCCAIMFloatingPanelMotionRoot",
7
7
  componentId: "sc-1omxcem-0"
8
- })(["display:flex;height:100%;transform-origin:50% 100%;"]);
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb3Rpb24iLCJzdHlsZWQiLCJTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1vZGFsL2Zsb2F0aW5nUGFuZWxNb3Rpb24vRmxvYXRpbmdQYW5lbE1vdGlvbi5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdGlvbiB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG4vKiogQ29udGVuZWRvciBtb3Rpb24gZGVsIHBhbmVsIGZsb3RhbnRlOiBwaXZvdGUgaW5mZXJpb3IgKGN1ZWxnYSBkZXNkZSBhYmFqbykuICovXG5leHBvcnQgY29uc3QgU0NDQUlNRmxvYXRpbmdQYW5lbE1vdGlvblJvb3QgPSBzdHlsZWQobW90aW9uLmRpdilgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxlQUFlO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7O0FBRXRDO0FBQ0EsT0FBTyxJQUFNQyw2QkFBNkIsR0FBR0QsTUFBTSxDQUFDRCxNQUFNLENBQUNHLEdBQUcsQ0FBQyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDJEQUk5RCIsImlnbm9yZUxpc3QiOltdfQ==
8
+ })(["display:flex;height:100%;transform-origin:50% 100%;", ""], function (_ref) {
9
+ var $expanded = _ref.$expanded;
10
+ return $expanded && css(["flex:1 1 0%;min-width:0;width:100%;max-width:100%;"]);
11
+ });
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb3Rpb24iLCJzdHlsZWQiLCJjc3MiLCJTQ0NBSU1GbG9hdGluZ1BhbmVsTW90aW9uUm9vdCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIiRleHBhbmRlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9mbG9hdGluZ1BhbmVsTW90aW9uL0Zsb2F0aW5nUGFuZWxNb3Rpb24uc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3Rpb24gfSBmcm9tICdmcmFtZXItbW90aW9uJ1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcblxuLyoqIENvbnRlbmVkb3IgbW90aW9uIGRlbCBwYW5lbCBmbG90YW50ZTogcGl2b3RlIGluZmVyaW9yIChjdWVsZ2EgZGVzZGUgYWJham8pLiAqL1xuZXhwb3J0IGNvbnN0IFNDQ0FJTUZsb2F0aW5nUGFuZWxNb3Rpb25Sb290ID0gc3R5bGVkKG1vdGlvbi5kaXYpPHsgJGV4cGFuZGVkPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbiAgLyogRW4gY2hhdCBjb21wbGV0byBlbCBtb3Rpb24gcm9vdCBkZWJlIGxsZW5hciBlbCBhbmNobyBkZWwgd3JhcHBlcjsgc2kgbm8sIHdpZHRoOjEwMCUgZGVsIGhpam8gY29sYXBzYS4gKi9cbiAgJHsoeyAkZXhwYW5kZWQgfSkgPT5cbiAgICAkZXhwYW5kZWQgJiZcbiAgICBjc3NgXG4gICAgICBmbGV4OiAxIDEgMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsZUFBZTtBQUN0QyxPQUFPQyxNQUFNLElBQUlDLEdBQUcsUUFBUSxtQkFBbUI7O0FBRS9DO0FBQ0EsT0FBTyxJQUFNQyw2QkFBNkIsR0FBR0YsTUFBTSxDQUFDRCxNQUFNLENBQUNJLEdBQUcsQ0FBQyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdFQUszRCxVQUFBQyxJQUFBO0VBQUEsSUFBR0MsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7RUFBQSxPQUNaQSxTQUFTLElBQ1RQLEdBQUcsd0RBS0Y7QUFBQSxFQUNKIiwiaWdub3JlTGlzdCI6W119