@workflow/web-shared 5.0.0-beta.41 → 5.0.0-beta.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/components/event-list-view.d.ts +10 -2
  2. package/dist/components/event-list-view.d.ts.map +1 -1
  3. package/dist/components/event-list-view.js +52 -26
  4. package/dist/components/sidebar/attributes-block.d.ts.map +1 -1
  5. package/dist/components/sidebar/attributes-block.js +3 -6
  6. package/dist/components/sidebar/conversation-view.d.ts.map +1 -1
  7. package/dist/components/sidebar/conversation-view.js +19 -36
  8. package/dist/components/sidebar/entity-detail-panel.d.ts +5 -0
  9. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  10. package/dist/components/sidebar/entity-detail-panel.js +2 -2
  11. package/dist/components/sidebar/events-list.d.ts +7 -1
  12. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  13. package/dist/components/sidebar/events-list.js +6 -5
  14. package/dist/components/sidebar/resolve-hook-modal.d.ts.map +1 -1
  15. package/dist/components/sidebar/resolve-hook-modal.js +4 -145
  16. package/dist/components/sidebar/sidebar-data-context.d.ts +6 -0
  17. package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -1
  18. package/dist/components/sidebar/sidebar-data-context.js +1 -1
  19. package/dist/components/stream-viewer-skeleton.js +6 -6
  20. package/dist/components/stream-viewer.js +2 -2
  21. package/dist/components/trace-viewer/components/detail-panel.d.ts.map +1 -1
  22. package/dist/components/trace-viewer/components/detail-panel.js +2 -1
  23. package/dist/components/trace-viewer/components/middle-truncate/measurement-batch.d.ts +9 -0
  24. package/dist/components/trace-viewer/components/middle-truncate/measurement-batch.d.ts.map +1 -0
  25. package/dist/components/trace-viewer/components/middle-truncate/measurement-batch.js +29 -0
  26. package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -1
  27. package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.js +16 -8
  28. package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -1
  29. package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.js +83 -19
  30. package/dist/components/trace-viewer/components/timeline.d.ts.map +1 -1
  31. package/dist/components/trace-viewer/components/timeline.js +13 -22
  32. package/dist/components/trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -1
  33. package/dist/components/trace-viewer/components/trace-viewer-skeleton.js +58 -18
  34. package/dist/components/trace-viewer/icons.js +5 -5
  35. package/dist/components/trace-viewer/utils.d.ts +6 -10
  36. package/dist/components/trace-viewer/utils.d.ts.map +1 -1
  37. package/dist/components/trace-viewer/utils.js +14 -24
  38. package/dist/components/trace-viewer.d.ts.map +1 -1
  39. package/dist/components/trace-viewer.js +12 -4
  40. package/dist/components/ui/context-card.d.ts.map +1 -1
  41. package/dist/components/ui/context-card.js +9 -21
  42. package/dist/components/ui/data-inspector.d.ts.map +1 -1
  43. package/dist/components/ui/data-inspector.js +8 -35
  44. package/dist/components/ui/duplicate-event-tooltip.d.ts +15 -0
  45. package/dist/components/ui/duplicate-event-tooltip.d.ts.map +1 -0
  46. package/dist/components/ui/duplicate-event-tooltip.js +19 -0
  47. package/dist/components/ui/menu-dropdown.d.ts.map +1 -1
  48. package/dist/components/ui/menu-dropdown.js +3 -19
  49. package/dist/components/ui/skeleton.js +2 -2
  50. package/dist/components/ui/spinner.d.ts.map +1 -1
  51. package/dist/components/ui/spinner.js +5 -11
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -1
  55. package/dist/lib/duplicate-events.d.ts +27 -0
  56. package/dist/lib/duplicate-events.d.ts.map +1 -0
  57. package/dist/lib/duplicate-events.js +166 -0
  58. package/dist/lib/event-materialization.d.ts +15 -2
  59. package/dist/lib/event-materialization.d.ts.map +1 -1
  60. package/dist/lib/event-materialization.js +19 -4
  61. package/dist/lib/trace-builder.d.ts +16 -1
  62. package/dist/lib/trace-builder.d.ts.map +1 -1
  63. package/dist/lib/trace-builder.js +23 -4
  64. package/package.json +4 -4
  65. package/src/components/event-list-view.tsx +70 -32
  66. package/src/components/sidebar/attributes-block.tsx +4 -11
  67. package/src/components/sidebar/conversation-view.tsx +25 -79
  68. package/src/components/sidebar/entity-detail-panel.tsx +6 -0
  69. package/src/components/sidebar/events-list.tsx +21 -3
  70. package/src/components/sidebar/resolve-hook-modal.tsx +23 -186
  71. package/src/components/sidebar/sidebar-data-context.tsx +6 -0
  72. package/src/components/stream-viewer-skeleton.tsx +5 -5
  73. package/src/components/stream-viewer.tsx +1 -1
  74. package/src/components/trace-viewer/components/detail-panel.tsx +1 -0
  75. package/src/components/trace-viewer/components/middle-truncate/measurement-batch.ts +47 -0
  76. package/src/components/trace-viewer/components/middle-truncate/middle-truncate.tsx +15 -7
  77. package/src/components/trace-viewer/components/middle-truncate/use-middle-truncate.ts +132 -38
  78. package/src/components/trace-viewer/components/timeline.tsx +21 -39
  79. package/src/components/trace-viewer/components/trace-viewer-skeleton.tsx +63 -35
  80. package/src/components/trace-viewer/icons.tsx +4 -4
  81. package/src/components/trace-viewer/utils.test.ts +5 -7
  82. package/src/components/trace-viewer/utils.ts +17 -31
  83. package/src/components/trace-viewer.tsx +15 -3
  84. package/src/components/ui/context-card.tsx +16 -26
  85. package/src/components/ui/data-inspector.tsx +20 -65
  86. package/src/components/ui/duplicate-event-tooltip.tsx +44 -0
  87. package/src/components/ui/menu-dropdown.tsx +8 -22
  88. package/src/components/ui/skeleton.tsx +2 -2
  89. package/src/components/ui/spinner.tsx +4 -8
  90. package/src/index.ts +4 -0
  91. package/src/lib/duplicate-events.test.ts +339 -0
  92. package/src/lib/duplicate-events.ts +188 -0
  93. package/src/lib/event-materialization.test.ts +117 -0
  94. package/src/lib/event-materialization.ts +23 -3
  95. package/src/lib/trace-builder.test.ts +74 -0
  96. package/src/lib/trace-builder.ts +30 -3
@@ -5,7 +5,7 @@ import { Fragment, memo, useCallback, useEffect, useMemo, useRef, useState, } fr
5
5
  import { cn } from '../../../lib/cn';
6
6
  import { isSpanDimmedBySearch } from '../search';
7
7
  import { formatDurationPrecise, getHighResInMs } from '../util/timing';
8
- import { computeOffscreenMarkers, computeSpanDelta, computeSpanGaps, computeSpanMarkers, computeSpanSegments, getResourceColor, getSpanDurationMs, isSpanErrored, } from '../utils';
8
+ import { computeOffscreenMarkers, computeSpanDelta, computeSpanGaps, computeSpanMarkers, computeSpanSegments, getResourceClassNames, getSpanDurationMs, isSpanErrored, } from '../utils';
9
9
  import { cullCollidingMarkers, MarkerLayer, OffscreenMarkerIndicator, projectMarkers, } from './span-markers';
10
10
  import styles from './timeline.module.css';
11
11
  import { ROW_HEIGHT_PX, useRowWindow } from './use-row-window';
@@ -27,10 +27,6 @@ const SEGMENT_CLASSES = {
27
27
  sleeping: 'bg-gray-400 border border-gray-500',
28
28
  received: 'bg-blue-200 border border-blue-500',
29
29
  };
