@1money/component-ui 0.0.42-alpha.18 → 0.0.42-alpha.19

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.
@@ -41,6 +41,8 @@ export var Select = function Select(props) {
41
41
  variant = _props$variant === void 0 ? 'fill' : _props$variant,
42
42
  _props$disabled = props.disabled,
43
43
  disabledProp = _props$disabled === void 0 ? false : _props$disabled,
44
+ _props$readOnly = props.readOnly,
45
+ readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
44
46
  _props$loading = props.loading,
45
47
  loading = _props$loading === void 0 ? false : _props$loading,
46
48
  _props$multiple = props.multiple,
@@ -88,6 +90,7 @@ export var Select = function Select(props) {
88
90
  renderValue = props.renderValue,
89
91
  ref = props.ref;
90
92
  var disabled = disabledProp || loading;
93
+ var interactive = !disabled && !readOnly;
91
94
  var classes = rootClassnames(prefixCls);
92
95
  var autoId = useId();
93
96
  var triggerId = id !== null && id !== void 0 ? id : autoId;
@@ -149,6 +152,7 @@ export var Select = function Select(props) {
149
152
  defaultOpen: defaultOpen,
150
153
  onOpenChange: onOpenChange,
151
154
  disabled: disabled,
155
+ readOnly: readOnly,
152
156
  listMaxHeight: listMaxHeight,
153
157
  animation: animation,
154
158
  offset: offset
@@ -288,7 +292,7 @@ export var Select = function Select(props) {
288
292
  commitChange(nextValue, nextOptions);
289
293
  });
290
294
  var handleTriggerKeyDown = useEventCallback(function (event) {
291
- if (disabled) {
295
+ if (!interactive) {
292
296
  return;
293
297
  }
294
298
  if (event.key === KEYBOARD.ENTER || event.key === KEYBOARD.SPACE) {
@@ -379,6 +383,7 @@ export var Select = function Select(props) {
379
383
  });
380
384
  var renderValueMeta = {
381
385
  disabled: disabled,
386
+ readOnly: readOnly,
382
387
  multiple: multiple,
383
388
  maxVisibleValues: maxVisibleValues,
384
389
  open: innerOpen,
@@ -387,7 +392,7 @@ export var Select = function Select(props) {
387
392
  };
388
393
  var valueLabelClass = hasSelection ? 'value' : 'placeholder';
389
394
  var isMultipleValueFilled = multiple && hasSelection && maxVisibleValues === undefined;
390
- var triggerClassName = classes('trigger', joinCls(classes("trigger-".concat(normalizedSize)), classes("trigger-".concat(variant)), innerOpen && classes('trigger-open'), isMultipleValueFilled && classes('trigger-multiple-filled'), hasSelection ? classes('trigger-filled') : classes('trigger-placeholder'), status !== 'default' && classes("trigger-".concat(status)), disabled && classes('trigger-disabled')));
395
+ var triggerClassName = classes('trigger', joinCls(classes("trigger-".concat(normalizedSize)), classes("trigger-".concat(variant)), innerOpen && classes('trigger-open'), isMultipleValueFilled && classes('trigger-multiple-filled'), hasSelection ? classes('trigger-filled') : classes('trigger-placeholder'), status !== 'default' && classes("trigger-".concat(status)), disabled && classes('trigger-disabled'), readOnly && !disabled && classes('trigger-readonly')));
391
396
  var iconSize = normalizedSize === 'small' ? 16 : 20;
392
397
  var activeOptionId = searchable && innerOpen && activeIndex !== null ? "".concat(optionIdPrefix, "-").concat(activeIndex) : undefined;
393
398
  var floatingAriaLabelledBy = ariaLabelledBy !== null && ariaLabelledBy !== void 0 ? ariaLabelledBy : label ? labelId : undefined;
@@ -399,6 +404,7 @@ export var Select = function Select(props) {
399
404
  variant: variant,
400
405
  status: status,
401
406
  disabled: disabled,
407
+ readOnly: readOnly,
402
408
  loading: loading,
403
409
  label: label,
404
410
  info: info,
@@ -414,6 +420,7 @@ export var Select = function Select(props) {
414
420
  type: 'button',
415
421
  name: name,
416
422
  disabled: disabled,
423
+ 'aria-readonly': readOnly || undefined,
417
424
  className: triggerClassName,
418
425
  onKeyDown: handleTriggerKeyDown,
419
426
  onBlur: handleTriggerBlur,
@@ -453,7 +460,7 @@ export var Select = function Select(props) {
453
460
  color: "currentColor"
454
461
  })
455
462
  })]
456
- })), isMounted && !disabled && function () {
463
+ })), isMounted && interactive && function () {
457
464
  var panelNode = _jsx(FloatingFocusManager, {
458
465
  context: context,
459
466
  modal: false,
@@ -553,4 +560,4 @@ export var Select = function Select(props) {
553
560
  };
554
561
  Select.displayName = 'Select';
555
562
  export default /*#__PURE__*/memo(Select);
556
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0T3B0aW9uc0J5VmFsdWVzIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwiaXNPcHRpb25TZWxlY3RlZCIsIm5vcm1hbGl6ZVNpemUiLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwidG9nZ2xlTXVsdGlwbGVWYWx1ZSIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkb3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwiaW5mbyIsImRlc2NyaXB0aW9uIiwiZmVlZGJhY2siLCJfcHJvcHMkcmVxdWlyZWQiLCJyZXF1aXJlZCIsInByZWZpeCIsIl9wcm9wcyRlbXB0eUNvbnRlbnQiLCJlbXB0eUNvbnRlbnQiLCJwYW5lbEZvb3RlciIsIm9wZW4iLCJfcHJvcHMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9wcm9wcyRwb3J0YWwiLCJwb3J0YWwiLCJfcHJvcHMkYWxsb3dEZXNlbGVjdCIsImFsbG93RGVzZWxlY3QiLCJwYW5lbENsYXNzTmFtZSIsIm9wdGlvbkNsYXNzTmFtZSIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsIm9mZnNldCIsImFuaW1hdGlvbiIsIm9uQ2hhbmdlIiwib25PcGVuQ2hhbmdlIiwib25TZWFyY2hDaGFuZ2UiLCJvbkJsdXIiLCJmaWx0ZXJPcHRpb24iLCJyZW5kZXJPcHRpb24iLCJyZW5kZXJPcHRpb25Db250ZW50IiwicmVuZGVyVmFsdWUiLCJyZWYiLCJjbGFzc2VzIiwiYXV0b0lkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwib3B0aW9uSWRQcmVmaXgiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkSW5kZXgiLCJsZW5ndGgiLCJtYXRjaGVkSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJoYXNTZWxlY3Rpb24iLCJsaXN0UmVmIiwibGlzdENvbnRlbnRSZWYiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJzZWFyY2hJbnB1dFJlZiIsImhhbmRsZVRyaWdnZXJSZWYiLCJub2RlIiwiY3VycmVudCIsIl91c2VTZWxlY3RTaGVsbCIsImlubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZU9wZW5DaGFuZ2UiLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJsaXN0TmF2aWdhdGlvbiIsIm9uTmF2aWdhdGUiLCJlbmFibGVkIiwibG9vcCIsInZpcnR1YWwiLCJ0eXBlYWhlYWQiLCJvbk1hdGNoIiwiX3VzZUludGVyYWN0aW9ucyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImZpcnN0RW5hYmxlZEluZGV4IiwicHJldiIsIl9hIiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwic2xpY2UiLCJzZXRTZWFyY2hJbnB1dFJlZiIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJuZXh0T3B0aW9ucyIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImluY2x1ZGVzIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJFTlRFUiIsIlNQQUNFIiwicHJldmVudERlZmF1bHQiLCJBUlJPV19ET1dOIiwiQVJST1dfVVAiLCJoYW5kbGVJdGVtTW91c2VFbnRlciIsImluZGV4IiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiZmluZEVuYWJsZWRJbmRleCIsImRpcmVjdGlvbiIsInN0YXJ0Iiwic3RlcCIsImNhbmRpZGF0ZSIsImhhbmRsZVNlYXJjaEtleURvd24iLCJuZXh0IiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImljb25TaXplIiwiYWN0aXZlT3B0aW9uSWQiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImNoaWxkcmVuIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwic3Ryb2tlV2lkdGgiLCJjb2xvciIsInBhbmVsTm9kZSIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJhY3RpdmVEZXNjZW5kYW50IiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJyb2xlIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsImNvbnRlbnQiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQ0VDLG9CQUFvQixFQUNwQkMsY0FBYyxFQUNkQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsWUFBWSxRQUNQLG9CQUFvQjtBQUMzQixTQUFTQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDekUsU0FBU0Msa0JBQWtCLEVBQUVDLGdCQUFnQixRQUFRLGVBQWU7QUFDcEUsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLEVBQUVDLE9BQU8sSUFBSUMsY0FBYyxRQUFRLHdCQUF3QjtBQWdCM0UsT0FBT0MsZ0JBQWdCLE1BQU0sb0JBQW9CO0FB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QUFBO29CQUVyRCxDQUFBLENBQUEsS0FBQXhGLE1BQUEsQ0FwQ09rRixLQUFLLENBQUNuRCxHQUFHLE9BQUEvQixNQUFBLENBQUkvQixNQUFNLENBQUN4RixLQUFLLENBQUUsQ0FxQzVCO2tCQUViLENBQUMsQ0FBQztnQkFBQSxDQUFBLEVBaEVNeU0sS0FBSyxDQUFDbkQsR0FBRyxDQWlFYjtjQUFBLENBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQztVQUNILENBQUEsQ0FDRyxFQUNMcEgsV0FBVyxJQUFJLElBQUksSUFDbEIzRixJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUs2QyxTQUFTLEVBQUVxRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUE4SCxRQUFBLEVBQUdySjtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUdoRyxJQUFBLENBQUNJLGNBQWMsRUFBQTtRQUFBNE8sUUFBQSxFQUFFVTtNQUFTLENBQUEsQ0FBa0IsR0FBR0EsU0FBUztJQUMxRSxDQUFDLENBQUMsQ0FBRTtFQUFBLENBQUEsQ0FDYTtBQUV2QixDQUFDO0FBRURoTixNQUFNLENBQUNtTyxXQUFXLEdBQUcsUUFBUTtBQUU3Qiw0QkFBZXJRLElBQUksQ0FBQ2tDLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RTaGVsbCB9IGZyb20gJy4vdXNlU2VsZWN0U2hlbGwnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBtYXhWaXNpYmxlVmFsdWVzLCBzZWFyY2hhYmxlID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCcsIHNlYXJjaFZhbHVlLCBkZWZhdWx0U2VhcmNoVmFsdWUgPSAnJywgZmlsdGVySW5wdXRBdXRvRm9jdXMgPSB0cnVlLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgcGFuZWxDbGFzc05hbWUsIG9wdGlvbkNsYXNzTmFtZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb2Zmc2V0LCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJPcHRpb25Db250ZW50LCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvcHRpb25JZFByZWZpeCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3BlbjogaW5uZXJPcGVuLCBzZXRPcGVuOiBoYW5kbGVPcGVuQ2hhbmdlLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB2aXJ0dWFsOiBzZWFyY2hhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICBjb25zdCBzZXRTZWFyY2hJbnB1dFJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChub2RlICYmIGlubmVyT3BlbiAmJiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cykge1xuICAgICAgICAgICAgbm9kZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbiwgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBpZiAoaW5uZXJPcGVuICYmXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBmaW5kRW5hYmxlZEluZGV4ID0gdXNlRXZlbnRDYWxsYmFjaygoY3VycmVudCwgZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHZvaWQgMCA/IGN1cnJlbnQgOiAoZGlyZWN0aW9uID09PSAxID8gLTEgOiBsZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSBsZW5ndGg7IHN0ZXAgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gKChzdGFydCArIGRpcmVjdGlvbiAqIHN0ZXApICUgbGVuZ3RoICsgbGVuZ3RoKSAlIGxlbmd0aDtcbiAgICAgICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tjYW5kaWRhdGVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIDEpO1xuICAgICAgICAgICAgaWYgKG5leHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChuZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAtMSk7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZXRTZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3Nlcywgc2l6ZTogbm9ybWFsaXplZFNpemUsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIGFjdGl2ZURlc2NlbmRhbnQ6IGFjdGl2ZU9wdGlvbklkLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7b3B0aW9uSWRQcmVmaXh9LSR7b3B0aW9uRmxhdEluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQsIGNvbnRlbnQ6IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IG51bGwgfHwgcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyT3B0aW9uQ29udGVudChvcHRpb24sIG9wdGlvbk1ldGEpIH0pKSB9KSwgYCR7Z3JvdXAua2V5fS0ke29wdGlvbi52YWx1ZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXSB9LCBncm91cC5rZXkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkpIH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWxOb2RlIH0pIDogcGFuZWxOb2RlO1xuICAgICAgICAgICAgfSkoKV0gfSkpO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWxlY3QnO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
563
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0T3B0aW9uc0J5VmFsdWVzIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwiaXNPcHRpb25TZWxlY3RlZCIsIm5vcm1hbGl6ZVNpemUiLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwidG9nZ2xlTXVsdGlwbGVWYWx1ZSIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkb3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRyZWFkT25seSIsInJlYWRPbmx5IiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiX3Byb3BzJG11bHRpcGxlIiwibXVsdGlwbGUiLCJtYXhWaXNpYmxlVmFsdWVzIiwiX3Byb3BzJHNlYXJjaGFibGUiLCJzZWFyY2hhYmxlIiwiX3Byb3BzJHNlYXJjaFBsYWNlaG9sIiwic2VhcmNoUGxhY2Vob2xkZXIiLCJzZWFyY2hWYWx1ZSIsIl9wcm9wcyRkZWZhdWx0U2VhcmNoViIsImRlZmF1bHRTZWFyY2hWYWx1ZSIsIl9wcm9wcyRmaWx0ZXJJbnB1dEF1dCIsImZpbHRlcklucHV0QXV0b0ZvY3VzIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib2Zmc2V0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJyZW5kZXJWYWx1ZSIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsImF1dG9JZCIsInRyaWdnZXJJZCIsImxhYmVsSWQiLCJkZXNjcmlwdGlvbklkIiwiZmVlZGJhY2tJZCIsIm9wdGlvbklkUHJlZml4IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJpbm5lck9wZW4iLCJpc09wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwibGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsInByZXYiLCJfYSIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwic2V0U2VhcmNoSW5wdXRSZWYiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwibmV4dE9wdGlvbnMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJpbmNsdWRlcyIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJpbmRleCIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJpY29uU2l6ZSIsImFjdGl2ZU9wdGlvbklkIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJjaGlsZHJlbiIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJvbktleURvd24iLCJvblJlbW92ZSIsIm9uUmVtb3ZlQ2xpY2siLCJvblJlbW92ZU1vdXNlRG93biIsInN0cm9rZVdpZHRoIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiYWN0aXZlRGVzY2VuZGFudCIsImVtcHR5IiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJncm91cExhYmVsIiwic3Ryb25nIiwib3B0aW9uRmxhdEluZGV4Iiwic2VsZWN0ZWQiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwicm9sZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUNFQyxvQkFBb0IsRUFDcEJDLGNBQWMsRUFDZEMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLGVBQWU7QUFDL0QsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLElBQUlDLGNBQWMsUUFB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QUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIHVzZUludGVyYWN0aW9ucywgdXNlTGlzdE5hdmlnYXRpb24sIHVzZVR5cGVhaGVhZCwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCByZWFkT25seSA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1cyA9IHRydWUsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBvZmZzZXQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlck9wdGlvbkNvbnRlbnQsIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gIWRpc2FibGVkICYmICFyZWFkT25seTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvcHRpb25JZFByZWZpeCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3BlbjogaW5uZXJPcGVuLCBzZXRPcGVuOiBoYW5kbGVPcGVuQ2hhbmdlLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgdmlydHVhbDogc2VhcmNoYWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICAuLi5iYXNlSW50ZXJhY3Rpb25zLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgY29uc3Qgc2V0U2VhcmNoSW5wdXRSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZSAmJiBpbm5lck9wZW4gJiYgZmlsdGVySW5wdXRBdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5vZGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24sIG5hbWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChpbm5lck9wZW4gJiZcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmRFbmFibGVkSW5kZXggPSB1c2VFdmVudENhbGxiYWNrKChjdXJyZW50LCBkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBsZW5ndGggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydCA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudCAhPT0gdm9pZCAwID8gY3VycmVudCA6IChkaXJlY3Rpb24gPT09IDEgPyAtMSA6IGxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IHN0ZXAgPSAxOyBzdGVwIDw9IGxlbmd0aDsgc3RlcCArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSAoKHN0YXJ0ICsgZGlyZWN0aW9uICogc3RlcCkgJSBsZW5ndGggKyBsZW5ndGgpICUgbGVuZ3RoO1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2NhbmRpZGF0ZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04pIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgMSk7XG4gICAgICAgICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KG5leHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcHJldiA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIC0xKTtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgocHJldik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgIWRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItcmVhZG9ubHknKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkT25seSwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nID8gKF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSkpIDogKF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkpIH0pXSB9KSksIGlzTW91bnRlZCAmJiBpbnRlcmFjdGl2ZSAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2V0U2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBhY3RpdmVEZXNjZW5kYW50OiBhY3RpdmVPcHRpb25JZCwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke29wdGlvbklkUHJlZml4fS0ke29wdGlvbkZsYXRJbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpLCBvcHRpb25DbGFzc05hbWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBjb250ZW50OiByZW5kZXJPcHRpb25Db250ZW50ID09PSBudWxsIHx8IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbmRlck9wdGlvbkNvbnRlbnQob3B0aW9uLCBvcHRpb25NZXRhKSB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -31,6 +31,8 @@ export var SelectCustom = function SelectCustom(props) {
31
31
  variant = _props$variant === void 0 ? 'fill' : _props$variant,
32
32
  _props$disabled = props.disabled,
33
33
  disabledProp = _props$disabled === void 0 ? false : _props$disabled,
34
+ _props$readOnly = props.readOnly,
35
+ readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
34
36
  _props$loading = props.loading,
35
37
  loading = _props$loading === void 0 ? false : _props$loading,
36
38
  label = props.label,
@@ -65,6 +67,7 @@ export var SelectCustom = function SelectCustom(props) {
65
67
  children = props.children,
66
68
  ref = props.ref;
67
69
  var disabled = disabledProp || loading;
70
+ var interactive = !disabled && !readOnly;
68
71
  var classes = rootClassnames(prefixCls);
69
72
  var autoId = useId();
70
73
  var triggerId = id !== null && id !== void 0 ? id : autoId;
@@ -85,6 +88,7 @@ export var SelectCustom = function SelectCustom(props) {
85
88
  defaultOpen: defaultOpen,
86
89
  onOpenChange: onOpenChange,
87
90
  disabled: disabled,
91
+ readOnly: readOnly,
88
92
  placement: placement,
89
93
  panelWidth: panelWidth,
90
94
  listMaxHeight: listMaxHeight,
@@ -132,11 +136,12 @@ export var SelectCustom = function SelectCustom(props) {
132
136
  });
133
137
  var triggerContent = typeof selectedTemplate === 'function' ? selectedTemplate({
134
138
  open: isOpen,
135
- disabled: disabled
139
+ disabled: disabled,
140
+ readOnly: readOnly
136
141
  }) : selectedTemplate;
137
142
  var hasSelection = isRenderableTemplate(triggerContent);
138
143
  var valueLabelClass = hasSelection ? 'value' : 'placeholder';
139
- var triggerClassName = classes('trigger', joinCls(classes("trigger-".concat(normalizedSize)), classes("trigger-".concat(variant)), isOpen && classes('trigger-open'), hasSelection ? classes('trigger-filled') : classes('trigger-placeholder'), status !== 'default' && classes("trigger-".concat(status)), disabled && classes('trigger-disabled')));
144
+ var triggerClassName = classes('trigger', joinCls(classes("trigger-".concat(normalizedSize)), classes("trigger-".concat(variant)), isOpen && classes('trigger-open'), hasSelection ? classes('trigger-filled') : classes('trigger-placeholder'), status !== 'default' && classes("trigger-".concat(status)), disabled && classes('trigger-disabled'), readOnly && !disabled && classes('trigger-readonly')));
140
145
  var iconSize = normalizedSize === 'small' ? 16 : 20;
141
146
  var floatingAriaLabelledBy = ariaLabelledBy !== null && ariaLabelledBy !== void 0 ? ariaLabelledBy : label ? labelId : undefined;
142
147
  var describedByIds = [description ? descriptionId : null, feedback ? feedbackId : null].filter(Boolean).join(' ') || undefined;
@@ -152,6 +157,7 @@ export var SelectCustom = function SelectCustom(props) {
152
157
  variant: variant,
153
158
  status: status,
154
159
  disabled: disabled,
160
+ readOnly: readOnly,
155
161
  loading: loading,
156
162
  label: label,
157
163
  info: info,
@@ -167,6 +173,7 @@ export var SelectCustom = function SelectCustom(props) {
167
173
  type: 'button',
168
174
  name: name,
169
175
  disabled: disabled,
176
+ 'aria-readonly': readOnly || undefined,
170
177
  style: style,
171
178
  className: triggerClassName,
172
179
  onBlur: handleTriggerBlur,
@@ -194,7 +201,7 @@ export var SelectCustom = function SelectCustom(props) {
194
201
  color: "currentColor"
195
202
  })
196
203
  })]
197
- })), isMounted && !disabled && function () {
204
+ })), isMounted && interactive && function () {
198
205
  var panelNode = _jsx(FloatingFocusManager, {
199
206
  context: context,
200
207
  modal: false,
@@ -222,4 +229,4 @@ export var SelectCustom = function SelectCustom(props) {
222
229
  };
223
230
  SelectCustom.displayName = 'SelectCustom';
224
231
  export default /*#__PURE__*/memo(SelectCustom);
225
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJtZW1vIiwidXNlSWQiLCJ1c2VSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwiSWNvbnMiLCJTcGlubmVyIiwiam9pbkNscyIsImRlZmF1bHQiLCJyb290Q2xhc3NuYW1lcyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJ1c2VTZWxlY3RTaGVsbCIsIm5vcm1hbGl6ZVNpemUiLCJERUZBVUxUX01BWF9IRUlHSFQiLCJpc1JlbmRlcmFibGVUZW1wbGF0ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU2VsZWN0Q3VzdG9tIiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsInNlbGVjdGVkVGVtcGxhdGUiLCJfcHJvcHMkYXJyb3ciLCJhcnJvdyIsIm9wZW4iLCJfcHJvcHMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9wcm9wcyRwb3J0YWwiLCJwb3J0YWwiLCJwYW5lbENsYXNzTmFtZSIsInBhbmVsRm9vdGVyIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0IiwicGxhY2VtZW50IiwicGFuZWxXaWR0aCIsIm9mZnNldCIsIl9wcm9wcyRyb2xlIiwicm9sZSIsInJvbGVQcm9wIiwiYW5pbWF0aW9uIiwib25PcGVuQ2hhbmdlIiwib25CbHVyIiwiY2hpbGRyZW4iLCJyZWYiLCJjbGFzc2VzIiwiYXV0b0lkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwibm9ybWFsaXplZFNpemUiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJpc09wZW4iLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJfdXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9hIiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImNsb3NlIiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwidHJpZ2dlckNvbnRlbnQiLCJoYXNTZWxlY3Rpb24iLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiY29uY2F0IiwiaWNvblNpemUiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInBhbmVsQ3R4IiwicGFuZWxCb2R5IiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsInN0cm9rZVdpZHRoIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsU0FBU0Msb0JBQW9CLEVBQUVDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLG9CQUFvQjtBQUMxRixTQUFTQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDM0MsU0FBU0MsZ0JBQWdCLFFBQVEsZUFBZTtBQUNoRCxTQUFTQyxLQUFLLFFBQVEsVUFBVTtBQUNoQyxTQUFTQyxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxPQUFPLEVBQUVDLE9BQU8sSUFBSUMsY0FBYyxRQUFRLHdCQUF3QjtBQUczRSxPQUFPQyxnQkFBZ0IsTUFBTSxvQkFBb0I7QUFDakQsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxhQUFhLFFBQVEsU0FBUztBQUN2QyxPQUFPLFNBQVM7QUFFaEIsSUFBTUMsa0JBQWtCLEdBQUcsR0FBRztBQUU5QixJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxLQUFjO0VBQUEsT0FDMUNBLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0MsU0FBUyxJQUFJRCxLQUFLLEtBQUssS0FBSztBQUFBO0FBRTFELE9BQU8sSUFBTUUsWUFBWSxHQUEwQixTQUF0Q0EsWUFBWUEsQ0FBMkJDLEtBQUssRUFBSTtFQUMzRCxJQUFBQyxnQkFBQSxHQXFDSUQsS0FBSyxDQXBDUEUsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsRUFBRSxHQUFBQSxnQkFBQTtJQUFBRSxnQkFBQSxHQW9DWkgsS0FBSyxDQW5DUEksU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcs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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlSWQsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBub3JtYWxpemVTaXplIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuY29uc3QgaXNSZW5kZXJhYmxlVGVtcGxhdGUgPSAodmFsdWUpID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IGZhbHNlO1xuZXhwb3J0IGNvbnN0IFNlbGVjdEN1c3RvbSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgc2VsZWN0ZWRUZW1wbGF0ZSwgYXJyb3cgPSB0cnVlLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBwYW5lbENsYXNzTmFtZSwgcGFuZWxGb290ZXIsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIHBsYWNlbWVudCwgcGFuZWxXaWR0aCwgb2Zmc2V0LCByb2xlOiByb2xlUHJvcCA9ICdkaWFsb2cnLCBhbmltYXRpb24sIG9uT3BlbkNoYW5nZSwgb25CbHVyLCBjaGlsZHJlbiwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3Blbiwgc2V0T3BlbiwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgcGFuZWxXaWR0aCxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICByb2xlOiByb2xlUHJvcCxcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhiYXNlSW50ZXJhY3Rpb25zKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjbG9zZSA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlckNvbnRlbnQgPSB0eXBlb2Ygc2VsZWN0ZWRUZW1wbGF0ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHNlbGVjdGVkVGVtcGxhdGUoeyBvcGVuOiBpc09wZW4sIGRpc2FibGVkIH0pXG4gICAgICAgIDogc2VsZWN0ZWRUZW1wbGF0ZTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBpc1JlbmRlcmFibGVUZW1wbGF0ZSh0cmlnZ2VyQ29udGVudCk7XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlzT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ3NtYWxsJyA/IDE2IDogMjA7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW2Rlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGxdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFuZWxDdHggPSB7IGNsb3NlLCBvcGVuOiBpc09wZW4gfTtcbiAgICBjb25zdCBwYW5lbEJvZHkgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihwYW5lbEN0eCkgOiBjaGlsZHJlbjtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBzdHlsZSxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBoYXNTZWxlY3Rpb24gPyB0cmlnZ2VyQ29udGVudCA6IHBsYWNlaG9sZGVyIH0pXSB9KSwgYXJyb3cgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nID8gKF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSkpIDogKF9qc3goSWNvbnMsIHsgbmFtZTogaXNPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkpIH0pKV0gfSkpLCBpc01vdW50ZWQgJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiBwYW5lbEJvZHkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0Q3VzdG9tLmRpc3BsYXlOYW1lID0gJ1NlbGVjdEN1c3RvbSc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdEN1c3RvbSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
232
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJtZW1vIiwidXNlSWQiLCJ1c2VSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwiSWNvbnMiLCJTcGlubmVyIiwiam9pbkNscyIsImRlZmF1bHQiLCJyb290Q2xhc3NuYW1lcyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJ1c2VTZWxlY3RTaGVsbCIsIm5vcm1hbGl6ZVNpemUiLCJERUZBVUxUX01BWF9IRUlHSFQiLCJpc1JlbmRlcmFibGVUZW1wbGF0ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU2VsZWN0Q3VzdG9tIiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsImxhYmVsIiwiaW5mbyIsImRlc2NyaXB0aW9uIiwiZmVlZGJhY2siLCJfcHJvcHMkcmVxdWlyZWQiLCJyZXF1aXJlZCIsInByZWZpeCIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwic2VsZWN0ZWRUZW1wbGF0ZSIsIl9wcm9wcyRhcnJvdyIsImFycm93Iiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsInBhbmVsQ2xhc3NOYW1lIiwicGFuZWxGb290ZXIiLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJwbGFjZW1lbnQiLCJwYW5lbFdpZHRoIiwib2Zmc2V0IiwiX3Byb3BzJHJvbGUiLCJyb2xlIiwicm9sZVByb3AiLCJhbmltYXRpb24iLCJvbk9wZW5DaGFuZ2UiLCJvbkJsdXIiLCJjaGlsZHJlbiIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsImF1dG9JZCIsInRyaWdnZXJJZCIsImxhYmVsSWQiLCJkZXNjcmlwdGlvbklkIiwiZmVlZGJhY2tJZCIsIm5vcm1hbGl6ZWRTaXplIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwiaXNPcGVuIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwiX3VzZUludGVyYWN0aW9ucyIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYSIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJjbG9zZSIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInRyaWdnZXJDb250ZW50IiwiaGFzU2VsZWN0aW9uIiwidmFsdWVMYWJlbENsYXNzIiwidHJpZ2dlckNsYXNzTmFtZSIsImNvbmNhdCIsImljb25TaXplIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJwYW5lbEN0eCIsInBhbmVsQm9keSIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJzdHJva2VXaWR0aCIsImNvbG9yIiwicGFuZWxOb2RlIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQVNDLG9CQUFvQixFQUFFQyxjQUFjLEVBQUVDLGVBQWUsUUFBUSxvQkFBb0I7QUFDMUYsU0FBU0MsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGdCQUFnQixRQUFRLGVBQWU7QUFDaEQsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLElBQUlDLGNBQWMsUUFBUSx3QkFBd0I7QUFHM0UsT0FBT0MsZ0JBQWdCLE1BQU0sb0JBQW9CO0FBQ2pELFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFDakQsU0FBU0MsYUFBYSxRQUFRLFNBQVM7QUFDdkMsT0FBTyxTQUFTO0FBRWhCLElBQU1DLGtCQUFrQixHQUFHLEdBQUc7QUFFOUIsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsS0FBYztFQUFBLE9BQzFDQSxLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsSUFBSUQsS0FBSyxLQUFLLEtBQUs7QUFBQTtBQUUxRCxPQUFPLElBQU1FLFlBQVksR0FBMEIsU0FBdENBLFlBQVlBLENBQTJCQyxLQUFLLEVBQUk7RUFDM0QsSUFBQUMsZ0JBQUEsR0FzQ0lELEtBQUssQ0FyQ1BFLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLEVBQUUsR0FBQUEsZ0JBQUE7SUFBQUUsZ0JBQUEsR0FxQ1pILEtBQUssQ0FwQ1BJLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLFFBQVEsR0FBQUEsZ0JBQUE7SUFDcEJFLEtBQUssR0FtQ0hMLEtBQUssQ0FuQ1BLLEtBQUs7SUFDTEMsRUFBRSxHQWtDQU4sS0FBSyxDQWxDUE0sRUFBRTtJQUNGQyxJQUFJLEdBaUNGUCxLQUFLLENBakNQTyxJQUFJO0lBQ1VDLFNBQVMsR0FnQ3JCUixLQUFLLENBaENQLFlBQVk7SUFDT1MsY0FBYyxHQStCL0JULEtBQUssQ0EvQlAsaUJBQWlCO0lBQUFVLFdBQUEsR0ErQmZWLEtBQUssQ0E5QlBXLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxXQUFBLGNBQUcsT0FBTyxHQUFBQSxXQUFBO0lBQUFFLGFBQUEsR0E4QlpaLEtBQUssQ0E3QlBhLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxhQUFBLGNBQUcsU0FBUyxHQUFBQSxhQUFBO0lBQUFFLGNBQUEsR0E2QmhCZCxLQUFLLENBNUJQZSxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsY0FBQSxjQUFHLE1BQU0sR0FBQUEsY0FBQTtJQUFBRSxlQUFBLEdBNEJkaEIsS0FBSyxDQTNCUGlCLFFBQVE7SUFBRUMsWUFBWSxHQUFBRixlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUFHLGVBQUEsR0EyQjVCbkIsS0FBSyxDQTFCUG9CLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUFFLGNBQUEsR0EwQmRyQixLQUFLLENBekJQc0IsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBRyxLQUFLLEdBQUFBLGNBQUE7SUFDZkUsS0FBSyxHQXdCSHZCLEtBQUssQ0F4QlB1QixLQUFLO0lBQ0xDLElBQUksR0F1QkZ4QixLQUFLLENBdkJQd0IsSUFBSTtJQUNKQyxXQUFXLEdBc0JUekIsS0FBSyxDQXRCUHlCLFdBQVc7SUFDWEMsUUFBUSxHQXFCTjFCLEtBQUssQ0FyQlAwQixRQUFRO0lBQUFDLGVBQUEsR0FxQk4zQixLQUFLLENBcEJQNEIsUUFBUTtJQUFSQSxRQUFRLEdBQUFELGVBQUEsY0FBRyxLQUFLLEdBQUFBLGVBQUE7SUFDaEJFLE1BQU0sR0FtQko3QixLQUFLLENBbkJQNkIsTUFBTTtJQUFBQyxrQkFBQSxHQW1CSjlCLEtBQUssQ0FsQlArQixXQUFXO0lBQVhBLFdBQVcsR0FBQUQsa0JBQUEsY0FBRyxPQUFPLEdBQUFBLGtCQUFBO0lBQ3JCRSxnQkFBZ0IsR0FpQmRoQyxLQUFLLENBakJQZ0MsZ0JBQWdCO0lBQUFDLFlBQUEsR0FpQmRqQyxLQUFLLENBaEJQa0MsS0FBSztJQUFMQSxLQUFLLEdBQUFELFlBQUEsY0FBRyxJQUFJLEdBQUFBLFlBQUE7SUFDWkUsSUFBSSxHQWVGbkMsS0FBSyxDQWZQbUMsSUFBSTtJQUFBQyxrQkFBQSxHQWVGcEMsS0FBSyxDQWRQcUMsV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUcsS0FBSyxHQUFBQSxrQkFBQTtJQUFBRSxhQUFBLEdBY2pCdEMsS0FBSyxDQWJQdUMsTUFBTTtJQUFOQSxNQUFNLEdBQUFELGFBQUEsY0FBRyxJQUFJLEdBQUFBLGFBQUE7SUFDYkUsY0FBYyxHQVlaeEMsS0FBSyxDQVpQd0MsY0FBYztJQUNkQyxXQUFXLEdBV1R6QyxLQUFLLENBWFB5QyxXQUFXO0lBQUFDLG9CQUFBLEdBV1QxQyxLQUFLLENBVlAyQyxhQUFhO0lBQWJBLGFBQWEsR0FBQUQsb0JBQUEsY0FBRy9DLGtCQUFrQixHQUFBK0Msb0JBQUE7SUFDbENFLFNBQVMsR0FTUDVDLEtBQUssQ0FUUDRDLFNBQVM7SUFDVEMsVUFBVSxHQVFSN0MsS0FBSyxDQVJQNkMsVUFBVTtJQUNWQyxNQUFNLEdBT0o5QyxLQUFLLENBUFA4QyxNQUFNO0lBQUFDLFdBQUEsR0FPSi9DLEtBQUssQ0FOUGdELElBQUk7SUFBRUMsUUFBUSxHQUFBRixXQUFBLGNBQUcsUUFBUSxHQUFBQSxXQUFBO0lBQ3pCRyxTQUFTLEdBS1BsRCxLQUFLLENBTFBrRCxTQUFTO0lBQ1RDLFlBQVksR0FJVm5ELEtBQUssQ0FKUG1ELFlBQVk7SUFDWkMsTUFBTSxHQUdKcEQsS0FBSyxDQUhQb0QsTUFBTTtJQUNOQyxRQUFRLEdBRU5yRCxLQUFLLENBRlBxRCxRQUFRO0lBQ1JDLEdBQUcsR0FDRHRELEtBQUssQ0FEUHNELEdBQUc7RUFFTCxJQUFNckMsUUFBUSxHQUFHQyxZQUFZLElBQUlJLE9BQU87RUFDeEMsSUFBTWlDLFdBQVcsR0FBRyxDQUFDdEMsUUFBUSxJQUFJLENBQUNHLFFBQVE7RUFFMUMsSUFBTW9DLE9BQU8sR0FBR2pFLGNBQWMsQ0FBQ2EsU0FBUyxDQUFDO0VBQ3pDLElBQU1xRCxNQUFNLEdBQUd6RSxLQUFLLENBQUEsQ0FBRTtFQUN0QixJQUFNMEUsU0FBUyxHQUFHcEQsRUFBRSxLQUFBLElBQUEsSUFBRkEsRUFBRSxLQUFBLEtBQUEsQ0FBQSxHQUFGQSxFQUFFLEdBQUltRCxNQUFNO0VBQzlCLElBQU1FLE9BQU8sR0FBRzNFLEtBQUssQ0FBQSxDQUFFO0VBQ3ZCLElBQU00RSxhQUFhLEdBQUc1RSxLQUFLLENBQUEsQ0FBRTtFQUM3QixJQUFNNkUsVUFBVSxHQUFHN0UsS0FBSyxDQUFBLENBQUU7RUFFMUIsSUFBTThFLGNBQWMsR0FBR3BFLGFBQWEsQ0FBQ2lCLElBQUksQ0FBQztFQUMxQyxJQUFNb0QsV0FBVyxHQUFHOUUsTUFBTSxDQUF3QixJQUFJLENBQUM7RUFDdkQsSUFBTStFLFVBQVUsR0FBRy9FLE1BQU0sQ0FBMkIsSUFBSSxDQUFDO0VBRXpELElBQU1nRixnQkFBZ0IsR0FBRy9FLGdCQUFnQixDQUFDLFVBQUNnRixJQUE4QixFQUFJO0lBQzNFRixVQUFVLENBQUNHLE9BQU8sR0FBR0QsSUFBSTtJQUN6QixJQUFJWixHQUFHLEVBQUU7TUFDTkEsR0FBNkMsQ0FBQ2EsT0FBTyxHQUFHRCxJQUFJO0lBQy9EO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBQUUsZUFBQSxHQVNJM0UsY0FBYyxDQUFvQjtNQUNwQzBDLElBQUksRUFBSkEsSUFBSTtNQUNKRSxXQUFXLEVBQVhBLFdBQVc7TUFDWGMsWUFBWSxFQUFaQSxZQUFZO01BQ1psQyxRQUFRLEVBQVJBLFFBQVE7TUFDUkcsUUFBUSxFQUFSQSxRQUFRO01BQ1J3QixTQUFTLEVBQVRBLFNBQVM7TUFDVEMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZGLGFBQWEsRUFBYkEsYUFBYTtNQUNiTyxTQUFTLEVBQVRBLFNBQVM7TUFDVEYsSUFBSSxFQUFFQyxRQUFRO01BQ2RILE1BQU0sRUFBTkE7SUR2REEsQ0N3REQsQ0FBQztJQXBCQXVCLE1BQU0sR0FBQUQsZUFBQSxDQUFOQyxNQUFNO0lBQ05DLE9BQU8sR0FBQUYsZUFBQSxDQUFQRSxPQUFPO0lBQ1BDLElBQUksR0FBQUgsZUFBQSxDQUFKRyxJQUFJO0lBQ0pDLE9BQU8sR0FBQUosZUFBQSxDQUFQSSxPQUFPO0lBQ1BDLGNBQWMsR0FBQUwsZUFBQSxDQUFkSyxjQUFjO0lBQ2RDLGdCQUFnQixHQUFBTixlQUFBLENBQWhCTSxnQkFBZ0I7SUFDaEJDLFNBQVMsR0FBQVAsZUFBQSxDQUFUTyxTQUFTO0lBQ1RDLGdCQUFnQixHQUFBUixlQUFBLENBQWhCUSxnQkFBZ0I7RUFlbEIsSUFBTUMsWUFBWSxHQUFHM0YsZ0JBQWdCLENBQUMsVUFBQ2dGLElBQThCLEVBQUk7SUFDdkVLLElBQUksQ0FBQ00sWUFBWSxDQUFDWCxJQUFJLENBQUM7SUFDdkJELGdCQUFnQixDQUFDQyxJQUFJLENBQUM7RUFDeEIsQ0FBQyxDQUFDO0VBRUYsSUFBTVksV0FBVyxHQUFHNUYsZ0JBQWdCLENBQUMsVUFBQ2dGLElBQTJCLEVBQUk7SUFDbkVLLElBQUksQ0FBQ08sV0FBVyxDQUFDWixJQUFJLENBQUM7SUFDdEJILFdBQVcsQ0FBQ0ksT0FBTyxHQUFHRCxJQUFJO0VBQzVCLENBQUMsQ0FBQztFQUVGLElBQUFhLGdCQUFBLEdBQWdEakcsZUFBZSxDQUFDOEYsZ0JBQWdCLENBQUM7SUFBekVJLGlCQUFpQixHQUFBRCxnQkFBQSxDQUFqQkMsaUJBQWlCO0lBQUVDLGdCQUFnQixHQUFBRixnQkFBQSxDQUFoQkUsZ0JBQWdCO0VBRTNDLElBQU1DLG1CQUFtQixHQUFHaEcsZ0JBQWdCLENBQzFDLFVBQUNpRyxhQUFpQyxFQUFFQyxLQUErQixFQUFJO0lENURuRSxJQUFJQyxFQUFFLEVBQUVDLEVBQUU7SUM2RFosSUFBTUMsVUFBVSxHQUFHSixhQUE0QjtJQUMvQyxJQUFNSyxhQUFhLEdBQUcsQ0FBQyxFQUFFRCxVQUFVLEtBQUksQ0FBQUYsRUFBQSxHQUFBckIsVUFBVSxDQUFDRyxPQUFPLE1BQUEsSUFBQSxJQUFBa0IsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVJLFFBQVEsQ0FBQ0YsVUFBVSxDQUFDLENBQUEsQ0FBQztJQUNoRixJQUFNRyxjQUFjLEdBQUcsQ0FBQyxFQUFFSCxVQUFVLEtBQUksQ0FBQUQsRUFBQSxHQUFBdkIsV0FBVyxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBbUIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVHLFFBQVEsQ0FBQ0YsVUFBVSxDQUFDLENBQUEsQ0FBQztJQUVsRixJQUFJLENBQUNDLGFBQWEsSUFBSSxDQUFDRSxjQUFjLEVBQUU7TUFDckN0QyxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBR2dDLEtBQUssQ0FBQztJQUNqQjtFQUNGLENBQUMsQ0FDRjtFQUVELElBQU1PLGlCQUFpQixHQUFHekcsZ0JBQWdCLENBQUMsVUFBQ2tHLEtBQW9DLEVBQUk7SUFDbEZGLG1CQUFtQixDQUFDRSxLQUFLLENBQUNELGFBQWEsRUFBRUMsS0FBZ0MsQ0FBQztFQUM1RSxDQUFDLENBQUM7RUFFRixJQUFNUSxLQUFLLEdBQUcxRyxnQkFBZ0IsQ0FBQyxZQUFLO0lEL0Q5QixJQUFJbUcsRUFBRTtJQ2dFVmYsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNkLENBQUFlLEVBQUEsR0FBQXJCLFVBQVUsQ0FBQ0csT0FBTyxNQUFBLElBQUEsSUFBQWtCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFUSxLQUFLLENBQUM7TUFBRUMsYUFBYSxFQUFFO0lBQUksQ0FBRSxDQUFDO0VBQ3BELENBQUMsQ0FBQztFQUVGLElBQU1DLGNBQWMsR0FDbEIsT0FBTy9ELGdCQUFnQixLQUFLLFVBQVUsR0FDbENBLGdCQUFnQixDQUFDO0lBQUVHLElBQUksRUFBRWtDLE1BQU07SUFBRXBELFFBQVEsRUFBUkEsUUFBUTtJQUFFRyxRQUFRLEVBQVJBO0VBQVEsQ0FBRSxDQUFDLEdBQ3REWSxnQkFBZ0I7RUFDdEIsSUFBTWdFLFlBQVksR0FBR3BHLG9CQUFvQixDQUFDbUcsY0FBYyxDQUFDO0VBRXpELElBQU1FLGVBQWUsR0FBR0QsWUFBWSxHQUFHLE9BQU8sR0FBRyxhQUFhO0VBQzlELElBQU1FLGdCQUFnQixHQUFHMUMsT0FBTyxDQUM5QixTQUFTLEVBQ1RuRSxPQUFPLENBQ0xtRSxPQUFPLFlBQUEyQyxNQUFBLENBQVlyQyxjQUFjLENBQUUsQ0FBQyxFQUNwQ04sT0FBTyxZQUFBMkMsTUFBQSxDQUFZcEYsT0FBTyxDQUFFLENBQUMsRUFDN0JzRCxNQUFNLElBQUliLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFDakN3QyxZQUFZLEdBQUd4QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBR0EsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQ3pFM0MsTUFBTSxLQUFLLFNBQVMsSUFBSTJDLE9BQU8sWUFBQTJDLE1BQUEsQ0FBWXRGLE1BQU0sQ0FBRSxDQUFDLEVBQ3BESSxRQUFRLElBQUl1QyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFDdkNwQyxRQUFRLElBQUksQ0FBQ0gsUUFBUSxJQUFJdUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQ3JELENBQ0Y7RUFDRCxJQUFNNEMsUUFBUSxHQUFHdEMsY0FBYyxLQUFLLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRTtFQUNyRCxJQUFNdUMsc0JBQXNCLEdBQUc1RixjQUFjLEtBQUEsSUFBQSxJQUFkQSxjQUFjLEtBQUEsS0FBQSxDQUFBLEdBQWRBLGNBQWMsR0FBS2MsS0FBSyxHQUFHb0MsT0FBTyxHQUFHN0QsU0FBVTtFQUM5RSxJQUFNd0csY0FBYyxHQUNsQixDQUFDN0UsV0FBVyxHQUFHbUMsYUFBYSxHQUFHLElBQUksRUFBRWxDLFFBQVEsR0FBR21DLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FDL0QwQyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUNmQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUkzRyxTQUFTO0VBRTNCLElBQU00RyxRQUFRLEdBQTZCO0lBQUVkLEtBQUssRUFBTEEsS0FBSztJQUFFekQsSUFBSSxFQUFFa0M7RUFBTSxDQUFFO0VBQ2xFLElBQU1zQyxTQUFTLEdBQUcsT0FBT3RELFFBQVEsS0FBSyxVQUFVLEdBQUdBLFFBQVEsQ0FBQ3FELFFBQVEsQ0FBQyxHQUFHckQsUUFBUTtFQUVoRixPQUNFMUUsS0FBQSxDQUFDYSxnQkFBZ0IsRUFBQTtJQUNmZ0UsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCdEQsU0FBUyxFQUFFQSxTQUFTO0lBQ3BCUyxJQUFJLEVBQUVtRCxjQUFjO0lBQ3BCL0MsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCRixNQUFNLEVBQUVBLE1BQU07SUFDZEksUUFBUSxFQUFFQSxRQUFRO0lBQ2xCRyxRQUFRLEVBQUVBLFFBQVE7SUFDbEJFLE9BQU8sRUFBRUEsT0FBTztJQUNoQkMsS0FBSyxFQUFFQSxLQUFLO0lBQ1pDLElBQUksRUFBRUEsSUFBSTtJQUNWQyxXQUFXLEVBQUVBLFdBQVc7SUFDeEJDLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkUsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCK0IsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCQyxhQUFhLEVBQUVBLGFBQWE7SUFDNUJDLFVBQVUsRUFBRUEsVUFBVTtJQUFBUixRQUFBLEVBQUEsQ0FFdEIxRSxLQUFBLENBQUEsUUFBQSxFQUFBaUksTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ003QixpQkFBaUIsQ0FBQztNQUNwQjFCLEdBQUcsRUFBRXVCLFlBQVk7TUFDakJ2RSxFQUFFLEVBQUVvRCxTQUFTO01BQ2JvRCxJQUFJLEVBQUUsUUFBUTtNQUNkdkcsSUFBSSxFQUFKQSxJQUFJO01BQ0pVLFFBQVEsRUFBUkEsUUFBUTtNQUNSLGVBQWUsRUFBRUcsUUFBUSxJQUFJdEIsU0FBUztNQUN0Q08sS0FBSyxFQUFMQSxLQUFLO01BQ0xILFNBQVMsRUFBRWdHLGdCQUFnQjtNQUMzQjlDLE1BQU0sRUFBRXVDLGlCQUFpQjtNQUN6QixZQUFZLEVBQUVuRixTQUFTO01BQ3ZCLGlCQUFpQixFQUFFNkYsc0JBQXNCO01BQ3pDLGtCQUFrQixFQUFFQztJRG5HbEIsQ0NvR0gsQ0FBQyxFQUFBO01BQUFqRCxRQUFBLEVBQUEsQ0FFRjFFLEtBQUEsQ0FBQSxNQUFBLEVBQUE7UUFBTXVCLFNBQVMsRUFBRXNELE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFBQUgsUUFBQSxFQUFBLENBQ2hDeEIsTUFBTSxJQUFJcEQsSUFBQSxDQUFBLE1BQUEsRUFBQTtVQUFNeUIsU0FBUyxFQUFFc0QsT0FBTyxDQUFDLFFBQVEsQ0FBQztVQUFBSCxRQUFBLEVBQUd4QjtRQUFNLENBQUEsQ0FBUSxFQUM5RHBELElBQUEsQ0FBQSxNQUFBLEVBQUE7VUFDRXlCLFNBQVMsRUFBRXNELE9BQU8sQ0FDaEJ5QyxlQUFlLEVBQ2Y1RyxPQUFPLENBQ0xtRSxPQUFPLElBQUEyQyxNQUFBLENBQUlGLGVBQWUsT0FBQUUsTUFBQSxDQUFJckMsY0FBYyxDQUFFLENBQUMsRUFDL0M3QyxRQUFRLElBQUl1QyxPQUFPLElBQUEyQyxNQUFBLENBQUlGLGVBQWUsY0FBVyxDQUFDLENBQ25ELENBQ0Y7VUFBQTVDLFFBQUEsRUFFQTJDLFlBQVksR0FBR0QsY0FBYyxHQUFHaEU7UUFBVyxDQUFBLENBQ3ZDO01BQUEsQ0FBQSxDQUNGLEVBQ05HLEtBQUssSUFDSnpELElBQUEsQ0FBQSxNQUFBLEVBQUE7UUFBTXlCLFNBQVMsRUFBRXNELE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFBQUgsUUFBQSxFQUM3Qi9CLE9BQU8sR0FDTjdDLElBQUEsQ0FBQ1csT0FBTyxFQUFBO1VBQUN1QixJQUFJLEVBQUV5RixRQUFRO1VBQUVXLFdBQVcsRUFBRTtRQUFDLENBQUEsQ0FBSSxHQUUzQ3RJLElBQUEsQ0FBQ1UsS0FBSyxFQUFBO1VBQ0pvQixJQUFJLEVBQUU4RCxNQUFNLEdBQUcsV0FBVyxHQUFHLGFBQWE7VUFDMUMxRCxJQUFJLEVBQUV5RixRQUFRO1VBQ2RZLEtBQUssRUFBQztRQUFjLENBQUE7TUFFdkIsQ0FBQSxDQUVKO0lBQUEsQ0FBQSxDQUFBLENBQ00sRUFFUnJDLFNBQVMsSUFBSXBCLFdBQVcsSUFBSyxZQUFLO01BQ2pDLElBQU0wRCxTQUFTLEdBQ2J4SSxJQUFBLENBQUNHLG9CQUFvQixFQUFBO1FBQ25CNEYsT0FBTyxFQUFFQSxPQUFPO1FBQ2hCMEMsS0FBSyxFQUFFLEtBQUs7UUFDWkMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNoQkMsV0FBVyxFQUFFLEtBQUs7UUFBQS9ELFFBQUEsRUFFbEIxRSxLQUFBLENBQUEsS0FBQSxFQUFBaUksTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ001QixnQkFBZ0IsQ0FBQztVQUNuQjNCLEdBQUcsRUFBRXdCLFdBQVc7VUFDaEI1RSxTQUFTLEVBQUViLE9BQU8sQ0FBQ21FLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRWhCLGNBQWMsQ0FBQztVQUNwRG5DLEtBQUssRUFBQXVHLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBT3BDLGNBQWMsQ0FBQSxFQUFLQyxnQkFBZ0I7UUQxSTNDLENDMklMLENBQUMsRUFBQTtVQUFBckIsUUFBQSxFQUFBLENBRUY1RSxJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUt5QixTQUFTLEVBQUVzRCxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQUFILFFBQUEsRUFBR3NEO1VBQVMsQ0FBQSxDQUFPLEVBQ3ZEbEUsV0FBVyxJQUFJLElBQUksSUFDbEJoRSxJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUt5QixTQUFTLEVBQUVzRCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFILFFBQUEsRUFBR1o7VUFBVyxDQUFBLENBQ3REO1FBQUEsQ0FBQSxDQUFBO01BQ0csQ0FBQSxDQUVUO01BRUQsT0FBT0YsTUFBTSxHQUFHOUQsSUFBQSxDQUFDSSxjQUFjLEVBQUE7UUFBQXdFLFFBQUEsRUFBRTREO01BQVMsQ0FBQSxDQUFrQixHQUFHQSxTQUFTO0lBQzFFLENBQUMsQ0FBQyxDQUFFO0VBQUEsQ0FBQSxDQUNhO0FBRXZCLENBQUM7QUFFRGxILFlBQVksQ0FBQ3NILFdBQVcsR0FBRyxjQUFjO0FBRXpDLDRCQUFldEksSUFBSSxDQUFDZ0IsWUFBWSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIHVzZUludGVyYWN0aW9ucyB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VJZCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IG5vcm1hbGl6ZVNpemUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5jb25zdCBpc1JlbmRlcmFibGVUZW1wbGF0ZSA9ICh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gZmFsc2U7XG5leHBvcnQgY29uc3QgU2VsZWN0Q3VzdG9tID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCByZWFkT25seSA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBzZWxlY3RlZFRlbXBsYXRlLCBhcnJvdyA9IHRydWUsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIHBhbmVsQ2xhc3NOYW1lLCBwYW5lbEZvb3RlciwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgcGxhY2VtZW50LCBwYW5lbFdpZHRoLCBvZmZzZXQsIHJvbGU6IHJvbGVQcm9wID0gJ2RpYWxvZycsIGFuaW1hdGlvbiwgb25PcGVuQ2hhbmdlLCBvbkJsdXIsIGNoaWxkcmVuLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gIWRpc2FibGVkICYmICFyZWFkT25seTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3Blbiwgc2V0T3BlbiwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBhbmVsV2lkdGgsXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgcm9sZTogcm9sZVByb3AsXG4gICAgICAgIG9mZnNldCxcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWZlcmVuY2UgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBoYW5kbGVUcmlnZ2VyUmVmKG5vZGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZsb2F0aW5nID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldEZsb2F0aW5nKG5vZGUpO1xuICAgICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoYmFzZUludGVyYWN0aW9ucyk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY2xvc2UgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHRyaWdnZXJDb250ZW50ID0gdHlwZW9mIHNlbGVjdGVkVGVtcGxhdGUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBzZWxlY3RlZFRlbXBsYXRlKHsgb3BlbjogaXNPcGVuLCBkaXNhYmxlZCwgcmVhZE9ubHkgfSlcbiAgICAgICAgOiBzZWxlY3RlZFRlbXBsYXRlO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IGlzUmVuZGVyYWJsZVRlbXBsYXRlKHRyaWdnZXJDb250ZW50KTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaXNPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJyksIHJlYWRPbmx5ICYmICFkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLXJlYWRvbmx5JykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCwgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwYW5lbEN0eCA9IHsgY2xvc2UsIG9wZW46IGlzT3BlbiB9O1xuICAgIGNvbnN0IHBhbmVsQm9keSA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHBhbmVsQ3R4KSA6IGNoaWxkcmVuO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkT25seSwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogaGFzU2VsZWN0aW9uID8gdHJpZ2dlckNvbnRlbnQgOiBwbGFjZWhvbGRlciB9KV0gfSksIGFycm93ICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlzT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KSldIH0pKSwgaXNNb3VudGVkICYmIGludGVyYWN0aXZlICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiBwYW5lbEJvZHkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0Q3VzdG9tLmRpc3BsYXlOYW1lID0gJ1NlbGVjdEN1c3RvbSc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdEN1c3RvbSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -9,6 +9,7 @@ interface SelectFieldShellProps {
9
9
  variant: SelectVariant;
10
10
  status: SelectStatus;
11
11
  disabled: boolean;
12
+ readOnly?: boolean;
12
13
  loading?: boolean;
13
14
  label?: ReactNode;
14
15
  info?: ReactNode;