@1money/component-ui 0.0.42-alpha.0 → 0.0.42-alpha.2

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.
@@ -15,6 +15,7 @@ var _Icons = require("../Icons");
15
15
  var _Spinner = require("../Spinner");
16
16
  var _Typography = require("../Typography");
17
17
  var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
18
+ var _useFloatingAnimation2 = require("../../hooks/useFloatingAnimation");
18
19
  var _SelectFieldShell = _interopRequireDefault(require("./SelectFieldShell"));
19
20
  var _SelectOptionContent = _interopRequireDefault(require("./SelectOptionContent"));
20
21
  var _SelectSearchControl = _interopRequireDefault(require("./SelectSearchControl"));
@@ -84,6 +85,7 @@ var Select = exports.Select = function Select(props) {
84
85
  optionClassName = props.optionClassName,
85
86
  _props$listMaxHeight = props.listMaxHeight,
86
87
  listMaxHeight = _props$listMaxHeight === void 0 ? DEFAULT_MAX_HEIGHT : _props$listMaxHeight,
88
+ animation = props.animation,
87
89
  onChange = props.onChange,
88
90
  onOpenChange = props.onOpenChange,
89
91
  onSearchChange = props.onSearchChange,
@@ -161,6 +163,7 @@ var Select = exports.Select = function Select(props) {
161
163
  onOpenChange: handleOpenChange,
162
164
  placement: 'bottom-start',
163
165
  whileElementsMounted: _react.autoUpdate,
166
+ transform: false,
164
167
  middleware: [(0, _react.offset)(0), (0, _react.flip)({
165
168
  padding: 8
166
169
  }), (0, _react.shift)({
@@ -180,7 +183,16 @@ var Select = exports.Select = function Select(props) {
180
183
  }),
181
184
  refs = _useFloating.refs,
182
185
  floatingStyles = _useFloating.floatingStyles,
183
- context = _useFloating.context;
186
+ context = _useFloating.context,
187
+ resolvedPlacement = _useFloating.placement;
188
+ var resolvedAnimation = (0, _react2.useMemo)(function () {
189
+ return animation === false ? false : Object.assign({
190
+ kind: 'height'
191
+ }, animation !== null && animation !== void 0 ? animation : {});
192
+ }, [animation]);
193
+ var _useFloatingAnimation = (0, _useFloatingAnimation2.useFloatingAnimation)(context, resolvedPlacement, resolvedAnimation),
194
+ isMounted = _useFloatingAnimation.isMounted,
195
+ transitionStyles = _useFloatingAnimation.styles;
184
196
  var setReference = (0, _hooks.useEventCallback)(function (node) {
185
197
  refs.setReference(node);
186
198
  handleTriggerRef(node);
@@ -486,7 +498,7 @@ var Select = exports.Select = function Select(props) {
486
498
  color: "currentColor"
487
499
  })
488
500
  })]
489
- })), innerOpen && !disabled && function () {
501
+ })), isMounted && !disabled && function () {
490
502
  var panelNode = (0, _jsxRuntime.jsx)(_react.FloatingFocusManager, {
491
503
  context: context,
492
504
  modal: false,
@@ -495,7 +507,7 @@ var Select = exports.Select = function Select(props) {
495
507
  children: (0, _jsxRuntime.jsxs)("div", Object.assign({}, getFloatingProps({
496
508
  ref: setFloating,
497
509
  className: (0, _classnames.joinCls)(classes('panel'), panelClassName),
498
- style: floatingStyles
510
+ style: Object.assign(Object.assign({}, floatingStyles), transitionStyles)
499
511
  }), {
500
512
  children: [searchable && (0, _jsxRuntime.jsx)(_SelectSearchControl["default"], {
501
513
  ref: searchInputRef,
@@ -582,4 +594,4 @@ var Select = exports.Select = function Select(props) {
582
594
  };
583
595
  Select.displayName = 'Select';
584
596
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
585
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwiZXhwb3J0cyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkb3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwiX3Byb3BzJGNsZWFyYWJsZSIsImNsZWFyYWJsZSIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlclZhbHVlIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lck9wZW4iLCJzZXRJbm5lck9wZW4iLCJfdXNlQ29udHJvbGxlZFN0YXRlNSIsIl91c2VDb250cm9sbGVkU3RhdGU2IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwidXNlTWVtbyIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsInVzZVJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsImF1dG9VcGRhdGUiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImZsb2F0aW5nU2l6ZSIsImFwcGx5IiwiX3JlZiIsInJlY3RzIiwiZWxlbWVudHMiLCJhdmFpbGFibGVIZWlnaHQiLCJuZXh0TWF4SGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImFzc2lnbiIsImZsb2F0aW5nIiwid2lkdGgiLCJjb25jYXQiLCJyZWZlcmVuY2UiLCJtYXhIZWlnaHQiLCJyZWZzIiwiZmxvYXRpbmdTdHlsZXMiLCJjb250ZXh0Iiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJyb2xlIiwidXNlUm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwibG9vcCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVDbGVhciIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImluY2x1ZGVzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiS0VZQk9BUkQiLCJFTlRFUiIsIlNQQUNFIiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwiX2MiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImljb25TaXplIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJfanN4cyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsInR5cGUiLCJvbktleURvd24iLCJfanN4IiwiU2VsZWN0VmFsdWVDb250ZW50Iiwib25SZW1vdmUiLCJvblJlbW92ZUNsaWNrIiwib25SZW1vdmVNb3VzZURvd24iLCJvbk1vdXNlRG93biIsIm9uQ2xpY2siLCJJY29ucyIsImNvbG9yIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwicGFuZWxOb2RlIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFnQkEsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUixPQUFBO0FBZ0JBLElBQUFTLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBRCxzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQVksb0JBQUEsR0FBQUYsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFhLG1CQUFBLEdBQUFILHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBYyxVQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSxNQUFBLEdBQUFmLE9BQUE7QUFhQUEsT0FBQTtBQUFpQixTQUFBZ0IseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFULHdCQUFBUyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxD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TSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIG9mZnNldCwgc2hpZnQsIHNpemUgYXMgZmxvYXRpbmdTaXplLCB1c2VDbGljaywgdXNlRGlzbWlzcywgdXNlRmxvYXRpbmcsIHVzZUludGVyYWN0aW9ucywgdXNlTGlzdE5hdmlnYXRpb24sIHVzZVJvbGUsIHVzZVR5cGVhaGVhZCwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBjbGVhcmFibGUgPSBmYWxzZSwgcGFuZWxDbGFzc05hbWUsIG9wdGlvbkNsYXNzTmFtZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJPcGVuLCBzZXRJbm5lck9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRPcGVuLCBvcGVuKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsXG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICBvZmZzZXQoMCksXG4gICAgICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIGZsb2F0aW5nU2l6ZSh7XG4gICAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMsIGF2YWlsYWJsZUhlaWdodCB9KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRNYXhIZWlnaHQgPSBNYXRoLm1heCgxMjAsIE1hdGgubWluKGxpc3RNYXhIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7bmV4dE1heEhlaWdodH1weGAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWZlcmVuY2UgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBoYW5kbGVUcmlnZ2VyUmVmKG5vZGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZsb2F0aW5nID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldEZsb2F0aW5nKG5vZGUpO1xuICAgICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCBjbGljayA9IHVzZUNsaWNrKGNvbnRleHQsIHsgZW5hYmxlZDogIWRpc2FibGVkIH0pO1xuICAgIGNvbnN0IGRpc21pc3MgPSB1c2VEaXNtaXNzKGNvbnRleHQsIHsgZW5hYmxlZDogIWRpc2FibGVkLCBvdXRzaWRlUHJlc3NFdmVudDogJ21vdXNlZG93bicgfSk7XG4gICAgY29uc3Qgcm9sZSA9IHVzZVJvbGUoY29udGV4dCwgeyByb2xlOiAnc2VsZWN0JyB9KTtcbiAgICBjb25zdCBsaXN0TmF2aWdhdGlvbiA9IHVzZUxpc3ROYXZpZ2F0aW9uKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIG9uTmF2aWdhdGU6IHNldEFjdGl2ZUluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4sXG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgdHlwZWFoZWFkID0gdXNlVHlwZWFoZWFkKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZjogbGlzdENvbnRlbnRSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4gJiYgIXNlYXJjaGFibGUsXG4gICAgICAgIG9uTWF0Y2g6IHNldEFjdGl2ZUluZGV4LFxuICAgIH0pO1xuICAgIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgY2xpY2ssXG4gICAgICAgIGRpc21pc3MsXG4gICAgICAgIHJvbGUsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBsYXN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5uZXJPcGVuICYmIHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIChfYSA9IHNlYXJjaElucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUNsZWFyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKFtdLCBbXSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gJiYgZmlyc3RFbmFibGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGZpcnN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFtmaXJzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVAgJiYgbGFzdEVuYWJsZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGxhc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9iID0gbGlzdFJlZi5jdXJyZW50W2xhc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlTGFiZWxDbGFzcyA9IGhhc1NlbGVjdGlvbiA/ICd2YWx1ZScgOiAncGxhY2Vob2xkZXInO1xuICAgIGNvbnN0IGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCA9IChtdWx0aXBsZSAmJlxuICAgICAgICBoYXNTZWxlY3Rpb24gJiZcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyA9PT0gdW5kZWZpbmVkKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaW5uZXJPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1tdWx0aXBsZS1maWxsZWQnKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ3NtYWxsJyA/IDE2IDogMjA7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW1xuICAgICAgICBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uSWQgOiBudWxsLFxuICAgICAgICBmZWVkYmFjayA/IGZlZWRiYWNrSWQgOiBudWxsLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIGNsZWFyYWJsZSAmJiBoYXNTZWxlY3Rpb24gJiYgIWRpc2FibGVkICYmICFsb2FkaW5nICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY2xlYXInKSwgcm9sZTogXCJidXR0b25cIiwgXCJhcmlhLWxhYmVsXCI6IFwiQ2xlYXJcIiwgb25Nb3VzZURvd246IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBvbkNsaWNrOiBoYW5kbGVDbGVhciwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjcm9zc1wiLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSkpLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KV0gfSkpLCBpbm5lck9wZW4gJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGZsb2F0aW5nU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW3NlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
597
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uMiIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9TZWxlY3RPcHRpb25Db250ZW50IiwiX1NlbGVjdFNlYXJjaENvbnRyb2wiLCJfU2VsZWN0VmFsdWVDb250ZW50IiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsIl9wcm9wcyRjbGVhcmFibGUiLCJjbGVhcmFibGUiLCJwYW5lbENsYXNzTmFtZSIsIm9wdGlvbkNsYXNzTmFtZSIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsImFuaW1hdGlvbiIsIm9uQ2hhbmdlIiwib25PcGVuQ2hhbmdlIiwib25TZWFyY2hDaGFuZ2UiLCJvbkJsdXIiLCJmaWx0ZXJPcHRpb24iLCJyZW5kZXJPcHRpb24iLCJyZW5kZXJWYWx1ZSIsInJlZiIsImNsYXNzZXMiLCJyb290Q2xhc3NuYW1lcyIsImF1dG9JZCIsInVzZUlkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTUiLCJfdXNlQ29udHJvbGxlZFN0YXRlNiIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwibm9ybWFsaXplU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsInVzZU1lbW8iLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJ1c2VSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsImhhbmRsZU9wZW5DaGFuZ2UiLCJuZXh0T3BlbiIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwicGxhY2VtZW50Iiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJhdXRvVXBkYXRlIiwidHJhbnNmb3JtIiwibWlkZGxld2FyZSIsIm9mZnNldCIsImZsaXAiLCJwYWRkaW5nIiwic2hpZnQiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYiLCJyZWN0cyIsImVsZW1lbnRzIiwiYXZhaWxhYmxlSGVpZ2h0IiwibmV4dE1heEhlaWdodCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJhc3NpZ24iLCJmbG9hdGluZyIsIndpZHRoIiwiY29uY2F0IiwicmVmZXJlbmNlIiwibWF4SGVpZ2h0IiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwicmVzb2x2ZWRBbmltYXRpb24iLCJraW5kIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uIiwidXNlRmxvYXRpbmdBbmltYXRpb24iLCJpc01vdW50ZWQiLCJ0cmFuc2l0aW9uU3R5bGVzIiwic3R5bGVzIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJyb2xlIiwidXNlUm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwibG9vcCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVDbGVhciIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImluY2x1ZGVzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiS0VZQk9BUkQiLCJFTlRFUiIsIlNQQUNFIiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwiX2MiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImljb25TaXplIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJfanN4cyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsInR5cGUiLCJvbktleURvd24iLCJfanN4IiwiU2VsZWN0VmFsdWVDb250ZW50Iiwib25SZW1vdmUiLCJvblJlbW92ZUNsaWNrIiwib25SZW1vdmVNb3VzZURvd24iLCJvbk1vdXNlRG93biIsIm9uQ2xpY2siLCJJY29ucyIsImNvbG9yIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwicGFuZWxOb2RlIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFnQkEsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUixPQUFBO0FBQ0EsSUFBQVMsc0JBQUEsR0FBQVQsT0FBQTtBQWdCQSxJQUFBVSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBWCxPQUFBO0FBQ0EsSUFBQVksb0JBQUEsR0FBQUQsc0JBQUEsQ0FBQVgsT0FBQTtBQUNBLElBQUFhLG9CQUFBLEdBQUFGLHNCQUFBLENBQUFYLE9BQUE7QUFDQSxJQUFBYyxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBWCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLE1BQUEsR0FBQWhCLE9BQUE7QUFhQUEsT0FBQTtBQUFpQixTQUFBaUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFB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b0JEL1NRLENDZ1RqQixDQUFDLEVBQUE7c0JBQUE2QyxRQUFBLEVBRUR4TCxZQUFZLEdBQ1hBLFlBQVksQ0FBQytDLE1BQU0sRUFBRTBLLFVBQVUsQ0FBQyxHQUVoQyxJQUFBOUIsZUFBQSxFQUFDaUMsK0JBQW1CLEVBQUE7d0JBQ2xCek4sT0FBTyxFQUFFQSxPQUFPO3dCQUNoQjRDLE1BQU0sRUFBRUEsTUFBTTt3QkFDZHVLLFFBQVEsRUFBRUE7c0JBQVEsQ0FBQTtvQkFFckIsQ0FBQSxDQUFBLEtBQUFqSSxNQUFBLENBbENPNEgsS0FBSyxDQUFDckQsR0FBRyxPQUFBdkUsTUFBQSxDQUFJdEMsTUFBTSxDQUFDbkcsS0FBSyxDQUFFLENBbUM1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQTlETXFRLEtBQUssQ0FBQ3JELEdBQUcsQ0ErRGI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUM7VUFDSCxDQUFBLENBQ0csRUFDTGhMLFdBQVcsSUFBSSxJQUFJLElBQ2xCLElBQUErTSxlQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUszUCxTQUFTLEVBQUVtRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFxTCxRQUFBLEVBQUc1TTtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUcsSUFBQTBNLGVBQUEsRUFBQ2tDLHFCQUFjLEVBQUE7UUFBQXJDLFFBQUEsRUFBRWM7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEMVEsTUFBTSxDQUFDa1MsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUFsUyxPQUFBLDJCQUVmLElBQUFtUyxZQUFJLEVBQUNwUyxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRmxvYXRpbmdBbmltYXRpb24nO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgY2xlYXJhYmxlID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJPcGVuLCBzZXRJbm5lck9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRPcGVuLCBvcGVuKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCwgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsXG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgICAgICB0cmFuc2Zvcm06IGZhbHNlLFxuICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICBvZmZzZXQoMCksXG4gICAgICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIGZsb2F0aW5nU2l6ZSh7XG4gICAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMsIGF2YWlsYWJsZUhlaWdodCB9KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRNYXhIZWlnaHQgPSBNYXRoLm1heCgxMjAsIE1hdGgubWluKGxpc3RNYXhIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7bmV4dE1heEhlaWdodH1weGAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCByZXNvbHZlZEFuaW1hdGlvbiA9IHVzZU1lbW8oKCkgPT4gKGFuaW1hdGlvbiA9PT0gZmFsc2UgPyBmYWxzZSA6IE9iamVjdC5hc3NpZ24oeyBraW5kOiAnaGVpZ2h0JyB9LCAoYW5pbWF0aW9uICE9PSBudWxsICYmIGFuaW1hdGlvbiAhPT0gdm9pZCAwID8gYW5pbWF0aW9uIDoge30pKSksIFthbmltYXRpb25dKTtcbiAgICBjb25zdCB7IGlzTW91bnRlZCwgc3R5bGVzOiB0cmFuc2l0aW9uU3R5bGVzIH0gPSB1c2VGbG9hdGluZ0FuaW1hdGlvbihjb250ZXh0LCByZXNvbHZlZFBsYWNlbWVudCwgcmVzb2x2ZWRBbmltYXRpb24pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQsIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6ICdzZWxlY3QnIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGljayxcbiAgICAgICAgZGlzbWlzcyxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGxhc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbm5lck9wZW4gJiYgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgKF9hID0gc2VhcmNoSW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2xlYXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UoW10sIFtdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiAmJiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoZmlyc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2ZpcnN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCAmJiBsYXN0RW5hYmxlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobGFzdEVuYWJsZWRJbmRleCk7XG4gICAgICAgICAgICAoX2IgPSBsaXN0UmVmLmN1cnJlbnRbbGFzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgY2xlYXJhYmxlICYmIGhhc1NlbGVjdGlvbiAmJiAhZGlzYWJsZWQgJiYgIWxvYWRpbmcgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjbGVhcicpLCByb2xlOiBcImJ1dHRvblwiLCBcImFyaWEtbGFiZWxcIjogXCJDbGVhclwiLCBvbk1vdXNlRG93bjogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQ2xpY2s6IGhhbmRsZUNsZWFyLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiBcImNyb3NzXCIsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSB9KSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nID8gKF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSkpIDogKF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkpIH0pXSB9KSksIGlzTW91bnRlZCAmJiAhZGlzYWJsZWQgJiYgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbE5vZGUgPSAoX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdwYW5lbCcpLCBwYW5lbENsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIHRyYW5zaXRpb25TdHlsZXMpLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW3NlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,4 +1,5 @@
1
1
  import type { CSSProperties, FocusEvent, HTMLAttributes, ReactNode, RefObject } from 'react';
2
+ import type { FloatingAnimation } from "../../hooks/useFloatingAnimation";
2
3
  export declare const SELECT_SIZES: readonly ["large", "small"];
3
4
  export declare const SELECT_STATUSES: readonly ["default", "error", "warning", "success"];
4
5
  export declare const SELECT_VARIANTS: readonly ["fill", "stroke", "frameless"];
@@ -79,6 +80,11 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
79
80
  panelClassName?: string;
80
81
  optionClassName?: string;
81
82
  listMaxHeight?: number;
83
+ /**
84
+ * Open/close animation. Default `{ duration: { open: 150, close: 100 }, initialScale: 0.96 }`.
85
+ * Set to `false` to disable animation entirely (panel appears/disappears instantly).
86
+ */
87
+ animation?: FloatingAnimation;
82
88
  onChange?: (value: SelectValue, option?: SelectOption | SelectOption[]) => void;
83
89
  onOpenChange?: (open: boolean) => void;
84
90
  onSearchChange?: (value: string) => void;
@@ -7,4 +7,4 @@ exports.SELECT_VARIANTS = exports.SELECT_STATUSES = exports.SELECT_SIZES = void
7
7
  var SELECT_SIZES = exports.SELECT_SIZES = ['large', 'small'];
8
8
  var SELECT_STATUSES = exports.SELECT_STATUSES = ['default', 'error', 'warning', 'success'];
9
9
  var SELECT_VARIANTS = exports.SELECT_VARIANTS = ['fill', 'stroke', 'frameless'];
10
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJleHBvcnRzIiwiU0VMRUNUX1NUQVRVU0VTIiwiU0VMRUNUX1ZBUklBTlRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFTyxJQUFNQSxZQUFZLEdBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBVTtBQUNoRCxJQUFNRSxlQUFlLEdBQUFELE9BQUEsQ0FBQUMsZUFBQSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFVO0FBQzNFLElBQU1DLGVBQWUsR0FBQUYsT0FBQSxDQUFBRSxlQUFBLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBVSIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9pbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
10
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6WyJTRUxFQ1RfU0laRVMiLCJleHBvcnRzIiwiU0VMRUNUX1NUQVRVU0VTIiwiU0VMRUNUX1ZBUklBTlRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHTyxJQUFNQSxZQUFZLEdBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBVTtBQUNoRCxJQUFNRSxlQUFlLEdBQUFELE9BQUEsQ0FBQUMsZUFBQSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFVO0FBQzNFLElBQU1DLGVBQWUsR0FBQUYsT0FBQSxDQUFBRSxlQUFBLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBVSIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9pbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -14,6 +14,7 @@ var _react = require("@floating-ui/react");
14
14
  var _react2 = _interopRequireWildcard(require("react"));
15
15
  var _hooks = require("@1money/hooks");
16
16
  var _classnames = require("../../utils/classnames");
17
+ var _useFloatingAnimation2 = require("../../hooks/useFloatingAnimation");
17
18
  require("./style");
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -60,6 +61,7 @@ var Trigger = function Trigger(_ref) {
60
61
  autoReposition = _ref$autoReposition === void 0 ? true : _ref$autoReposition,
61
62
  _ref$matchTriggerWidt = _ref.matchTriggerWidth,
62
63
  matchTriggerWidth = _ref$matchTriggerWidt === void 0 ? false : _ref$matchTriggerWidt,
64
+ animation = _ref.animation,
63
65
  ref = _ref.ref;
64
66
  var arrowRef = (0, _react2.useRef)(null);
65
67
  var triggers = (0, _react2.useMemo)(function () {
@@ -79,8 +81,16 @@ var Trigger = function Trigger(_ref) {
79
81
  onClose === null || onClose === void 0 ? void 0 : onClose();
80
82
  }
81
83
  });
84
+ var offsetIsObject = (0, _typeof2["default"])(offset) === 'object' && offset !== null;
85
+ var offsetMainAxis = offsetIsObject ? offset.mainAxis : offset;
86
+ var offsetCrossAxis = offsetIsObject ? offset.crossAxis : undefined;
87
+ var offsetAlignmentAxis = offsetIsObject ? offset.alignmentAxis : undefined;
82
88
  var middleware = (0, _react2.useMemo)(function () {
83
- return [(0, _react.offset)(offset), (0, _react.flip)({
89
+ return [(0, _react.offset)({
90
+ mainAxis: offsetMainAxis,
91
+ crossAxis: offsetCrossAxis,
92
+ alignmentAxis: offsetAlignmentAxis
93
+ }), (0, _react.flip)({
84
94
  padding: 8
85
95
  }), (0, _react.shift)({
86
96
  padding: 8
@@ -96,13 +106,14 @@ var Trigger = function Trigger(_ref) {
96
106
  });
97
107
  }
98
108
  })] : []));
99
- }, [offset, matchTriggerWidth]);
109
+ }, [offsetMainAxis, offsetCrossAxis, offsetAlignmentAxis, matchTriggerWidth]);
100
110
  var _useFloating = (0, _react.useFloating)({
101
111
  open: innerOpen,
102
112
  onOpenChange: handleOpenChange,
103
113
  placement: placement,
104
114
  whileElementsMounted: autoReposition ? _react.autoUpdate : undefined,
105
- middleware: middleware
115
+ middleware: middleware,
116
+ transform: false
106
117
  }),
107
118
  refs = _useFloating.refs,
108
119
  floatingStyles = _useFloating.floatingStyles,
@@ -147,6 +158,9 @@ var Trigger = function Trigger(_ref) {
147
158
  var closePanel = (0, _react2.useCallback)(function () {
148
159
  return handleOpenChange(false);
149
160
  }, [handleOpenChange]);
161
+ var _useFloatingAnimation = (0, _useFloatingAnimation2.useFloatingAnimation)(context, resolvedPlacement, animation),
162
+ isMounted = _useFloatingAnimation.isMounted,
163
+ transitionStyles = _useFloatingAnimation.styles;
150
164
  var arrowData = context.middlewareData.arrow;
151
165
  var arrowVars = Object.assign(Object.assign({}, (arrowData === null || arrowData === void 0 ? void 0 : arrowData.x) != null && {
152
166
  '--arrow-x': "".concat(arrowData.x, "px")
@@ -155,7 +169,7 @@ var Trigger = function Trigger(_ref) {
155
169
  });
156
170
  var panel = (0, _jsxRuntime.jsxs)("div", Object.assign({
157
171
  ref: refs.setFloating,
158
- style: Object.assign(Object.assign(Object.assign({}, floatingStyles), arrowVars), overlayStyle),
172
+ style: Object.assign(Object.assign(Object.assign(Object.assign({}, floatingStyles), arrowVars), transitionStyles), overlayStyle),
159
173
  className: (0, _classnames.joinCls)("".concat(PREFIX, "-panel"), overlayClassName),
160
174
  "data-placement": resolvedPlacement,
161
175
  "data-side": placementMeta.side,
@@ -180,10 +194,10 @@ var Trigger = function Trigger(_ref) {
180
194
  }) : content]
181
195
  }));
182
196
  return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
183
- children: [/*#__PURE__*/(0, _react2.cloneElement)(children, referenceProps), innerOpen && (portal ? (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
197
+ children: [/*#__PURE__*/(0, _react2.cloneElement)(children, referenceProps), isMounted && (portal ? (0, _jsxRuntime.jsx)(_react.FloatingPortal, {
184
198
  children: panel
185
199
  }) : panel)]
186
200
  });
187
201
  };
188
202
  var _default = exports["default"] = Trigger;
189
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UcmlnZ2VyL1RyaWdnZXIudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9ob29rcyIsIl9jbGFzc25hbWVzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlBSRUZJWCIsIm5vcm1hbGl6ZVRyaWdnZXIiLCJ0cmlnZ2VyIiwiQXJyYXkiLCJpc0FycmF5Iiwic2V0UmVmIiwicmVmIiwibm9kZSIsIl90eXBlb2YyIiwiY3VycmVudCIsIlRyaWdnZXIiLCJfcmVmIiwiY29udGVudCIsIl9yZWYkdHJpZ2dlciIsIl9yZWYkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIl9yZWYkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9yZWYkc2hvd0Fycm93Iiwic2hvd0Fycm93IiwiX3JlZiRvZmZzZXQiLCJvZmZzZXQiLCJfcmVmJHBvcnRhbCIsInBvcnRhbCIsIl9yZWYkZGlzbWlzc2libGUiLCJkaXNtaXNzaWJsZSIsImhvdmVyRGVsYXkiLCJvdmVybGF5Q2xhc3NOYW1lIiwib3ZlcmxheVN0eWxlIiwiY2hpbGRyZW4iLCJfcmVmJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJvbk9wZW4iLCJvbkNsb3NlIiwiX3JlZiRyb2xlIiwicm9sZSIsIl9yZWYkYXV0b1JlcG9zaXRpb24iLCJhdXRvUmVwb3NpdGlvbiIsIl9yZWYkbWF0Y2hUcmlnZ2VyV2lkdCIsIm1hdGNoVHJpZ2dlcldpZHRoIiwiYXJyb3dSZWYiLCJ1c2VSZWYiLCJ0cmlnZ2VycyIsInVzZU1lbW8iLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lck9wZW4iLCJzZXRJbm5lck9wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwidXNlRXZlbnRDYWxsYmFjayIsIm5leHRPcGVuIiwibWlkZGxld2FyZSIsImZsb2F0aW5nT2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImFycm93IiwiZWxlbWVudCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYyIiwicmVjdHMiLCJlbGVtZW50cyIsImFzc2lnbiIsImZsb2F0aW5nIiwic3R5bGUiLCJ3aWR0aCIsInJlZmVyZW5jZSIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJhdXRvVXBkYXRlIiwidW5kZWZpbmVkIiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwiY2xpY2tJbnRlcmFjdGlvbiIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImluY2x1ZGVzIiwiaG92ZXJJbnRlcmFjdGlvbiIsInVzZUhvdmVyIiwiZGVsYXkiLCJmb2N1c0ludGVyYWN0aW9uIiwidXNlRm9jdXMiLCJkaXNtaXNzSW50ZXJhY3Rpb24iLCJ1c2VEaXNtaXNzIiwicm9sZUludGVyYWN0aW9uIiwidXNlUm9sZSIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJjb21wb3NlZFJlZiIsInVzZUNhbGxiYWNrIiwic2V0UmVmZXJlbmNlIiwicmVmZXJlbmNlUHJvcHMiLCJwbGFjZW1lbnRNZXRhIiwiX3NwbGl0Iiwic3BsaXQiLCJfc3BsaXQyIiwic2lkZSIsImFsaWduIiwiY2xvc2VQYW5lbCIsImFycm93RGF0YSIsIm1pZGRsZXdhcmVEYXRhIiwiYXJyb3dWYXJzIiwieCIsInkiLCJwYW5lbCIsIl9qc3hzIiwic2V0RmxvYXRpbmciLCJjbGFzc05hbWUiLCJqb2luQ2xzIiwiX2pzeCIsIkZsb2F0aW5nQXJyb3ciLCJwb3NpdGlvbiIsImhlaWdodCIsInBvaW50ZXJFdmVudHMiLCJ2aXNpYmlsaXR5IiwiY2xvc2UiLCJfRnJhZ21lbnQiLCJjbG9uZUVsZW1lbnQiLCJGbG9hdGluZ1BvcnRhbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFpQkEsSUFBQUUsT0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBR0FBLE9BQUE7QUFBaUIsU0FBQU0seUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLFFBQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAs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Q0FBQSxDQUFFLEVBQUE7SUFBQXBFLFFBQUEsRUFBQSxDQUVyQlYsU0FBUyxHQUNSLElBQUFvRyxlQUFBLEVBQUNDLG9CQUFhLEVBQUE7TUFDWnBILEdBQUcsRUFBRW9DLFFBQWlEO01BQ3REdUMsT0FBTyxFQUFFQSxPQUFPO01BQ2hCc0MsU0FBUyxLQUFBekQsTUFBQSxDQUFLOUQsTUFBTTtJQUFRLENBQUEsQ0FDNUIsR0FFRixJQUFBeUgsZUFBQSxFQUFBLE1BQUEsRUFBQTtNQUNFbkgsR0FBRyxFQUFFb0MsUUFBbUQ7TUFDeEQ2QixLQUFLLEVBQUU7UUFDTG9ELFFBQVEsRUFBRSxVQUFVO1FBQ3BCbkQsS0FBSyxFQUFFLENBQUM7UUFDUm9ELE1BQU0sRUFBRSxDQUFDO1FBQ1RDLGFBQWEsRUFBRSxNQUFNO1FBQ3JCQyxVQUFVLEVBQUU7TURyRlI7SUNzRkwsQ0FBQSxDQUVKLEVBQ0EsT0FBT2xILE9BQU8sS0FBSyxVQUFVLEdBQzFCQSxPQUFPLENBQUM7TUFBRW1ILEtBQUssRUFBRWpCLFVBQVU7TUFBRTlGLElBQUksRUFBRWtDO0lBQVMsQ0FBRSxDQUFDLEdBQy9DdEMsT0FBTztFQUFBLENBQUEsQ0FBQSxDQUVkO0VBRUQsT0FDRSxJQUFBeUcsZ0JBQUEsRUFBQVcsb0JBQUEsRUFBQTtJQUFBakcsUUFBQSxFQUFBLGNBQ0csSUFBQWtHLG9CQUFZLEVBQUNsRyxRQUFRLEVBQUV3RSxjQUFjLENBQUMsRUFDdENyRCxTQUFTLEtBQUt6QixNQUFNLEdBQUcsSUFBQWdHLGVBQUEsRUFBQ1MscUJBQWMsRUFBQTtNQUFBbkcsUUFBQSxFQUFFcUY7SUFBSyxDQUFBLENBQWtCLEdBQUdBLEtBQUssQ0FBQztFQUFBLENBQUEsQ0FDeEU7QUFFUCxDQUFDO0FBQUMsSUFBQWUsUUFBQSxHQUFBQyxPQUFBLGNBRWExSCxPQUFPIiwiZmlsZSI6ImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXJyb3csIGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nQXJyb3csIEZsb2F0aW5nUG9ydGFsLCBvZmZzZXQgYXMgZmxvYXRpbmdPZmZzZXQsIHNoaWZ0LCBzaXplIGFzIGZsb2F0aW5nU2l6ZSwgdXNlQ2xpY2ssIHVzZURpc21pc3MsIHVzZUZsb2F0aW5nLCB1c2VGb2N1cywgdXNlSG92ZXIsIHVzZUludGVyYWN0aW9ucywgdXNlUm9sZSwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdvbS10cmlnZ2VyJztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlcikge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRyaWdnZXIpID8gdHJpZ2dlciA6IFt0cmlnZ2VyXTtcbn1cbmZ1bmN0aW9uIHNldFJlZihyZWYsIG5vZGUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYobm9kZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlZiAmJiB0eXBlb2YgcmVmID09PSAnb2JqZWN0JyAmJiAnY3VycmVudCcgaW4gcmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9XG59XG5jb25zdCBUcmlnZ2VyID0gKHsgY29udGVudCwgdHJpZ2dlciA9ICdjbGljaycsIHBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnLCBvcGVuLCBvbk9wZW5DaGFuZ2UsIGRlZmF1bHRPcGVuID0gZmFsc2UsIHNob3dBcnJvdyA9IGZhbHNlLCBvZmZzZXQgPSA0LCBwb3J0YWwgPSB0cnVlLCBkaXNtaXNzaWJsZSA9IHRydWUsIGhvdmVyRGVsYXksIG92ZXJsYXlDbGFzc05hbWUsIG92ZXJsYXlTdHlsZSwgY2hpbGRyZW4sIGRpc2FibGVkID0gZmFsc2UsIG9uT3Blbiwgb25DbG9zZSwgcm9sZSA9ICdkaWFsb2cnLCBhdXRvUmVwb3NpdGlvbiA9IHRydWUsIG1hdGNoVHJpZ2dlcldpZHRoID0gZmFsc2UsIHJlZiwgfSkgPT4ge1xuICAgIGNvbnN0IGFycm93UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVUcmlnZ2VyKHRyaWdnZXIpLCBbdHJpZ2dlcl0pO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IGhhbmRsZU9wZW5DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgICAgIGlmIChuZXh0T3Blbikge1xuICAgICAgICAgICAgb25PcGVuID09PSBudWxsIHx8IG9uT3BlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBvbkNsb3NlID09PSBudWxsIHx8IG9uQ2xvc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG1pZGRsZXdhcmUgPSB1c2VNZW1vKCgpID0+IFtcbiAgICAgICAgZmxvYXRpbmdPZmZzZXQob2Zmc2V0KSxcbiAgICAgICAgZmxpcCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgYXJyb3coeyBlbGVtZW50OiBhcnJvd1JlZiwgcGFkZGluZzogOCB9KSxcbiAgICAgICAgLi4uKG1hdGNoVHJpZ2dlcldpZHRoXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICBmbG9hdGluZ1NpemUoe1xuICAgICAgICAgICAgICAgICAgICBhcHBseSh7IHJlY3RzLCBlbGVtZW50cyB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3JlY3RzLnJlZmVyZW5jZS53aWR0aH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogW10pLFxuICAgIF0sIFtvZmZzZXQsIG1hdGNoVHJpZ2dlcldpZHRoXSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1JlcG9zaXRpb24gPyBhdXRvVXBkYXRlIDogdW5kZWZpbmVkLFxuICAgICAgICBtaWRkbGV3YXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrSW50ZXJhY3Rpb24gPSB1c2VDbGljayhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdjbGljaycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBob3ZlckludGVyYWN0aW9uID0gdXNlSG92ZXIoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiB0cmlnZ2Vycy5pbmNsdWRlcygnaG92ZXInKSAmJiAhZGlzYWJsZWQsXG4gICAgICAgIGRlbGF5OiBob3ZlckRlbGF5LFxuICAgIH0pO1xuICAgIGNvbnN0IGZvY3VzSW50ZXJhY3Rpb24gPSB1c2VGb2N1cyhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdmb2N1cycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBkaXNtaXNzSW50ZXJhY3Rpb24gPSB1c2VEaXNtaXNzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogZGlzbWlzc2libGUsXG4gICAgfSk7XG4gICAgY29uc3Qgcm9sZUludGVyYWN0aW9uID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGUgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgY2xpY2tJbnRlcmFjdGlvbixcbiAgICAgICAgaG92ZXJJbnRlcmFjdGlvbixcbiAgICAgICAgZm9jdXNJbnRlcmFjdGlvbixcbiAgICAgICAgZGlzbWlzc0ludGVyYWN0aW9uLFxuICAgICAgICByb2xlSW50ZXJhY3Rpb24sXG4gICAgXSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZnMuc2V0UmVmZXJlbmNlLCByZWZdKTtcbiAgICBjb25zdCByZWZlcmVuY2VQcm9wcyA9IGdldFJlZmVyZW5jZVByb3BzKHsgcmVmOiBjb21wb3NlZFJlZiB9KTtcbiAgICBjb25zdCBwbGFjZW1lbnRNZXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzaWRlLCBhbGlnbl0gPSAocmVzb2x2ZWRQbGFjZW1lbnQgIT09IG51bGwgJiYgcmVzb2x2ZWRQbGFjZW1lbnQgIT09IHZvaWQgMCA/IHJlc29sdmVkUGxhY2VtZW50IDogJ2JvdHRvbS1zdGFydCcpLnNwbGl0KCctJyk7XG4gICAgICAgIHJldHVybiB7IHNpZGUsIGFsaWduIH07XG4gICAgfSwgW3Jlc29sdmVkUGxhY2VtZW50XSk7XG4gICAgY29uc3QgY2xvc2VQYW5lbCA9IHVzZUNhbGxiYWNrKCgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpLCBbaGFuZGxlT3BlbkNoYW5nZV0pO1xuICAgIGNvbnN0IGFycm93RGF0YSA9IGNvbnRleHQubWlkZGxld2FyZURhdGEuYXJyb3c7XG4gICAgY29uc3QgYXJyb3dWYXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoKGFycm93RGF0YSA9PT0gbnVsbCB8fCBhcnJvd0RhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFycm93RGF0YS54KSAhPSBudWxsICYmIHsgJy0tYXJyb3cteCc6IGAke2Fycm93RGF0YS54fXB4YCB9KSksICgoYXJyb3dEYXRhID09PSBudWxsIHx8IGFycm93RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJyb3dEYXRhLnkpICE9IG51bGwgJiYgeyAnLS1hcnJvdy15JzogYCR7YXJyb3dEYXRhLnl9cHhgIH0pKTtcbiAgICBjb25zdCBwYW5lbCA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgcmVmOiByZWZzLnNldEZsb2F0aW5nLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgYXJyb3dWYXJzKSwgb3ZlcmxheVN0eWxlKSwgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1BSRUZJWH0tcGFuZWxgLCBvdmVybGF5Q2xhc3NOYW1lKSwgXCJkYXRhLXBsYWNlbWVudFwiOiByZXNvbHZlZFBsYWNlbWVudCwgXCJkYXRhLXNpZGVcIjogcGxhY2VtZW50TWV0YS5zaWRlLCBcImRhdGEtYWxpZ25cIjogcGxhY2VtZW50TWV0YS5hbGlnbiB9LCBnZXRGbG9hdGluZ1Byb3BzKCksIHsgY2hpbGRyZW46IFtzaG93QXJyb3cgPyAoX2pzeChGbG9hdGluZ0Fycm93LCB7IHJlZjogYXJyb3dSZWYsIGNvbnRleHQ6IGNvbnRleHQsIGNsYXNzTmFtZTogYCR7UFJFRklYfS1hcnJvd2AgfSkpIDogKF9qc3goXCJzcGFuXCIsIHsgcmVmOiBhcnJvd1JlZiwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgfSB9KSksIHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjb250ZW50KHsgY2xvc2U6IGNsb3NlUGFuZWwsIG9wZW46IGlubmVyT3BlbiB9KVxuICAgICAgICAgICAgICAgIDogY29udGVudF0gfSkpKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2Nsb25lRWxlbWVudChjaGlsZHJlbiwgcmVmZXJlbmNlUHJvcHMpLCBpbm5lck9wZW4gJiYgKHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsIH0pIDogcGFuZWwpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVHJpZ2dlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
203
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHJpZ2dlci9UcmlnZ2VyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9UcmlnZ2VyL1RyaWdnZXIudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9ob29rcyIsIl9jbGFzc25hbWVzIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uMiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJQUkVGSVgiLCJub3JtYWxpemVUcmlnZ2VyIiwidHJpZ2dlciIsIkFycmF5IiwiaXNBcnJheSIsInNldFJlZiIsInJlZiIsIm5vZGUiLCJfdHlwZW9mMiIsImN1cnJlbnQiLCJUcmlnZ2VyIiwiX3JlZiIsImNvbnRlbnQiLCJfcmVmJHRyaWdnZXIiLCJfcmVmJHBsYWNlbWVudCIsInBsYWNlbWVudCIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJfcmVmJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcmVmJHNob3dBcnJvdyIsInNob3dBcnJvdyIsIl9yZWYkb2Zmc2V0Iiwib2Zmc2V0IiwiX3JlZiRwb3J0YWwiLCJwb3J0YWwiLCJfcmVmJGRpc21pc3NpYmxlIiwiZGlzbWlzc2libGUiLCJob3ZlckRlbGF5Iiwib3ZlcmxheUNsYXNzTmFtZSIsIm92ZXJsYXlTdHlsZSIsImNoaWxkcmVuIiwiX3JlZiRkaXNhYmxlZCIsImRpc2FibGVkIiwib25PcGVuIiwib25DbG9zZSIsIl9yZWYkcm9sZSIsInJvbGUiLCJfcmVmJGF1dG9SZXBvc2l0aW9uIiwiYXV0b1JlcG9zaXRpb24iLCJfcmVmJG1hdGNoVHJpZ2dlcldpZHQiLCJtYXRjaFRyaWdnZXJXaWR0aCIsImFuaW1hdGlvbiIsImFycm93UmVmIiwidXNlUmVmIiwidHJpZ2dlcnMiLCJ1c2VNZW1vIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJuZXh0T3BlbiIsIm9mZnNldElzT2JqZWN0Iiwib2Zmc2V0TWFpbkF4aXMiLCJtYWluQXhpcyIsIm9mZnNldENyb3NzQXhpcyIsImNyb3NzQXhpcyIsInVuZGVmaW5lZCIsIm9mZnNldEFsaWdubWVudEF4aXMiLCJhbGlnbm1lbnRBeGlzIiwibWlkZGxld2FyZSIsImZsb2F0aW5nT2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImFycm93IiwiZWxlbWVudCIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYyIiwicmVjdHMiLCJlbGVtZW50cyIsImFzc2lnbiIsImZsb2F0aW5nIiwic3R5bGUiLCJ3aWR0aCIsInJlZmVyZW5jZSIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJhdXRvVXBkYXRlIiwidHJhbnNmb3JtIiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwiY2xpY2tJbnRlcmFjdGlvbiIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImluY2x1ZGVzIiwiaG92ZXJJbnRlcmFjdGlvbiIsInVzZUhvdmVyIiwiZGVsYXkiLCJmb2N1c0ludGVyYWN0aW9uIiwidXNlRm9jdXMiLCJkaXNtaXNzSW50ZXJhY3Rpb24iLCJ1c2VEaXNtaXNzIiwicm9sZUludGVyYWN0aW9uIiwidXNlUm9sZSIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJjb21wb3NlZFJlZiIsInVzZUNhbGxiYWNrIiwic2V0UmVmZXJlbmNlIiwicmVmZXJlbmNlUHJvcHMiLCJwbGFjZW1lbnRNZXRhIiwiX3NwbGl0Iiwic3BsaXQiLCJfc3BsaXQyIiwic2lkZSIsImFsaWduIiwiY2xvc2VQYW5lbCIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbiIsInVzZUZsb2F0aW5nQW5pbWF0aW9uIiwiaXNNb3VudGVkIiwidHJhbnNpdGlvblN0eWxlcyIsInN0eWxlcyIsImFycm93RGF0YSIsIm1pZGRsZXdhcmVEYXRhIiwiYXJyb3dWYXJzIiwieCIsInkiLCJwYW5lbCIsIl9qc3hzIiwic2V0RmxvYXRpbmciLCJjbGFzc05hbWUiLCJqb2luQ2xzIiwiX2pzeCIsIkZsb2F0aW5nQXJyb3ciLCJwb3NpdGlvbiIsImhlaWdodCIsInBvaW50ZXJFdmVudHMiLCJ2aXNpYmlsaXR5IiwiY2xvc2UiLCJfRnJhZ21lbnQiLCJjbG9uZUVsZW1lbnQiLCJGbG9hdGluZ1BvcnRhbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFpQkEsSUFBQUUsT0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sc0JBQUEsR0FBQU4sT0FBQTtBQUdBQSxPQUFBO0FBQWlCLFNBQUFPLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FB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RUFBQTtJQUFBN0UsUUFBQSxFQUFBLENBRXJCVixTQUFTLEdBQ1IsSUFBQWtILGVBQUEsRUFBQ0Msb0JBQWEsRUFBQTtNQUNabEksR0FBRyxFQUFFcUMsUUFBaUQ7TUFDdEQrQyxPQUFPLEVBQUVBLE9BQU87TUFDaEIyQyxTQUFTLEtBQUE5RCxNQUFBLENBQUt2RSxNQUFNO0lBQVEsQ0FBQSxDQUM1QixHQUVGLElBQUF1SSxlQUFBLEVBQUEsTUFBQSxFQUFBO01BQ0VqSSxHQUFHLEVBQUVxQyxRQUFtRDtNQUN4RHFDLEtBQUssRUFBRTtRQUNMeUQsUUFBUSxFQUFFLFVBQVU7UUFDcEJ4RCxLQUFLLEVBQUUsQ0FBQztRQUNSeUQsTUFBTSxFQUFFLENBQUM7UUFDVEMsYUFBYSxFQUFFLE1BQU07UUFDckJDLFVBQVUsRUFBRTtNRDVGUjtJQzZGTCxDQUFBLENBRUosRUFDQSxPQUFPaEksT0FBTyxLQUFLLFVBQVUsR0FDMUJBLE9BQU8sQ0FBQztNQUFFaUksS0FBSyxFQUFFdEIsVUFBVTtNQUFFdkcsSUFBSSxFQUFFbUM7SUFBUyxDQUFFLENBQUMsR0FDL0N2QyxPQUFPO0VBQUEsQ0FBQSxDQUFBLENBRWQ7RUFFRCxPQUNFLElBQUF1SCxnQkFBQSxFQUFBVyxvQkFBQSxFQUFBO0lBQUEvRyxRQUFBLEVBQUEsY0FDRyxJQUFBZ0gsb0JBQVksRUFBQ2hILFFBQVEsRUFBRWlGLGNBQWMsQ0FBQyxFQUN0Q1UsU0FBUyxLQUFLakcsTUFBTSxHQUFHLElBQUE4RyxlQUFBLEVBQUNTLHFCQUFjLEVBQUE7TUFBQWpILFFBQUEsRUFBRW1HO0lBQUssQ0FBQSxDQUFrQixHQUFHQSxLQUFLLENBQUM7RUFBQSxDQUFBLENBQ3hFO0FBRVAsQ0FBQztBQUFDLElBQUFlLFFBQUEsR0FBQUMsT0FBQSxjQUVheEksT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1RyaWdnZXIvVHJpZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFycm93LCBhdXRvVXBkYXRlLCBmbGlwLCBGbG9hdGluZ0Fycm93LCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0IGFzIGZsb2F0aW5nT2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlRm9jdXMsIHVzZUhvdmVyLCB1c2VJbnRlcmFjdGlvbnMsIHVzZVJvbGUsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCBSZWFjdCwgeyBjbG9uZUVsZW1lbnQsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRmxvYXRpbmdBbmltYXRpb24nO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdvbS10cmlnZ2VyJztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlcikge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRyaWdnZXIpID8gdHJpZ2dlciA6IFt0cmlnZ2VyXTtcbn1cbmZ1bmN0aW9uIHNldFJlZihyZWYsIG5vZGUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYobm9kZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlZiAmJiB0eXBlb2YgcmVmID09PSAnb2JqZWN0JyAmJiAnY3VycmVudCcgaW4gcmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9XG59XG5jb25zdCBUcmlnZ2VyID0gKHsgY29udGVudCwgdHJpZ2dlciA9ICdjbGljaycsIHBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnLCBvcGVuLCBvbk9wZW5DaGFuZ2UsIGRlZmF1bHRPcGVuID0gZmFsc2UsIHNob3dBcnJvdyA9IGZhbHNlLCBvZmZzZXQgPSA0LCBwb3J0YWwgPSB0cnVlLCBkaXNtaXNzaWJsZSA9IHRydWUsIGhvdmVyRGVsYXksIG92ZXJsYXlDbGFzc05hbWUsIG92ZXJsYXlTdHlsZSwgY2hpbGRyZW4sIGRpc2FibGVkID0gZmFsc2UsIG9uT3Blbiwgb25DbG9zZSwgcm9sZSA9ICdkaWFsb2cnLCBhdXRvUmVwb3NpdGlvbiA9IHRydWUsIG1hdGNoVHJpZ2dlcldpZHRoID0gZmFsc2UsIGFuaW1hdGlvbiwgcmVmLCB9KSA9PiB7XG4gICAgY29uc3QgYXJyb3dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlcnMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZVRyaWdnZXIodHJpZ2dlciksIFt0cmlnZ2VyXSk7XG4gICAgY29uc3QgW2lubmVyT3Blbiwgc2V0SW5uZXJPcGVuXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICAgICAgaWYgKG5leHRPcGVuKSB7XG4gICAgICAgICAgICBvbk9wZW4gPT09IG51bGwgfHwgb25PcGVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9uQ2xvc2UgPT09IG51bGwgfHwgb25DbG9zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgb2Zmc2V0SXNPYmplY3QgPSB0eXBlb2Ygb2Zmc2V0ID09PSAnb2JqZWN0JyAmJiBvZmZzZXQgIT09IG51bGw7XG4gICAgY29uc3Qgb2Zmc2V0TWFpbkF4aXMgPSBvZmZzZXRJc09iamVjdCA/IG9mZnNldC5tYWluQXhpcyA6IG9mZnNldDtcbiAgICBjb25zdCBvZmZzZXRDcm9zc0F4aXMgPSBvZmZzZXRJc09iamVjdCA/IG9mZnNldC5jcm9zc0F4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2Zmc2V0QWxpZ25tZW50QXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0LmFsaWdubWVudEF4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWlkZGxld2FyZSA9IHVzZU1lbW8oKCkgPT4gW1xuICAgICAgICBmbG9hdGluZ09mZnNldCh7XG4gICAgICAgICAgICBtYWluQXhpczogb2Zmc2V0TWFpbkF4aXMsXG4gICAgICAgICAgICBjcm9zc0F4aXM6IG9mZnNldENyb3NzQXhpcyxcbiAgICAgICAgICAgIGFsaWdubWVudEF4aXM6IG9mZnNldEFsaWdubWVudEF4aXMsXG4gICAgICAgIH0pLFxuICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICBhcnJvdyh7IGVsZW1lbnQ6IGFycm93UmVmLCBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAuLi4obWF0Y2hUcmlnZ2VyV2lkdGhcbiAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgIGZsb2F0aW5nU2l6ZSh7XG4gICAgICAgICAgICAgICAgICAgIGFwcGx5KHsgcmVjdHMsIGVsZW1lbnRzIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgXSwgW29mZnNldE1haW5BeGlzLCBvZmZzZXRDcm9zc0F4aXMsIG9mZnNldEFsaWdubWVudEF4aXMsIG1hdGNoVHJpZ2dlcldpZHRoXSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1JlcG9zaXRpb24gPyBhdXRvVXBkYXRlIDogdW5kZWZpbmVkLFxuICAgICAgICBtaWRkbGV3YXJlLFxuICAgICAgICB0cmFuc2Zvcm06IGZhbHNlLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrSW50ZXJhY3Rpb24gPSB1c2VDbGljayhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdjbGljaycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBob3ZlckludGVyYWN0aW9uID0gdXNlSG92ZXIoY29udGV4dCwge1xuICAgICAgICBlbmFibGVkOiB0cmlnZ2Vycy5pbmNsdWRlcygnaG92ZXInKSAmJiAhZGlzYWJsZWQsXG4gICAgICAgIGRlbGF5OiBob3ZlckRlbGF5LFxuICAgIH0pO1xuICAgIGNvbnN0IGZvY3VzSW50ZXJhY3Rpb24gPSB1c2VGb2N1cyhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IHRyaWdnZXJzLmluY2x1ZGVzKCdmb2N1cycpICYmICFkaXNhYmxlZCxcbiAgICB9KTtcbiAgICBjb25zdCBkaXNtaXNzSW50ZXJhY3Rpb24gPSB1c2VEaXNtaXNzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogZGlzbWlzc2libGUsXG4gICAgfSk7XG4gICAgY29uc3Qgcm9sZUludGVyYWN0aW9uID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGUgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgY2xpY2tJbnRlcmFjdGlvbixcbiAgICAgICAgaG92ZXJJbnRlcmFjdGlvbixcbiAgICAgICAgZm9jdXNJbnRlcmFjdGlvbixcbiAgICAgICAgZGlzbWlzc0ludGVyYWN0aW9uLFxuICAgICAgICByb2xlSW50ZXJhY3Rpb24sXG4gICAgXSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZnMuc2V0UmVmZXJlbmNlLCByZWZdKTtcbiAgICBjb25zdCByZWZlcmVuY2VQcm9wcyA9IGdldFJlZmVyZW5jZVByb3BzKHsgcmVmOiBjb21wb3NlZFJlZiB9KTtcbiAgICBjb25zdCBwbGFjZW1lbnRNZXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzaWRlLCBhbGlnbl0gPSAocmVzb2x2ZWRQbGFjZW1lbnQgIT09IG51bGwgJiYgcmVzb2x2ZWRQbGFjZW1lbnQgIT09IHZvaWQgMCA/IHJlc29sdmVkUGxhY2VtZW50IDogJ2JvdHRvbS1zdGFydCcpLnNwbGl0KCctJyk7XG4gICAgICAgIHJldHVybiB7IHNpZGUsIGFsaWduIH07XG4gICAgfSwgW3Jlc29sdmVkUGxhY2VtZW50XSk7XG4gICAgY29uc3QgY2xvc2VQYW5lbCA9IHVzZUNhbGxiYWNrKCgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpLCBbaGFuZGxlT3BlbkNoYW5nZV0pO1xuICAgIGNvbnN0IHsgaXNNb3VudGVkLCBzdHlsZXM6IHRyYW5zaXRpb25TdHlsZXMgfSA9IHVzZUZsb2F0aW5nQW5pbWF0aW9uKGNvbnRleHQsIHJlc29sdmVkUGxhY2VtZW50LCBhbmltYXRpb24pO1xuICAgIGNvbnN0IGFycm93RGF0YSA9IGNvbnRleHQubWlkZGxld2FyZURhdGEuYXJyb3c7XG4gICAgY29uc3QgYXJyb3dWYXJzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoKGFycm93RGF0YSA9PT0gbnVsbCB8fCBhcnJvd0RhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFycm93RGF0YS54KSAhPSBudWxsICYmIHsgJy0tYXJyb3cteCc6IGAke2Fycm93RGF0YS54fXB4YCB9KSksICgoYXJyb3dEYXRhID09PSBudWxsIHx8IGFycm93RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJyb3dEYXRhLnkpICE9IG51bGwgJiYgeyAnLS1hcnJvdy15JzogYCR7YXJyb3dEYXRhLnl9cHhgIH0pKTtcbiAgICBjb25zdCBwYW5lbCA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgcmVmOiByZWZzLnNldEZsb2F0aW5nLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCBhcnJvd1ZhcnMpLCB0cmFuc2l0aW9uU3R5bGVzKSwgb3ZlcmxheVN0eWxlKSwgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1BSRUZJWH0tcGFuZWxgLCBvdmVybGF5Q2xhc3NOYW1lKSwgXCJkYXRhLXBsYWNlbWVudFwiOiByZXNvbHZlZFBsYWNlbWVudCwgXCJkYXRhLXNpZGVcIjogcGxhY2VtZW50TWV0YS5zaWRlLCBcImRhdGEtYWxpZ25cIjogcGxhY2VtZW50TWV0YS5hbGlnbiB9LCBnZXRGbG9hdGluZ1Byb3BzKCksIHsgY2hpbGRyZW46IFtzaG93QXJyb3cgPyAoX2pzeChGbG9hdGluZ0Fycm93LCB7IHJlZjogYXJyb3dSZWYsIGNvbnRleHQ6IGNvbnRleHQsIGNsYXNzTmFtZTogYCR7UFJFRklYfS1hcnJvd2AgfSkpIDogKF9qc3goXCJzcGFuXCIsIHsgcmVmOiBhcnJvd1JlZiwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgfSB9KSksIHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjb250ZW50KHsgY2xvc2U6IGNsb3NlUGFuZWwsIG9wZW46IGlubmVyT3BlbiB9KVxuICAgICAgICAgICAgICAgIDogY29udGVudF0gfSkpKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2Nsb25lRWxlbWVudChjaGlsZHJlbiwgcmVmZXJlbmNlUHJvcHMpLCBpc01vdW50ZWQgJiYgKHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsIH0pIDogcGFuZWwpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVHJpZ2dlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=