30
- const TIMELINE_INSET_STYLE = {
31
- left: TIMELINE_PADDING_PX,
32
- right: TIMELINE_PADDING_PX,
33
- };
34
30
  const STRIPED_SEGMENT_STATUSES = new Set([
35
31
  'pending',
36
32
  'running',
@@ -133,8 +129,8 @@ function BoundaryArrow({ direction, }) {
133
129
  const Icon = direction === 'right' ? ArrowRight : ArrowLeft;
134
130
  return (_jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-[0.25rem]", children: _jsx(Icon, { className: "size-3 text-gray-900" }) }));
135
131
  }
136
- function PlainBar({ bg, border, label, }) {
137
- return (_jsx("div", { className: "relative h-6 w-full min-w-1 rounded-[0.25rem] border", style: { background: bg, borderColor: border }, children: label ? _jsx(DurationLabel, { label: label }) : null }));
132
+ function PlainBar({ className, label, }) {
133
+ return (_jsx("div", { className: cn('relative h-6 w-full min-w-1 rounded-[0.25rem] border', className), children: label ? _jsx(DurationLabel, { label: label }) : null }));
138
134
  }
139
135
  function LeadInConnector({ leftPct, widthPct, label, }) {
140
136
  return (_jsxs("div", { className: "absolute top-1/2 h-6 -translate-y-1/2", style: {
@@ -157,11 +153,10 @@ function SegmentBar({ segments, showLabels = true, }) {
157
153
  // Only render the label when there's enough room for it without clipping.
158
154
  const showLabel = showLabels &&
159
155
  seg.pixelWidth >= Math.max(40, estimateLabelWidthPx(label));
160
- return (_jsxs("div", { className: cn('absolute h-full overflow-hidden rounded-[0.25rem]', SEGMENT_CLASSES[seg.status]), style: {
156
+ return (_jsxs("div", { className: cn('absolute h-full min-w-px overflow-hidden rounded-[0.25rem]', SEGMENT_CLASSES[seg.status]), style: {
161
157
  // 1px gap between adjacent segments, distributed equally.
162
158
  left: `calc(${seg.leftPct}% + 0.5px)`,
163
159
  width: `calc(${seg.widthPct}% - 1px)`,
164
- minWidth: 1,
165
160
  }, children: [STRIPED_SEGMENT_STATUSES.has(seg.status) ? (_jsx(AnimatedStripes, { status: seg.status })) : null, showLabel ? _jsx(DurationLabel, { label: label }) : null] }, i));
166
161
  }) }));
167
162
  }
@@ -190,20 +185,17 @@ const TimelineBar = memo(function TimelineBar({ span, viewStart, viewDuration, c
190
185
  // so the in-bar segment label is suppressed.
191
186
  const hasMarkers = markers.length > 0 || offscreen.left !== null || offscreen.right !== null;
192
187
  const isErrored = isSpanErrored(span);
193
- const colors = getResourceColor(span.resource);
194
- const fallbackBg = isErrored
195
- ? (colors.errorBg ?? 'var(--ds-red-200)')
196
- : colors.bg;
197
- const fallbackBorder = isErrored
198
- ? (colors.errorBorder ?? 'var(--ds-red-500)')
199
- : colors.border;
188
+ const colors = getResourceClassNames(span.resource);
189
+ const fallbackClassName = isErrored
190
+ ? (colors.errorClassName ?? 'border-red-500 bg-red-200')
191
+ : colors.className;
200
192
  const totalLabel = formatDurationPrecise(totalDurationMs);
201
193
  const showTotalLabel = geometry.visiblePixelWidth >=
202
194
  Math.max(40, estimateLabelWidthPx(totalLabel));
203
195
  const handleClick = useCallback(() => {
204
196
  onSelect(span.spanId);
205
197
  }, [onSelect, span.spanId]);
206
- return (_jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn('group/timeline-row h-10 relative flex items-center hover:bg-gray-100 aria-selected:bg-gray-100 aria-selected:hover:bg-gray-200 transition-opacity', isDimmed && 'opacity-35'), onClick: handleClick, children: _jsxs("div", { className: "absolute inset-y-0", style: TIMELINE_INSET_STYLE, children: [_jsx("div", { className: "absolute top-1/2 h-6 -translate-y-1/2 overflow-hidden rounded-[0.25rem]", style: getBarPositionStyle(geometry), children: geometry.mode.kind === 'arrow' ? (_jsx(BoundaryArrow, { direction: geometry.mode.direction })) : geometry.mode.kind === 'tiny' ? (_jsx("div", { className: "h-6 rounded-[0.25rem] border", style: { background: fallbackBg, borderColor: fallbackBorder } })) : segments.length > 0 ? (_jsx(SegmentBar, { segments: segments, showLabels: !hasMarkers })) : (_jsx(PlainBar, { bg: fallbackBg, border: fallbackBorder, label: showTotalLabel ? totalLabel : null })) }), hasMarkers ? (_jsxs("div", { className: "pointer-events-none absolute top-1/2 h-6 -translate-y-1/2", style: getBarPositionStyle(geometry), children: [markers.length > 0 ? _jsx(MarkerLayer, { markers: markers }) : null, offscreen.left ? (_jsx(OffscreenMarkerIndicator, { direction: "left", count: offscreen.left.count, targetMs: offscreen.left.nearestMs, onReveal: onRevealTime })) : null, offscreen.right ? (_jsx(OffscreenMarkerIndicator, { direction: "right", count: offscreen.right.count, targetMs: offscreen.right.nearestMs, onReveal: onRevealTime })) : null, showTotalLabel ? (_jsx(DurationLabel, { label: totalLabel,
198
+ return (_jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn('group/timeline-row h-10 relative flex items-center hover:bg-gray-100 aria-selected:bg-gray-100 aria-selected:hover:bg-gray-200 transition-opacity', isDimmed && 'opacity-35'), onClick: handleClick, children: _jsxs("div", { className: "absolute inset-x-4 inset-y-0", children: [_jsx("div", { className: "absolute top-1/2 h-6 -translate-y-1/2 overflow-hidden rounded-[0.25rem]", style: getBarPositionStyle(geometry), children: geometry.mode.kind === 'arrow' ? (_jsx(BoundaryArrow, { direction: geometry.mode.direction })) : geometry.mode.kind === 'tiny' ? (_jsx("div", { className: cn('h-6 rounded-[0.25rem] border', fallbackClassName) })) : segments.length > 0 ? (_jsx(SegmentBar, { segments: segments, showLabels: !hasMarkers })) : (_jsx(PlainBar, { className: fallbackClassName, label: showTotalLabel ? totalLabel : null })) }), hasMarkers ? (_jsxs("div", { className: "pointer-events-none absolute top-1/2 h-6 -translate-y-1/2", style: getBarPositionStyle(geometry), children: [markers.length > 0 ? _jsx(MarkerLayer, { markers: markers }) : null, offscreen.left ? (_jsx(OffscreenMarkerIndicator, { direction: "left", count: offscreen.left.count, targetMs: offscreen.left.nearestMs, onReveal: onRevealTime })) : null, offscreen.right ? (_jsx(OffscreenMarkerIndicator, { direction: "right", count: offscreen.right.count, targetMs: offscreen.right.nearestMs, onReveal: onRevealTime })) : null, showTotalLabel ? (_jsx(DurationLabel, { label: totalLabel,
207
199
  // Shift clear of the left edge indicator so it isn't covered.
208
200
  className: offscreen.left ? 'pl-10' : undefined })) : null] })) : null] }) }));
209
201
  });
@@ -252,9 +244,8 @@ const DeltaMeasureLine = memo(function DeltaMeasureLine({ delta, anchorRowIndex,
252
244
  : endX + 4 + labelWidthPx <= timelineWidth
253
245
  ? { left: endX + 4, translate: '' }
254
246
  : { left: startX - 4, translate: '-translate-x-full' };
255
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: "absolute h-px bg-amber-800", style: {
247
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "absolute h-px w-1 bg-amber-800", style: {
256
248
  left: Math.min(anchorX, guideX),
257
- width: MEASURE_GUIDE_OUTSET_PX,
258
249
  top: anchorCenterY,
259
250
  } }), _jsx("div", { className: "absolute w-px bg-amber-800", style: {
260
251
  left: guideX,
@@ -314,8 +305,8 @@ export function Timeline({ spans, viewStart, viewEnd, markers, selectedId, searc
314
305
  ? { delta, anchorRowIndex: anchorIndex, hoveredRowIndex: hover.rowIndex }
315
306
  : null;
316
307
  }, [altHeld, anchorIndex, hover, spans, viewStart, viewEnd]);
317
- return (_jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", style: { minHeight: spans.length * ROW_HEIGHT_PX }, children: [_jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: markers.map((marker) =>
308
+ return (_jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", style: { minHeight: spans.length * ROW_HEIGHT_PX }, children: [_jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-x-4 inset-y-0", children: markers.map((marker) =>
318
309
  // Skip the "0s" origin marker since the left edge already implies it.
319
- Math.abs(marker.value) > 0.000001 ? (_jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker.position * 100}%` } }, String(marker.value))) : null) }), hover != null && (_jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: _jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hover.fraction * 100}%` } }) })), _jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => (_jsx(TimelineBar, { span: span, viewStart: viewStart, viewDuration: viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect: onSelect, onRevealTime: onRevealTime }, span.spanId))) }), altHeld && anchorIndex < 0 && (_jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gapMeasurements.map((gap) => (_jsx(DeltaMeasureLine, { ...gap, timelineWidth: timelineWidth }, gap.anchorRowIndex))) })), measurement && (_jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none z-20", style: TIMELINE_INSET_STYLE, children: _jsx(DeltaMeasureLine, { ...measurement, timelineWidth: timelineWidth }) }))] }));
310
+ Math.abs(marker.value) > 0.000001 ? (_jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker.position * 100}%` } }, String(marker.value))) : null) }), hover != null && (_jsx("div", { className: "pointer-events-none absolute inset-x-4 inset-y-0 z-10", children: _jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hover.fraction * 100}%` } }) })), _jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => (_jsx(TimelineBar, { span: span, viewStart: viewStart, viewDuration: viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect: onSelect, onRevealTime: onRevealTime }, span.spanId))) }), altHeld && anchorIndex < 0 && (_jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-x-4 inset-y-0", children: gapMeasurements.map((gap) => (_jsx(DeltaMeasureLine, { ...gap, timelineWidth: timelineWidth }, gap.anchorRowIndex))) })), measurement && (_jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-x-4 inset-y-0 z-20", children: _jsx(DeltaMeasureLine, { ...measurement, timelineWidth: timelineWidth }) }))] }));
320
311
  }
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmFjZS12aWV3ZXIvY29tcG9uZW50cy90aW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE9BQU8sRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUF5QixNQUFNLFdBQVcsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRdkUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLEdBQ2QsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0QsOEVBQThFO0FBQzlFLFlBQVk7QUFDWiw4RUFBOEU7QUFFOUUsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FB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O0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgQXJyb3dMZWZ0LCBBcnJvd1JpZ2h0IH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB0eXBlIHsgQ1NTUHJvcGVydGllcywgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NuJztcbmltcG9ydCB7IGlzU3BhbkRpbW1lZEJ5U2VhcmNoLCB0eXBlIFNwYW5TZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gnO1xuaW1wb3J0IHR5cGUgeyBTcGFuIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb25QcmVjaXNlLCBnZXRIaWdoUmVzSW5NcyB9IGZyb20gJy4uL3V0aWwvdGltaW5nJztcbmltcG9ydCB0eXBlIHtcbiAgT2Zmc2NyZWVuTWFya2VycyxcbiAgU2VnbWVudCxcbiAgU2VnbWVudFN0YXR1cyxcbiAgU3BhbkRlbHRhLFxuICBUaW1lTWFya2VyLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBjb21wdXRlT2Zmc2NyZWVuTWFya2VycyxcbiAgY29tcHV0ZVNwYW5EZWx0YSxcbiAgY29tcHV0ZVNwYW5HYXBzLFxuICBjb21wdXRlU3Bhbk1hcmtlcnMsXG4gIGNvbXB1dGVTcGFuU2VnbWVudHMsXG4gIGdldFJlc291cmNlQ29sb3IsXG4gIGdldFNwYW5EdXJhdGlvbk1zLFxuICBpc1NwYW5FcnJvcmVkLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBjdWxsQ29sbGlkaW5nTWFya2VycyxcbiAgTWFya2VyTGF5ZXIsXG4gIE9mZnNjcmVlbk1hcmtlckluZGljYXRvcixcbiAgcHJvamVjdE1hcmtlcnMsXG59IGZyb20gJy4vc3Bhbi1tYXJrZXJzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi90aW1lbGluZS5tb2R1bGUuY3NzJztcbmltcG9ydCB7IFJPV19IRUlHSFRfUFgsIHVzZVJvd1dpbmRvdyB9IGZyb20gJy4vdXNlLXJvdy13aW5kb3cnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnN0YW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IFRJTllfQkFSX0JPWF9TSVpFX1BYID0gMjQ7XG5jb25zdCBUSU5ZX0JBUl9XSURUSF9QWCA9IDQ7XG5leHBvcnQgY29uc3QgVElNRUxJTkVfUEFERElOR19QWCA9IDE2O1xuXG5jb25zdCBTRUdNRU5UX0NMQVNTRVM6IFJlY29yZDxTZWdtZW50U3RhdHVzLCBzdHJpbmc+ID0ge1xuICBxdWV1ZWQ6ICdiZy1ncmF5LTQwMCBib3JkZXIgYm9yZGVyLWdyYXktNTAwJyxcbiAgcGVuZGluZzogJ2JnLWdyYXktMjAwIGJvcmRlciBib3JkZXItZ3JheS01MDAnLFxuICByZXRyeWluZzogJ2JnLWdyYXktNDAwIGJvcmRlciBib3JkZXItZ3JheS01MDAnLFxuICB3YWl0aW5nOiAnYmctZ3JheS0yMDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHJ1bm5pbmc6ICdiZy1ibHVlLTIwMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwJyxcbiAgY29tcGxldGVkOiAnYmctYmx1ZS0yMDAgYm9yZGVyIGJvcmRlci1ibHVlLTUwMCcsXG4gIGZhaWxlZDogJ2JnLXJlZC0yMDAgYm9yZGVyIGJvcmRlci1yZWQtNTAwJyxcbiAgc3VjY2VlZGVkOiAnYmctZ3JlZW4tMjAwIGJvcmRlciBib3JkZXItZ3JlZW4tNTAwJyxcbiAgc2xlZXBpbmc6ICdiZy1ncmF5LTQwMCBib3JkZXIgYm9yZGVyLWdyYXktNTAwJyxcbiAgcmVjZWl2ZWQ6ICdiZy1ibHVlLTIwMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwJyxcbn07XG5cbmNvbnN0IFRJTUVMSU5FX0lOU0VUX1NUWUxFOiBDU1NQcm9wZXJ0aWVzID0ge1xuICBsZWZ0OiBUSU1FTElORV9QQURESU5HX1BYLFxuICByaWdodDogVElNRUxJTkVfUEFERElOR19QWCxcbn07XG5cbmNvbnN0IFNUUklQRURfU0VHTUVOVF9TVEFUVVNFUzogUmVhZG9ubHlTZXQ8U2VnbWVudFN0YXR1cz4gPSBuZXcgU2V0KFtcbiAgJ3BlbmRpbmcnLFxuICAncnVubmluZycsXG4gICdyZWNlaXZlZCcsXG5dKTtcblxuZnVuY3Rpb24gQW5pbWF0ZWRTdHJpcGVzKHsgc3RhdHVzIH06IHsgc3RhdHVzOiBTZWdtZW50U3RhdHVzIH0pOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICBjbGFzc05hbWU9e1xuICAgICAgICBzdGF0dXMgPT09ICdwZW5kaW5nJyA/IHN0eWxlcy5wZW5kaW5nU3RyaXBlcyA6IHN0eWxlcy5ydW5uaW5nU3RyaXBlc1xuICAgICAgfVxuICAgIC8+XG4gICk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQmFyIGdlb21ldHJ5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudHlwZSBCYXJNb2RlID1cbiAgfCB7IGtpbmQ6ICdhcnJvdyc7IGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyB9XG4gIHwgeyBraW5kOiAndGlueScgfVxuICB8IHsga2luZDogJ2Z1bGwnIH07XG5cbmludGVyZmFjZSBCYXJHZW9tZXRyeSB7XG4gIG1vZGU6IEJhck1vZGU7XG4gIGxlZnRQY3Q6IG51bWJlcjtcbiAgd2lkdGhQY3Q6IG51bWJlcjtcbiAgdmlzaWJsZVN0YXJ0TXM6IG51bWJlcjtcbiAgdmlzaWJsZUVuZE1zOiBudW1iZXI7XG4gIHZpc2libGVQaXhlbFdpZHRoOiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgYmFyJ3MgZ2VvbWV0cnkgaW5zaWRlIHRoZSB0aW1lbGluZSB2aWV3cG9ydC4gUGVyY2VudGFnZXMgYXJlXG4gKiBhbHdheXMgaW4gWzAsIDEwMF0gc28gd2UgbmV2ZXIgZW1pdCBDU1MgdmFsdWVzIHRoYXQgZXhjZWVkIGJyb3dzZXIgbGF5b3V0XG4gKiBsaW1pdHMgYXQgZXh0cmVtZSB6b29tLlxuICovXG5mdW5jdGlvbiBjb21wdXRlQmFyR2VvbWV0cnkoXG4gIHN0YXJ0TXM6IG51bWJlcixcbiAgZW5kTXM6IG51bWJlcixcbiAgdmlld1N0YXJ0OiBudW1iZXIsXG4gIHZpZXdFbmQ6IG51bWJlcixcbiAgY29udGFpbmVyV2lkdGg6IG51bWJlclxuKTogQmFyR2VvbWV0cnkge1xuICBjb25zdCB2aWV3RHVyYXRpb24gPSB2aWV3RW5kIC0gdmlld1N0YXJ0O1xuICBjb25zdCB2aXNpYmxlU3RhcnRNcyA9IE1hdGgubWF4KHN0YXJ0TXMsIHZpZXdTdGFydCk7XG4gIGNvbnN0IHZpc2libGVFbmRNcyA9IE1hdGgubWluKGVuZE1zLCB2aWV3RW5kKTtcbiAgY29uc3QgdmlzaWJsZUR1cmF0aW9uTXMgPSBNYXRoLm1heCgwLCB2aXNpYmxlRW5kTXMgLSB2aXNpYmxlU3RhcnRNcyk7XG4gIGNvbnN0IHdpZHRoRnJhYyA9IHZpZXdEdXJhdGlvbiA+IDAgPyB2aXNpYmxlRHVyYXRpb25NcyAvIHZpZXdEdXJhdGlvbiA6IDA7XG4gIGNvbnN0IHZpc2libGVQaXhlbFdpZHRoID0gd2lkdGhGcmFjICogY29udGFpbmVyV2lkdGg7XG5cbiAgY29uc3QgaXNUaW55ID0gY29udGFpbmVyV2lkdGggPiAwICYmIHZpc2libGVQaXhlbFdpZHRoIDwgVElOWV9CQVJfQk9YX1NJWkVfUFg7XG4gIGNvbnN0IGV4dGVuZHNPZmZMZWZ0ID0gc3RhcnRNcyA8IHZpZXdTdGFydDtcbiAgY29uc3QgZXh0ZW5kc09mZlJpZ2h0ID0gZW5kTXMgPiB2aWV3RW5kO1xuXG4gIGNvbnN0IG1vZGU6IEJhck1vZGUgPVxuICAgIGlzVGlueSAmJiAoZXh0ZW5kc09mZkxlZnQgfHwgZXh0ZW5kc09mZlJpZ2h0KVxuICAgICAgPyB7IGtpbmQ6ICdhcnJvdycsIGRpcmVjdGlvbjogZXh0ZW5kc09mZlJpZ2h0ID8gJ3JpZ2h0JyA6ICdsZWZ0JyB9XG4gICAgICA6IGlzVGlueVxuICAgICAgICA/IHsga2luZDogJ3RpbnknIH1cbiAgICAgICAgOiB7IGtpbmQ6ICdmdWxsJyB9O1xuXG4gIHJldHVybiB7XG4gICAgbW9kZSxcbiAgICBsZWZ0UGN0OlxuICAgICAgdmlld0R1cmF0aW9uID4gMFxuICAgICAgICA/ICgodmlzaWJsZVN0YXJ0TXMgLSB2aWV3U3RhcnQpIC8gdmlld0R1cmF0aW9uKSAqIDEwMFxuICAgICAgICA6IDAsXG4gICAgd2lkdGhQY3Q6IHdpZHRoRnJhYyAqIDEwMCxcbiAgICB2aXNpYmxlU3RhcnRNcyxcbiAgICB2aXNpYmxlRW5kTXMsXG4gICAgdmlzaWJsZVBpeGVsV2lkdGgsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldEJhclBvc2l0aW9uU3R5bGUoZ2VvbWV0cnk6IEJhckdlb21ldHJ5KToge1xuICBsZWZ0OiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG59IHtcbiAgc3dpdGNoIChnZW9tZXRyeS5tb2RlLmtpbmQpIHtcbiAgICBjYXNlICdhcnJvdyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZWZ0OlxuICAgICAgICAgIGdlb21ldHJ5Lm1vZGUuZGlyZWN0aW9uID09PSAncmlnaHQnXG4gICAgICAgICAgICA/IGBjYWxjKDEwMCUgLSAke1RJTllfQkFSX0JPWF9TSVpFX1BYfXB4KWBcbiAgICAgICAgICAgIDogJzBweCcsXG4gICAgICAgIHdpZHRoOiBgJHtUSU5ZX0JBUl9CT1hfU0laRV9QWH1weGAsXG4gICAgICB9O1xuICAgIGNhc2UgJ3RpbnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYG1pbigke2dlb21ldHJ5LmxlZnRQY3R9JSwgY2FsYygxMDAlIC0gJHtUSU5ZX0JBUl9XSURUSF9QWH1weCkpYCxcbiAgICAgICAgd2lkdGg6IGAke1RJTllfQkFSX1dJRFRIX1BYfXB4YCxcbiAgICAgIH07XG4gICAgY2FzZSAnZnVsbCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZWZ0OiBgJHtnZW9tZXRyeS5sZWZ0UGN0fSVgLFxuICAgICAgICB3aWR0aDogYG1heCgke2dlb21ldHJ5LndpZHRoUGN0fSUsIDRweClgLFxuICAgICAgfTtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlZ21lbnQgcHJvamVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmludGVyZmFjZSBWaXNpYmxlU2VnbWVudCB7XG4gIHN0YXR1czogU2VnbWVudFN0YXR1cztcbiAgbGVmdFBjdDogbnVtYmVyO1xuICB3aWR0aFBjdDogbnVtYmVyO1xuICBwaXhlbFdpZHRoOiBudW1iZXI7XG4gIGZ1bGxEdXJhdGlvbk1zOiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvamVjdCBzdGF0dXMgc2VnbWVudHMgb250byB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mIGEgYmFyLiBTZWdtZW50cyBmdWxseVxuICogb3V0c2lkZSB0aGUgdmlzaWJsZSB3aW5kb3cgYXJlIGRyb3BwZWQ7IHNlZ21lbnRzIGNyb3NzaW5nIHRoZSBlZGdlIGFyZVxuICogY2xpcHBlZCB0byBbMCUsIDEwMCVdIG9mIHRoZSB2aXNpYmxlIGJhci5cbiAqL1xuZnVuY3Rpb24gcHJvamVjdFNlZ21lbnRzKFxuICBzZWdtZW50czogU2VnbWVudFtdLFxuICBzcGFuU3RhcnRNczogbnVtYmVyLFxuICBzcGFuRHVyYXRpb25NczogbnVtYmVyLFxuICBnZW9tZXRyeTogQmFyR2VvbWV0cnlcbik6IFZpc2libGVTZWdtZW50W10ge1xuICBjb25zdCB2aXNpYmxlRHVyYXRpb25NcyA9IGdlb21ldHJ5LnZpc2libGVFbmRNcyAtIGdlb21ldHJ5LnZpc2libGVTdGFydE1zO1xuICBpZiAodmlzaWJsZUR1cmF0aW9uTXMgPD0gMCkgcmV0dXJuIFtdO1xuXG4gIHJldHVybiBzZWdtZW50cy5mbGF0TWFwKChzZWcpID0+IHtcbiAgICBjb25zdCBzZWdTdGFydE1zID0gc3BhblN0YXJ0TXMgKyBzZWcuc3RhcnRGcmFjdGlvbiAqIHNwYW5EdXJhdGlvbk1zO1xuICAgIGNvbnN0IHNlZ0VuZE1zID0gc3BhblN0YXJ0TXMgKyBzZWcuZW5kRnJhY3Rpb24gKiBzcGFuRHVyYXRpb25NcztcbiAgICBjb25zdCBzdGFydE1zID0gTWF0aC5tYXgoc2VnU3RhcnRNcywgZ2VvbWV0cnkudmlzaWJsZVN0YXJ0TXMpO1xuICAgIGNvbnN0IGVuZE1zID0gTWF0aC5taW4oc2VnRW5kTXMsIGdlb21ldHJ5LnZpc2libGVFbmRNcyk7XG4gICAgaWYgKGVuZE1zIDw9IHN0YXJ0TXMpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IHdpZHRoRnJhYyA9IChlbmRNcyAtIHN0YXJ0TXMpIC8gdmlzaWJsZUR1cmF0aW9uTXM7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgc3RhdHVzOiBzZWcuc3RhdHVzLFxuICAgICAgICBsZWZ0UGN0OlxuICAgICAgICAgICgoc3RhcnRNcyAtIGdlb21ldHJ5LnZpc2libGVTdGFydE1zKSAvIHZpc2libGVEdXJhdGlvbk1zKSAqIDEwMCxcbiAgICAgICAgd2lkdGhQY3Q6IHdpZHRoRnJhYyAqIDEwMCxcbiAgICAgICAgcGl4ZWxXaWR0aDogd2lkdGhGcmFjICogZ2VvbWV0cnkudmlzaWJsZVBpeGVsV2lkdGgsXG4gICAgICAgIGZ1bGxEdXJhdGlvbk1zOiAoc2VnLmVuZEZyYWN0aW9uIC0gc2VnLnN0YXJ0RnJhY3Rpb24pICogc3BhbkR1cmF0aW9uTXMsXG4gICAgICB9LFxuICAgIF07XG4gIH0pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNtYWxsIHJlbmRlciBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIEVzdGltYXRlZCByZW5kZXJlZCB3aWR0aCBvZiBhIDEwcHgtbW9ubyBkdXJhdGlvbiBsYWJlbCAoNnB4L2dseXBoICsgcGFkZGluZykuICovXG5mdW5jdGlvbiBlc3RpbWF0ZUxhYmVsV2lkdGhQeChsYWJlbDogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGxhYmVsLmxlbmd0aCAqIDYgKyAxMjtcbn1cblxuZnVuY3Rpb24gRHVyYXRpb25MYWJlbCh7XG4gIGxhYmVsLFxuICBjbGFzc05hbWUsXG59OiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn0pOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAncG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgb3ZlcmZsb3ctaGlkZGVuIHB4LTEgdGV4dC1bMTBweF0gZm9udC1tb25vIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWxlZnQgdGV4dC1ncmF5LTEwMDAgdGFidWxhci1udW1zIG9wYWNpdHktMCBncm91cC1ob3Zlci90aW1lbGluZS1yb3c6b3BhY2l0eS0xMDAnLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAge2xhYmVsfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gQm91bmRhcnlBcnJvdyh7XG4gIGRpcmVjdGlvbixcbn06IHtcbiAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IEljb24gPSBkaXJlY3Rpb24gPT09ICdyaWdodCcgPyBBcnJvd1JpZ2h0IDogQXJyb3dMZWZ0O1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTYgdy02IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLVswLjI1cmVtXVwiPlxuICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS0zIHRleHQtZ3JheS05MDBcIiAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBQbGFpbkJhcih7XG4gIGJnLFxuICBib3JkZXIsXG4gIGxhYmVsLFxufToge1xuICBiZzogc3RyaW5nO1xuICBib3JkZXI6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZyB8IG51bGw7XG59KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLTYgdy1mdWxsIG1pbi13LTEgcm91bmRlZC1bMC4yNXJlbV0gYm9yZGVyXCJcbiAgICAgIHN0eWxlPXt7IGJhY2tncm91bmQ6IGJnLCBib3JkZXJDb2xvcjogYm9yZGVyIH19XG4gICAgPlxuICAgICAge2xhYmVsID8gPER1cmF0aW9uTGFiZWwgbGFiZWw9e2xhYmVsfSAvPiA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIExlYWRJbkNvbm5lY3Rvcih7XG4gIGxlZnRQY3QsXG4gIHdpZHRoUGN0LFxuICBsYWJlbCxcbn06IHtcbiAgbGVmdFBjdDogbnVtYmVyO1xuICB3aWR0aFBjdDogbnVtYmVyO1xuICBsYWJlbDogc3RyaW5nIHwgbnVsbDtcbn0pOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xLzIgaC02IC10cmFuc2xhdGUteS0xLzJcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbGVmdDogYGNhbGMoJHtsZWZ0UGN0fSUgKyAwLjVweClgLFxuICAgICAgICB3aWR0aDogYGNhbGMoJHt3aWR0aFBjdH0lIC0gMXB4KWAsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0wIHRvcC0xLzIgaC00IHctcHggLXRyYW5zbGF0ZS15LTEvMiBiZy1ncmF5LTUwMFwiIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXgtMCB0b3AtMS8yIGgtcHggLXRyYW5zbGF0ZS15LTEvMiBiZy1ncmF5LTUwMFwiIC8+XG4gICAgICB7bGFiZWwgPyA8RHVyYXRpb25MYWJlbCBsYWJlbD17bGFiZWx9IC8+IDogbnVsbH1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU2VnbWVudEJhcih7XG4gIHNlZ21lbnRzLFxuICBzaG93TGFiZWxzID0gdHJ1ZSxcbn06IHtcbiAgc2VnbWVudHM6IFZpc2libGVTZWdtZW50W107XG4gIC8qKlxuICAgKiBXaGVuIGZhbHNlLCBzZWdtZW50IGR1cmF0aW9uIGxhYmVscyBhcmUgc3VwcHJlc3NlZC4gVXNlZCB3aGVuIGEgc2VwYXJhdGVcbiAgICogdG9wIGxheWVyIChlLmcuIHRoZSByZXN1bXB0aW9uLW1hcmtlciBkdXJhdGlvbiBvdmVybGF5KSByZW5kZXJzIHRoZSBsYWJlbFxuICAgKiBhYm92ZSB0aGUgbWFya2VycyBpbnN0ZWFkLCBzbyB3ZSBkb24ndCBkcmF3IGl0IHR3aWNlLlxuICAgKi9cbiAgc2hvd0xhYmVscz86IGJvb2xlYW47XG59KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtNiB3LWZ1bGxcIj5cbiAgICAgIHtzZWdtZW50cy5tYXAoKHNlZywgaSkgPT4ge1xuICAgICAgICBpZiAoc2VnLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpIHtcbiAgICAgICAgICBjb25zdCBsZWFkSW5MYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZShzZWcuZnVsbER1cmF0aW9uTXMpO1xuICAgICAgICAgIGNvbnN0IHNob3dMZWFkSW5MYWJlbCA9XG4gICAgICAgICAgICBzaG93TGFiZWxzICYmXG4gICAgICAgICAgICBzZWcucGl4ZWxXaWR0aCA+PSBNYXRoLm1heCg0MCwgZXN0aW1hdGVMYWJlbFdpZHRoUHgobGVhZEluTGFiZWwpKTtcbiAgICAgICAgICBjb25zdCBpc0Z1bGxXaWR0aFF1ZXVlZCA9IHNlZ21lbnRzLmxlbmd0aCA9PT0gMTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aX0+XG4gICAgICAgICAgICAgIDxMZWFkSW5Db25uZWN0b3JcbiAgICAgICAgICAgICAgICBsZWZ0UGN0PXtzZWcubGVmdFBjdH1cbiAgICAgICAgICAgICAgICB3aWR0aFBjdD17c2VnLndpZHRoUGN0fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtzaG93TGVhZEluTGFiZWwgPyBsZWFkSW5MYWJlbCA6IG51bGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtpc0Z1bGxXaWR0aFF1ZXVlZCA/IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMS8yIGgtNCB3LXB4IC10cmFuc2xhdGUteS0xLzIgYmctZ3JheS01MDBcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYGNhbGMoJHtzZWcubGVmdFBjdCArIHNlZy53aWR0aFBjdH0lIC0gMS41cHgpYCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZShzZWcuZnVsbER1cmF0aW9uTXMpO1xuICAgICAgICAvLyBPbmx5IHJlbmRlciB0aGUgbGFiZWwgd2hlbiB0aGVyZSdzIGVub3VnaCByb29tIGZvciBpdCB3aXRob3V0IGNsaXBwaW5nLlxuICAgICAgICBjb25zdCBzaG93TGFiZWwgPVxuICAgICAgICAgIHNob3dMYWJlbHMgJiZcbiAgICAgICAgICBzZWcucGl4ZWxXaWR0aCA+PSBNYXRoLm1heCg0MCwgZXN0aW1hdGVMYWJlbFdpZHRoUHgobGFiZWwpKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICdhYnNvbHV0ZSBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzAuMjVyZW1dJyxcbiAgICAgICAgICAgICAgU0VHTUVOVF9DTEFTU0VTW3NlZy5zdGF0dXNdXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLy8gMXB4IGdhcCBiZXR3ZWVuIGFkamFjZW50IHNlZ21lbnRzLCBkaXN0cmlidXRlZCBlcXVhbGx5LlxuICAgICAgICAgICAgICBsZWZ0OiBgY2FsYygke3NlZy5sZWZ0UGN0fSUgKyAwLjVweClgLFxuICAgICAgICAgICAgICB3aWR0aDogYGNhbGMoJHtzZWcud2lkdGhQY3R9JSAtIDFweClgLFxuICAgICAgICAgICAgICBtaW5XaWR0aDogMSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge1NUUklQRURfU0VHTUVOVF9TVEFUVVNFUy5oYXMoc2VnLnN0YXR1cykgPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZFN0cmlwZXMgc3RhdHVzPXtzZWcuc3RhdHVzfSAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvd0xhYmVsID8gPER1cmF0aW9uTGFiZWwgbGFiZWw9e2xhYmVsfSAvPiA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lbGluZUJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IFRpbWVsaW5lQmFyID0gbWVtbyhmdW5jdGlvbiBUaW1lbGluZUJhcih7XG4gIHNwYW4sXG4gIHZpZXdTdGFydCxcbiAgdmlld0R1cmF0aW9uLFxuICBjb250YWluZXJXaWR0aCxcbiAgaXNTZWxlY3RlZCxcbiAgaXNEaW1tZWQsXG4gIG9uU2VsZWN0LFxuICBvblJldmVhbFRpbWUsXG59OiB7XG4gIHNwYW46IFNwYW47XG4gIHZpZXdTdGFydDogbnVtYmVyO1xuICB2aWV3RHVyYXRpb246IG51bWJlcjtcbiAgY29udGFpbmVyV2lkdGg6IG51bWJlcjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgaXNEaW1tZWQ/OiBib29sZWFuO1xuICBvblNlbGVjdDogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblJldmVhbFRpbWU/OiAodGltZU1zOiBudW1iZXIpID0+IHZvaWQ7XG59KTogUmVhY3ROb2RlIHtcbiAgY29uc3Qgc3RhcnRNcyA9IGdldEhpZ2hSZXNJbk1zKHNwYW4uc3RhcnRUaW1lKTtcbiAgY29uc3QgZW5kTXMgPSBnZXRIaWdoUmVzSW5NcyhzcGFuLmVuZFRpbWUpO1xuICBjb25zdCB0b3RhbER1cmF0aW9uTXMgPSBnZXRTcGFuRHVyYXRpb25NcyhzcGFuKTtcblxuICBjb25zdCBnZW9tZXRyeSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGNvbXB1dGVCYXJHZW9tZXRyeShcbiAgICAgICAgc3RhcnRNcyxcbiAgICAgICAgZW5kTXMsXG4gICAgICAgIHZpZXdTdGFydCxcbiAgICAgICAgdmlld1N0YXJ0ICsgdmlld0R1cmF0aW9uLFxuICAgICAgICBjb250YWluZXJXaWR0aFxuICAgICAgKSxcbiAgICBbc3RhcnRNcywgZW5kTXMsIHZpZXdTdGFydCwgdmlld0R1cmF0aW9uLCBjb250YWluZXJXaWR0aF1cbiAgKTtcblxuICBjb25zdCBiYXNlU2VnbWVudHMgPSB1c2VNZW1vKCgpID0+IGNvbXB1dGVTcGFuU2VnbWVudHMoc3BhbiksIFtzcGFuXSk7XG4gIGNvbnN0IHNlZ21lbnRzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgZ2VvbWV0cnkubW9kZS5raW5kID09PSAnZnVsbCdcbiAgICAgICAgPyBwcm9qZWN0U2VnbWVudHMoYmFzZVNlZ21lbnRzLCBzdGFydE1zLCB0b3RhbER1cmF0aW9uTXMsIGdlb21ldHJ5KVxuICAgICAgICA6IFtdLFxuICAgIFtnZW9tZXRyeSwgYmFzZVNlZ21lbnRzLCBzdGFydE1zLCB0b3RhbER1cmF0aW9uTXNdXG4gICk7XG5cbiAgY29uc3QgYmFzZU1hcmtlcnMgPSB1c2VNZW1vKCgpID0+IGNvbXB1dGVTcGFuTWFya2VycyhzcGFuKSwgW3NwYW5dKTtcbiAgY29uc3QgbWFya2VycyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGdlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ2Z1bGwnXG4gICAgICAgID8gY3VsbENvbGxpZGluZ01hcmtlcnMoXG4gICAgICAgICAgICBwcm9qZWN0TWFya2VycyhcbiAgICAgICAgICAgICAgYmFzZU1hcmtlcnMsXG4gICAgICAgICAgICAgIGdlb21ldHJ5LnZpc2libGVTdGFydE1zLFxuICAgICAgICAgICAgICBnZW9tZXRyeS52aXNpYmxlRW5kTXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBnZW9tZXRyeS52aXNpYmxlUGl4ZWxXaWR0aFxuICAgICAgICAgIClcbiAgICAgICAgOiBbXSxcbiAgICBbZ2VvbWV0cnksIGJhc2VNYXJrZXJzXVxuICApO1xuXG4gIC8vIE1hcmtlcnMgdGhhdCBmYWxsIG91dHNpZGUgdGhlIHZpc2libGUgd2luZG93IChzY3JvbGxlZCBvZmYgd2hpbGUgem9vbWVkIGluKVxuICAvLyDigJQgc3VyZmFjZWQgYXMgZWRnZSBpbmRpY2F0b3JzIHNvIHRoZXkgYXJlbid0IHNpbGVudGx5IGxvc3QuXG4gIGNvbnN0IG9mZnNjcmVlbiA9IHVzZU1lbW88T2Zmc2NyZWVuTWFya2Vycz4oXG4gICAgKCkgPT5cbiAgICAgIGdlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ2Z1bGwnXG4gICAgICAgID8gY29tcHV0ZU9mZnNjcmVlbk1hcmtlcnMoXG4gICAgICAgICAgICBiYXNlTWFya2VycyxcbiAgICAgICAgICAgIGdlb21ldHJ5LnZpc2libGVTdGFydE1zLFxuICAgICAgICAgICAgZ2VvbWV0cnkudmlzaWJsZUVuZE1zXG4gICAgICAgICAgKVxuICAgICAgICA6IHsgbGVmdDogbnVsbCwgcmlnaHQ6IG51bGwgfSxcbiAgICBbZ2VvbWV0cnksIGJhc2VNYXJrZXJzXVxuICApO1xuXG4gIC8vIE1hcmtlcnMgKHZpc2libGUgb3Igb2ZmLXNjcmVlbikgbW92ZSB0aGUgZHVyYXRpb24gbGFiZWwgaW50byB0aGUgb3ZlcmxheSxcbiAgLy8gc28gdGhlIGluLWJhciBzZWdtZW50IGxhYmVsIGlzIHN1cHByZXNzZWQuXG4gIGNvbnN0IGhhc01hcmtlcnMgPVxuICAgIG1hcmtlcnMubGVuZ3RoID4gMCB8fCBvZmZzY3JlZW4ubGVmdCAhPT0gbnVsbCB8fCBvZmZzY3JlZW4ucmlnaHQgIT09IG51bGw7XG5cbiAgY29uc3QgaXNFcnJvcmVkID0gaXNTcGFuRXJyb3JlZChzcGFuKTtcbiAgY29uc3QgY29sb3JzID0gZ2V0UmVzb3VyY2VDb2xvcihzcGFuLnJlc291cmNlKTtcbiAgY29uc3QgZmFsbGJhY2tCZyA9IGlzRXJyb3JlZFxuICAgID8gKGNvbG9ycy5lcnJvckJnID8/ICd2YXIoLS1kcy1yZWQtMjAwKScpXG4gICAgOiBjb2xvcnMuYmc7XG4gIGNvbnN0IGZhbGxiYWNrQm9yZGVyID0gaXNFcnJvcmVkXG4gICAgPyAoY29sb3JzLmVycm9yQm9yZGVyID8/ICd2YXIoLS1kcy1yZWQtNTAwKScpXG4gICAgOiBjb2xvcnMuYm9yZGVyO1xuXG4gIGNvbnN0IHRvdGFsTGFiZWwgPSBmb3JtYXREdXJhdGlvblByZWNpc2UodG90YWxEdXJhdGlvbk1zKTtcbiAgY29uc3Qgc2hvd1RvdGFsTGFiZWwgPVxuICAgIGdlb21ldHJ5LnZpc2libGVQaXhlbFdpZHRoID49XG4gICAgTWF0aC5tYXgoNDAsIGVzdGltYXRlTGFiZWxXaWR0aFB4KHRvdGFsTGFiZWwpKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvblNlbGVjdChzcGFuLnNwYW5JZCk7XG4gIH0sIFtvblNlbGVjdCwgc3Bhbi5zcGFuSWRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICBhcmlhLXNlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgYXJpYS1leHBhbmRlZD17aXNTZWxlY3RlZH1cbiAgICAgIGFyaWEtbGV2ZWw9ezF9XG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAnZ3JvdXAvdGltZWxpbmUtcm93IGgtMTAgcmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIgaG92ZXI6YmctZ3JheS0xMDAgYXJpYS1zZWxlY3RlZDpiZy1ncmF5LTEwMCBhcmlhLXNlbGVjdGVkOmhvdmVyOmJnLWdyYXktMjAwIHRyYW5zaXRpb24tb3BhY2l0eScsXG4gICAgICAgIGlzRGltbWVkICYmICdvcGFjaXR5LTM1J1xuICAgICAgKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteS0wXCIgc3R5bGU9e1RJTUVMSU5FX0lOU0VUX1NUWUxFfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xLzIgaC02IC10cmFuc2xhdGUteS0xLzIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzAuMjVyZW1dXCJcbiAgICAgICAgICBzdHlsZT17Z2V0QmFyUG9zaXRpb25TdHlsZShnZW9tZXRyeSl9XG4gICAgICAgID5cbiAgICAgICAgICB7Z2VvbWV0cnkubW9kZS5raW5kID09PSAnYXJyb3cnID8gKFxuICAgICAgICAgICAgPEJvdW5kYXJ5QXJyb3cgZGlyZWN0aW9uPXtnZW9tZXRyeS5tb2RlLmRpcmVjdGlvbn0gLz5cbiAgICAgICAgICApIDogZ2VvbWV0cnkubW9kZS5raW5kID09PSAndGlueScgPyAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNiByb3VuZGVkLVswLjI1cmVtXSBib3JkZXJcIlxuICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBmYWxsYmFja0JnLCBib3JkZXJDb2xvcjogZmFsbGJhY2tCb3JkZXIgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IHNlZ21lbnRzLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICA8U2VnbWVudEJhciBzZWdtZW50cz17c2VnbWVudHN9IHNob3dMYWJlbHM9eyFoYXNNYXJrZXJzfSAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8UGxhaW5CYXJcbiAgICAgICAgICAgICAgYmc9e2ZhbGxiYWNrQmd9XG4gICAgICAgICAgICAgIGJvcmRlcj17ZmFsbGJhY2tCb3JkZXJ9XG4gICAgICAgICAgICAgIGxhYmVsPXtzaG93VG90YWxMYWJlbCA/IHRvdGFsTGFiZWwgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgey8qIE92ZXJsYXkgKG5vdCBjbGlwcGVkKTogdGlja3MsIG9mZi1zY3JlZW4gaW5kaWNhdG9ycywgdGhlbiB0aGUgZHVyYXRpb24gbGFiZWwgb24gdG9wLiAqL31cbiAgICAgICAge2hhc01hcmtlcnMgPyAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSB0b3AtMS8yIGgtNiAtdHJhbnNsYXRlLXktMS8yXCJcbiAgICAgICAgICAgIHN0eWxlPXtnZXRCYXJQb3NpdGlvblN0eWxlKGdlb21ldHJ5KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bWFya2Vycy5sZW5ndGggPiAwID8gPE1hcmtlckxheWVyIG1hcmtlcnM9e21hcmtlcnN9IC8+IDogbnVsbH1cbiAgICAgICAgICAgIHtvZmZzY3JlZW4ubGVmdCA/IChcbiAgICAgICAgICAgICAgPE9mZnNjcmVlbk1hcmtlckluZGljYXRvclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgIGNvdW50PXtvZmZzY3JlZW4ubGVmdC5jb3VudH1cbiAgICAgICAgICAgICAgICB0YXJnZXRNcz17b2Zmc2NyZWVuLmxlZnQubmVhcmVzdE1zfVxuICAgICAgICAgICAgICAgIG9uUmV2ZWFsPXtvblJldmVhbFRpbWV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtvZmZzY3JlZW4ucmlnaHQgPyAoXG4gICAgICAgICAgICAgIDxPZmZzY3JlZW5NYXJrZXJJbmRpY2F0b3JcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgY291bnQ9e29mZnNjcmVlbi5yaWdodC5jb3VudH1cbiAgICAgICAgICAgICAgICB0YXJnZXRNcz17b2Zmc2NyZWVuLnJpZ2h0Lm5lYXJlc3RNc31cbiAgICAgICAgICAgICAgICBvblJldmVhbD17b25SZXZlYWxUaW1lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvd1RvdGFsTGFiZWwgPyAoXG4gICAgICAgICAgICAgIDxEdXJhdGlvbkxhYmVsXG4gICAgICAgICAgICAgICAgbGFiZWw9e3RvdGFsTGFiZWx9XG4gICAgICAgICAgICAgICAgLy8gU2hpZnQgY2xlYXIgb2YgdGhlIGxlZnQgZWRnZSBpbmRpY2F0b3Igc28gaXQgaXNuJ3QgY292ZXJlZC5cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e29mZnNjcmVlbi5sZWZ0ID8gJ3BsLTEwJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbmV4cG9ydCB7IFRpbWVsaW5lQmFyIH07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGVsdGFNZWFzdXJlTGluZSAoQWx0LWtleSBtZWFzdXJlbWVudCBvdmVybGF5czogdGhlIHNlbGVjdGVkIOKGlCBob3ZlcmVkXG4vLyBtZWFzdXJlbWVudCwgYW5kIHRoZSBhbWJpZW50IGNvbnNlY3V0aXZlLWdhcCBpbmRpY2F0b3JzIHNob3duIHdpdGhvdXQgYVxuLy8gc2VsZWN0aW9uKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhvcml6b250YWwgZGlzdGFuY2UgYmV0d2VlbiB0aGUgYW5jaG9yIGJhcidzIG1lYXN1cmVkIGVkZ2UgYW5kIHRoZSB2ZXJ0aWNhbFxuLy8gZ3VpZGUg4oCUIGFsc28gdGhlIHdpZHRoIG9mIHRoZSBjb25uZWN0b3Igc3R1YiBicmlkZ2luZyB0aGUgdHdvLlxuY29uc3QgTUVBU1VSRV9HVUlERV9PVVRTRVRfUFggPSA0O1xuXG5jb25zdCBEZWx0YU1lYXN1cmVMaW5lID0gbWVtbyhmdW5jdGlvbiBEZWx0YU1lYXN1cmVMaW5lKHtcbiAgZGVsdGEsXG4gIGFuY2hvclJvd0luZGV4LFxuICBob3ZlcmVkUm93SW5kZXgsXG4gIHRpbWVsaW5lV2lkdGgsXG59OiB7XG4gIGRlbHRhOiBTcGFuRGVsdGE7XG4gIGFuY2hvclJvd0luZGV4OiBudW1iZXI7XG4gIGhvdmVyZWRSb3dJbmRleDogbnVtYmVyO1xuICB0aW1lbGluZVdpZHRoOiBudW1iZXI7XG59KSB7XG4gIC8vIEJvdGggZW5kcyBvZiB0aGUgbWVhc3VyZW1lbnQgYWxpZ24gd2l0aCB0aGUgdmVydGljYWwgbWlkZGxlIG9mIHRoZSBiYXJzXG4gIC8vIChiYXJzIGFyZSBjZW50ZXJlZCBpbiB0aGVpciByb3dzLCBzbyBiYXIgY2VudGVyID09IHJvdyBjZW50ZXIpLlxuICBjb25zdCBhbmNob3JDZW50ZXJZID0gYW5jaG9yUm93SW5kZXggKiBST1dfSEVJR0hUX1BYICsgUk9XX0hFSUdIVF9QWCAvIDI7XG4gIGNvbnN0IGxpbmVZID0gaG92ZXJlZFJvd0luZGV4ICogUk9XX0hFSUdIVF9QWCArIFJPV19IRUlHSFRfUFggLyAyO1xuXG4gIC8vIEd1aWRlIGNvbm5lY3RpbmcgdGhlIG1pZGRsZSBvZiB0aGUgYW5jaG9yIGJhciBkb3duL3VwIHRvIHRoZSBsaW5lLCBzb1xuICAvLyB0aGUgbWVhc3VyZW1lbnQncyBvcmlnaW4gc3RheXMgbGVnaWJsZSB3aGVuIHRoZSByb3dzIGFyZSBmYXIgYXBhcnQuXG4gIC8vIEl0IHNpdHMganVzdCBvdXRzaWRlIHRoZSBhbmNob3IgYmFyJ3MgbWVhc3VyZWQgZWRnZSAoc28gaXQgZG9lc24ndCBibGVuZFxuICAvLyBpbnRvIHRoZSBiYXIncyBib3JkZXIpLCBqb2luZWQgdG8gdGhlIGJhciBieSBhIHNob3J0IGhvcml6b250YWwgc3R1Yi4gVGhlXG4gIC8vIGxpbmUgcnVucyBmcm9tIHRoZSBlbGJvdyBjb3JuZXIgKHRoZSBndWlkZSdzIHgpIHRvIHRoZSBob3ZlcmVkIHNwYW4nc1xuICAvLyBtZWFzdXJlZCBlZGdlIOKAlCBwdWxsZWQgc2hvcnQgb2YgdGhlIGVkZ2UgYXJyb3cgd2hlbiB0aGUgaG92ZXJlZCBzcGFuIGlzXG4gIC8vIGZ1bGx5IG9mZi1zY3JlZW4uXG4gIGNvbnN0IGd1aWRlVG9wID0gTWF0aC5taW4oYW5jaG9yQ2VudGVyWSwgbGluZVkpO1xuICBjb25zdCBndWlkZUJvdHRvbSA9IE1hdGgubWF4KGFuY2hvckNlbnRlclksIGxpbmVZKTtcbiAgY29uc3QgYW5jaG9yWCA9IGRlbHRhLmFuY2hvckZyYWMgKiB0aW1lbGluZVdpZHRoO1xuICBjb25zdCBndWlkZVggPVxuICAgIGFuY2hvclggK1xuICAgIChkZWx0YS5hbmNob3JFZGdlID09PSAnZW5kJ1xuICAgICAgPyBNRUFTVVJFX0dVSURFX09VVFNFVF9QWFxuICAgICAgOiAtTUVBU1VSRV9HVUlERV9PVVRTRVRfUFgpO1xuICBjb25zdCBhcnJvd0NsZWFyYW5jZSA9XG4gICAgZGVsdGEuaG92ZXJlZE9mZnNjcmVlbiA9PT0gJ3JpZ2h0J1xuICAgICAgPyAtKFRJTllfQkFSX0JPWF9TSVpFX1BYICsgNClcbiAgICAgIDogZGVsdGEuaG92ZXJlZE9mZnNjcmVlbiA9PT0gJ2xlZnQnXG4gICAgICAgID8gVElOWV9CQVJfQk9YX1NJWkVfUFggKyA0XG4gICAgICAgIDogMDtcbiAgY29uc3QgaG92ZXJlZFggPSBkZWx0YS5ob3ZlcmVkRnJhYyAqIHRpbWVsaW5lV2lkdGggKyBhcnJvd0NsZWFyYW5jZTtcbiAgY29uc3Qgc3RhcnRYID0gTWF0aC5taW4oZ3VpZGVYLCBob3ZlcmVkWCk7XG4gIGNvbnN0IGVuZFggPSBNYXRoLm1heChndWlkZVgsIGhvdmVyZWRYKTtcblxuICBjb25zdCBsYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZShkZWx0YS5kZWx0YU1zKTtcbiAgY29uc3QgbGFiZWxXaWR0aFB4ID0gZXN0aW1hdGVMYWJlbFdpZHRoUHgobGFiZWwpO1xuICAvLyBDZW50ZXIgdGhlIGxhYmVsIG9uIHRoZSBsaW5lOyB3aGVuIHRoZSBsaW5lIGlzIHRvbyBzaG9ydCwgcGxhY2UgaXQgYmVzaWRlXG4gIC8vIHRoZSByaWdodCBlbmRwb2ludCwgZmxpcHBpbmcgbGVmdCBuZWFyIHRoZSB2aWV3cG9ydCdzIHJpZ2h0IGVkZ2UuXG4gIGNvbnN0IGxhYmVsUGxhY2VtZW50ID1cbiAgICBlbmRYIC0gc3RhcnRYID49IGxhYmVsV2lkdGhQeFxuICAgICAgPyB7IGxlZnQ6IChzdGFydFggKyBlbmRYKSAvIDIsIHRyYW5zbGF0ZTogJy10cmFuc2xhdGUteC0xLzInIH1cbiAgICAgIDogZW5kWCArIDQgKyBsYWJlbFdpZHRoUHggPD0gdGltZWxpbmVXaWR0aFxuICAgICAgICA/IHsgbGVmdDogZW5kWCArIDQsIHRyYW5zbGF0ZTogJycgfVxuICAgICAgICA6IHsgbGVmdDogc3RhcnRYIC0gNCwgdHJhbnNsYXRlOiAnLXRyYW5zbGF0ZS14LWZ1bGwnIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBoLXB4IGJnLWFtYmVyLTgwMFwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgbGVmdDogTWF0aC5taW4oYW5jaG9yWCwgZ3VpZGVYKSxcbiAgICAgICAgICB3aWR0aDogTUVBU1VSRV9HVUlERV9PVVRTRVRfUFgsXG4gICAgICAgICAgdG9wOiBhbmNob3JDZW50ZXJZLFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdy1weCBiZy1hbWJlci04MDBcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGxlZnQ6IGd1aWRlWCxcbiAgICAgICAgICB0b3A6IGd1aWRlVG9wLFxuICAgICAgICAgIGhlaWdodDogZ3VpZGVCb3R0b20gLSBndWlkZVRvcCxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGgtcHggYmctYW1iZXItODAwXCJcbiAgICAgICAgc3R5bGU9e3sgbGVmdDogc3RhcnRYLCB3aWR0aDogTWF0aC5tYXgoZW5kWCAtIHN0YXJ0WCwgMSksIHRvcDogbGluZVkgfX1cbiAgICAgIC8+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICdhYnNvbHV0ZSAtdHJhbnNsYXRlLXktMS8yIGZvbnQtbW9ubyB0ZXh0LVsxMHB4XSBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGFidWxhci1udW1zIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQteHMgYmctYmFja2dyb3VuZC0xMDAgcHgtMSBweS0wLjUgdGV4dC1hbWJlci04MDAnLFxuICAgICAgICAgIGxhYmVsUGxhY2VtZW50LnRyYW5zbGF0ZVxuICAgICAgICApfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBsYWJlbFBsYWNlbWVudC5sZWZ0LCB0b3A6IGxpbmVZIH19XG4gICAgICA+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8Lz5cbiAgKTtcbn0pO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWVsaW5lSGVhZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGZ1bmN0aW9uIFRpbWVsaW5lSGVhZGVyKHtcbiAgbWFya2VycyxcbiAgaG92ZXJJbmZvLFxufToge1xuICBtYXJrZXJzOiBUaW1lTWFya2VyW107XG4gIGhvdmVySW5mbz86IHsgZnJhY3Rpb246IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9IHwgbnVsbDtcbn0pOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgYmctYmFja2dyb3VuZC0xMDAgYm9yZGVyLWIgYm9yZGVyLWdyYXktYWxwaGEtNDAwIGgtMTAgbWluLWgtMTAgZmxleCBpdGVtcy1lbmQgcHgtNCBwYi0xXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtZnVsbCBmbGV4LTFcIj5cbiAgICAgICAge21hcmtlcnMubWFwKChtKSA9PiAoXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGtleT17U3RyaW5nKG0udmFsdWUpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLTEgdGV4dC1sYWJlbC0xMi1tb25vIHRleHQtZ3JheS05MDAgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7bS5wb3NpdGlvbiAqIDEwMH0lYCB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHttLmxhYmVsfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKSl9XG4gICAgICAgIHtob3ZlckluZm8gJiYgKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMSBwb2ludGVyLWV2ZW50cy1ub25lIHotMTAgZm9udC1tb25vIHRleHQtWzExcHhdIGxlYWRpbmctNCB0ZXh0LWdyYXktMTAwMCB3aGl0ZXNwYWNlLW5vd3JhcCBiZy1iYWNrZ3JvdW5kLTEwMCBib3JkZXIgYm9yZGVyLWdyYXktYWxwaGEtNDAwIHJvdW5kZWQgcHgtMSAtdHJhbnNsYXRlLXgtMS8yXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGxlZnQ6IGAke2hvdmVySW5mby5mcmFjdGlvbiAqIDEwMH0lYCB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtob3ZlckluZm8ubGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGltZWxpbmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVsaW5lSG92ZXIge1xuICAvKiogUG9pbnRlciB4IGFzIGEgZnJhY3Rpb24gb2YgdGhlIHRpbWVsaW5lJ3MgY29udGVudCB3aWR0aCwgaW4gWzAsIDFdLiAqL1xuICBmcmFjdGlvbjogbnVtYmVyO1xuICAvKiogUm93IGluZGV4IHVuZGVyIHRoZSBwb2ludGVyOyBtYXkgYmUgcGFzdCB0aGUgbGFzdCByb3cg4oCUIG5vdCB2YWxpZGF0ZWQuICovXG4gIHJvd0luZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUaW1lbGluZSh7XG4gIHNwYW5zLFxuICB2aWV3U3RhcnQsXG4gIHZpZXdFbmQsXG4gIG1hcmtlcnMsXG4gIHNlbGVjdGVkSWQsXG4gIHNlYXJjaFJlc3VsdCxcbiAgb25TZWxlY3QsXG4gIG9uUmV2ZWFsVGltZSxcbiAgaG92ZXIsXG4gIGFsdEhlbGQgPSBmYWxzZSxcbn06IHtcbiAgc3BhbnM6IFNwYW5bXTtcbiAgdmlld1N0YXJ0OiBudW1iZXI7XG4gIHZpZXdFbmQ6IG51bWJlcjtcbiAgbWFya2VyczogVGltZU1hcmtlcltdO1xuICBzZWxlY3RlZElkOiBzdHJpbmcgfCBudWxsO1xuICBzZWFyY2hSZXN1bHQ6IFNwYW5TZWFyY2hSZXN1bHQ7XG4gIG9uU2VsZWN0OiAoc3BhbklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uUmV2ZWFsVGltZT86ICh0aW1lTXM6IG51bWJlcikgPT4gdm9pZDtcbiAgaG92ZXI/OiBUaW1lbGluZUhvdmVyIHwgbnVsbDtcbiAgYWx0SGVsZD86IGJvb2xlYW47XG59KTogUmVhY3ROb2RlIHtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2NvbnRhaW5lcldpZHRoLCBzZXRDb250YWluZXJXaWR0aF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3Qgdmlld0R1cmF0aW9uID0gdmlld0VuZCAtIHZpZXdTdGFydDtcbiAgY29uc3QgdGltZWxpbmVXaWR0aCA9IE1hdGgubWF4KDAsIGNvbnRhaW5lcldpZHRoIC0gVElNRUxJTkVfUEFERElOR19QWCAqIDIpO1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IHVzZVJvd1dpbmRvdyhcbiAgICBjb250YWluZXJSZWYsXG4gICAgc3BhbnMubGVuZ3RoLFxuICAgIFJPV19IRUlHSFRfUFhcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKChbZW50cnldKSA9PiB7XG4gICAgICBzZXRDb250YWluZXJXaWR0aChlbnRyeS5jb250ZW50UmVjdC53aWR0aCk7XG4gICAgfSk7XG4gICAgcm8ub2JzZXJ2ZShlbCk7XG4gICAgcmV0dXJuICgpID0+IHJvLmRpc2Nvbm5lY3QoKTtcbiAgfSwgW10pO1xuXG4gIC8vIEVhY2ggY29uc2VjdXRpdmUgZ2FwIHJlbmRlcnMgYXMgYSBtZWFzdXJlbWVudCBmcm9tIHRoZSBlYXJsaWVyIHNwYW4ncyBlbmRcbiAgLy8gZWRnZSB0byB0aGUgbmV4dCBzcGFuJ3Mgc3RhcnQsIGluIHRoZSBzYW1lIHZpc3VhbCBsYW5ndWFnZSBhcyB0aGVcbiAgLy8gc2VsZWN0ZWQg4oaUIGhvdmVyZWQgbWVhc3VyZW1lbnQuXG4gIGNvbnN0IGdhcE1lYXN1cmVtZW50cyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGNvbXB1dGVTcGFuR2FwcyhzcGFucywgdmlld1N0YXJ0LCB2aWV3RW5kKS5tYXAoKGdhcCkgPT4gKHtcbiAgICAgICAgZGVsdGE6IHtcbiAgICAgICAgICBkZWx0YU1zOiBnYXAuZ2FwTXMsXG4gICAgICAgICAgYW5jaG9yRnJhYzogZ2FwLmxlZnRGcmFjLFxuICAgICAgICAgIGhvdmVyZWRGcmFjOiBnYXAucmlnaHRGcmFjLFxuICAgICAgICAgIGFuY2hvckVkZ2U6ICdlbmQnLFxuICAgICAgICAgIGhvdmVyZWRPZmZzY3JlZW46IG51bGwsXG4gICAgICAgIH0gc2F0aXNmaWVzIFNwYW5EZWx0YSxcbiAgICAgICAgYW5jaG9yUm93SW5kZXg6IGdhcC5yb3dJbmRleCxcbiAgICAgICAgaG92ZXJlZFJvd0luZGV4OiBnYXAucm93SW5kZXggKyAxLFxuICAgICAgfSkpLFxuICAgIFtzcGFucywgdmlld1N0YXJ0LCB2aWV3RW5kXVxuICApO1xuXG4gIC8vIFdpdGggYSBzcGFuIHNlbGVjdGVkLCBBbHQraG92ZXIgbWVhc3VyZXMgc2VsZWN0ZWQg4oaUIGhvdmVyZWQgaW5zdGVhZCBvZlxuICAvLyBzaG93aW5nIHRoZSBhbGwtc2libGluZy1nYXBzIG92ZXJsYXkuXG4gIGNvbnN0IGFuY2hvckluZGV4ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoc2VsZWN0ZWRJZCA/IHNwYW5zLmZpbmRJbmRleCgocykgPT4gcy5zcGFuSWQgPT09IHNlbGVjdGVkSWQpIDogLTEpLFxuICAgIFtzcGFucywgc2VsZWN0ZWRJZF1cbiAgKTtcblxuICBjb25zdCBtZWFzdXJlbWVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghYWx0SGVsZCB8fCBob3ZlciA9PSBudWxsIHx8IGhvdmVyLnJvd0luZGV4ID09PSBhbmNob3JJbmRleCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGFuY2hvclNwYW4gPSBzcGFuc1thbmNob3JJbmRleF07XG4gICAgY29uc3QgaG92ZXJlZFNwYW4gPSBzcGFuc1tob3Zlci5yb3dJbmRleF07XG4gICAgaWYgKCFhbmNob3JTcGFuIHx8ICFob3ZlcmVkU3BhbikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgZGVsdGEgPSBjb21wdXRlU3BhbkRlbHRhKGFuY2hvclNwYW4sIGhvdmVyZWRTcGFuLCB2aWV3U3RhcnQsIHZpZXdFbmQpO1xuICAgIHJldHVybiBkZWx0YVxuICAgICAgPyB7IGRlbHRhLCBhbmNob3JSb3dJbmRleDogYW5jaG9ySW5kZXgsIGhvdmVyZWRSb3dJbmRleDogaG92ZXIucm93SW5kZXggfVxuICAgICAgOiBudWxsO1xuICB9LCBbYWx0SGVsZCwgYW5jaG9ySW5kZXgsIGhvdmVyLCBzcGFucywgdmlld1N0YXJ0LCB2aWV3RW5kXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtZnVsbCBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgc3R5bGU9e3sgbWluSGVpZ2h0OiBzcGFucy5sZW5ndGggKiBST1dfSEVJR0hUX1BYIH19XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC15LTAgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgIHN0eWxlPXtUSU1FTElORV9JTlNFVF9TVFlMRX1cbiAgICAgID5cbiAgICAgICAge21hcmtlcnMubWFwKChtYXJrZXIpID0+XG4gICAgICAgICAgLy8gU2tpcCB0aGUgXCIwc1wiIG9yaWdpbiBtYXJrZXIgc2luY2UgdGhlIGxlZnQgZWRnZSBhbHJlYWR5IGltcGxpZXMgaXQuXG4gICAgICAgICAgTWF0aC5hYnMobWFya2VyLnZhbHVlKSA+IDAuMDAwMDAxID8gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e1N0cmluZyhtYXJrZXIudmFsdWUpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCB3LXB4IGJnLWdyYXktYWxwaGEtMzAwXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7bWFya2VyLnBvc2l0aW9uICogMTAwfSVgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtob3ZlciAhPSBudWxsICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMCBwb2ludGVyLWV2ZW50cy1ub25lIHotMTBcIlxuICAgICAgICAgIHN0eWxlPXtUSU1FTElORV9JTlNFVF9TVFlMRX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIGJvdHRvbS0wIHctcHggYmctZ3JheS1hbHBoYS01MDBcIlxuICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7aG92ZXIuZnJhY3Rpb24gKiAxMDB9JWAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8ZGl2IHN0eWxlPXt7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtzdGFydCAqIFJPV19IRUlHSFRfUFh9cHgpYCB9fT5cbiAgICAgICAge3NwYW5zLnNsaWNlKHN0YXJ0LCBlbmQpLm1hcCgoc3BhbikgPT4gKFxuICAgICAgICAgIDxUaW1lbGluZUJhclxuICAgICAgICAgICAga2V5PXtzcGFuLnNwYW5JZH1cbiAgICAgICAgICAgIHNwYW49e3NwYW59XG4gICAgICAgICAgICB2aWV3U3RhcnQ9e3ZpZXdTdGFydH1cbiAgICAgICAgICAgIHZpZXdEdXJhdGlvbj17dmlld0R1cmF0aW9ufVxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGg9e3RpbWVsaW5lV2lkdGh9XG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZElkID09PSBzcGFuLnNwYW5JZH1cbiAgICAgICAgICAgIGlzRGltbWVkPXtpc1NwYW5EaW1tZWRCeVNlYXJjaChzcGFuLnNwYW5JZCwgc2VhcmNoUmVzdWx0KX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtvblNlbGVjdH1cbiAgICAgICAgICAgIG9uUmV2ZWFsVGltZT17b25SZXZlYWxUaW1lfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICB7YWx0SGVsZCAmJiBhbmNob3JJbmRleCA8IDAgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC15LTAgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgICAgc3R5bGU9e1RJTUVMSU5FX0lOU0VUX1NUWUxFfVxuICAgICAgICA+XG4gICAgICAgICAge2dhcE1lYXN1cmVtZW50cy5tYXAoKGdhcCkgPT4gKFxuICAgICAgICAgICAgPERlbHRhTWVhc3VyZUxpbmVcbiAgICAgICAgICAgICAga2V5PXtnYXAuYW5jaG9yUm93SW5kZXh9XG4gICAgICAgICAgICAgIHsuLi5nYXB9XG4gICAgICAgICAgICAgIHRpbWVsaW5lV2lkdGg9e3RpbWVsaW5lV2lkdGh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7bWVhc3VyZW1lbnQgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC15LTAgcG9pbnRlci1ldmVudHMtbm9uZSB6LTIwXCJcbiAgICAgICAgICBzdHlsZT17VElNRUxJTkVfSU5TRVRfU1RZTEV9XG4gICAgICAgID5cbiAgICAgICAgICA8RGVsdGFNZWFzdXJlTGluZSB7Li4ubWVhc3VyZW1lbnR9IHRpbWVsaW5lV2lkdGg9e3RpbWVsaW5lV2lkdGh9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ==
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmFjZS12aWV3ZXIvY29tcG9uZW50cy90aW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE9BQU8sRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUF5QixNQUFNLFdBQVcsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRdkUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixhQUFhLEdBQ2QsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0QsOEVBQThFO0FBQzlFLFlBQVk7QUFDWiw4RUFBOEU7QUFFOUUsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FB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Q0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUN6RCxRQUFRLEVBQUUsUUFBUSxFQUNsQixZQUFZLEVBQUUsWUFBWSxJQVJyQixJQUFJLENBQUMsTUFBTSxDQVNoQixDQUNILENBQUMsR0FDRSxFQUNMLE9BQU8sSUFBSSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQzdCLG1DQUVFLFNBQVMsRUFBQyxrREFBa0QsWUFFM0QsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FDNUIsS0FBQyxnQkFBZ0IsT0FFWCxHQUFHLEVBQ1AsYUFBYSxFQUFFLGFBQWEsSUFGdkIsR0FBRyxDQUFDLGNBQWMsQ0FHdkIsQ0FDSCxDQUFDLEdBQ0UsQ0FDUCxFQUNBLFdBQVcsSUFBSSxDQUNkLG1DQUVFLFNBQVMsRUFBQyx1REFBdUQsWUFFakUsS0FBQyxnQkFBZ0IsT0FBSyxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsR0FBSSxHQUMvRCxDQUNQLElBQ0csQ0FDUCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgQXJyb3dMZWZ0LCBBcnJvd1JpZ2h0IH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NuJztcbmltcG9ydCB7IGlzU3BhbkRpbW1lZEJ5U2VhcmNoLCB0eXBlIFNwYW5TZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gnO1xuaW1wb3J0IHR5cGUgeyBTcGFuIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb25QcmVjaXNlLCBnZXRIaWdoUmVzSW5NcyB9IGZyb20gJy4uL3V0aWwvdGltaW5nJztcbmltcG9ydCB0eXBlIHtcbiAgT2Zmc2NyZWVuTWFya2VycyxcbiAgU2VnbWVudCxcbiAgU2VnbWVudFN0YXR1cyxcbiAgU3BhbkRlbHRhLFxuICBUaW1lTWFya2VyLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBjb21wdXRlT2Zmc2NyZWVuTWFya2VycyxcbiAgY29tcHV0ZVNwYW5EZWx0YSxcbiAgY29tcHV0ZVNwYW5HYXBzLFxuICBjb21wdXRlU3Bhbk1hcmtlcnMsXG4gIGNvbXB1dGVTcGFuU2VnbWVudHMsXG4gIGdldFJlc291cmNlQ2xhc3NOYW1lcyxcbiAgZ2V0U3BhbkR1cmF0aW9uTXMsXG4gIGlzU3BhbkVycm9yZWQsXG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIGN1bGxDb2xsaWRpbmdNYXJrZXJzLFxuICBNYXJrZXJMYXllcixcbiAgT2Zmc2NyZWVuTWFya2VySW5kaWNhdG9yLFxuICBwcm9qZWN0TWFya2Vycyxcbn0gZnJvbSAnLi9zcGFuLW1hcmtlcnMnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3RpbWVsaW5lLm1vZHVsZS5jc3MnO1xuaW1wb3J0IHsgUk9XX0hFSUdIVF9QWCwgdXNlUm93V2luZG93IH0gZnJvbSAnLi91c2Utcm93LXdpbmRvdyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29uc3RhbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgVElOWV9CQVJfQk9YX1NJWkVfUFggPSAyNDtcbmNvbnN0IFRJTllfQkFSX1dJRFRIX1BYID0gNDtcbmV4cG9ydCBjb25zdCBUSU1FTElORV9QQURESU5HX1BYID0gMTY7XG5cbmNvbnN0IFNFR01FTlRfQ0xBU1NFUzogUmVjb3JkPFNlZ21lbnRTdGF0dXMsIHN0cmluZz4gPSB7XG4gIHF1ZXVlZDogJ2JnLWdyYXktNDAwIGJvcmRlciBib3JkZXItZ3JheS01MDAnLFxuICBwZW5kaW5nOiAnYmctZ3JheS0yMDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHJldHJ5aW5nOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHdhaXRpbmc6ICdiZy1ncmF5LTIwMCBib3JkZXIgYm9yZGVyLWdyYXktNTAwJyxcbiAgcnVubmluZzogJ2JnLWJsdWUtMjAwIGJvcmRlciBib3JkZXItYmx1ZS01MDAnLFxuICBjb21wbGV0ZWQ6ICdiZy1ibHVlLTIwMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwJyxcbiAgZmFpbGVkOiAnYmctcmVkLTIwMCBib3JkZXIgYm9yZGVyLXJlZC01MDAnLFxuICBzdWNjZWVkZWQ6ICdiZy1ncmVlbi0yMDAgYm9yZGVyIGJvcmRlci1ncmVlbi01MDAnLFxuICBzbGVlcGluZzogJ2JnLWdyYXktNDAwIGJvcmRlciBib3JkZXItZ3JheS01MDAnLFxuICByZWNlaXZlZDogJ2JnLWJsdWUtMjAwIGJvcmRlciBib3JkZXItYmx1ZS01MDAnLFxufTtcblxuY29uc3QgU1RSSVBFRF9TRUdNRU5UX1NUQVRVU0VTOiBSZWFkb25seVNldDxTZWdtZW50U3RhdHVzPiA9IG5ldyBTZXQoW1xuICAncGVuZGluZycsXG4gICdydW5uaW5nJyxcbiAgJ3JlY2VpdmVkJyxcbl0pO1xuXG5mdW5jdGlvbiBBbmltYXRlZFN0cmlwZXMoeyBzdGF0dXMgfTogeyBzdGF0dXM6IFNlZ21lbnRTdGF0dXMgfSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1oaWRkZW5cbiAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgIHN0YXR1cyA9PT0gJ3BlbmRpbmcnID8gc3R5bGVzLnBlbmRpbmdTdHJpcGVzIDogc3R5bGVzLnJ1bm5pbmdTdHJpcGVzXG4gICAgICB9XG4gICAgLz5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCYXIgZ2VvbWV0cnlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50eXBlIEJhck1vZGUgPVxuICB8IHsga2luZDogJ2Fycm93JzsgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnIH1cbiAgfCB7IGtpbmQ6ICd0aW55JyB9XG4gIHwgeyBraW5kOiAnZnVsbCcgfTtcblxuaW50ZXJmYWNlIEJhckdlb21ldHJ5IHtcbiAgbW9kZTogQmFyTW9kZTtcbiAgbGVmdFBjdDogbnVtYmVyO1xuICB3aWR0aFBjdDogbnVtYmVyO1xuICB2aXNpYmxlU3RhcnRNczogbnVtYmVyO1xuICB2aXNpYmxlRW5kTXM6IG51bWJlcjtcbiAgdmlzaWJsZVBpeGVsV2lkdGg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb21wdXRlIHRoZSBiYXIncyBnZW9tZXRyeSBpbnNpZGUgdGhlIHRpbWVsaW5lIHZpZXdwb3J0LiBQZXJjZW50YWdlcyBhcmVcbiAqIGFsd2F5cyBpbiBbMCwgMTAwXSBzbyB3ZSBuZXZlciBlbWl0IENTUyB2YWx1ZXMgdGhhdCBleGNlZWQgYnJvd3NlciBsYXlvdXRcbiAqIGxpbWl0cyBhdCBleHRyZW1lIHpvb20uXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVCYXJHZW9tZXRyeShcbiAgc3RhcnRNczogbnVtYmVyLFxuICBlbmRNczogbnVtYmVyLFxuICB2aWV3U3RhcnQ6IG51bWJlcixcbiAgdmlld0VuZDogbnVtYmVyLFxuICBjb250YWluZXJXaWR0aDogbnVtYmVyXG4pOiBCYXJHZW9tZXRyeSB7XG4gIGNvbnN0IHZpZXdEdXJhdGlvbiA9IHZpZXdFbmQgLSB2aWV3U3RhcnQ7XG4gIGNvbnN0IHZpc2libGVTdGFydE1zID0gTWF0aC5tYXgoc3RhcnRNcywgdmlld1N0YXJ0KTtcbiAgY29uc3QgdmlzaWJsZUVuZE1zID0gTWF0aC5taW4oZW5kTXMsIHZpZXdFbmQpO1xuICBjb25zdCB2aXNpYmxlRHVyYXRpb25NcyA9IE1hdGgubWF4KDAsIHZpc2libGVFbmRNcyAtIHZpc2libGVTdGFydE1zKTtcbiAgY29uc3Qgd2lkdGhGcmFjID0gdmlld0R1cmF0aW9uID4gMCA/IHZpc2libGVEdXJhdGlvbk1zIC8gdmlld0R1cmF0aW9uIDogMDtcbiAgY29uc3QgdmlzaWJsZVBpeGVsV2lkdGggPSB3aWR0aEZyYWMgKiBjb250YWluZXJXaWR0aDtcblxuICBjb25zdCBpc1RpbnkgPSBjb250YWluZXJXaWR0aCA+IDAgJiYgdmlzaWJsZVBpeGVsV2lkdGggPCBUSU5ZX0JBUl9CT1hfU0laRV9QWDtcbiAgY29uc3QgZXh0ZW5kc09mZkxlZnQgPSBzdGFydE1zIDwgdmlld1N0YXJ0O1xuICBjb25zdCBleHRlbmRzT2ZmUmlnaHQgPSBlbmRNcyA+IHZpZXdFbmQ7XG5cbiAgY29uc3QgbW9kZTogQmFyTW9kZSA9XG4gICAgaXNUaW55ICYmIChleHRlbmRzT2ZmTGVmdCB8fCBleHRlbmRzT2ZmUmlnaHQpXG4gICAgICA/IHsga2luZDogJ2Fycm93JywgZGlyZWN0aW9uOiBleHRlbmRzT2ZmUmlnaHQgPyAncmlnaHQnIDogJ2xlZnQnIH1cbiAgICAgIDogaXNUaW55XG4gICAgICAgID8geyBraW5kOiAndGlueScgfVxuICAgICAgICA6IHsga2luZDogJ2Z1bGwnIH07XG5cbiAgcmV0dXJuIHtcbiAgICBtb2RlLFxuICAgIGxlZnRQY3Q6XG4gICAgICB2aWV3RHVyYXRpb24gPiAwXG4gICAgICAgID8gKCh2aXNpYmxlU3RhcnRNcyAtIHZpZXdTdGFydCkgLyB2aWV3RHVyYXRpb24pICogMTAwXG4gICAgICAgIDogMCxcbiAgICB3aWR0aFBjdDogd2lkdGhGcmFjICogMTAwLFxuICAgIHZpc2libGVTdGFydE1zLFxuICAgIHZpc2libGVFbmRNcyxcbiAgICB2aXNpYmxlUGl4ZWxXaWR0aCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0QmFyUG9zaXRpb25TdHlsZShnZW9tZXRyeTogQmFyR2VvbWV0cnkpOiB7XG4gIGxlZnQ6IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbn0ge1xuICBzd2l0Y2ggKGdlb21ldHJ5Lm1vZGUua2luZCkge1xuICAgIGNhc2UgJ2Fycm93JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6XG4gICAgICAgICAgZ2VvbWV0cnkubW9kZS5kaXJlY3Rpb24gPT09ICdyaWdodCdcbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7VElOWV9CQVJfQk9YX1NJWkVfUFh9cHgpYFxuICAgICAgICAgICAgOiAnMHB4JyxcbiAgICAgICAgd2lkdGg6IGAke1RJTllfQkFSX0JPWF9TSVpFX1BYfXB4YCxcbiAgICAgIH07XG4gICAgY2FzZSAndGlueSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZWZ0OiBgbWluKCR7Z2VvbWV0cnkubGVmdFBjdH0lLCBjYWxjKDEwMCUgLSAke1RJTllfQkFSX1dJRFRIX1BYfXB4KSlgLFxuICAgICAgICB3aWR0aDogYCR7VElOWV9CQVJfV0lEVEhfUFh9cHhgLFxuICAgICAgfTtcbiAgICBjYXNlICdmdWxsJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGAke2dlb21ldHJ5LmxlZnRQY3R9JWAsXG4gICAgICAgIHdpZHRoOiBgbWF4KCR7Z2VvbWV0cnkud2lkdGhQY3R9JSwgNHB4KWAsXG4gICAgICB9O1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2VnbWVudCBwcm9qZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaW50ZXJmYWNlIFZpc2libGVTZWdtZW50IHtcbiAgc3RhdHVzOiBTZWdtZW50U3RhdHVzO1xuICBsZWZ0UGN0OiBudW1iZXI7XG4gIHdpZHRoUGN0OiBudW1iZXI7XG4gIHBpeGVsV2lkdGg6IG51bWJlcjtcbiAgZnVsbER1cmF0aW9uTXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9qZWN0IHN0YXR1cyBzZWdtZW50cyBvbnRvIHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgYSBiYXIuIFNlZ21lbnRzIGZ1bGx5XG4gKiBvdXRzaWRlIHRoZSB2aXNpYmxlIHdpbmRvdyBhcmUgZHJvcHBlZDsgc2VnbWVudHMgY3Jvc3NpbmcgdGhlIGVkZ2UgYXJlXG4gKiBjbGlwcGVkIHRvIFswJSwgMTAwJV0gb2YgdGhlIHZpc2libGUgYmFyLlxuICovXG5mdW5jdGlvbiBwcm9qZWN0U2VnbWVudHMoXG4gIHNlZ21lbnRzOiBTZWdtZW50W10sXG4gIHNwYW5TdGFydE1zOiBudW1iZXIsXG4gIHNwYW5EdXJhdGlvbk1zOiBudW1iZXIsXG4gIGdlb21ldHJ5OiBCYXJHZW9tZXRyeVxuKTogVmlzaWJsZVNlZ21lbnRbXSB7XG4gIGNvbnN0IHZpc2libGVEdXJhdGlvbk1zID0gZ2VvbWV0cnkudmlzaWJsZUVuZE1zIC0gZ2VvbWV0cnkudmlzaWJsZVN0YXJ0TXM7XG4gIGlmICh2aXNpYmxlRHVyYXRpb25NcyA8PSAwKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIHNlZ21lbnRzLmZsYXRNYXAoKHNlZykgPT4ge1xuICAgIGNvbnN0IHNlZ1N0YXJ0TXMgPSBzcGFuU3RhcnRNcyArIHNlZy5zdGFydEZyYWN0aW9uICogc3BhbkR1cmF0aW9uTXM7XG4gICAgY29uc3Qgc2VnRW5kTXMgPSBzcGFuU3RhcnRNcyArIHNlZy5lbmRGcmFjdGlvbiAqIHNwYW5EdXJhdGlvbk1zO1xuICAgIGNvbnN0IHN0YXJ0TXMgPSBNYXRoLm1heChzZWdTdGFydE1zLCBnZW9tZXRyeS52aXNpYmxlU3RhcnRNcyk7XG4gICAgY29uc3QgZW5kTXMgPSBNYXRoLm1pbihzZWdFbmRNcywgZ2VvbWV0cnkudmlzaWJsZUVuZE1zKTtcbiAgICBpZiAoZW5kTXMgPD0gc3RhcnRNcykgcmV0dXJuIFtdO1xuXG4gICAgY29uc3Qgd2lkdGhGcmFjID0gKGVuZE1zIC0gc3RhcnRNcykgLyB2aXNpYmxlRHVyYXRpb25NcztcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBzdGF0dXM6IHNlZy5zdGF0dXMsXG4gICAgICAgIGxlZnRQY3Q6XG4gICAgICAgICAgKChzdGFydE1zIC0gZ2VvbWV0cnkudmlzaWJsZVN0YXJ0TXMpIC8gdmlzaWJsZUR1cmF0aW9uTXMpICogMTAwLFxuICAgICAgICB3aWR0aFBjdDogd2lkdGhGcmFjICogMTAwLFxuICAgICAgICBwaXhlbFdpZHRoOiB3aWR0aEZyYWMgKiBnZW9tZXRyeS52aXNpYmxlUGl4ZWxXaWR0aCxcbiAgICAgICAgZnVsbER1cmF0aW9uTXM6IChzZWcuZW5kRnJhY3Rpb24gLSBzZWcuc3RhcnRGcmFjdGlvbikgKiBzcGFuRHVyYXRpb25NcyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU21hbGwgcmVuZGVyIGhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogRXN0aW1hdGVkIHJlbmRlcmVkIHdpZHRoIG9mIGEgMTBweC1tb25vIGR1cmF0aW9uIGxhYmVsICg2cHgvZ2x5cGggKyBwYWRkaW5nKS4gKi9cbmZ1bmN0aW9uIGVzdGltYXRlTGFiZWxXaWR0aFB4KGxhYmVsOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gbGFiZWwubGVuZ3RoICogNiArIDEyO1xufVxuXG5mdW5jdGlvbiBEdXJhdGlvbkxhYmVsKHtcbiAgbGFiZWwsXG4gIGNsYXNzTmFtZSxcbn06IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBvdmVyZmxvdy1oaWRkZW4gcHgtMSB0ZXh0LVsxMHB4XSBmb250LW1vbm8gZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHdoaXRlc3BhY2Utbm93cmFwIHRleHQtbGVmdCB0ZXh0LWdyYXktMTAwMCB0YWJ1bGFyLW51bXMgb3BhY2l0eS0wIGdyb3VwLWhvdmVyL3RpbWVsaW5lLXJvdzpvcGFjaXR5LTEwMCcsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICA+XG4gICAgICB7bGFiZWx9XG4gICAgPC9zcGFuPlxuICApO1xufVxuXG5mdW5jdGlvbiBCb3VuZGFyeUFycm93KHtcbiAgZGlyZWN0aW9uLFxufToge1xuICBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCc7XG59KTogUmVhY3ROb2RlIHtcbiAgY29uc3QgSWNvbiA9IGRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IEFycm93UmlnaHQgOiBBcnJvd0xlZnQ7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtNiB3LTYgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtWzAuMjVyZW1dXCI+XG4gICAgICA8SWNvbiBjbGFzc05hbWU9XCJzaXplLTMgdGV4dC1ncmF5LTkwMFwiIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFBsYWluQmFyKHtcbiAgY2xhc3NOYW1lLFxuICBsYWJlbCxcbn06IHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmcgfCBudWxsO1xufSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ3JlbGF0aXZlIGgtNiB3LWZ1bGwgbWluLXctMSByb3VuZGVkLVswLjI1cmVtXSBib3JkZXInLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAge2xhYmVsID8gPER1cmF0aW9uTGFiZWwgbGFiZWw9e2xhYmVsfSAvPiA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIExlYWRJbkNvbm5lY3Rvcih7XG4gIGxlZnRQY3QsXG4gIHdpZHRoUGN0LFxuICBsYWJlbCxcbn06IHtcbiAgbGVmdFBjdDogbnVtYmVyO1xuICB3aWR0aFBjdDogbnVtYmVyO1xuICBsYWJlbDogc3RyaW5nIHwgbnVsbDtcbn0pOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xLzIgaC02IC10cmFuc2xhdGUteS0xLzJcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbGVmdDogYGNhbGMoJHtsZWZ0UGN0fSUgKyAwLjVweClgLFxuICAgICAgICB3aWR0aDogYGNhbGMoJHt3aWR0aFBjdH0lIC0gMXB4KWAsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0wIHRvcC0xLzIgaC00IHctcHggLXRyYW5zbGF0ZS15LTEvMiBiZy1ncmF5LTUwMFwiIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXgtMCB0b3AtMS8yIGgtcHggLXRyYW5zbGF0ZS15LTEvMiBiZy1ncmF5LTUwMFwiIC8+XG4gICAgICB7bGFiZWwgPyA8RHVyYXRpb25MYWJlbCBsYWJlbD17bGFiZWx9IC8+IDogbnVsbH1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU2VnbWVudEJhcih7XG4gIHNlZ21lbnRzLFxuICBzaG93TGFiZWxzID0gdHJ1ZSxcbn06IHtcbiAgc2VnbWVudHM6IFZpc2libGVTZWdtZW50W107XG4gIC8qKlxuICAgKiBXaGVuIGZhbHNlLCBzZWdtZW50IGR1cmF0aW9uIGxhYmVscyBhcmUgc3VwcHJlc3NlZC4gVXNlZCB3aGVuIGEgc2VwYXJhdGVcbiAgICogdG9wIGxheWVyIChlLmcuIHRoZSByZXN1bXB0aW9uLW1hcmtlciBkdXJhdGlvbiBvdmVybGF5KSByZW5kZXJzIHRoZSBsYWJlbFxuICAgKiBhYm92ZSB0aGUgbWFya2VycyBpbnN0ZWFkLCBzbyB3ZSBkb24ndCBkcmF3IGl0IHR3aWNlLlxuICAgKi9cbiAgc2hvd0xhYmVscz86IGJvb2xlYW47XG59KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtNiB3LWZ1bGxcIj5cbiAgICAgIHtzZWdtZW50cy5tYXAoKHNlZywgaSkgPT4ge1xuICAgICAgICBpZiAoc2VnLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpIHtcbiAgICAgICAgICBjb25zdCBsZWFkSW5MYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZShzZWcuZnVsbER1cmF0aW9uTXMpO1xuICAgICAgICAgIGNvbnN0IHNob3dMZWFkSW5MYWJlbCA9XG4gICAgICAgICAgICBzaG93TGFiZWxzICYmXG4gICAgICAgICAgICBzZWcucGl4ZWxXaWR0aCA+PSBNYXRoLm1heCg0MCwgZXN0aW1hdGVMYWJlbFdpZHRoUHgobGVhZEluTGFiZWwpKTtcbiAgICAgICAgICBjb25zdCBpc0Z1bGxXaWR0aFF1ZXVlZCA9IHNlZ21lbnRzLmxlbmd0aCA9PT0gMTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aX0+XG4gICAgICAgICAgICAgIDxMZWFkSW5Db25uZWN0b3JcbiAgICAgICAgICAgICAgICBsZWZ0UGN0PXtzZWcubGVmdFBjdH1cbiAgICAgICAgICAgICAgICB3aWR0aFBjdD17c2VnLndpZHRoUGN0fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtzaG93TGVhZEluTGFiZWwgPyBsZWFkSW5MYWJlbCA6IG51bGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtpc0Z1bGxXaWR0aFF1ZXVlZCA/IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMS8yIGgtNCB3LXB4IC10cmFuc2xhdGUteS0xLzIgYmctZ3JheS01MDBcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYGNhbGMoJHtzZWcubGVmdFBjdCArIHNlZy53aWR0aFBjdH0lIC0gMS41cHgpYCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZShzZWcuZnVsbER1cmF0aW9uTXMpO1xuICAgICAgICAvLyBPbmx5IHJlbmRlciB0aGUgbGFiZWwgd2hlbiB0aGVyZSdzIGVub3VnaCByb29tIGZvciBpdCB3aXRob3V0IGNsaXBwaW5nLlxuICAgICAgICBjb25zdCBzaG93TGFiZWwgPVxuICAgICAgICAgIHNob3dMYWJlbHMgJiZcbiAgICAgICAgICBzZWcucGl4ZWxXaWR0aCA+PSBNYXRoLm1heCg0MCwgZXN0aW1hdGVMYWJlbFdpZHRoUHgobGFiZWwpKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICdhYnNvbHV0ZSBoLWZ1bGwgbWluLXctcHggb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzAuMjVyZW1dJyxcbiAgICAgICAgICAgICAgU0VHTUVOVF9DTEFTU0VTW3NlZy5zdGF0dXNdXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLy8gMXB4IGdhcCBiZXR3ZWVuIGFkamFjZW50IHNlZ21lbnRzLCBkaXN0cmlidXRlZCBlcXVhbGx5LlxuICAgICAgICAgICAgICBsZWZ0OiBgY2FsYygke3NlZy5sZWZ0UGN0fSUgKyAwLjVweClgLFxuICAgICAgICAgICAgICB3aWR0aDogYGNhbGMoJHtzZWcud2lkdGhQY3R9JSAtIDFweClgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7U1RSSVBFRF9TRUdNRU5UX1NUQVRVU0VTLmhhcyhzZWcuc3RhdHVzKSA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkU3RyaXBlcyBzdGF0dXM9e3NlZy5zdGF0dXN9IC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzaG93TGFiZWwgPyA8RHVyYXRpb25MYWJlbCBsYWJlbD17bGFiZWx9IC8+IDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWVsaW5lQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgVGltZWxpbmVCYXIgPSBtZW1vKGZ1bmN0aW9uIFRpbWVsaW5lQmFyKHtcbiAgc3BhbixcbiAgdmlld1N0YXJ0LFxuICB2aWV3RHVyYXRpb24sXG4gIGNvbnRhaW5lcldpZHRoLFxuICBpc1NlbGVjdGVkLFxuICBpc0RpbW1lZCxcbiAgb25TZWxlY3QsXG4gIG9uUmV2ZWFsVGltZSxcbn06IHtcbiAgc3BhbjogU3BhbjtcbiAgdmlld1N0YXJ0OiBudW1iZXI7XG4gIHZpZXdEdXJhdGlvbjogbnVtYmVyO1xuICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICBpc0RpbW1lZD86IGJvb2xlYW47XG4gIG9uU2VsZWN0OiAoc3BhbklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uUmV2ZWFsVGltZT86ICh0aW1lTXM6IG51bWJlcikgPT4gdm9pZDtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBzdGFydE1zID0gZ2V0SGlnaFJlc0luTXMoc3Bhbi5zdGFydFRpbWUpO1xuICBjb25zdCBlbmRNcyA9IGdldEhpZ2hSZXNJbk1zKHNwYW4uZW5kVGltZSk7XG4gIGNvbnN0IHRvdGFsRHVyYXRpb25NcyA9IGdldFNwYW5EdXJhdGlvbk1zKHNwYW4pO1xuXG4gIGNvbnN0IGdlb21ldHJ5ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY29tcHV0ZUJhckdlb21ldHJ5KFxuICAgICAgICBzdGFydE1zLFxuICAgICAgICBlbmRNcyxcbiAgICAgICAgdmlld1N0YXJ0LFxuICAgICAgICB2aWV3U3RhcnQgKyB2aWV3RHVyYXRpb24sXG4gICAgICAgIGNvbnRhaW5lcldpZHRoXG4gICAgICApLFxuICAgIFtzdGFydE1zLCBlbmRNcywgdmlld1N0YXJ0LCB2aWV3RHVyYXRpb24sIGNvbnRhaW5lcldpZHRoXVxuICApO1xuXG4gIGNvbnN0IGJhc2VTZWdtZW50cyA9IHVzZU1lbW8oKCkgPT4gY29tcHV0ZVNwYW5TZWdtZW50cyhzcGFuKSwgW3NwYW5dKTtcbiAgY29uc3Qgc2VnbWVudHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBnZW9tZXRyeS5tb2RlLmtpbmQgPT09ICdmdWxsJ1xuICAgICAgICA/IHByb2plY3RTZWdtZW50cyhiYXNlU2VnbWVudHMsIHN0YXJ0TXMsIHRvdGFsRHVyYXRpb25NcywgZ2VvbWV0cnkpXG4gICAgICAgIDogW10sXG4gICAgW2dlb21ldHJ5LCBiYXNlU2VnbWVudHMsIHN0YXJ0TXMsIHRvdGFsRHVyYXRpb25Nc11cbiAgKTtcblxuICBjb25zdCBiYXNlTWFya2VycyA9IHVzZU1lbW8oKCkgPT4gY29tcHV0ZVNwYW5NYXJrZXJzKHNwYW4pLCBbc3Bhbl0pO1xuICBjb25zdCBtYXJrZXJzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgZ2VvbWV0cnkubW9kZS5raW5kID09PSAnZnVsbCdcbiAgICAgICAgPyBjdWxsQ29sbGlkaW5nTWFya2VycyhcbiAgICAgICAgICAgIHByb2plY3RNYXJrZXJzKFxuICAgICAgICAgICAgICBiYXNlTWFya2VycyxcbiAgICAgICAgICAgICAgZ2VvbWV0cnkudmlzaWJsZVN0YXJ0TXMsXG4gICAgICAgICAgICAgIGdlb21ldHJ5LnZpc2libGVFbmRNc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGdlb21ldHJ5LnZpc2libGVQaXhlbFdpZHRoXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdLFxuICAgIFtnZW9tZXRyeSwgYmFzZU1hcmtlcnNdXG4gICk7XG5cbiAgLy8gTWFya2VycyB0aGF0IGZhbGwgb3V0c2lkZSB0aGUgdmlzaWJsZSB3aW5kb3cgKHNjcm9sbGVkIG9mZiB3aGlsZSB6b29tZWQgaW4pXG4gIC8vIOKAlCBzdXJmYWNlZCBhcyBlZGdlIGluZGljYXRvcnMgc28gdGhleSBhcmVuJ3Qgc2lsZW50bHkgbG9zdC5cbiAgY29uc3Qgb2Zmc2NyZWVuID0gdXNlTWVtbzxPZmZzY3JlZW5NYXJrZXJzPihcbiAgICAoKSA9PlxuICAgICAgZ2VvbWV0cnkubW9kZS5raW5kID09PSAnZnVsbCdcbiAgICAgICAgPyBjb21wdXRlT2Zmc2NyZWVuTWFya2VycyhcbiAgICAgICAgICAgIGJhc2VNYXJrZXJzLFxuICAgICAgICAgICAgZ2VvbWV0cnkudmlzaWJsZVN0YXJ0TXMsXG4gICAgICAgICAgICBnZW9tZXRyeS52aXNpYmxlRW5kTXNcbiAgICAgICAgICApXG4gICAgICAgIDogeyBsZWZ0OiBudWxsLCByaWdodDogbnVsbCB9LFxuICAgIFtnZW9tZXRyeSwgYmFzZU1hcmtlcnNdXG4gICk7XG5cbiAgLy8gTWFya2VycyAodmlzaWJsZSBvciBvZmYtc2NyZWVuKSBtb3ZlIHRoZSBkdXJhdGlvbiBsYWJlbCBpbnRvIHRoZSBvdmVybGF5LFxuICAvLyBzbyB0aGUgaW4tYmFyIHNlZ21lbnQgbGFiZWwgaXMgc3VwcHJlc3NlZC5cbiAgY29uc3QgaGFzTWFya2VycyA9XG4gICAgbWFya2Vycy5sZW5ndGggPiAwIHx8IG9mZnNjcmVlbi5sZWZ0ICE9PSBudWxsIHx8IG9mZnNjcmVlbi5yaWdodCAhPT0gbnVsbDtcblxuICBjb25zdCBpc0Vycm9yZWQgPSBpc1NwYW5FcnJvcmVkKHNwYW4pO1xuICBjb25zdCBjb2xvcnMgPSBnZXRSZXNvdXJjZUNsYXNzTmFtZXMoc3Bhbi5yZXNvdXJjZSk7XG4gIGNvbnN0IGZhbGxiYWNrQ2xhc3NOYW1lID0gaXNFcnJvcmVkXG4gICAgPyAoY29sb3JzLmVycm9yQ2xhc3NOYW1lID8/ICdib3JkZXItcmVkLTUwMCBiZy1yZWQtMjAwJylcbiAgICA6IGNvbG9ycy5jbGFzc05hbWU7XG5cbiAgY29uc3QgdG90YWxMYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZSh0b3RhbER1cmF0aW9uTXMpO1xuICBjb25zdCBzaG93VG90YWxMYWJlbCA9XG4gICAgZ2VvbWV0cnkudmlzaWJsZVBpeGVsV2lkdGggPj1cbiAgICBNYXRoLm1heCg0MCwgZXN0aW1hdGVMYWJlbFdpZHRoUHgodG90YWxMYWJlbCkpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uU2VsZWN0KHNwYW4uc3BhbklkKTtcbiAgfSwgW29uU2VsZWN0LCBzcGFuLnNwYW5JZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBhcmlhLWV4cGFuZGVkPXtpc1NlbGVjdGVkfVxuICAgICAgYXJpYS1sZXZlbD17MX1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdncm91cC90aW1lbGluZS1yb3cgaC0xMCByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciBob3ZlcjpiZy1ncmF5LTEwMCBhcmlhLXNlbGVjdGVkOmJnLWdyYXktMTAwIGFyaWEtc2VsZWN0ZWQ6aG92ZXI6YmctZ3JheS0yMDAgdHJhbnNpdGlvbi1vcGFjaXR5JyxcbiAgICAgICAgaXNEaW1tZWQgJiYgJ29wYWNpdHktMzUnXG4gICAgICApfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC14LTQgaW5zZXQteS0wXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMS8yIGgtNiAtdHJhbnNsYXRlLXktMS8yIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLVswLjI1cmVtXVwiXG4gICAgICAgICAgc3R5bGU9e2dldEJhclBvc2l0aW9uU3R5bGUoZ2VvbWV0cnkpfVxuICAgICAgICA+XG4gICAgICAgICAge2dlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ2Fycm93JyA/IChcbiAgICAgICAgICAgIDxCb3VuZGFyeUFycm93IGRpcmVjdGlvbj17Z2VvbWV0cnkubW9kZS5kaXJlY3Rpb259IC8+XG4gICAgICAgICAgKSA6IGdlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ3RpbnknID8gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdoLTYgcm91bmRlZC1bMC4yNXJlbV0gYm9yZGVyJywgZmFsbGJhY2tDbGFzc05hbWUpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogc2VnbWVudHMubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgIDxTZWdtZW50QmFyIHNlZ21lbnRzPXtzZWdtZW50c30gc2hvd0xhYmVscz17IWhhc01hcmtlcnN9IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxQbGFpbkJhclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2ZhbGxiYWNrQ2xhc3NOYW1lfVxuICAgICAgICAgICAgICBsYWJlbD17c2hvd1RvdGFsTGFiZWwgPyB0b3RhbExhYmVsIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsvKiBPdmVybGF5IChub3QgY2xpcHBlZCk6IHRpY2tzLCBvZmYtc2NyZWVuIGluZGljYXRvcnMsIHRoZW4gdGhlIGR1cmF0aW9uIGxhYmVsIG9uIHRvcC4gKi99XG4gICAgICAgIHtoYXNNYXJrZXJzID8gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgdG9wLTEvMiBoLTYgLXRyYW5zbGF0ZS15LTEvMlwiXG4gICAgICAgICAgICBzdHlsZT17Z2V0QmFyUG9zaXRpb25TdHlsZShnZW9tZXRyeSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcmtlcnMubGVuZ3RoID4gMCA/IDxNYXJrZXJMYXllciBtYXJrZXJzPXttYXJrZXJzfSAvPiA6IG51bGx9XG4gICAgICAgICAgICB7b2Zmc2NyZWVuLmxlZnQgPyAoXG4gICAgICAgICAgICAgIDxPZmZzY3JlZW5NYXJrZXJJbmRpY2F0b3JcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICBjb3VudD17b2Zmc2NyZWVuLmxlZnQuY291bnR9XG4gICAgICAgICAgICAgICAgdGFyZ2V0TXM9e29mZnNjcmVlbi5sZWZ0Lm5lYXJlc3RNc31cbiAgICAgICAgICAgICAgICBvblJldmVhbD17b25SZXZlYWxUaW1lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7b2Zmc2NyZWVuLnJpZ2h0ID8gKFxuICAgICAgICAgICAgICA8T2Zmc2NyZWVuTWFya2VySW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgIGNvdW50PXtvZmZzY3JlZW4ucmlnaHQuY291bnR9XG4gICAgICAgICAgICAgICAgdGFyZ2V0TXM9e29mZnNjcmVlbi5yaWdodC5uZWFyZXN0TXN9XG4gICAgICAgICAgICAgICAgb25SZXZlYWw9e29uUmV2ZWFsVGltZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3dUb3RhbExhYmVsID8gKFxuICAgICAgICAgICAgICA8RHVyYXRpb25MYWJlbFxuICAgICAgICAgICAgICAgIGxhYmVsPXt0b3RhbExhYmVsfVxuICAgICAgICAgICAgICAgIC8vIFNoaWZ0IGNsZWFyIG9mIHRoZSBsZWZ0IGVkZ2UgaW5kaWNhdG9yIHNvIGl0IGlzbid0IGNvdmVyZWQuXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtvZmZzY3JlZW4ubGVmdCA/ICdwbC0xMCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0pO1xuXG5leHBvcnQgeyBUaW1lbGluZUJhciB9O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlbHRhTWVhc3VyZUxpbmUgKEFsdC1rZXkgbWVhc3VyZW1lbnQgb3ZlcmxheXM6IHRoZSBzZWxlY3RlZCDihpQgaG92ZXJlZFxuLy8gbWVhc3VyZW1lbnQsIGFuZCB0aGUgYW1iaWVudCBjb25zZWN1dGl2ZS1nYXAgaW5kaWNhdG9ycyBzaG93biB3aXRob3V0IGFcbi8vIHNlbGVjdGlvbilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIb3Jpem9udGFsIGRpc3RhbmNlIGJldHdlZW4gdGhlIGFuY2hvciBiYXIncyBtZWFzdXJlZCBlZGdlIGFuZCB0aGUgdmVydGljYWxcbi8vIGd1aWRlIOKAlCBhbHNvIHRoZSB3aWR0aCBvZiB0aGUgY29ubmVjdG9yIHN0dWIgYnJpZGdpbmcgdGhlIHR3by5cbmNvbnN0IE1FQVNVUkVfR1VJREVfT1VUU0VUX1BYID0gNDtcblxuY29uc3QgRGVsdGFNZWFzdXJlTGluZSA9IG1lbW8oZnVuY3Rpb24gRGVsdGFNZWFzdXJlTGluZSh7XG4gIGRlbHRhLFxuICBhbmNob3JSb3dJbmRleCxcbiAgaG92ZXJlZFJvd0luZGV4LFxuICB0aW1lbGluZVdpZHRoLFxufToge1xuICBkZWx0YTogU3BhbkRlbHRhO1xuICBhbmNob3JSb3dJbmRleDogbnVtYmVyO1xuICBob3ZlcmVkUm93SW5kZXg6IG51bWJlcjtcbiAgdGltZWxpbmVXaWR0aDogbnVtYmVyO1xufSkge1xuICAvLyBCb3RoIGVuZHMgb2YgdGhlIG1lYXN1cmVtZW50IGFsaWduIHdpdGggdGhlIHZlcnRpY2FsIG1pZGRsZSBvZiB0aGUgYmFyc1xuICAvLyAoYmFycyBhcmUgY2VudGVyZWQgaW4gdGhlaXIgcm93cywgc28gYmFyIGNlbnRlciA9PSByb3cgY2VudGVyKS5cbiAgY29uc3QgYW5jaG9yQ2VudGVyWSA9IGFuY2hvclJvd0luZGV4ICogUk9XX0hFSUdIVF9QWCArIFJPV19IRUlHSFRfUFggLyAyO1xuICBjb25zdCBsaW5lWSA9IGhvdmVyZWRSb3dJbmRleCAqIFJPV19IRUlHSFRfUFggKyBST1dfSEVJR0hUX1BYIC8gMjtcblxuICAvLyBHdWlkZSBjb25uZWN0aW5nIHRoZSBtaWRkbGUgb2YgdGhlIGFuY2hvciBiYXIgZG93bi91cCB0byB0aGUgbGluZSwgc29cbiAgLy8gdGhlIG1lYXN1cmVtZW50J3Mgb3JpZ2luIHN0YXlzIGxlZ2libGUgd2hlbiB0aGUgcm93cyBhcmUgZmFyIGFwYXJ0LlxuICAvLyBJdCBzaXRzIGp1c3Qgb3V0c2lkZSB0aGUgYW5jaG9yIGJhcidzIG1lYXN1cmVkIGVkZ2UgKHNvIGl0IGRvZXNuJ3QgYmxlbmRcbiAgLy8gaW50byB0aGUgYmFyJ3MgYm9yZGVyKSwgam9pbmVkIHRvIHRoZSBiYXIgYnkgYSBzaG9ydCBob3Jpem9udGFsIHN0dWIuIFRoZVxuICAvLyBsaW5lIHJ1bnMgZnJvbSB0aGUgZWxib3cgY29ybmVyICh0aGUgZ3VpZGUncyB4KSB0byB0aGUgaG92ZXJlZCBzcGFuJ3NcbiAgLy8gbWVhc3VyZWQgZWRnZSDigJQgcHVsbGVkIHNob3J0IG9mIHRoZSBlZGdlIGFycm93IHdoZW4gdGhlIGhvdmVyZWQgc3BhbiBpc1xuICAvLyBmdWxseSBvZmYtc2NyZWVuLlxuICBjb25zdCBndWlkZVRvcCA9IE1hdGgubWluKGFuY2hvckNlbnRlclksIGxpbmVZKTtcbiAgY29uc3QgZ3VpZGVCb3R0b20gPSBNYXRoLm1heChhbmNob3JDZW50ZXJZLCBsaW5lWSk7XG4gIGNvbnN0IGFuY2hvclggPSBkZWx0YS5hbmNob3JGcmFjICogdGltZWxpbmVXaWR0aDtcbiAgY29uc3QgZ3VpZGVYID1cbiAgICBhbmNob3JYICtcbiAgICAoZGVsdGEuYW5jaG9yRWRnZSA9PT0gJ2VuZCdcbiAgICAgID8gTUVBU1VSRV9HVUlERV9PVVRTRVRfUFhcbiAgICAgIDogLU1FQVNVUkVfR1VJREVfT1VUU0VUX1BYKTtcbiAgY29uc3QgYXJyb3dDbGVhcmFuY2UgPVxuICAgIGRlbHRhLmhvdmVyZWRPZmZzY3JlZW4gPT09ICdyaWdodCdcbiAgICAgID8gLShUSU5ZX0JBUl9CT1hfU0laRV9QWCArIDQpXG4gICAgICA6IGRlbHRhLmhvdmVyZWRPZmZzY3JlZW4gPT09ICdsZWZ0J1xuICAgICAgICA/IFRJTllfQkFSX0JPWF9TSVpFX1BYICsgNFxuICAgICAgICA6IDA7XG4gIGNvbnN0IGhvdmVyZWRYID0gZGVsdGEuaG92ZXJlZEZyYWMgKiB0aW1lbGluZVdpZHRoICsgYXJyb3dDbGVhcmFuY2U7XG4gIGNvbnN0IHN0YXJ0WCA9IE1hdGgubWluKGd1aWRlWCwgaG92ZXJlZFgpO1xuICBjb25zdCBlbmRYID0gTWF0aC5tYXgoZ3VpZGVYLCBob3ZlcmVkWCk7XG5cbiAgY29uc3QgbGFiZWwgPSBmb3JtYXREdXJhdGlvblByZWNpc2UoZGVsdGEuZGVsdGFNcyk7XG4gIGNvbnN0IGxhYmVsV2lkdGhQeCA9IGVzdGltYXRlTGFiZWxXaWR0aFB4KGxhYmVsKTtcbiAgLy8gQ2VudGVyIHRoZSBsYWJlbCBvbiB0aGUgbGluZTsgd2hlbiB0aGUgbGluZSBpcyB0b28gc2hvcnQsIHBsYWNlIGl0IGJlc2lkZVxuICAvLyB0aGUgcmlnaHQgZW5kcG9pbnQsIGZsaXBwaW5nIGxlZnQgbmVhciB0aGUgdmlld3BvcnQncyByaWdodCBlZGdlLlxuICBjb25zdCBsYWJlbFBsYWNlbWVudCA9XG4gICAgZW5kWCAtIHN0YXJ0WCA+PSBsYWJlbFdpZHRoUHhcbiAgICAgID8geyBsZWZ0OiAoc3RhcnRYICsgZW5kWCkgLyAyLCB0cmFuc2xhdGU6ICctdHJhbnNsYXRlLXgtMS8yJyB9XG4gICAgICA6IGVuZFggKyA0ICsgbGFiZWxXaWR0aFB4IDw9IHRpbWVsaW5lV2lkdGhcbiAgICAgICAgPyB7IGxlZnQ6IGVuZFggKyA0LCB0cmFuc2xhdGU6ICcnIH1cbiAgICAgICAgOiB7IGxlZnQ6IHN0YXJ0WCAtIDQsIHRyYW5zbGF0ZTogJy10cmFuc2xhdGUteC1mdWxsJyB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaC1weCB3LTEgYmctYW1iZXItODAwXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBsZWZ0OiBNYXRoLm1pbihhbmNob3JYLCBndWlkZVgpLFxuICAgICAgICAgIHRvcDogYW5jaG9yQ2VudGVyWSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHctcHggYmctYW1iZXItODAwXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBsZWZ0OiBndWlkZVgsXG4gICAgICAgICAgdG9wOiBndWlkZVRvcCxcbiAgICAgICAgICBoZWlnaHQ6IGd1aWRlQm90dG9tIC0gZ3VpZGVUb3AsXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBoLXB4IGJnLWFtYmVyLTgwMFwiXG4gICAgICAgIHN0eWxlPXt7IGxlZnQ6IHN0YXJ0WCwgd2lkdGg6IE1hdGgubWF4KGVuZFggLSBzdGFydFgsIDEpLCB0b3A6IGxpbmVZIH19XG4gICAgICAvPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAnYWJzb2x1dGUgLXRyYW5zbGF0ZS15LTEvMiBmb250LW1vbm8gdGV4dC1bMTBweF0gZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRhYnVsYXItbnVtcyB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLXhzIGJnLWJhY2tncm91bmQtMTAwIHB4LTEgcHktMC41IHRleHQtYW1iZXItODAwJyxcbiAgICAgICAgICBsYWJlbFBsYWNlbWVudC50cmFuc2xhdGVcbiAgICAgICAgKX1cbiAgICAgICAgc3R5bGU9e3sgbGVmdDogbGFiZWxQbGFjZW1lbnQubGVmdCwgdG9wOiBsaW5lWSB9fVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L3NwYW4+XG4gICAgPC8+XG4gICk7XG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lbGluZUhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBUaW1lbGluZUhlYWRlcih7XG4gIG1hcmtlcnMsXG4gIGhvdmVySW5mbyxcbn06IHtcbiAgbWFya2VyczogVGltZU1hcmtlcltdO1xuICBob3ZlckluZm8/OiB7IGZyYWN0aW9uOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfSB8IG51bGw7XG59KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGJnLWJhY2tncm91bmQtMTAwIGJvcmRlci1iIGJvcmRlci1ncmF5LWFscGhhLTQwMCBoLTEwIG1pbi1oLTEwIGZsZXggaXRlbXMtZW5kIHB4LTQgcGItMVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLWZ1bGwgZmxleC0xXCI+XG4gICAgICAgIHttYXJrZXJzLm1hcCgobSkgPT4gKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBrZXk9e1N0cmluZyhtLnZhbHVlKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGJvdHRvbS0xIHRleHQtbGFiZWwtMTItbW9ubyB0ZXh0LWdyYXktOTAwIHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGxlZnQ6IGAke20ucG9zaXRpb24gKiAxMDB9JWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bS5sYWJlbH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICkpfVxuICAgICAgICB7aG92ZXJJbmZvICYmIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTEgcG9pbnRlci1ldmVudHMtbm9uZSB6LTEwIGZvbnQtbW9ubyB0ZXh0LVsxMXB4XSBsZWFkaW5nLTQgdGV4dC1ncmF5LTEwMDAgd2hpdGVzcGFjZS1ub3dyYXAgYmctYmFja2dyb3VuZC0xMDAgYm9yZGVyIGJvcmRlci1ncmF5LWFscGhhLTQwMCByb3VuZGVkIHB4LTEgLXRyYW5zbGF0ZS14LTEvMlwiXG4gICAgICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtob3ZlckluZm8uZnJhY3Rpb24gKiAxMDB9JWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aG92ZXJJbmZvLmxhYmVsfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWVsaW5lXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBUaW1lbGluZUhvdmVyIHtcbiAgLyoqIFBvaW50ZXIgeCBhcyBhIGZyYWN0aW9uIG9mIHRoZSB0aW1lbGluZSdzIGNvbnRlbnQgd2lkdGgsIGluIFswLCAxXS4gKi9cbiAgZnJhY3Rpb246IG51bWJlcjtcbiAgLyoqIFJvdyBpbmRleCB1bmRlciB0aGUgcG9pbnRlcjsgbWF5IGJlIHBhc3QgdGhlIGxhc3Qgcm93IOKAlCBub3QgdmFsaWRhdGVkLiAqL1xuICByb3dJbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVGltZWxpbmUoe1xuICBzcGFucyxcbiAgdmlld1N0YXJ0LFxuICB2aWV3RW5kLFxuICBtYXJrZXJzLFxuICBzZWxlY3RlZElkLFxuICBzZWFyY2hSZXN1bHQsXG4gIG9uU2VsZWN0LFxuICBvblJldmVhbFRpbWUsXG4gIGhvdmVyLFxuICBhbHRIZWxkID0gZmFsc2UsXG59OiB7XG4gIHNwYW5zOiBTcGFuW107XG4gIHZpZXdTdGFydDogbnVtYmVyO1xuICB2aWV3RW5kOiBudW1iZXI7XG4gIG1hcmtlcnM6IFRpbWVNYXJrZXJbXTtcbiAgc2VsZWN0ZWRJZDogc3RyaW5nIHwgbnVsbDtcbiAgc2VhcmNoUmVzdWx0OiBTcGFuU2VhcmNoUmVzdWx0O1xuICBvblNlbGVjdDogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblJldmVhbFRpbWU/OiAodGltZU1zOiBudW1iZXIpID0+IHZvaWQ7XG4gIGhvdmVyPzogVGltZWxpbmVIb3ZlciB8IG51bGw7XG4gIGFsdEhlbGQ/OiBib29sZWFuO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtjb250YWluZXJXaWR0aCwgc2V0Q29udGFpbmVyV2lkdGhdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IHZpZXdEdXJhdGlvbiA9IHZpZXdFbmQgLSB2aWV3U3RhcnQ7XG4gIGNvbnN0IHRpbWVsaW5lV2lkdGggPSBNYXRoLm1heCgwLCBjb250YWluZXJXaWR0aCAtIFRJTUVMSU5FX1BBRERJTkdfUFggKiAyKTtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB1c2VSb3dXaW5kb3coXG4gICAgY29udGFpbmVyUmVmLFxuICAgIHNwYW5zLmxlbmd0aCxcbiAgICBST1dfSEVJR0hUX1BYXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoW2VudHJ5XSkgPT4ge1xuICAgICAgc2V0Q29udGFpbmVyV2lkdGgoZW50cnkuY29udGVudFJlY3Qud2lkdGgpO1xuICAgIH0pO1xuICAgIHJvLm9ic2VydmUoZWwpO1xuICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KCk7XG4gIH0sIFtdKTtcblxuICAvLyBFYWNoIGNvbnNlY3V0aXZlIGdhcCByZW5kZXJzIGFzIGEgbWVhc3VyZW1lbnQgZnJvbSB0aGUgZWFybGllciBzcGFuJ3MgZW5kXG4gIC8vIGVkZ2UgdG8gdGhlIG5leHQgc3BhbidzIHN0YXJ0LCBpbiB0aGUgc2FtZSB2aXN1YWwgbGFuZ3VhZ2UgYXMgdGhlXG4gIC8vIHNlbGVjdGVkIOKGlCBob3ZlcmVkIG1lYXN1cmVtZW50LlxuICBjb25zdCBnYXBNZWFzdXJlbWVudHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjb21wdXRlU3BhbkdhcHMoc3BhbnMsIHZpZXdTdGFydCwgdmlld0VuZCkubWFwKChnYXApID0+ICh7XG4gICAgICAgIGRlbHRhOiB7XG4gICAgICAgICAgZGVsdGFNczogZ2FwLmdhcE1zLFxuICAgICAgICAgIGFuY2hvckZyYWM6IGdhcC5sZWZ0RnJhYyxcbiAgICAgICAgICBob3ZlcmVkRnJhYzogZ2FwLnJpZ2h0RnJhYyxcbiAgICAgICAgICBhbmNob3JFZGdlOiAnZW5kJyxcbiAgICAgICAgICBob3ZlcmVkT2Zmc2NyZWVuOiBudWxsLFxuICAgICAgICB9IHNhdGlzZmllcyBTcGFuRGVsdGEsXG4gICAgICAgIGFuY2hvclJvd0luZGV4OiBnYXAucm93SW5kZXgsXG4gICAgICAgIGhvdmVyZWRSb3dJbmRleDogZ2FwLnJvd0luZGV4ICsgMSxcbiAgICAgIH0pKSxcbiAgICBbc3BhbnMsIHZpZXdTdGFydCwgdmlld0VuZF1cbiAgKTtcblxuICAvLyBXaXRoIGEgc3BhbiBzZWxlY3RlZCwgQWx0K2hvdmVyIG1lYXN1cmVzIHNlbGVjdGVkIOKGlCBob3ZlcmVkIGluc3RlYWQgb2ZcbiAgLy8gc2hvd2luZyB0aGUgYWxsLXNpYmxpbmctZ2FwcyBvdmVybGF5LlxuICBjb25zdCBhbmNob3JJbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHNlbGVjdGVkSWQgPyBzcGFucy5maW5kSW5kZXgoKHMpID0+IHMuc3BhbklkID09PSBzZWxlY3RlZElkKSA6IC0xKSxcbiAgICBbc3BhbnMsIHNlbGVjdGVkSWRdXG4gICk7XG5cbiAgY29uc3QgbWVhc3VyZW1lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWFsdEhlbGQgfHwgaG92ZXIgPT0gbnVsbCB8fCBob3Zlci5yb3dJbmRleCA9PT0gYW5jaG9ySW5kZXgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBhbmNob3JTcGFuID0gc3BhbnNbYW5jaG9ySW5kZXhdO1xuICAgIGNvbnN0IGhvdmVyZWRTcGFuID0gc3BhbnNbaG92ZXIucm93SW5kZXhdO1xuICAgIGlmICghYW5jaG9yU3BhbiB8fCAhaG92ZXJlZFNwYW4pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGRlbHRhID0gY29tcHV0ZVNwYW5EZWx0YShhbmNob3JTcGFuLCBob3ZlcmVkU3Bhbiwgdmlld1N0YXJ0LCB2aWV3RW5kKTtcbiAgICByZXR1cm4gZGVsdGFcbiAgICAgID8geyBkZWx0YSwgYW5jaG9yUm93SW5kZXg6IGFuY2hvckluZGV4LCBob3ZlcmVkUm93SW5kZXg6IGhvdmVyLnJvd0luZGV4IH1cbiAgICAgIDogbnVsbDtcbiAgfSwgW2FsdEhlbGQsIGFuY2hvckluZGV4LCBob3Zlciwgc3BhbnMsIHZpZXdTdGFydCwgdmlld0VuZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgIHN0eWxlPXt7IG1pbkhlaWdodDogc3BhbnMubGVuZ3RoICogUk9XX0hFSUdIVF9QWCB9fVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC14LTQgaW5zZXQteS0wXCJcbiAgICAgID5cbiAgICAgICAge21hcmtlcnMubWFwKChtYXJrZXIpID0+XG4gICAgICAgICAgLy8gU2tpcCB0aGUgXCIwc1wiIG9yaWdpbiBtYXJrZXIgc2luY2UgdGhlIGxlZnQgZWRnZSBhbHJlYWR5IGltcGxpZXMgaXQuXG4gICAgICAgICAgTWF0aC5hYnMobWFya2VyLnZhbHVlKSA+IDAuMDAwMDAxID8gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e1N0cmluZyhtYXJrZXIudmFsdWUpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCB3LXB4IGJnLWdyYXktYWxwaGEtMzAwXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7bWFya2VyLnBvc2l0aW9uICogMTAwfSVgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtob3ZlciAhPSBudWxsICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXgtNCBpbnNldC15LTAgei0xMFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIGJvdHRvbS0wIHctcHggYmctZ3JheS1hbHBoYS01MDBcIlxuICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7aG92ZXIuZnJhY3Rpb24gKiAxMDB9JWAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8ZGl2IHN0eWxlPXt7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtzdGFydCAqIFJPV19IRUlHSFRfUFh9cHgpYCB9fT5cbiAgICAgICAge3NwYW5zLnNsaWNlKHN0YXJ0LCBlbmQpLm1hcCgoc3BhbikgPT4gKFxuICAgICAgICAgIDxUaW1lbGluZUJhclxuICAgICAgICAgICAga2V5PXtzcGFuLnNwYW5JZH1cbiAgICAgICAgICAgIHNwYW49e3NwYW59XG4gICAgICAgICAgICB2aWV3U3RhcnQ9e3ZpZXdTdGFydH1cbiAgICAgICAgICAgIHZpZXdEdXJhdGlvbj17dmlld0R1cmF0aW9ufVxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGg9e3RpbWVsaW5lV2lkdGh9XG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZElkID09PSBzcGFuLnNwYW5JZH1cbiAgICAgICAgICAgIGlzRGltbWVkPXtpc1NwYW5EaW1tZWRCeVNlYXJjaChzcGFuLnNwYW5JZCwgc2VhcmNoUmVzdWx0KX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtvblNlbGVjdH1cbiAgICAgICAgICAgIG9uUmV2ZWFsVGltZT17b25SZXZlYWxUaW1lfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICB7YWx0SGVsZCAmJiBhbmNob3JJbmRleCA8IDAgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXgtNCBpbnNldC15LTBcIlxuICAgICAgICA+XG4gICAgICAgICAge2dhcE1lYXN1cmVtZW50cy5tYXAoKGdhcCkgPT4gKFxuICAgICAgICAgICAgPERlbHRhTWVhc3VyZUxpbmVcbiAgICAgICAgICAgICAga2V5PXtnYXAuYW5jaG9yUm93SW5kZXh9XG4gICAgICAgICAgICAgIHsuLi5nYXB9XG4gICAgICAgICAgICAgIHRpbWVsaW5lV2lkdGg9e3RpbWVsaW5lV2lkdGh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7bWVhc3VyZW1lbnQgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXgtNCBpbnNldC15LTAgei0yMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8RGVsdGFNZWFzdXJlTGluZSB7Li4ubWVhc3VyZW1lbnR9IHRpbWVsaW5lV2lkdGg9e3RpbWVsaW5lV2lkdGh9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"trace-viewer-skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/trace-viewer-skeleton.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,mBAAmB,4CAuFlC"}
1
+ {"version":3,"file":"trace-viewer-skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/trace-viewer-skeleton.tsx"],"names":[],"mappings":"AAqEA,wBAAgB,mBAAmB,4CAwElC"}
@@ -1,26 +1,66 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Skeleton } from '../../ui/skeleton';
3
- import { DEFAULT_START_PX, paneColTemplate } from './pane-constants';
4
- // Mirrors SplitPane's initial column template so the skeleton lines up with
5
- // the real viewer's first paint.
6
- const COL_TEMPLATE = paneColTemplate(DEFAULT_START_PX);
7
3
  const ROWS = [
8
- { id: 'r0', name: 62, off: 0, bar: 72 },
9
- { id: 'r1', name: 78, off: 6, bar: 48 },
10
- { id: 'r2', name: 50, off: 10, bar: 55 },
11
- { id: 'r3', name: 84, off: 18, bar: 30 },
12
- { id: 'r4', name: 45, off: 18, bar: 42 },
13
- { id: 'r5', name: 66, off: 34, bar: 38 },
14
- { id: 'r6', name: 55, off: 41, bar: 25 },
15
- { id: 'r7', name: 40, off: 50, bar: 30 },
4
+ {
5
+ id: 'r0',
6
+ nameClassName: 'w-[62%]',
7
+ offsetClassName: 'left-0',
8
+ barClassName: 'w-[72%]',
9
+ topClassName: 'top-0',
10
+ },
11
+ {
12
+ id: 'r1',
13
+ nameClassName: 'w-[78%]',
14
+ offsetClassName: 'left-[6%]',
15
+ barClassName: 'w-[48%]',
16
+ topClassName: 'top-[3.5px]',
17
+ },
18
+ {
19
+ id: 'r2',
20
+ nameClassName: 'w-1/2',
21
+ offsetClassName: 'left-[10%]',
22
+ barClassName: 'w-[55%]',
23
+ topClassName: 'top-[7px]',
24
+ },
25
+ {
26
+ id: 'r3',
27
+ nameClassName: 'w-[84%]',
28
+ offsetClassName: 'left-[18%]',
29
+ barClassName: 'w-[30%]',
30
+ topClassName: 'top-[10.5px]',
31
+ },
32
+ {
33
+ id: 'r4',
34
+ nameClassName: 'w-[45%]',
35
+ offsetClassName: 'left-[18%]',
36
+ barClassName: 'w-[42%]',
37
+ topClassName: 'top-[14px]',
38
+ },
39
+ {
40
+ id: 'r5',
41
+ nameClassName: 'w-[66%]',
42
+ offsetClassName: 'left-[34%]',
43
+ barClassName: 'w-[38%]',
44
+ topClassName: 'top-[17.5px]',
45
+ },
46
+ {
47
+ id: 'r6',
48
+ nameClassName: 'w-[55%]',
49
+ offsetClassName: 'left-[41%]',
50
+ barClassName: 'w-1/4',
51
+ topClassName: 'top-[21px]',
52
+ },
53
+ {
54
+ id: 'r7',
55
+ nameClassName: 'w-2/5',
56
+ offsetClassName: 'left-1/2',
57
+ barClassName: 'w-[30%]',
58
+ topClassName: 'top-[24.5px]',
59
+ },
16
60
  ];
17
61
  const HEADER_MARKERS = ['m0', 'm1', 'm2', 'm3'];
18
62
  const HeaderDivider = () => (_jsx("div", { className: "flex justify-center", children: _jsx("span", { "aria-hidden": true, className: "h-full w-px bg-gray-alpha-400" }) }));
19
63
  export function TraceViewerSkeleton() {
20
- return (_jsxs("output", { "aria-busy": "true", "aria-label": "Loading trace", className: "flex flex-col w-full h-full min-h-0 bg-background-100", children: [_jsx("span", { className: "sr-only", children: "Loading trace\u2026" }), _jsx("div", { className: "relative h-10 min-h-10 shrink-0 border-b border-gray-alpha-400", children: _jsx("div", { className: "absolute inset-x-4 top-[6px]", children: ROWS.map((row, index) => (_jsx(Skeleton, { className: "absolute h-[3px] rounded-full", style: {
21
- left: `${row.off}%`,
22
- width: `${row.bar}%`,
23
- top: index * 3.5,
24
- } }, row.id))) }) }), _jsxs("div", { className: "shrink-0 grid", style: { gridTemplateColumns: COL_TEMPLATE }, children: [_jsxs("div", { className: "h-10 min-h-10 flex items-center border-b border-gray-alpha-400 pl-4 pr-2 gap-1.5", children: [_jsx(Skeleton, { className: "w-3.5 h-3.5 shrink-0 rounded-sm" }), _jsx(Skeleton, { className: "h-3.5 w-40" })] }), _jsx(HeaderDivider, {}), _jsx("div", { className: "h-10 min-h-10 flex items-end border-b border-gray-alpha-400 px-4 pb-1 gap-2", children: _jsx("div", { className: "relative flex-1 flex items-end justify-between", children: HEADER_MARKERS.map((id) => (_jsx(Skeleton, { className: "h-3.5 w-9" }, id))) }) })] }), _jsxs("div", { className: "grid flex-1 min-h-0 overflow-hidden", style: { gridTemplateColumns: COL_TEMPLATE }, children: [_jsx("div", { className: "block overflow-visible", children: _jsx("ul", { className: "block divide-y divide-gray-alpha-400 border-b border-gray-alpha-400", children: ROWS.map((row) => (_jsxs("li", { className: "h-10 flex items-center pl-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx(Skeleton, { className: "w-4 h-4 shrink-0 rounded-sm" }), _jsx(Skeleton, { className: "h-3.5", style: { width: `${row.name}%` } })] }), _jsx(Skeleton, { className: "ml-2 h-3.5 w-10 shrink-0" })] }, row.id))) }) }), _jsx("span", { "aria-hidden": true, className: "h-full w-px bg-gray-alpha-400" }), _jsx("div", { className: "relative min-h-0", children: ROWS.map((row) => (_jsx("div", { className: "relative h-10", children: _jsx("div", { className: "absolute inset-x-4 inset-y-0", children: _jsx(Skeleton, { className: "absolute top-1/2 -translate-y-1/2 h-6 rounded-[0.25rem]", style: { left: `${row.off}%`, width: `${row.bar}%` } }) }) }, row.id))) })] })] }));
64
+ return (_jsxs("output", { "aria-busy": "true", "aria-label": "Loading trace", className: "flex flex-col w-full h-full min-h-0 bg-background-100", children: [_jsx("span", { className: "sr-only", children: "Loading trace\u2026" }), _jsx("div", { className: "relative h-10 min-h-10 shrink-0 border-b border-gray-alpha-400", children: _jsx("div", { className: "absolute inset-x-4 top-[6px]", children: ROWS.map((row) => (_jsx(Skeleton, { className: `absolute h-[3px] rounded-full ${row.offsetClassName} ${row.barClassName} ${row.topClassName}` }, row.id))) }) }), _jsxs("div", { className: "grid shrink-0 grid-cols-[340px_1px_minmax(50px,1fr)]", children: [_jsxs("div", { className: "h-10 min-h-10 flex items-center border-b border-gray-alpha-400 pl-4 pr-2 gap-1.5", children: [_jsx(Skeleton, { className: "w-3.5 h-3.5 shrink-0 rounded-sm" }), _jsx(Skeleton, { className: "h-3.5 w-40" })] }), _jsx(HeaderDivider, {}), _jsx("div", { className: "h-10 min-h-10 flex items-end border-b border-gray-alpha-400 px-4 pb-1 gap-2", children: _jsx("div", { className: "relative flex-1 flex items-end justify-between", children: HEADER_MARKERS.map((id) => (_jsx(Skeleton, { className: "h-3.5 w-9" }, id))) }) })] }), _jsxs("div", { className: "grid min-h-0 flex-1 grid-cols-[340px_1px_minmax(50px,1fr)] overflow-hidden", children: [_jsx("div", { className: "block overflow-visible", children: _jsx("ul", { className: "block divide-y divide-gray-alpha-400 border-b border-gray-alpha-400", children: ROWS.map((row) => (_jsxs("li", { className: "h-10 flex items-center pl-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx(Skeleton, { className: "w-4 h-4 shrink-0 rounded-sm" }), _jsx(Skeleton, { className: `h-3.5 ${row.nameClassName}` })] }), _jsx(Skeleton, { className: "ml-2 h-3.5 w-10 shrink-0" })] }, row.id))) }) }), _jsx("span", { "aria-hidden": true, className: "h-full w-px bg-gray-alpha-400" }), _jsx("div", { className: "relative min-h-0", children: ROWS.map((row) => (_jsx("div", { className: "relative h-10", children: _jsx("div", { className: "absolute inset-x-4 inset-y-0", children: _jsx(Skeleton, { className: `absolute top-1/2 h-6 -translate-y-1/2 rounded-[0.25rem] ${row.offsetClassName} ${row.barClassName}` }) }) }, row.id))) })] })] }));
25
65
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utdmlld2VyLXNrZWxldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyLXNrZWxldG9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSw0RUFBNEU7QUFDNUUsaUNBQWlDO0FBQ2pDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRXZELE1BQU0sSUFBSSxHQUE2RDtJQUNyRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDdkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ3ZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUN4QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDeEMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ3hDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FB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QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FDakIsY0FBa0IsU0FBUyxFQUFDLGVBQWUsWUFDekMsY0FBSyxTQUFTLEVBQUMsOEJBQThCLFlBQzNDLEtBQUMsUUFBUSxJQUNQLFNBQVMsRUFBQyx5REFBeUQsRUFDbkUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUNwRCxHQUNFLElBTkUsR0FBRyxDQUFDLEVBQUUsQ0FPVixDQUNQLENBQUMsR0FDRSxJQUNGLElBQ0MsQ0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAnLi4vLi4vdWkvc2tlbGV0b24nO1xuaW1wb3J0IHsgREVGQVVMVF9TVEFSVF9QWCwgcGFuZUNvbFRlbXBsYXRlIH0gZnJvbSAnLi9wYW5lLWNvbnN0YW50cyc7XG5cbi8vIE1pcnJvcnMgU3BsaXRQYW5lJ3MgaW5pdGlhbCBjb2x1bW4gdGVtcGxhdGUgc28gdGhlIHNrZWxldG9uIGxpbmVzIHVwIHdpdGhcbi8vIHRoZSByZWFsIHZpZXdlcidzIGZpcnN0IHBhaW50LlxuY29uc3QgQ09MX1RFTVBMQVRFID0gcGFuZUNvbFRlbXBsYXRlKERFRkFVTFRfU1RBUlRfUFgpO1xuXG5jb25zdCBST1dTOiB7IGlkOiBzdHJpbmc7IG5hbWU6IG51bWJlcjsgb2ZmOiBudW1iZXI7IGJhcjogbnVtYmVyIH1bXSA9IFtcbiAgeyBpZDogJ3IwJywgbmFtZTogNjIsIG9mZjogMCwgYmFyOiA3MiB9LFxuICB7IGlkOiAncjEnLCBuYW1lOiA3OCwgb2ZmOiA2LCBiYXI6IDQ4IH0sXG4gIHsgaWQ6ICdyMicsIG5hbWU6IDUwLCBvZmY6IDEwLCBiYXI6IDU1IH0sXG4gIHsgaWQ6ICdyMycsIG5hbWU6IDg0LCBvZmY6IDE4LCBiYXI6IDMwIH0sXG4gIHsgaWQ6ICdyNCcsIG5hbWU6IDQ1LCBvZmY6IDE4LCBiYXI6IDQyIH0sXG4gIHsgaWQ6ICdyNScsIG5hbWU6IDY2LCBvZmY6IDM0LCBiYXI6IDM4IH0sXG4gIHsgaWQ6ICdyNicsIG5hbWU6IDU1LCBvZmY6IDQxLCBiYXI6IDI1IH0sXG4gIHsgaWQ6ICdyNycsIG5hbWU6IDQwLCBvZmY6IDUwLCBiYXI6IDMwIH0sXG5dO1xuXG5jb25zdCBIRUFERVJfTUFSS0VSUyA9IFsnbTAnLCAnbTEnLCAnbTInLCAnbTMnXTtcblxuY29uc3QgSGVhZGVyRGl2aWRlciA9ICgpID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktY2VudGVyXCI+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW4gY2xhc3NOYW1lPVwiaC1mdWxsIHctcHggYmctZ3JheS1hbHBoYS00MDBcIiAvPlxuICA8L2Rpdj5cbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFjZVZpZXdlclNrZWxldG9uKCkge1xuICByZXR1cm4gKFxuICAgIDxvdXRwdXRcbiAgICAgIGFyaWEtYnVzeT1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbD1cIkxvYWRpbmcgdHJhY2VcIlxuICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgaC1mdWxsIG1pbi1oLTAgYmctYmFja2dyb3VuZC0xMDBcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5Mb2FkaW5nIHRyYWNl4oCmPC9zcGFuPlxuXG4gICAgICB7LyogTWluaW1hcCBzdHJpcDogdGhpbiBkZW5zaXR5IGxpbmVzIHRyYWNpbmcgdGhlIHNhbWUgc2hhcGUgYXMgdGhlIGJhcnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtMTAgbWluLWgtMTAgc2hyaW5rLTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktYWxwaGEtNDAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteC00IHRvcC1bNnB4XVwiPlxuICAgICAgICAgIHtST1dTLm1hcCgocm93LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNrZWxldG9uXG4gICAgICAgICAgICAgIGtleT17cm93LmlkfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBoLVszcHhdIHJvdW5kZWQtZnVsbFwiXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbGVmdDogYCR7cm93Lm9mZn0lYCxcbiAgICAgICAgICAgICAgICB3aWR0aDogYCR7cm93LmJhcn0lYCxcbiAgICAgICAgICAgICAgICB0b3A6IGluZGV4ICogMy41LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIEhlYWRlciByb3c6IHNlYXJjaCBoZWFkZXIgfCBkaXZpZGVyIHwgdGltZWxpbmUgaGVhZGVyICovfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJzaHJpbmstMCBncmlkXCJcbiAgICAgICAgc3R5bGU9e3sgZ3JpZFRlbXBsYXRlQ29sdW1uczogQ09MX1RFTVBMQVRFIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xMCBtaW4taC0xMCBmbGV4IGl0ZW1zLWNlbnRlciBib3JkZXItYiBib3JkZXItZ3JheS1hbHBoYS00MDAgcGwtNCBwci0yIGdhcC0xLjVcIj5cbiAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPVwidy0zLjUgaC0zLjUgc2hyaW5rLTAgcm91bmRlZC1zbVwiIC8+XG4gICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cImgtMy41IHctNDBcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPEhlYWRlckRpdmlkZXIgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTEwIG1pbi1oLTEwIGZsZXggaXRlbXMtZW5kIGJvcmRlci1iIGJvcmRlci1ncmF5LWFscGhhLTQwMCBweC00IHBiLTEgZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXgtMSBmbGV4IGl0ZW1zLWVuZCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIHtIRUFERVJfTUFSS0VSUy5tYXAoKGlkKSA9PiAoXG4gICAgICAgICAgICAgIDxTa2VsZXRvbiBrZXk9e2lkfSBjbGFzc05hbWU9XCJoLTMuNSB3LTlcIiAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBDb250ZW50IHJvdzogZXZlbnQgbGlzdCB8IGd1dHRlciB8IHRpbWVsaW5lICovfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJncmlkIGZsZXgtMSBtaW4taC0wIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgIHN0eWxlPXt7IGdyaWRUZW1wbGF0ZUNvbHVtbnM6IENPTF9URU1QTEFURSB9fVxuICAgICAgPlxuICAgICAgICB7LyogU2lkZWJhciBldmVudCByb3dzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsb2NrIG92ZXJmbG93LXZpc2libGVcIj5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwiYmxvY2sgZGl2aWRlLXkgZGl2aWRlLWdyYXktYWxwaGEtNDAwIGJvcmRlci1iIGJvcmRlci1ncmF5LWFscGhhLTQwMFwiPlxuICAgICAgICAgICAge1JPV1MubWFwKChyb3cpID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17cm93LmlkfSBjbGFzc05hbWU9XCJoLTEwIGZsZXggaXRlbXMtY2VudGVyIHBsLTQgcHItMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBtaW4tdy0wIGZsZXgtMSBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9XCJ3LTQgaC00IHNocmluay0wIHJvdW5kZWQtc21cIiAvPlxuICAgICAgICAgICAgICAgICAgPFNrZWxldG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtMy41XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGAke3Jvdy5uYW1lfSVgIH19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9XCJtbC0yIGgtMy41IHctMTAgc2hyaW5rLTBcIiAvPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIEd1dHRlciAqL31cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW4gY2xhc3NOYW1lPVwiaC1mdWxsIHctcHggYmctZ3JheS1hbHBoYS00MDBcIiAvPlxuXG4gICAgICAgIHsvKiBUaW1lbGluZSBiYXJzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIG1pbi1oLTBcIj5cbiAgICAgICAgICB7Uk9XUy5tYXAoKHJvdykgPT4gKFxuICAgICAgICAgICAgPGRpdiBrZXk9e3Jvdy5pZH0gY2xhc3NOYW1lPVwicmVsYXRpdmUgaC0xMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXgtNCBpbnNldC15LTBcIj5cbiAgICAgICAgICAgICAgICA8U2tlbGV0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiBoLTYgcm91bmRlZC1bMC4yNXJlbV1cIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7cm93Lm9mZn0lYCwgd2lkdGg6IGAke3Jvdy5iYXJ9JWAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvb3V0cHV0PlxuICApO1xufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utdmlld2VyLXNrZWxldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyLXNrZWxldG9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDLE1BQU0sSUFBSSxHQUFHO0lBQ1g7UUFDRSxFQUFFLEVBQUUsSUFBSTtRQUNSLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLFlBQVksRUFBRSxPQUFPO0tBQ3RCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsSUFBSTtRQUNSLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLGVBQWUsRUFBRSxXQUFXO1FBQzVCLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLFlBQVksRUFBRSxhQUFhO0tBQzVCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsSUFBSTtRQUNSLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLFlBQVksRUFBRSxXQUFXO0tBQzFCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsSUFBSTtRQUNSLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLFlBQVksRUFBRSxjQUFjO0tBQzdCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsSUFBSTtRQUNSLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLFlBQVksRUFBRSxZQUFZO0tBQzNCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsSUFBSTtRQUNSLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFlBQVksRUFBRSxTQUFTO1FB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LEdBQy9HLEdBQ0UsSUFMRSxHQUFHLENBQUMsRUFBRSxDQU1WLENBQ1AsQ0FBQyxHQUNFLElBQ0YsSUFDQyxDQUNWLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2tlbGV0b24gfSBmcm9tICcuLi8uLi91aS9za2VsZXRvbic7XG5cbmNvbnN0IFJPV1MgPSBbXG4gIHtcbiAgICBpZDogJ3IwJyxcbiAgICBuYW1lQ2xhc3NOYW1lOiAndy1bNjIlXScsXG4gICAgb2Zmc2V0Q2xhc3NOYW1lOiAnbGVmdC0wJyxcbiAgICBiYXJDbGFzc05hbWU6ICd3LVs3MiVdJyxcbiAgICB0b3BDbGFzc05hbWU6ICd0b3AtMCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3IxJyxcbiAgICBuYW1lQ2xhc3NOYW1lOiAndy1bNzglXScsXG4gICAgb2Zmc2V0Q2xhc3NOYW1lOiAnbGVmdC1bNiVdJyxcbiAgICBiYXJDbGFzc05hbWU6ICd3LVs0OCVdJyxcbiAgICB0b3BDbGFzc05hbWU6ICd0b3AtWzMuNXB4XScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3IyJyxcbiAgICBuYW1lQ2xhc3NOYW1lOiAndy0xLzInLFxuICAgIG9mZnNldENsYXNzTmFtZTogJ2xlZnQtWzEwJV0nLFxuICAgIGJhckNsYXNzTmFtZTogJ3ctWzU1JV0nLFxuICAgIHRvcENsYXNzTmFtZTogJ3RvcC1bN3B4XScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3IzJyxcbiAgICBuYW1lQ2xhc3NOYW1lOiAndy1bODQlXScsXG4gICAgb2Zmc2V0Q2xhc3NOYW1lOiAnbGVmdC1bMTglXScsXG4gICAgYmFyQ2xhc3NOYW1lOiAndy1bMzAlXScsXG4gICAgdG9wQ2xhc3NOYW1lOiAndG9wLVsxMC41cHhdJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncjQnLFxuICAgIG5hbWVDbGFzc05hbWU6ICd3LVs0NSVdJyxcbiAgICBvZmZzZXRDbGFzc05hbWU6ICdsZWZ0LVsxOCVdJyxcbiAgICBiYXJDbGFzc05hbWU6ICd3LVs0MiVdJyxcbiAgICB0b3BDbGFzc05hbWU6ICd0b3AtWzE0cHhdJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncjUnLFxuICAgIG5hbWVDbGFzc05hbWU6ICd3LVs2NiVdJyxcbiAgICBvZmZzZXRDbGFzc05hbWU6ICdsZWZ0LVszNCVdJyxcbiAgICBiYXJDbGFzc05hbWU6ICd3LVszOCVdJyxcbiAgICB0b3BDbGFzc05hbWU6ICd0b3AtWzE3LjVweF0nLFxuICB9LFxuICB7XG4gICAgaWQ6ICdyNicsXG4gICAgbmFtZUNsYXNzTmFtZTogJ3ctWzU1JV0nLFxuICAgIG9mZnNldENsYXNzTmFtZTogJ2xlZnQtWzQxJV0nLFxuICAgIGJhckNsYXNzTmFtZTogJ3ctMS80JyxcbiAgICB0b3BDbGFzc05hbWU6ICd0b3AtWzIxcHhdJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncjcnLFxuICAgIG5hbWVDbGFzc05hbWU6ICd3LTIvNScsXG4gICAgb2Zmc2V0Q2xhc3NOYW1lOiAnbGVmdC0xLzInLFxuICAgIGJhckNsYXNzTmFtZTogJ3ctWzMwJV0nLFxuICAgIHRvcENsYXNzTmFtZTogJ3RvcC1bMjQuNXB4XScsXG4gIH0sXG5dO1xuXG5jb25zdCBIRUFERVJfTUFSS0VSUyA9IFsnbTAnLCAnbTEnLCAnbTInLCAnbTMnXTtcblxuY29uc3QgSGVhZGVyRGl2aWRlciA9ICgpID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktY2VudGVyXCI+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW4gY2xhc3NOYW1lPVwiaC1mdWxsIHctcHggYmctZ3JheS1hbHBoYS00MDBcIiAvPlxuICA8L2Rpdj5cbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFjZVZpZXdlclNrZWxldG9uKCkge1xuICByZXR1cm4gKFxuICAgIDxvdXRwdXRcbiAgICAgIGFyaWEtYnVzeT1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbD1cIkxvYWRpbmcgdHJhY2VcIlxuICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgaC1mdWxsIG1pbi1oLTAgYmctYmFja2dyb3VuZC0xMDBcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5Mb2FkaW5nIHRyYWNl4oCmPC9zcGFuPlxuXG4gICAgICB7LyogTWluaW1hcCBzdHJpcDogdGhpbiBkZW5zaXR5IGxpbmVzIHRyYWNpbmcgdGhlIHNhbWUgc2hhcGUgYXMgdGhlIGJhcnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtMTAgbWluLWgtMTAgc2hyaW5rLTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktYWxwaGEtNDAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteC00IHRvcC1bNnB4XVwiPlxuICAgICAgICAgIHtST1dTLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICA8U2tlbGV0b25cbiAgICAgICAgICAgICAga2V5PXtyb3cuaWR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YGFic29sdXRlIGgtWzNweF0gcm91bmRlZC1mdWxsICR7cm93Lm9mZnNldENsYXNzTmFtZX0gJHtyb3cuYmFyQ2xhc3NOYW1lfSAke3Jvdy50b3BDbGFzc05hbWV9YH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBIZWFkZXIgcm93OiBzZWFyY2ggaGVhZGVyIHwgZGl2aWRlciB8IHRpbWVsaW5lIGhlYWRlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBzaHJpbmstMCBncmlkLWNvbHMtWzM0MHB4XzFweF9taW5tYXgoNTBweCwxZnIpXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMTAgbWluLWgtMTAgZmxleCBpdGVtcy1jZW50ZXIgYm9yZGVyLWIgYm9yZGVyLWdyYXktYWxwaGEtNDAwIHBsLTQgcHItMiBnYXAtMS41XCI+XG4gICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cInctMy41IGgtMy41IHNocmluay0wIHJvdW5kZWQtc21cIiAvPlxuICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9XCJoLTMuNSB3LTQwXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxIZWFkZXJEaXZpZGVyIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xMCBtaW4taC0xMCBmbGV4IGl0ZW1zLWVuZCBib3JkZXItYiBib3JkZXItZ3JheS1hbHBoYS00MDAgcHgtNCBwYi0xIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4LTEgZmxleCBpdGVtcy1lbmQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICB7SEVBREVSX01BUktFUlMubWFwKChpZCkgPT4gKFxuICAgICAgICAgICAgICA8U2tlbGV0b24ga2V5PXtpZH0gY2xhc3NOYW1lPVwiaC0zLjUgdy05XCIgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29udGVudCByb3c6IGV2ZW50IGxpc3QgfCBndXR0ZXIgfCB0aW1lbGluZSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBtaW4taC0wIGZsZXgtMSBncmlkLWNvbHMtWzM0MHB4XzFweF9taW5tYXgoNTBweCwxZnIpXSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgey8qIFNpZGViYXIgZXZlbnQgcm93cyAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJibG9jayBvdmVyZmxvdy12aXNpYmxlXCI+XG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImJsb2NrIGRpdmlkZS15IGRpdmlkZS1ncmF5LWFscGhhLTQwMCBib3JkZXItYiBib3JkZXItZ3JheS1hbHBoYS00MDBcIj5cbiAgICAgICAgICAgIHtST1dTLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e3Jvdy5pZH0gY2xhc3NOYW1lPVwiaC0xMCBmbGV4IGl0ZW1zLWNlbnRlciBwbC00IHByLTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggbWluLXctMCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPVwidy00IGgtNCBzaHJpbmstMCByb3VuZGVkLXNtXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9e2BoLTMuNSAke3Jvdy5uYW1lQ2xhc3NOYW1lfWB9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cIm1sLTIgaC0zLjUgdy0xMCBzaHJpbmstMFwiIC8+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogR3V0dGVyICovfVxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbiBjbGFzc05hbWU9XCJoLWZ1bGwgdy1weCBiZy1ncmF5LWFscGhhLTQwMFwiIC8+XG5cbiAgICAgICAgey8qIFRpbWVsaW5lIGJhcnMgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgbWluLWgtMFwiPlxuICAgICAgICAgIHtST1dTLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17cm93LmlkfSBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLTEwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteC00IGluc2V0LXktMFwiPlxuICAgICAgICAgICAgICAgIDxTa2VsZXRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYWJzb2x1dGUgdG9wLTEvMiBoLTYgLXRyYW5zbGF0ZS15LTEvMiByb3VuZGVkLVswLjI1cmVtXSAke3Jvdy5vZmZzZXRDbGFzc05hbWV9ICR7cm93LmJhckNsYXNzTmFtZX1gfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9vdXRwdXQ+XG4gICk7XG59XG4iXX0=
@@ -1,15 +1,15 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  const WorkflowIcon = () => {
3
- return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", style: { color: 'currentColor' }, viewBox: "0 0 16 16", width: "16", children: _jsx("path", { d: "M5.75 7L6.4209 7.33594L4.85254 10.4717C5.38789 10.771 5.75 11.3431 5.75 12V14C5.75 14.9665 4.96648 15.75 4 15.75H2C1.03352 15.75 0.25 14.9665 0.25 14V12C0.25 11.0335 1.03352 10.25 2 10.25H3.28711L5.0791 6.66504L5.75 7ZM14 10.25C14.9665 10.25 15.75 11.0335 15.75 12V14C15.75 14.9665 14.9665 15.75 14 15.75H12C11.1185 15.75 10.3909 15.098 10.2695 14.25H7V12.75H10.25V12C10.25 11.0335 11.0335 10.25 12 10.25H14ZM2 11.75C1.86192 11.75 1.75 11.8619 1.75 12V14C1.75 14.1381 1.86192 14.25 2 14.25H4C4.13808 14.25 4.25 14.1381 4.25 14V12C4.25 11.8619 4.13808 11.75 4 11.75H2ZM12 11.75C11.8619 11.75 11.75 11.8619 11.75 12V14C11.75 14.1381 11.8619 14.25 12 14.25H14C14.1381 14.25 14.25 14.1381 14.25 14V12C14.25 11.8619 14.1381 11.75 14 11.75H12ZM9 0.25C9.96649 0.25 10.75 1.03351 10.75 2V4C10.75 4.44642 10.5808 4.85197 10.3057 5.16113L12.2041 8.6416L10.8877 9.36035L8.91895 5.75H7C6.03351 5.75 5.25 4.96649 5.25 4V2C5.25 1.03351 6.03351 0.25 7 0.25H9ZM7 1.75C6.86193 1.75 6.75 1.86193 6.75 2V4C6.75 4.13807 6.86193 4.25 7 4.25H9C9.13807 4.25 9.25 4.13807 9.25 4V2C9.25 1.86193 9.13807 1.75 9 1.75H7Z", fill: "currentColor" }) }));
3
+ return (_jsx("svg", { "aria-hidden": "true", "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", children: _jsx("path", { d: "M5.75 7L6.4209 7.33594L4.85254 10.4717C5.38789 10.771 5.75 11.3431 5.75 12V14C5.75 14.9665 4.96648 15.75 4 15.75H2C1.03352 15.75 0.25 14.9665 0.25 14V12C0.25 11.0335 1.03352 10.25 2 10.25H3.28711L5.0791 6.66504L5.75 7ZM14 10.25C14.9665 10.25 15.75 11.0335 15.75 12V14C15.75 14.9665 14.9665 15.75 14 15.75H12C11.1185 15.75 10.3909 15.098 10.2695 14.25H7V12.75H10.25V12C10.25 11.0335 11.0335 10.25 12 10.25H14ZM2 11.75C1.86192 11.75 1.75 11.8619 1.75 12V14C1.75 14.1381 1.86192 14.25 2 14.25H4C4.13808 14.25 4.25 14.1381 4.25 14V12C4.25 11.8619 4.13808 11.75 4 11.75H2ZM12 11.75C11.8619 11.75 11.75 11.8619 11.75 12V14C11.75 14.1381 11.8619 14.25 12 14.25H14C14.1381 14.25 14.25 14.1381 14.25 14V12C14.25 11.8619 14.1381 11.75 14 11.75H12ZM9 0.25C9.96649 0.25 10.75 1.03351 10.75 2V4C10.75 4.44642 10.5808 4.85197 10.3057 5.16113L12.2041 8.6416L10.8877 9.36035L8.91895 5.75H7C6.03351 5.75 5.25 4.96649 5.25 4V2C5.25 1.03351 6.03351 0.25 7 0.25H9ZM7 1.75C6.86193 1.75 6.75 1.86193 6.75 2V4C6.75 4.13807 6.86193 4.25 7 4.25H9C9.13807 4.25 9.25 4.13807 9.25 4V2C9.25 1.86193 9.13807 1.75 9 1.75H7Z", fill: "currentColor" }) }));
4
4
  };
5
5
  const WebhookIcon = () => {
6
- return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.8349 3.24994C5.14454 4.44567 5.55423 5.97464 6.74996 6.665L7.39465 7.03721L7.02726 7.68466L5.14599 11C5.21289 11.1531 5.25 11.3222 5.25 11.5C5.25 12.1904 4.69036 12.75 4 12.75C3.30964 12.75 2.75 12.1904 2.75 11.5C2.75 10.8634 3.22584 10.338 3.84123 10.26L5.38944 7.5316C3.95909 6.30274 3.55857 4.19264 4.53586 2.49994C5.64043 0.586765 8.08679 -0.0687357 9.99996 1.03583C11.836 2.09584 12.5137 4.39156 11.5892 6.26591L10.4949 4.33754C10.4418 3.53274 10.0009 2.76843 9.24996 2.33487C8.05423 1.64452 6.52525 2.0542 5.8349 3.24994ZM9.146 4.99996C9.21289 4.84686 9.25 4.67776 9.25 4.5C9.25 3.80964 8.69036 3.25 8 3.25C7.30964 3.25 6.75 3.80964 6.75 4.5C6.75 5.13659 7.22586 5.66203 7.84127 5.74002L9.72266 9.05556L10.0956 9.71274L10.75 9.33493C11.9457 8.64458 13.4747 9.05427 14.165 10.25C14.8554 11.4457 14.4457 12.9747 13.25 13.6651C12.5047 14.0953 11.63 14.0983 10.9096 13.75H8.69252C9.85895 15.4685 12.1727 16.0191 14 14.9641C15.9131 13.8595 16.5686 11.4132 15.4641 9.5C14.4886 7.81038 12.4665 7.10169 10.6895 7.71998L9.146 4.99996ZM13.25 11.5C13.25 12.1904 12.6904 12.75 12 12.75C11.591 12.75 11.228 12.5536 10.9999 12.25H7.9298C7.57875 14.1006 5.95279 15.5 4 15.5C1.79086 15.5 0 13.7091 0 11.5C0 9.40018 1.61801 7.67826 3.67529 7.51299L2.58098 9.44147C1.92792 9.89251 1.5 10.6463 1.5 11.5C1.5 12.8807 2.61929 14 4 14C5.38071 14 6.5 12.8807 6.5 11.5V10.75H7.25H10.9999C11.228 10.4464 11.591 10.25 12 10.25C12.6904 10.25 13.25 10.8096 13.25 11.5Z", fill: "currentColor" }) }));
6
+ return (_jsx("svg", { "aria-hidden": "true", "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.8349 3.24994C5.14454 4.44567 5.55423 5.97464 6.74996 6.665L7.39465 7.03721L7.02726 7.68466L5.14599 11C5.21289 11.1531 5.25 11.3222 5.25 11.5C5.25 12.1904 4.69036 12.75 4 12.75C3.30964 12.75 2.75 12.1904 2.75 11.5C2.75 10.8634 3.22584 10.338 3.84123 10.26L5.38944 7.5316C3.95909 6.30274 3.55857 4.19264 4.53586 2.49994C5.64043 0.586765 8.08679 -0.0687357 9.99996 1.03583C11.836 2.09584 12.5137 4.39156 11.5892 6.26591L10.4949 4.33754C10.4418 3.53274 10.0009 2.76843 9.24996 2.33487C8.05423 1.64452 6.52525 2.0542 5.8349 3.24994ZM9.146 4.99996C9.21289 4.84686 9.25 4.67776 9.25 4.5C9.25 3.80964 8.69036 3.25 8 3.25C7.30964 3.25 6.75 3.80964 6.75 4.5C6.75 5.13659 7.22586 5.66203 7.84127 5.74002L9.72266 9.05556L10.0956 9.71274L10.75 9.33493C11.9457 8.64458 13.4747 9.05427 14.165 10.25C14.8554 11.4457 14.4457 12.9747 13.25 13.6651C12.5047 14.0953 11.63 14.0983 10.9096 13.75H8.69252C9.85895 15.4685 12.1727 16.0191 14 14.9641C15.9131 13.8595 16.5686 11.4132 15.4641 9.5C14.4886 7.81038 12.4665 7.10169 10.6895 7.71998L9.146 4.99996ZM13.25 11.5C13.25 12.1904 12.6904 12.75 12 12.75C11.591 12.75 11.228 12.5536 10.9999 12.25H7.9298C7.57875 14.1006 5.95279 15.5 4 15.5C1.79086 15.5 0 13.7091 0 11.5C0 9.40018 1.61801 7.67826 3.67529 7.51299L2.58098 9.44147C1.92792 9.89251 1.5 10.6463 1.5 11.5C1.5 12.8807 2.61929 14 4 14C5.38071 14 6.5 12.8807 6.5 11.5V10.75H7.25H10.9999C11.228 10.4464 11.591 10.25 12 10.25C12.6904 10.25 13.25 10.8096 13.25 11.5Z", fill: "currentColor" }) }));
7
7
  };
8
8
  const SleepIcon = () => {
9
- return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.25 1.25V2.03971C5.87928 2.18571 4.62678 2.72736 3.6089 3.54824L3.03033 2.96967L2.5 2.43934L1.43934 3.5L1.96967 4.03033L2.54824 4.6089C1.57979 5.80976 1 7.33717 1 9C1 12.866 4.13401 16 8 16C11.866 16 15 12.866 15 9C15 7.33717 14.4202 5.80976 13.4518 4.6089L14.0303 4.03033L14.5607 3.5L13.5 2.43934L12.9697 2.96967L12.3911 3.54824C11.3732 2.72736 10.1207 2.18571 8.75 2.03971V1.25H9.25H10V-0.25H9.25H8.75H7.25H6.75H6V1.25H6.75H7.25ZM2.5 9C2.5 5.96243 4.96243 3.5 8 3.5C11.0376 3.5 13.5 5.96243 13.5 9C13.5 12.0376 11.0376 14.5 8 14.5C4.96243 14.5 2.5 12.0376 2.5 9ZM8.75 6.75V6H7.25V6.75V9V9.75H8.75V9V6.75Z", fill: "currentColor" }) }));
9
+ return (_jsx("svg", { "aria-hidden": "true", "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.25 1.25V2.03971C5.87928 2.18571 4.62678 2.72736 3.6089 3.54824L3.03033 2.96967L2.5 2.43934L1.43934 3.5L1.96967 4.03033L2.54824 4.6089C1.57979 5.80976 1 7.33717 1 9C1 12.866 4.13401 16 8 16C11.866 16 15 12.866 15 9C15 7.33717 14.4202 5.80976 13.4518 4.6089L14.0303 4.03033L14.5607 3.5L13.5 2.43934L12.9697 2.96967L12.3911 3.54824C11.3732 2.72736 10.1207 2.18571 8.75 2.03971V1.25H9.25H10V-0.25H9.25H8.75H7.25H6.75H6V1.25H6.75H7.25ZM2.5 9C2.5 5.96243 4.96243 3.5 8 3.5C11.0376 3.5 13.5 5.96243 13.5 9C13.5 12.0376 11.0376 14.5 8 14.5C4.96243 14.5 2.5 12.0376 2.5 9ZM8.75 6.75V6H7.25V6.75V9V9.75H8.75V9V6.75Z", fill: "currentColor" }) }));
10
10
  };
11
11
  const StepForwardIcon = () => {
12
- return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.21969 12.5303L4.75002 13.0607L5.81068 12L5.28035 11.4697L1.81068 7.99999L5.28035 4.53032L5.81068 3.99999L4.75002 2.93933L4.21969 3.46966L0.39647 7.29289C0.00594562 7.68341 0.00594562 8.31658 0.39647 8.7071L4.21969 12.5303ZM11.7804 12.5303L11.25 13.0607L10.1894 12L10.7197 11.4697L14.1894 7.99999L10.7197 4.53032L10.1894 3.99999L11.25 2.93933L11.7804 3.46966L15.6036 7.29289C15.9941 7.68341 15.9941 8.31658 15.6036 8.7071L11.7804 12.5303Z", fill: "currentColor" }) }));
12
+ return (_jsx("svg", { "aria-hidden": "true", "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.21969 12.5303L4.75002 13.0607L5.81068 12L5.28035 11.4697L1.81068 7.99999L5.28035 4.53032L5.81068 3.99999L4.75002 2.93933L4.21969 3.46966L0.39647 7.29289C0.00594562 7.68341 0.00594562 8.31658 0.39647 8.7071L4.21969 12.5303ZM11.7804 12.5303L11.25 13.0607L10.1894 12L10.7197 11.4697L14.1894 7.99999L10.7197 4.53032L10.1894 3.99999L11.25 2.93933L11.7804 3.46966L15.6036 7.29289C15.9941 7.68341 15.9941 8.31658 15.6036 8.7071L11.7804 12.5303Z", fill: "currentColor" }) }));
13
13
  };
14
14
  export { WorkflowIcon, WebhookIcon, SleepIcon, StepForwardIcon };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmFjZS12aWV3ZXIvaWNvbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDeEIsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQ2hDLE9BQU8sRUFBQyxXQUFXLEVBQ25CLEtBQUssRUFBQyxJQUFJLFlBRVYsZUFDRSxDQUFDLEVBQUMsc2tDQUFza0MsRUFDeGtDLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7SUFDdkIsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFFaEMsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsMDZDQUEwNkMsRUFDNTZDLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDckIsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFFaEMsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsa21CQUFrbUIsRUFDcG1CLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTyxDQUNMLDZCQUNjLFlBQVksRUFDeEIsTUFBTSxFQUFDLElBQUksRUFDWCxjQUFjLEVBQUMsT0FBTyxFQUN0QixPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFFaEMsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsMGJBQTBiLEVBQzViLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBXb3JrZmxvd0ljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgc3R5bGU9e3sgY29sb3I6ICdjdXJyZW50Q29sb3InIH19XG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNS43NSA3TDYuNDIwOSA3LjMzNTk0TDQuODUyNTQgMTAuNDcxN0M1LjM4Nzg5IDEwLjc3MSA1Ljc1IDExLjM0MzEgNS43NSAxMlYxNEM1Ljc1IDE0Ljk2NjUgNC45NjY0OCAxNS43NSA0IDE1Ljc1SDJDMS4wMzM1MiAxNS43NSAwLjI1IDE0Ljk2NjUgMC4yNSAxNFYxMkMwLjI1IDExLjAzMzUgMS4wMzM1MiAxMC4yNSAyIDEwLjI1SDMuMjg3MTFMNS4wNzkxIDYuNjY1MDRMNS43NSA3Wk0xNCAxMC4yNUMxNC45NjY1IDEwLjI1IDE1Ljc1IDExLjAzMzUgMTUuNzUgMTJWMTRDMTUuNzUgMTQuOTY2NSAxNC45NjY1IDE1Ljc1IDE0IDE1Ljc1SDEyQzExLjExODUgMTUuNzUgMTAuMzkwOSAxNS4wOTggMTAuMjY5NSAxNC4yNUg3VjEyLjc1SDEwLjI1VjEyQzEwLjI1IDExLjAzMzUgMTEuMDMzNSAxMC4yNSAxMiAxMC4yNUgxNFpNMiAxMS43NUMxLjg2MTkyIDExLjc1IDEuNzUgMTEuODYxOSAxLjc1IDEyVjE0QzEuNzUgMTQuMTM4MSAxLjg2MTkyIDE0LjI1IDIgMTQuMjVINEM0LjEzODA4IDE0LjI1IDQuMjUgMTQuMTM4MSA0LjI1IDE0VjEyQzQuMjUgMTEuODYxOSA0LjEzODA4IDExLjc1IDQgMTEuNzVIMlpNMTIgMTEuNzVDMTEuODYxOSAxMS43NSAxMS43NSAxMS44NjE5IDExLjc1IDEyVjE0QzExLjc1IDE0LjEzODEgMTEuODYxOSAxNC4yNSAxMiAxNC4yNUgxNEMxNC4xMzgxIDE0LjI1IDE0LjI1IDE0LjEzODEgMTQuMjUgMTRWMTJDMTQuMjUgMTEuODYxOSAxNC4xMzgxIDExLjc1IDE0IDExLjc1SDEyWk05IDAuMjVDOS45NjY0OSAwLjI1IDEwLjc1IDEuMDMzNTEgMTAuNzUgMlY0QzEwLjc1IDQuNDQ2NDIgMTAuNTgwOCA0Ljg1MTk3IDEwLjMwNTcgNS4xNjExM0wxMi4yMDQxIDguNjQxNkwxMC44ODc3IDkuMzYwMzVMOC45MTg5NSA1Ljc1SDdDNi4wMzM1MSA1Ljc1IDUuMjUgNC45NjY0OSA1LjI1IDRWMkM1LjI1IDEuMDMzNTEgNi4wMzM1MSAwLjI1IDcgMC4yNUg5Wk03IDEuNzVDNi44NjE5MyAxLjc1IDYuNzUgMS44NjE5MyA2Ljc1IDJWNEM2Ljc1IDQuMTM4MDcgNi44NjE5MyA0LjI1IDcgNC4yNUg5QzkuMTM4MDcgNC4yNSA5LjI1IDQuMTM4MDcgOS4yNSA0VjJDOS4yNSAxLjg2MTkzIDkuMTM4MDcgMS43NSA5IDEuNzVIN1pcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5jb25zdCBXZWJob29rSWNvbiA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBkYXRhLXRlc3RpZD1cImdlaXN0LWljb25cIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgc3R5bGU9e3sgY29sb3I6ICdjdXJyZW50Q29sb3InIH19XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk01LjgzNDkgMy4yNDk5NEM1LjE0NDU0IDQuNDQ1NjcgNS41NTQyMyA1Ljk3NDY0IDYuNzQ5OTYgNi42NjVMNy4zOTQ2NSA3LjAzNzIxTDcuMDI3MjYgNy42ODQ2Nkw1LjE0NTk5IDExQzUuMjEyODkgMTEuMTUzMSA1LjI1IDExLjMyMjIgNS4yNSAxMS41QzUuMjUgMTIuMTkwNCA0LjY5MDM2IDEyLjc1IDQgMTIuNzVDMy4zMDk2NCAxMi43NSAyLjc1IDEyLjE5MDQgMi43NSAxMS41QzIuNzUgMTAuODYzNCAzLjIyNTg0IDEwLjMzOCAzLjg0MTIzIDEwLjI2TDUuMzg5NDQgNy41MzE2QzMuOTU5MDkgNi4zMDI3NCAzLjU1ODU3IDQuMTkyNjQgNC41MzU4NiAyLjQ5OTk0QzUuNjQwNDMgMC41ODY3NjUgOC4wODY3OSAtMC4wNjg3MzU3IDkuOTk5OTYgMS4wMzU4M0MxMS44MzYgMi4wOTU4NCAxMi41MTM3IDQuMzkxNTYgMTEuNTg5MiA2LjI2NTkxTDEwLjQ5NDkgNC4zMzc1NEMxMC40NDE4IDMuNTMyNzQgMTAuMDAwOSAyLjc2ODQzIDkuMjQ5OTYgMi4zMzQ4N0M4LjA1NDIzIDEuNjQ0NTIgNi41MjUyNSAyLjA1NDIgNS44MzQ5IDMuMjQ5OTRaTTkuMTQ2IDQuOTk5OTZDOS4yMTI4OSA0Ljg0Njg2IDkuMjUgNC42Nzc3NiA5LjI1IDQuNUM5LjI1IDMuODA5NjQgOC42OTAzNiAzLjI1IDggMy4yNUM3LjMwOTY0IDMuMjUgNi43NSAzLjgwOTY0IDYuNzUgNC41QzYuNzUgNS4xMzY1OSA3LjIyNTg2IDUuNjYyMDMgNy44NDEyNyA1Ljc0MDAyTDkuNzIyNjYgOS4wNTU1NkwxMC4wOTU2IDkuNzEyNzRMMTAuNzUgOS4zMzQ5M0MxMS45NDU3IDguNjQ0NTggMTMuNDc0NyA5LjA1NDI3IDE0LjE2NSAxMC4yNUMxNC44NTU0IDExLjQ0NTcgMTQuNDQ1NyAxMi45NzQ3IDEzLjI1IDEzLjY2NTFDMTIuNTA0NyAxNC4wOTUzIDExLjYzIDE0LjA5ODMgMTAuOTA5NiAxMy43NUg4LjY5MjUyQzkuODU4OTUgMTUuNDY4NSAxMi4xNzI3IDE2LjAxOTEgMTQgMTQuOTY0MUMxNS45MTMxIDEzLjg1OTUgMTYuNTY4NiAxMS40MTMyIDE1LjQ2NDEgOS41QzE0LjQ4ODYgNy44MTAzOCAxMi40NjY1IDcuMTAxNjkgMTAuNjg5NSA3LjcxOTk4TDkuMTQ2IDQuOTk5OTZaTTEzLjI1IDExLjVDMTMuMjUgMTIuMTkwNCAxMi42OTA0IDEyLjc1IDEyIDEyLjc1QzExLjU5MSAxMi43NSAxMS4yMjggMTIuNTUzNiAxMC45OTk5IDEyLjI1SDcuOTI5OEM3LjU3ODc1IDE0LjEwMDYgNS45NTI3OSAxNS41IDQgMTUuNUMxLjc5MDg2IDE1LjUgMCAxMy43MDkxIDAgMTEuNUMwIDkuNDAwMTggMS42MTgwMSA3LjY3ODI2IDMuNjc1MjkgNy41MTI5OUwyLjU4MDk4IDkuNDQxNDdDMS45Mjc5MiA5Ljg5MjUxIDEuNSAxMC42NDYzIDEuNSAxMS41QzEuNSAxMi44ODA3IDIuNjE5MjkgMTQgNCAxNEM1LjM4MDcxIDE0IDYuNSAxMi44ODA3IDYuNSAxMS41VjEwLjc1SDcuMjVIMTAuOTk5OUMxMS4yMjggMTAuNDQ2NCAxMS41OTEgMTAuMjUgMTIgMTAuMjVDMTIuNjkwNCAxMC4yNSAxMy4yNSAxMC44MDk2IDEzLjI1IDExLjVaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICA+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICApO1xufTtcblxuY29uc3QgU2xlZXBJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICBzdHlsZT17eyBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfX1cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTcuMjUgMS4yNVYyLjAzOTcxQzUuODc5MjggMi4xODU3MSA0LjYyNjc4IDIuNzI3MzYgMy42MDg5IDMuNTQ4MjRMMy4wMzAzMyAyLjk2OTY3TDIuNSAyLjQzOTM0TDEuNDM5MzQgMy41TDEuOTY5NjcgNC4wMzAzM0wyLjU0ODI0IDQuNjA4OUMxLjU3OTc5IDUuODA5NzYgMSA3LjMzNzE3IDEgOUMxIDEyLjg2NiA0LjEzNDAxIDE2IDggMTZDMTEuODY2IDE2IDE1IDEyLjg2NiAxNSA5QzE1IDcuMzM3MTcgMTQuNDIwMiA1LjgwOTc2IDEzLjQ1MTggNC42MDg5TDE0LjAzMDMgNC4wMzAzM0wxNC41NjA3IDMuNUwxMy41IDIuNDM5MzRMMTIuOTY5NyAyLjk2OTY3TDEyLjM5MTEgMy41NDgyNEMxMS4zNzMyIDIuNzI3MzYgMTAuMTIwNyAyLjE4NTcxIDguNzUgMi4wMzk3MVYxLjI1SDkuMjVIMTBWLTAuMjVIOS4yNUg4Ljc1SDcuMjVINi43NUg2VjEuMjVINi43NUg3LjI1Wk0yLjUgOUMyLjUgNS45NjI0MyA0Ljk2MjQzIDMuNSA4IDMuNUMxMS4wMzc2IDMuNSAxMy41IDUuOTYyNDMgMTMuNSA5QzEzLjUgMTIuMDM3NiAxMS4wMzc2IDE0LjUgOCAxNC41QzQuOTYyNDMgMTQuNSAyLjUgMTIuMDM3NiAyLjUgOVpNOC43NSA2Ljc1VjZINy4yNVY2Ljc1VjlWOS43NUg4Ljc1VjlWNi43NVpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5jb25zdCBTdGVwRm9yd2FyZEljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIHN0eWxlPXt7IGNvbG9yOiAnY3VycmVudENvbG9yJyB9fVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNNC4yMTk2OSAxMi41MzAzTDQuNzUwMDIgMTMuMDYwN0w1LjgxMDY4IDEyTDUuMjgwMzUgMTEuNDY5N0wxLjgxMDY4IDcuOTk5OTlMNS4yODAzNSA0LjUzMDMyTDUuODEwNjggMy45OTk5OUw0Ljc1MDAyIDIuOTM5MzNMNC4yMTk2OSAzLjQ2OTY2TDAuMzk2NDcgNy4yOTI4OUMwLjAwNTk0NTYyIDcuNjgzNDEgMC4wMDU5NDU2MiA4LjMxNjU4IDAuMzk2NDcgOC43MDcxTDQuMjE5NjkgMTIuNTMwM1pNMTEuNzgwNCAxMi41MzAzTDExLjI1IDEzLjA2MDdMMTAuMTg5NCAxMkwxMC43MTk3IDExLjQ2OTdMMTQuMTg5NCA3Ljk5OTk5TDEwLjcxOTcgNC41MzAzMkwxMC4xODk0IDMuOTk5OTlMMTEuMjUgMi45MzkzM0wxMS43ODA0IDMuNDY5NjZMMTUuNjAzNiA3LjI5Mjg5QzE1Ljk5NDEgNy42ODM0MSAxNS45OTQxIDguMzE2NTggMTUuNjAzNiA4LjcwNzFMMTEuNzgwNCAxMi41MzAzWlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgKTtcbn07XG5cbmV4cG9ydCB7IFdvcmtmbG93SWNvbiwgV2ViaG9va0ljb24sIFNsZWVwSWNvbiwgU3RlcEZvcndhcmRJY29uIH07XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90cmFjZS12aWV3ZXIvaWNvbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDeEIsT0FBTyxDQUNMLDZCQUNjLE1BQU0saUJBQ04sWUFBWSxFQUN4QixNQUFNLEVBQUMsSUFBSSxFQUNYLGNBQWMsRUFBQyxPQUFPLEVBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQ25CLEtBQUssRUFBQyxJQUFJLFlBRVYsZUFDRSxDQUFDLEVBQUMsc2tDQUFza0MsRUFDeGtDLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7SUFDdkIsT0FBTyxDQUNMLDZCQUNjLE1BQU0saUJBQ04sWUFBWSxFQUN4QixNQUFNLEVBQUMsSUFBSSxFQUNYLGNBQWMsRUFBQyxPQUFPLEVBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQ25CLEtBQUssRUFBQyxJQUFJLFlBRVYsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsMDZDQUEwNkMsRUFDNTZDLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDckIsT0FBTyxDQUNMLDZCQUNjLE1BQU0saUJBQ04sWUFBWSxFQUN4QixNQUFNLEVBQUMsSUFBSSxFQUNYLGNBQWMsRUFBQyxPQUFPLEVBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQ25CLEtBQUssRUFBQyxJQUFJLFlBRVYsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsa21CQUFrbUIsRUFDcG1CLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTyxDQUNMLDZCQUNjLE1BQU0saUJBQ04sWUFBWSxFQUN4QixNQUFNLEVBQUMsSUFBSSxFQUNYLGNBQWMsRUFBQyxPQUFPLEVBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQ25CLEtBQUssRUFBQyxJQUFJLFlBRVYsZUFDRSxRQUFRLEVBQUMsU0FBUyxFQUNsQixRQUFRLEVBQUMsU0FBUyxFQUNsQixDQUFDLEVBQUMsMGJBQTBiLEVBQzViLElBQUksRUFBQyxjQUFjLEdBQ2IsR0FDSixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBXb3JrZmxvd0ljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk01Ljc1IDdMNi40MjA5IDcuMzM1OTRMNC44NTI1NCAxMC40NzE3QzUuMzg3ODkgMTAuNzcxIDUuNzUgMTEuMzQzMSA1Ljc1IDEyVjE0QzUuNzUgMTQuOTY2NSA0Ljk2NjQ4IDE1Ljc1IDQgMTUuNzVIMkMxLjAzMzUyIDE1Ljc1IDAuMjUgMTQuOTY2NSAwLjI1IDE0VjEyQzAuMjUgMTEuMDMzNSAxLjAzMzUyIDEwLjI1IDIgMTAuMjVIMy4yODcxMUw1LjA3OTEgNi42NjUwNEw1Ljc1IDdaTTE0IDEwLjI1QzE0Ljk2NjUgMTAuMjUgMTUuNzUgMTEuMDMzNSAxNS43NSAxMlYxNEMxNS43NSAxNC45NjY1IDE0Ljk2NjUgMTUuNzUgMTQgMTUuNzVIMTJDMTEuMTE4NSAxNS43NSAxMC4zOTA5IDE1LjA5OCAxMC4yNjk1IDE0LjI1SDdWMTIuNzVIMTAuMjVWMTJDMTAuMjUgMTEuMDMzNSAxMS4wMzM1IDEwLjI1IDEyIDEwLjI1SDE0Wk0yIDExLjc1QzEuODYxOTIgMTEuNzUgMS43NSAxMS44NjE5IDEuNzUgMTJWMTRDMS43NSAxNC4xMzgxIDEuODYxOTIgMTQuMjUgMiAxNC4yNUg0QzQuMTM4MDggMTQuMjUgNC4yNSAxNC4xMzgxIDQuMjUgMTRWMTJDNC4yNSAxMS44NjE5IDQuMTM4MDggMTEuNzUgNCAxMS43NUgyWk0xMiAxMS43NUMxMS44NjE5IDExLjc1IDExLjc1IDExLjg2MTkgMTEuNzUgMTJWMTRDMTEuNzUgMTQuMTM4MSAxMS44NjE5IDE0LjI1IDEyIDE0LjI1SDE0QzE0LjEzODEgMTQuMjUgMTQuMjUgMTQuMTM4MSAxNC4yNSAxNFYxMkMxNC4yNSAxMS44NjE5IDE0LjEzODEgMTEuNzUgMTQgMTEuNzVIMTJaTTkgMC4yNUM5Ljk2NjQ5IDAuMjUgMTAuNzUgMS4wMzM1MSAxMC43NSAyVjRDMTAuNzUgNC40NDY0MiAxMC41ODA4IDQuODUxOTcgMTAuMzA1NyA1LjE2MTEzTDEyLjIwNDEgOC42NDE2TDEwLjg4NzcgOS4zNjAzNUw4LjkxODk1IDUuNzVIN0M2LjAzMzUxIDUuNzUgNS4yNSA0Ljk2NjQ5IDUuMjUgNFYyQzUuMjUgMS4wMzM1MSA2LjAzMzUxIDAuMjUgNyAwLjI1SDlaTTcgMS43NUM2Ljg2MTkzIDEuNzUgNi43NSAxLjg2MTkzIDYuNzUgMlY0QzYuNzUgNC4xMzgwNyA2Ljg2MTkzIDQuMjUgNyA0LjI1SDlDOS4xMzgwNyA0LjI1IDkuMjUgNC4xMzgwNyA5LjI1IDRWMkM5LjI1IDEuODYxOTMgOS4xMzgwNyAxLjc1IDkgMS43NUg3WlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgKTtcbn07XG5cbmNvbnN0IFdlYmhvb2tJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBkYXRhLXRlc3RpZD1cImdlaXN0LWljb25cIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNNS44MzQ5IDMuMjQ5OTRDNS4xNDQ1NCA0LjQ0NTY3IDUuNTU0MjMgNS45NzQ2NCA2Ljc0OTk2IDYuNjY1TDcuMzk0NjUgNy4wMzcyMUw3LjAyNzI2IDcuNjg0NjZMNS4xNDU5OSAxMUM1LjIxMjg5IDExLjE1MzEgNS4yNSAxMS4zMjIyIDUuMjUgMTEuNUM1LjI1IDEyLjE5MDQgNC42OTAzNiAxMi43NSA0IDEyLjc1QzMuMzA5NjQgMTIuNzUgMi43NSAxMi4xOTA0IDIuNzUgMTEuNUMyLjc1IDEwLjg2MzQgMy4yMjU4NCAxMC4zMzggMy44NDEyMyAxMC4yNkw1LjM4OTQ0IDcuNTMxNkMzLjk1OTA5IDYuMzAyNzQgMy41NTg1NyA0LjE5MjY0IDQuNTM1ODYgMi40OTk5NEM1LjY0MDQzIDAuNTg2NzY1IDguMDg2NzkgLTAuMDY4NzM1NyA5Ljk5OTk2IDEuMDM1ODNDMTEuODM2IDIuMDk1ODQgMTIuNTEzNyA0LjM5MTU2IDExLjU4OTIgNi4yNjU5MUwxMC40OTQ5IDQuMzM3NTRDMTAuNDQxOCAzLjUzMjc0IDEwLjAwMDkgMi43Njg0MyA5LjI0OTk2IDIuMzM0ODdDOC4wNTQyMyAxLjY0NDUyIDYuNTI1MjUgMi4wNTQyIDUuODM0OSAzLjI0OTk0Wk05LjE0NiA0Ljk5OTk2QzkuMjEyODkgNC44NDY4NiA5LjI1IDQuNjc3NzYgOS4yNSA0LjVDOS4yNSAzLjgwOTY0IDguNjkwMzYgMy4yNSA4IDMuMjVDNy4zMDk2NCAzLjI1IDYuNzUgMy44MDk2NCA2Ljc1IDQuNUM2Ljc1IDUuMTM2NTkgNy4yMjU4NiA1LjY2MjAzIDcuODQxMjcgNS43NDAwMkw5LjcyMjY2IDkuMDU1NTZMMTAuMDk1NiA5LjcxMjc0TDEwLjc1IDkuMzM0OTNDMTEuOTQ1NyA4LjY0NDU4IDEzLjQ3NDcgOS4wNTQyNyAxNC4xNjUgMTAuMjVDMTQuODU1NCAxMS40NDU3IDE0LjQ0NTcgMTIuOTc0NyAxMy4yNSAxMy42NjUxQzEyLjUwNDcgMTQuMDk1MyAxMS42MyAxNC4wOTgzIDEwLjkwOTYgMTMuNzVIOC42OTI1MkM5Ljg1ODk1IDE1LjQ2ODUgMTIuMTcyNyAxNi4wMTkxIDE0IDE0Ljk2NDFDMTUuOTEzMSAxMy44NTk1IDE2LjU2ODYgMTEuNDEzMiAxNS40NjQxIDkuNUMxNC40ODg2IDcuODEwMzggMTIuNDY2NSA3LjEwMTY5IDEwLjY4OTUgNy43MTk5OEw5LjE0NiA0Ljk5OTk2Wk0xMy4yNSAxMS41QzEzLjI1IDEyLjE5MDQgMTIuNjkwNCAxMi43NSAxMiAxMi43NUMxMS41OTEgMTIuNzUgMTEuMjI4IDEyLjU1MzYgMTAuOTk5OSAxMi4yNUg3LjkyOThDNy41Nzg3NSAxNC4xMDA2IDUuOTUyNzkgMTUuNSA0IDE1LjVDMS43OTA4NiAxNS41IDAgMTMuNzA5MSAwIDExLjVDMCA5LjQwMDE4IDEuNjE4MDEgNy42NzgyNiAzLjY3NTI5IDcuNTEyOTlMMi41ODA5OCA5LjQ0MTQ3QzEuOTI3OTIgOS44OTI1MSAxLjUgMTAuNjQ2MyAxLjUgMTEuNUMxLjUgMTIuODgwNyAyLjYxOTI5IDE0IDQgMTRDNS4zODA3MSAxNCA2LjUgMTIuODgwNyA2LjUgMTEuNVYxMC43NUg3LjI1SDEwLjk5OTlDMTEuMjI4IDEwLjQ0NjQgMTEuNTkxIDEwLjI1IDEyIDEwLjI1QzEyLjY5MDQgMTAuMjUgMTMuMjUgMTAuODA5NiAxMy4yNSAxMS41WlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgKTtcbn07XG5cbmNvbnN0IFNsZWVwSWNvbiA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTcuMjUgMS4yNVYyLjAzOTcxQzUuODc5MjggMi4xODU3MSA0LjYyNjc4IDIuNzI3MzYgMy42MDg5IDMuNTQ4MjRMMy4wMzAzMyAyLjk2OTY3TDIuNSAyLjQzOTM0TDEuNDM5MzQgMy41TDEuOTY5NjcgNC4wMzAzM0wyLjU0ODI0IDQuNjA4OUMxLjU3OTc5IDUuODA5NzYgMSA3LjMzNzE3IDEgOUMxIDEyLjg2NiA0LjEzNDAxIDE2IDggMTZDMTEuODY2IDE2IDE1IDEyLjg2NiAxNSA5QzE1IDcuMzM3MTcgMTQuNDIwMiA1LjgwOTc2IDEzLjQ1MTggNC42MDg5TDE0LjAzMDMgNC4wMzAzM0wxNC41NjA3IDMuNUwxMy41IDIuNDM5MzRMMTIuOTY5NyAyLjk2OTY3TDEyLjM5MTEgMy41NDgyNEMxMS4zNzMyIDIuNzI3MzYgMTAuMTIwNyAyLjE4NTcxIDguNzUgMi4wMzk3MVYxLjI1SDkuMjVIMTBWLTAuMjVIOS4yNUg4Ljc1SDcuMjVINi43NUg2VjEuMjVINi43NUg3LjI1Wk0yLjUgOUMyLjUgNS45NjI0MyA0Ljk2MjQzIDMuNSA4IDMuNUMxMS4wMzc2IDMuNSAxMy41IDUuOTYyNDMgMTMuNSA5QzEzLjUgMTIuMDM3NiAxMS4wMzc2IDE0LjUgOCAxNC41QzQuOTYyNDMgMTQuNSAyLjUgMTIuMDM3NiAyLjUgOVpNOC43NSA2Ljc1VjZINy4yNVY2Ljc1VjlWOS43NUg4Ljc1VjlWNi43NVpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5jb25zdCBTdGVwRm9yd2FyZEljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk00LjIxOTY5IDEyLjUzMDNMNC43NTAwMiAxMy4wNjA3TDUuODEwNjggMTJMNS4yODAzNSAxMS40Njk3TDEuODEwNjggNy45OTk5OUw1LjI4MDM1IDQuNTMwMzJMNS44MTA2OCAzLjk5OTk5TDQuNzUwMDIgMi45MzkzM0w0LjIxOTY5IDMuNDY5NjZMMC4zOTY0NyA3LjI5Mjg5QzAuMDA1OTQ1NjIgNy42ODM0MSAwLjAwNTk0NTYyIDguMzE2NTggMC4zOTY0NyA4LjcwNzFMNC4yMTk2OSAxMi41MzAzWk0xMS43ODA0IDEyLjUzMDNMMTEuMjUgMTMuMDYwN0wxMC4xODk0IDEyTDEwLjcxOTcgMTEuNDY5N0wxNC4xODk0IDcuOTk5OTlMMTAuNzE5NyA0LjUzMDMyTDEwLjE4OTQgMy45OTk5OUwxMS4yNSAyLjkzOTMzTDExLjc4MDQgMy40Njk2NkwxNS42MDM2IDcuMjkyODlDMTUuOTk0MSA3LjY4MzQxIDE1Ljk5NDEgOC4zMTY1OCAxNS42MDM2IDguNzA3MUwxMS43ODA0IDEyLjUzMDNaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICA+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICApO1xufTtcblxuZXhwb3J0IHsgV29ya2Zsb3dJY29uLCBXZWJob29rSWNvbiwgU2xlZXBJY29uLCBTdGVwRm9yd2FyZEljb24gfTtcbiJdfQ==