@1money/react-ui 1.14.0-alpha.16 → 1.14.0-alpha.18

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.
@@ -141,7 +141,7 @@ export var InputAmount = function InputAmount(props) {
141
141
  var ignoreOldPos = isAdd ? val.length - ((_b = _value2 === null || _value2 === void 0 ? void 0 : _value2.length) !== null && _b !== void 0 ? _b : 0) > 1 : false;
142
142
  var position = (_c = currPos !== null && currPos !== void 0 ? currPos : inputRef.current.selectionStart) !== null && _c !== void 0 ? _c : 0;
143
143
  if (!ignoreOldPos) {
144
- var oldPosVal = _formattedValue.slice(0, position - (isAdd ? 1 : -1));
144
+ var oldPosVal = _formattedValue.slice(0, Math.max(position - (isAdd ? 1 : -1), 0));
145
145
  position = oldPosVal.split(',').join('').length + (isAdd ? 1 : -1);
146
146
  }
147
147
  var posVal = val.slice(0, position);
@@ -167,29 +167,29 @@ export var InputAmount = function InputAmount(props) {
167
167
  max = _valueRef$current2.max,
168
168
  negative = _valueRef$current2.negative,
169
169
  maxFractionDigits = _valueRef$current2.maxFractionDigits;
170
- if (typeof value === 'undefined') {
171
- var val = e.target.value;
172
- if (val != null) val = normalizeNumberInput(val).split(',').join('');
173
- var hasDecimalPoint = !!val && val.endsWith('.');
174
- if (hasDecimalPoint) val = val.slice(0, -1);
175
- if (!negative && (val === null || val === void 0 ? void 0 : val.includes('-'))) return;
176
- var isStandaloneMinus = negative && val === '-';
177
- if (!isStandaloneMinus && isNaN(+val)) return;
178
- if (val === _value && !hasDecimalPoint) return;
179
- if (typeof maxFractionDigits === 'number' || typeof maxFractionDigits === 'bigint') {
180
- var _val$split = val.split('.'),
181
- _val$split2 = _slicedToArray(_val$split, 2),
182
- _int = _val$split2[0],
183
- decimal = _val$split2[1];
184
- if (decimal != null && decimal.length > Number(maxFractionDigits)) {
185
- var _formattedValue$split = formattedValue.split('.'),
186
- _formattedValue$split2 = _slicedToArray(_formattedValue$split, 2),
187
- oldInt = _formattedValue$split2[0],
188
- oldDecimal = _formattedValue$split2[1];
189
- if (oldInt.split(',').join('') == _int) return;
190
- val = "".concat(_int, ".").concat(oldDecimal);
191
- }
170
+ var val = e.target.value;
171
+ if (val != null) val = normalizeNumberInput(val).split(',').join('');
172
+ var hasDecimalPoint = !!val && val.endsWith('.');
173
+ if (hasDecimalPoint) val = val.slice(0, -1);
174
+ if (!negative && (val === null || val === void 0 ? void 0 : val.includes('-'))) return;
175
+ var isStandaloneMinus = negative && val === '-';
176
+ if (!isStandaloneMinus && isNaN(+val)) return;
177
+ if (val === _value && !hasDecimalPoint) return;
178
+ if (typeof maxFractionDigits === 'number' || typeof maxFractionDigits === 'bigint') {
179
+ var _val$split = val.split('.'),
180
+ _val$split2 = _slicedToArray(_val$split, 2),
181
+ _int = _val$split2[0],
182
+ decimal = _val$split2[1];
183
+ if (decimal != null && decimal.length > Number(maxFractionDigits)) {
184
+ var _formattedValue$split = formattedValue.split('.'),
185
+ _formattedValue$split2 = _slicedToArray(_formattedValue$split, 2),
186
+ oldInt = _formattedValue$split2[0],
187
+ oldDecimal = _formattedValue$split2[1];
188
+ if (oldInt.split(',').join('') == _int) return;
189
+ val = "".concat(_int, ".").concat(oldDecimal);
192
190
  }
191
+ }
192
+ if (typeof value === 'undefined') {
193
193
  if (typeof min === 'number' || typeof min === 'bigint' || typeof max === 'number' || typeof max === 'bigint') {
194
194
  val = calcValueInRange(val, min, max);
195
195
  }
@@ -306,13 +306,17 @@ export var InputAmount = function InputAmount(props) {
306
306
  setValue(res);
307
307
  }
308
308
  var originOffset = ((_d = val === null || val === void 0 ? void 0 : val.length) !== null && _d !== void 0 ? _d : 0) - ((_e = _value === null || _value === void 0 ? void 0 : _value.length) !== null && _e !== void 0 ? _e : 0);
309
- var isAdd = originOffset > 0;
310
309
  var isLikeKeyboardInput = originOffset === 1 || originOffset === -1;
311
310
  var formattedOffset = numericFormatter(val !== null && val !== void 0 ? val : '', {
312
311
  thousandSeparator: true,
313
312
  allowNegative: negative
314
313
  }).length - formattedValue.length;
315
- var offset = Math.max(!isLikeKeyboardInput ? formattedOffset : originOffset, 0) + (hasDecimalPoint ? isAdd ? 2 : 3 : 0);
314
+ var offset = Math.max(!isLikeKeyboardInput ? formattedOffset : originOffset, 0) + (hasDecimalPoint ? originOffset < 0 ? 3 : 2 : 0);
315
+ console.info('offset', offset);
316
+ console.info('originOffset', originOffset);
317
+ console.info('formattedOffset', formattedOffset);
318
+ console.info('isLikeKeyboardInput', isLikeKeyboardInput);
319
+ console.info('inputCaretPositionRef.current', inputCaretPositionRef.current);
316
320
  calcCaretPos(val !== null && val !== void 0 ? val : '', offset, Math.max(inputCaretPositionRef.current, 0));
317
321
  ignoreSelectRef.current = true;
318
322
  }, [value, maxFractionDigits, min, max, negative]);
@@ -328,7 +332,7 @@ export var InputAmount = function InputAmount(props) {
328
332
  };
329
333
  }, [_value, value, formattedValue, min, max, negative, maxFractionDigits]);
330
334
  return _jsxs("div", {
331
- className: classes('wrapper', joinCls(wrapperCls, invalid && classes('invalid'), success && classes('success'), disabled && classes('disabled'), readOnly && classes('readonly'), _value && classes('filled'))),
335
+ className: classes('wrapper', joinCls(wrapperCls, classes(size), invalid && classes('invalid'), success && classes('success'), disabled && classes('disabled'), readOnly && classes('readonly'), _value && classes('filled'))),
332
336
  children: [label ? loading ? _jsx(Skeleton, {
333
337
  width: '72px',
334
338
  height: '18px',
@@ -403,4 +407,4 @@ export var InputAmount = function InputAmount(props) {
403
407
  });
404
408
  };
405
409
  export default /*#__PURE__*/memo(InputAmount);
406
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsImlnbm9yZVNlbGVjdFJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIl92YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfd2lkdGgiLCJzZXRXaWR0aCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNNYXhXaWR0aCIsInNldElzTWF4V2lkdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwiZm9ybWF0dGVkVmFsdWUiLCJ0aG91c2FuZFNlcGFyYXRvciIsImFsbG93TmVnYXRpdmUiLCJ2YWx1ZVJlZiIsInNjcm9sbFRvRW5kIiwic3RpY2t5IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX2EiLCJpbnB1dCIsImN1cnJlbnQiLCJsZW4iLCJwb3NpdGlvbiIsInNjcm9sbExlZnQiLCJzaG91bGRUb0VuZCIsInN0YXJ0Iiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJzY3JvbGxXaWR0aCIsImZvY3VzIiwiY2FsY0NhcmV0UG9zIiwib2Zmc2V0IiwiY3VyclBvcyIsIl9iIiwiX2MiLCJfdmFsdWVSZWYkY3VycmVudCIsImZvcm1hdHRlZE5ld1ZhbCIsImlzQWRkIiwiaWdub3JlT2xkUG9zIiwic2VsZWN0aW9uU3RhcnQiLCJvbGRQb3NWYWwiLCJzbGljZSIsInNwbGl0Iiwiam9pbiIsInBvc1ZhbCIsInJlZHVjZSIsImFjYyIsImNoYXIiLCJpbmQiLCJwdXNoIiwiaGFuZGxlQ2hhbmdlIiwiX3ZhbHVlUmVmJGN1cnJlbnQyIiwidGFyZ2V0IiwiaGFzRGVjaW1hbFBvaW50IiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsImlzU3RhbmRhbG9uZU1pbnVzIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiaW50IiwiZGVjaW1hbCIsIk51bWJlciIsIl9mb3JtYXR0ZWRWYWx1ZSRzcGxpdCIsIl9mb3JtYXR0ZWRWYWx1ZSRzcGxpdDIiLCJvbGRJbnQiLCJvbGREZWNpbWFsIiwiZGVjaW1hbHMiLCJtYXRjaCIsImJuIiwibm9ybWFsaXplZCIsInRvRml4ZWQiLCJ0cmltIiwic3RhcnRzV2l0aCIsImlzWmVybyIsImhhbmRsZVNlbGVjdCIsIl9kIiwiX2UiLCJfZiIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwiTWF0aCIsIl92YWx1ZVJlZiRjdXJyZW50MyIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0MyIsIl9mb3JtYXR0ZWRWYWx1ZSRzcGxpdDQiLCJzdHJWYWwiLCJyZXMiLCJvcmlnaW5PZmZzZXQiLCJpc0xpa2VLZXlib2FyZElucHV0IiwiZm9ybWF0dGVkT2Zmc2V0Iiwid2lkdGgiLCJoZWlnaHQiLCJyZWYiLCJvbkNsaWNrIiwiSFRNTElucHV0RWxlbWVudCIsImFzc2lnbiIsInN0eWxlIiwib25TZWxlY3QiLCJzdHJva2VXaWR0aCIsInN0b3BQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FB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QVU7UUFDZnpCLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUI0SCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBRTNNLENBQUM7VUFBQSxPQUFJQSxDQUFDLENBQUNpTixlQUFlLENBQUEsQ0FBRTtRQUFBO1FBQUEvSixRQUFBLEVBRS9Cd0Q7TUFBYyxDQUFBLENBQ1g7SUFBQSxDQUFBLENBQ0gsRUFFSixDQUFDaEMsT0FBTyxJQUFJbkIsUUFBUSxLQUFLeEMsS0FBQSxDQUFBLEtBQUEsRUFBQTtNQUFLMEMsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLE9BQU8sQ0FBQztNQUFBN0IsUUFBQSxFQUFBLENBQ3REd0IsT0FBTyxJQUFJN0QsSUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLNEMsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFNBQVMsRUFBRWpCLFVBQVUsQ0FBQztRQUFBWixRQUFBLEVBQUd3QjtNQUFPLENBQUEsQ0FBTyxFQUMxRW5CLFFBQVEsSUFBSTFDLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBSzRDLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxVQUFVLEVBQUV2QixXQUFXLENBQUM7UUFBQU4sUUFBQSxFQUFHSztNQUFRLENBQUEsQ0FBTztJQUFBLENBQUEsQ0FDM0U7RUFBQSxDQUFBLENBRUo7QUFDUixDQUFDO0FBRUQsNEJBQWV2QyxJQUFJLENBQUM0QixXQUFXLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9JbnB1dEFtb3VudC9JbnB1dEFtb3VudC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNhbGNWYWx1ZUluUmFuZ2UgPSAodmFsLCBtaW4sIG1heCkgPT4ge1xuICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PT0gJy0nIHx8IGlzTmFOKCt2YWwpKVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIGxldCBjYWxjVmFsID0gdmFsO1xuICAgIGNvbnN0IGJuVmFsID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBtaW4gPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1pbkJuID0gQmlnTnVtYmVyKG1pbik7XG4gICAgICAgIGlmIChiblZhbC5sdChtaW5CbikpIHtcbiAgICAgICAgICAgIGNhbGNWYWwgPSAnJyArIG1pbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWF4Qm4gPSBCaWdOdW1iZXIobWF4KTtcbiAgICAgICAgaWYgKGJuVmFsLmd0KG1heEJuKSkge1xuICAgICAgICAgICAgY2FsY1ZhbCA9ICcnICsgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYWxjVmFsO1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBpbnZhbGlkLCBuZWdhdGl2ZSwgcmVxdWlyZWQsIGxvYWRpbmcsIHN1Y2Nlc3MsIGRpc2FibGVkLCByZWFkT25seSwgbGFiZWwsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgbWVzc2FnZSwgb25DaGFuZ2UsIG9uQmx1ciwgb25Gb2N1cyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInZhbHVlXCIsIFwidHlwZVwiLCBcIm1heEZyYWN0aW9uRGlnaXRzXCIsIFwiY2hpbGRyZW5cIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1pblwiLCBcIm1heFwiLCBcInNpemVcIiwgXCJmb290bm90ZVwiLCBcImZvb3Rub3RlQ2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwicHJlZml4Q2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcImludmFsaWRcIiwgXCJuZWdhdGl2ZVwiLCBcInJlcXVpcmVkXCIsIFwibG9hZGluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJkaXNhYmxlZFwiLCBcInJlYWRPbmx5XCIsIFwibGFiZWxcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJjdXJyZW5jeVwiLCBcIm1lc3NhZ2VcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke3ByZWZpeENsc30tJHt0eXBlfWApO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IGlnbm9yZVNlbGVjdFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW192YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW193aWR0aCwgc2V0V2lkdGhdID0gdXNlU3RhdGUoTUlOX0lOUFVUX1dJRFRIKTtcbiAgICBjb25zdCBbaXNNYXhXaWR0aCwgc2V0SXNNYXhXaWR0aF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2lzRm9jdXMsIHNldElzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICB9KTtcbiAgICB9LCBbX3ZhbHVlLCBuZWdhdGl2ZV0pO1xuICAgIGNvbnN0IHZhbHVlUmVmID0gdXNlUmVmKHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIF92YWx1ZSxcbiAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgIG1pbixcbiAgICAgICAgbWF4LFxuICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoc3RpY2t5ID0gZmFsc2UpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghaW5wdXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IGlucHV0LnZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGlucHV0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZFRvRW5kID0gIXN0aWNreTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzaG91bGRUb0VuZCA/IGxlbiA6IGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50O1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgc3RhcnQpO1xuICAgICAgICBpbnB1dC5zY3JvbGxMZWZ0ID0gc2hvdWxkVG9FbmQgPyBpbnB1dC5zY3JvbGxXaWR0aCA6IHBvc2l0aW9uO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBjYWxjQ2FyZXRQb3MgPSB1c2VDYWxsYmFjaygodmFsLCBvZmZzZXQgPSAwLCBjdXJyUG9zKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBfdmFsdWUsIGZvcm1hdHRlZFZhbHVlIH0gPSB2YWx1ZVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTmV3VmFsID0gbnVtZXJpY0Zvcm1hdHRlcih2YWwsIHtcbiAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaXNBZGQgPSB2YWwubGVuZ3RoID4gKChfYSA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApO1xuICAgICAgICAgICAgY29uc3QgaWdub3JlT2xkUG9zID0gaXNBZGQgPyB2YWwubGVuZ3RoIC0gKChfYiA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApID4gMSA6IGZhbHNlO1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gKF9jID0gY3VyclBvcyAhPT0gbnVsbCAmJiBjdXJyUG9zICE9PSB2b2lkIDAgPyBjdXJyUG9zIDogaW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgIGlmICghaWdub3JlT2xkUG9zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2xkUG9zVmFsID0gZm9ybWF0dGVkVmFsdWUuc2xpY2UoMCwgKHBvc2l0aW9uIC0gKGlzQWRkID8gMSA6IC0xKSkpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gb2xkUG9zVmFsLnNwbGl0KCcsJykuam9pbignJykubGVuZ3RoICsgKGlzQWRkID8gMSA6IC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBvc1ZhbCA9IHZhbC5zbGljZSgwLCBwb3NpdGlvbik7XG4gICAgICAgICAgICBmb3JtYXR0ZWROZXdWYWwuc3BsaXQoJycpLnJlZHVjZSgoYWNjLCBjaGFyLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKGFjYy5qb2luKCcnKSA9PT0gcG9zVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kICsgMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zaXRpb24gKyBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgX3ZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWluLCBtYXgsIG5lZ2F0aXZlLCBtYXhGcmFjdGlvbkRpZ2l0cyB9ID0gdmFsdWVSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbClcbiAgICAgICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgIGlmICghbmVnYXRpdmUgJiYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5pbmNsdWRlcygnLScpKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBpc1N0YW5kYWxvbmVNaW51cyA9IG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nO1xuICAgICAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAodmFsID09PSBfdmFsdWUgJiYgIWhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2ludCwgZGVjaW1hbF0gPSB2YWwuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbb2xkSW50LCBvbGREZWNpbWFsXSA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvbGRJbnQuc3BsaXQoJywnKS5qb2luKCcnKSA9PSBpbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHtvbGREZWNpbWFsfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50JykgfHwgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNTdGFuZGFsb25lTWludXMpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZSgnLScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSB2YWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYWxjQ2FyZXRQb3ModmFsLCBoYXNEZWNpbWFsUG9pbnQgPyAyIDogMCk7XG4gICAgICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgIH0sIFtvbkNoYW5nZSwgZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpZ25vcmVTZWxlY3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyUG9zID0gKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBpZiAodHlwZW9mIGN1cnJQb3MgPT09ICdudW1iZXInKVxuICAgICAgICAgICAgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQgPSBjdXJyUG9zO1xuICAgIH0sIFtdKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKF9iID0gKF9hID0gY29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTUlOX0lOUFVUX1dJRFRIO1xuICAgICAgICBjb25zdCBwcmVmaXhXaWR0aCA9IChfZCA9IChfYyA9IHByZWZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgIGNvbnN0IHN1ZmZpeFdpZHRoID0gKF9mID0gKF9lID0gc3VmZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMDtcbiAgICAgICAgY29uc3QgY3VycmVuY3lXaWR0aCA9IChfaCA9IChfZyA9IGN1cnJlbmN5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2ggIT09IHZvaWQgMCA/IF9oIDogMDtcbiAgICAgICAgY29uc3QgZmFrZVdpZHRoID0gKF9rID0gKF9qID0gZmFrZUVsZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2oub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IDA7XG4gICAgICAgIGNvbnN0IGdhcFdpZHRoID0gcHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgPyAyNFxuICAgICAgICAgICAgOiAocHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGgpIHx8IChwcmVmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKSB8fCAoc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aClcbiAgICAgICAgICAgICAgICA/IDE2XG4gICAgICAgICAgICAgICAgOiBwcmVmaXhXaWR0aCB8fCBzdWZmaXhXaWR0aCB8fCBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBwcmVmaXhXaWR0aCAtIHN1ZmZpeFdpZHRoIC0gY3VycmVuY3lXaWR0aCAtIGdhcFdpZHRoO1xuICAgICAgICBjb25zdCBpc01heCA9IGZha2VXaWR0aCA+PSBtYXhXaWR0aDtcbiAgICAgICAgc2V0V2lkdGgoTWF0aC5taW4obWF4V2lkdGgsIE1hdGgubWF4KGZha2VXaWR0aCwgTUlOX0lOUFVUX1dJRFRIKSkpO1xuICAgICAgICBzZXRJc01heFdpZHRoKGlzTWF4KTtcbiAgICAgICAgaWYgKGlzRm9jdXMpXG4gICAgICAgICAgICBzY3JvbGxUb0VuZCh0cnVlKTtcbiAgICB9LCBbX3ZhbHVlLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIGlzRm9jdXNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBjbGVhciBuZWdhdGl2ZSBzaWduIGlmIG5vdCBhbGxvd2VkXG4gICAgICAgIGlmIChuZWdhdGl2ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKF92YWx1ZSA9PT0gJy0nKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoX3ZhbHVlLnN0YXJ0c1dpdGgoJy0nKSlcbiAgICAgICAgICAgIHNldFZhbHVlKF92YWx1ZS5zbGljZSgxKSk7XG4gICAgfSwgW25lZ2F0aXZlLCB2YWx1ZSwgX3ZhbHVlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgbGV0IHZhbCA9IHZhbHVlO1xuICAgICAgICBsZXQgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHsgX3ZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSB9ID0gdmFsdWVSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgICAgICAgICAgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlKVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInICYmIHR5cGVvZiB2YWwgIT09ICdiaWdpbnQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBNYXRoLmFicyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB6ZXJvID0gQmlnSW50KDApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA8IHplcm8gPyAtdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9ICgnJyArIHZhbCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW29sZEludCwgb2xkRGVjaW1hbF0gPSBmb3JtYXR0ZWRWYWx1ZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGlmIChvbGRJbnQuc3BsaXQoJywnKS5qb2luKCcnKSA9PSBpbnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7b2xkRGVjaW1hbH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgdmFsID0gY2FsY1ZhbHVlSW5SYW5nZSgnJyArIHZhbCwgbWluLCBtYXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0clZhbCA9ICcnICsgdmFsO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKTtcbiAgICAgICAgICAgIHNldFZhbHVlKHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JpZ2luT2Zmc2V0ID0gKChfZCA9IHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5sZW5ndGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDApIC0gKChfZSA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDApO1xuICAgICAgICBjb25zdCBpc0FkZCA9IG9yaWdpbk9mZnNldCA+IDA7XG4gICAgICAgIGNvbnN0IGlzTGlrZUtleWJvYXJkSW5wdXQgPSBvcmlnaW5PZmZzZXQgPT09IDEgfHwgb3JpZ2luT2Zmc2V0ID09PSAtMTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkT2Zmc2V0ID0gbnVtZXJpY0Zvcm1hdHRlcih2YWwgIT09IG51bGwgJiYgdmFsICE9PSB2b2lkIDAgPyB2YWwgOiAnJywge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSkubGVuZ3RoIC0gZm9ybWF0dGVkVmFsdWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBNYXRoLm1heCghaXNMaWtlS2V5Ym9hcmRJbnB1dCA/IGZvcm1hdHRlZE9mZnNldCA6IG9yaWdpbk9mZnNldCwgMCkgKyAoaGFzRGVjaW1hbFBvaW50ID8gaXNBZGQgPyAyIDogMyA6IDApO1xuICAgICAgICBjYWxjQ2FyZXRQb3ModmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwID8gdmFsIDogJycsIG9mZnNldCwgTWF0aC5tYXgoaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhbHVlUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIF92YWx1ZSxcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICAgICAgbWluLFxuICAgICAgICAgICAgbWF4LFxuICAgICAgICAgICAgbmVnYXRpdmUsXG4gICAgICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICB9O1xuICAgIH0sIFtfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWluLCBtYXgsIG5lZ2F0aXZlLCBtYXhGcmFjdGlvbkRpZ2l0c10pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIGpvaW5DbHMod3JhcHBlckNscywgaW52YWxpZCAmJiBjbGFzc2VzKCdpbnZhbGlkJyksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCByZWFkT25seSAmJiBjbGFzc2VzKCdyZWFkb25seScpLCBfdmFsdWUgJiYgY2xhc3NlcygnZmlsbGVkJykpKSwgY2hpbGRyZW46IFtsYWJlbFxuICAgICAgICAgICAgICAgID8gbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICA/IF9qc3goU2tlbGV0b24sIHsgd2lkdGg6ICc3MnB4JywgaGVpZ2h0OiAnMThweCcsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtbG9hZGluZycpIH0pXG4gICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJywgam9pbkNscyhyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENscykpLCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgICAgICAgICAgICA6IG51bGwsIF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBjb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NOYW1lLCBpc0ZvY3VzICYmIGNsYXNzZXMoJ2ZvY3VzJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VsZW1lbnQnLCAoIWlzRm9jdXMgJiYgaXNNYXhXaWR0aCkgPyBjbGFzc2VzKCdlbGVtZW50LW1heCcpIDogJycpLCBjaGlsZHJlbjogX2pzeChcImlucHV0XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBpbnB1dFJlZiwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlYWRPbmx5OiByZWFkT25seSwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzdHlsZTogeyAnLS1pbnB1dC13aWR0aCc6IGAke193aWR0aH1weGAgfSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgb25TZWxlY3Q6IGhhbmRsZVNlbGVjdCwgb25Gb2N1czogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXMgPT09IG51bGwgfHwgb25Gb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Gb2N1cyhlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBvbkJsdXI6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gfSkpIH0pLCBjdXJyZW5jeSAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogY3VycmVuY3lSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnY3VycmVuY3knKSwgY2hpbGRyZW46IGN1cnJlbmN5IH0pLCBsb2FkaW5nID8gX2pzeChTcGlubmVyLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4LWxvYWRpbmcnKSwgc3Ryb2tlV2lkdGg6ICc0JyB9KSA6IHN1ZmZpeCA/IF9qc3goXCJzcGFuXCIsIHsgcmVmOiBzdWZmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSkgOiBudWxsLCBfanN4KFwic3BhblwiLCB7IHJlZjogZmFrZUVsZVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmYWtlJyksIG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2hpbGRyZW46IGZvcm1hdHRlZFZhbHVlIH0pXSB9KSwgKG1lc3NhZ2UgfHwgZm9vdG5vdGUpICYmIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdleHRyYScpLCBjaGlsZHJlbjogW21lc3NhZ2UgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIG1lc3NhZ2VDbHMpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSwgZm9vdG5vdGUgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZm9vdG5vdGUnLCBmb290bm90ZUNscyksIGNoaWxkcmVuOiBmb290bm90ZSB9KV0gfSldIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oSW5wdXRBbW91bnQpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
410
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsImlnbm9yZVNlbGVjdFJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIl92YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfd2lkdGgiLCJzZXRXaWR0aCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNNYXhXaWR0aCIsInNldElzTWF4V2lkdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwiZm9ybWF0dGVkVmFsdWUiLCJ0aG91c2FuZFNlcGFyYXRvciIsImFsbG93TmVnYXRpdmUiLCJ2YWx1ZVJlZiIsInNjcm9sbFRvRW5kIiwic3RpY2t5IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX2EiLCJpbnB1dCIsImN1cnJlbnQiLCJsZW4iLCJwb3NpdGlvbiIsInNjcm9sbExlZnQiLCJzaG91bGRUb0VuZCIsInN0YXJ0Iiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJzY3JvbGxXaWR0aCIsImZvY3VzIiwiY2FsY0NhcmV0UG9zIiwib2Zmc2V0IiwiY3VyclBvcyIsIl9iIiwiX2MiLCJfdmFsdWVSZWYkY3VycmVudCIsImZvcm1hdHRlZE5ld1ZhbCIsImlzQWRkIiwiaWdub3JlT2xkUG9zIiwic2VsZWN0aW9uU3RhcnQiLCJvbGRQb3NWYWwiLCJzbGljZSIsIk1hdGgiLCJzcGxpdCIsImpvaW4iLCJwb3NWYWwiLCJyZWR1Y2UiLCJhY2MiLCJjaGFyIiwiaW5kIiwicHVzaCIsImhhbmRsZUNoYW5nZSIsIl92YWx1ZVJlZiRjdXJyZW50MiIsInRhcmdldCIsImhhc0RlY2ltYWxQb2ludCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsIl92YWwkc3BsaXQiLCJfdmFsJHNwbGl0MiIsImludCIsImRlY2ltYWwiLCJOdW1iZXIiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQyIiwib2xkSW50Iiwib2xkRGVjaW1hbCIsImRlY2ltYWxzIiwibWF0Y2giLCJibiIsIm5vcm1hbGl6ZWQiLCJ0b0ZpeGVkIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJpc1plcm8iLCJoYW5kbGVTZWxlY3QiLCJfZCIsIl9lIiwiX2YiLCJfZyIsIl9oIiwiX2oiLCJfayIsImNvbnRhaW5lcldpZHRoIiwib2Zmc2V0V2lkdGgiLCJwcmVmaXhXaWR0aCIsInN1ZmZpeFdpZHRoIiwiY3VycmVuY3lXaWR0aCIsImZha2VXaWR0aCIsImdhcFdpZHRoIiwibWF4V2lkdGgiLCJpc01heCIsIl92YWx1ZVJlZiRjdXJyZW50MyIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0MyIsIl9mb3JtYXR0ZWRWYWx1ZSRzcGxpdDQiLCJzdHJWYWwiLCJyZXMiLCJvcmlnaW5PZmZzZXQiLCJpc0xpa2VLZXlib2FyZElucHV0IiwiZm9ybWF0dGVkT2Zmc2V0IiwiY29uc29sZSIsImluZm8iLCJ3aWR0aCIsImhlaWdodCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJvblNlbGVjdCIsInN0cm9rZVdpZHRoIiwic3RvcFByb3BhZ2F0aW9uIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VB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QUM7QUFFRCw0QkFBZXZDLElBQUksQ0FBQzRCLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IG51bWVyaWNGb3JtYXR0ZXIgfSBmcm9tICdyZWFjdC1udW1iZXItZm9ybWF0JztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAncHJpbWVyZWFjdC9za2VsZXRvbic7XG5pbXBvcnQgU3Bpbm5lciBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgTUlOX0lOUFVUX1dJRFRIID0gMzM7XG5jb25zdCBub3JtYWxpemVOdW1iZXJJbnB1dCA9ICh2YWwpID0+IHZhbFxuICAgIC5yZXBsYWNlKC9bXFx1MzAwMlxcdWZmMGVcXHVmZjYxXS9nLCAnLicpXG4gICAgLnJlcGxhY2UoL1tcXHVGRjBDXS9nLCAnLCcpO1xuY29uc3QgY2FsY1ZhbHVlSW5SYW5nZSA9ICh2YWwsIG1pbiwgbWF4KSA9PiB7XG4gICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09PSAnLScgfHwgaXNOYU4oK3ZhbCkpXG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgbGV0IGNhbGNWYWwgPSB2YWw7XG4gICAgY29uc3QgYm5WYWwgPSBCaWdOdW1iZXIodmFsKTtcbiAgICBpZiAodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWluQm4gPSBCaWdOdW1iZXIobWluKTtcbiAgICAgICAgaWYgKGJuVmFsLmx0KG1pbkJuKSkge1xuICAgICAgICAgICAgY2FsY1ZhbCA9ICcnICsgbWluO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ID09PSAnYmlnaW50Jykge1xuICAgICAgICBjb25zdCBtYXhCbiA9IEJpZ051bWJlcihtYXgpO1xuICAgICAgICBpZiAoYm5WYWwuZ3QobWF4Qm4pKSB7XG4gICAgICAgICAgICBjYWxjVmFsID0gJycgKyBtYXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNhbGNWYWw7XG59O1xuZXhwb3J0IGNvbnN0IElucHV0QW1vdW50ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIHR5cGUgPSAncHJpbWFyeScsIG1heEZyYWN0aW9uRGlnaXRzLCBjaGlsZHJlbiwgcGxhY2Vob2xkZXIgPSAnMCcsIG1pbiwgbWF4LCBcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgc2l6ZSA9ICdsYXJnZScsIGZvb3Rub3RlLCBmb290bm90ZUNscywgY2xhc3NOYW1lLCB3cmFwcGVyQ2xzLCBsYWJlbENscywgcHJlZml4Q2xzID0gJ2lucHV0LWFtb3VudCcsIG1lc3NhZ2VDbHMsIGludmFsaWQsIG5lZ2F0aXZlLCByZXF1aXJlZCwgbG9hZGluZywgc3VjY2VzcywgZGlzYWJsZWQsIHJlYWRPbmx5LCBsYWJlbCwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBtZXNzYWdlLCBvbkNoYW5nZSwgb25CbHVyLCBvbkZvY3VzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1widmFsdWVcIiwgXCJ0eXBlXCIsIFwibWF4RnJhY3Rpb25EaWdpdHNcIiwgXCJjaGlsZHJlblwiLCBcInBsYWNlaG9sZGVyXCIsIFwibWluXCIsIFwibWF4XCIsIFwic2l6ZVwiLCBcImZvb3Rub3RlXCIsIFwiZm9vdG5vdGVDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJ3cmFwcGVyQ2xzXCIsIFwibGFiZWxDbHNcIiwgXCJwcmVmaXhDbHNcIiwgXCJtZXNzYWdlQ2xzXCIsIFwiaW52YWxpZFwiLCBcIm5lZ2F0aXZlXCIsIFwicmVxdWlyZWRcIiwgXCJsb2FkaW5nXCIsIFwic3VjY2Vzc1wiLCBcImRpc2FibGVkXCIsIFwicmVhZE9ubHlcIiwgXCJsYWJlbFwiLCBcInByZWZpeFwiLCBcInN1ZmZpeFwiLCBcImN1cnJlbmN5XCIsIFwibWVzc2FnZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25CbHVyXCIsIFwib25Gb2N1c1wiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7cHJlZml4Q2xzfS0ke3R5cGV9YCk7XG4gICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZmFrZUVsZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmVmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc3VmZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGN1cnJlbmN5UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBpbnB1dENhcmV0UG9zaXRpb25SZWYgPSB1c2VSZWYoMCk7XG4gICAgY29uc3QgaWdub3JlU2VsZWN0UmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbX3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShNSU5fSU5QVVRfV0lEVEgpO1xuICAgIGNvbnN0IFtpc01heFdpZHRoLCBzZXRJc01heFdpZHRoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNGb2N1cywgc2V0SXNGb2N1c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgIH0pO1xuICAgIH0sIFtfdmFsdWUsIG5lZ2F0aXZlXSk7XG4gICAgY29uc3QgdmFsdWVSZWYgPSB1c2VSZWYoe1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgX3ZhbHVlLFxuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgbWluLFxuICAgICAgICBtYXgsXG4gICAgICAgIG5lZ2F0aXZlLFxuICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0cyxcbiAgICB9KTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGNhbGNDYXJldFBvcyA9IHVzZUNhbGxiYWNrKCh2YWwsIG9mZnNldCA9IDAsIGN1cnJQb3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IF92YWx1ZSwgZm9ybWF0dGVkVmFsdWUgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0FkZCA9IHZhbC5sZW5ndGggPiAoKF9hID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCk7XG4gICAgICAgICAgICBjb25zdCBpZ25vcmVPbGRQb3MgPSBpc0FkZCA/IHZhbC5sZW5ndGggLSAoKF9iID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCkgPiAxIDogZmFsc2U7XG4gICAgICAgICAgICBsZXQgcG9zaXRpb24gPSAoX2MgPSBjdXJyUG9zICE9PSBudWxsICYmIGN1cnJQb3MgIT09IHZvaWQgMCA/IGN1cnJQb3MgOiBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgaWYgKCFpZ25vcmVPbGRQb3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvbGRQb3NWYWwgPSBmb3JtYXR0ZWRWYWx1ZS5zbGljZSgwLCBNYXRoLm1heCgocG9zaXRpb24gLSAoaXNBZGQgPyAxIDogLTEpKSwgMCkpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gb2xkUG9zVmFsLnNwbGl0KCcsJykuam9pbignJykubGVuZ3RoICsgKGlzQWRkID8gMSA6IC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBvc1ZhbCA9IHZhbC5zbGljZSgwLCBwb3NpdGlvbik7XG4gICAgICAgICAgICBmb3JtYXR0ZWROZXdWYWwuc3BsaXQoJycpLnJlZHVjZSgoYWNjLCBjaGFyLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKGFjYy5qb2luKCcnKSA9PT0gcG9zVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kICsgMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zaXRpb24gKyBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgX3ZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWluLCBtYXgsIG5lZ2F0aXZlLCBtYXhGcmFjdGlvbkRpZ2l0cyB9ID0gdmFsdWVSZWYuY3VycmVudDtcbiAgICAgICAgbGV0IHZhbCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICBpZiAodmFsICE9IG51bGwpXG4gICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGhhc0RlY2ltYWxQb2ludCA9ICEhdmFsICYmIHZhbC5lbmRzV2l0aCgnLicpO1xuICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgaWYgKCFuZWdhdGl2ZSAmJiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsLmluY2x1ZGVzKCctJykpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBpc1N0YW5kYWxvbmVNaW51cyA9IG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nO1xuICAgICAgICBpZiAoIWlzU3RhbmRhbG9uZU1pbnVzICYmIGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodmFsID09PSBfdmFsdWUgJiYgIWhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgY29uc3QgW2ludCwgZGVjaW1hbF0gPSB2YWwuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW29sZEludCwgb2xkRGVjaW1hbF0gPSBmb3JtYXR0ZWRWYWx1ZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGlmIChvbGRJbnQuc3BsaXQoJywnKS5qb2luKCcnKSA9PSBpbnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7b2xkRGVjaW1hbH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAoKHR5cGVvZiBtaW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBtaW4gPT09ICdiaWdpbnQnKSB8fCAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heCA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gY2FsY1ZhbHVlSW5SYW5nZSh2YWwsIG1pbiwgbWF4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfYyA9IChfYiA9IChfYSA9IHZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5sZW5ndGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiB2YWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGNDYXJldFBvcyh2YWwsIGhhc0RlY2ltYWxQb2ludCA/IDIgOiAwKTtcbiAgICAgICAgICAgIGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBkaXNhYmxlZCwgcmVhZE9ubHldKTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJQb3MgPSAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGlmICh0eXBlb2YgY3VyclBvcyA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCA9IGN1cnJQb3M7XG4gICAgfSwgW10pO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaztcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSAoX2IgPSAoX2EgPSBjb250YWluZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNSU5fSU5QVVRfV0lEVEg7XG4gICAgICAgIGNvbnN0IHByZWZpeFdpZHRoID0gKF9kID0gKF9jID0gcHJlZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMDtcbiAgICAgICAgY29uc3Qgc3VmZml4V2lkdGggPSAoX2YgPSAoX2UgPSBzdWZmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwO1xuICAgICAgICBjb25zdCBjdXJyZW5jeVdpZHRoID0gKF9oID0gKF9nID0gY3VycmVuY3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfaCAhPT0gdm9pZCAwID8gX2ggOiAwO1xuICAgICAgICBjb25zdCBmYWtlV2lkdGggPSAoX2sgPSAoX2ogPSBmYWtlRWxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9qID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfai5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogMDtcbiAgICAgICAgY29uc3QgZ2FwV2lkdGggPSBwcmVmaXhXaWR0aCAmJiBzdWZmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICA/IDI0XG4gICAgICAgICAgICA6IChwcmVmaXhXaWR0aCAmJiBzdWZmaXhXaWR0aCkgfHwgKHByZWZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpIHx8IChzdWZmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKVxuICAgICAgICAgICAgICAgID8gMTZcbiAgICAgICAgICAgICAgICA6IHByZWZpeFdpZHRoIHx8IHN1ZmZpeFdpZHRoIHx8IGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgPyA4XG4gICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSBjb250YWluZXJXaWR0aCAtIHByZWZpeFdpZHRoIC0gc3VmZml4V2lkdGggLSBjdXJyZW5jeVdpZHRoIC0gZ2FwV2lkdGg7XG4gICAgICAgIGNvbnN0IGlzTWF4ID0gZmFrZVdpZHRoID49IG1heFdpZHRoO1xuICAgICAgICBzZXRXaWR0aChNYXRoLm1pbihtYXhXaWR0aCwgTWF0aC5tYXgoZmFrZVdpZHRoLCBNSU5fSU5QVVRfV0lEVEgpKSk7XG4gICAgICAgIHNldElzTWF4V2lkdGgoaXNNYXgpO1xuICAgICAgICBpZiAoaXNGb2N1cylcbiAgICAgICAgICAgIHNjcm9sbFRvRW5kKHRydWUpO1xuICAgIH0sIFtfdmFsdWUsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgaXNGb2N1c10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIGNsZWFyIG5lZ2F0aXZlIHNpZ24gaWYgbm90IGFsbG93ZWRcbiAgICAgICAgaWYgKG5lZ2F0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKF92YWx1ZSA9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09PSAnLScpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfdmFsdWUuc3RhcnRzV2l0aCgnLScpKVxuICAgICAgICAgICAgc2V0VmFsdWUoX3ZhbHVlLnNsaWNlKDEpKTtcbiAgICB9LCBbbmVnYXRpdmUsIHZhbHVlLCBfdmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBfdmFsdWUsIGZvcm1hdHRlZFZhbHVlIH0gPSB2YWx1ZVJlZi5jdXJyZW50O1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC8tL2csICcnKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsID09PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoJy0nKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbCAhPT0gJ2JpZ2ludCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghbmVnYXRpdmUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IE1hdGguYWJzKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHplcm8gPSBCaWdJbnQoMCk7XG4gICAgICAgICAgICAgICAgdmFsID0gdmFsIDwgemVybyA/IC12YWwgOiB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykgJiYgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gKCcnICsgdmFsKS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbb2xkSW50LCBvbGREZWNpbWFsXSA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZEludC5zcGxpdCgnLCcpLmpvaW4oJycpID09IGludClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHtvbGREZWNpbWFsfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc3RyVmFsID0gJycgKyB2YWw7XG4gICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfYyA9IChfYiA9IChfYSA9IHN0clZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5sZW5ndGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICBjb25zdCBibiA9IEJpZ051bWJlcihzdHJWYWwpO1xuICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiBzdHJWYWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy0nKSA/IG5vcm1hbGl6ZWQgOiBgLSR7bm9ybWFsaXplZH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzID0gYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpO1xuICAgICAgICAgICAgc2V0VmFsdWUocmVzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5PZmZzZXQgPSAoKF9kID0gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsLmxlbmd0aCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMCkgLSAoKF9lID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogMCk7XG4gICAgICAgIGNvbnN0IGlzTGlrZUtleWJvYXJkSW5wdXQgPSBvcmlnaW5PZmZzZXQgPT09IDEgfHwgb3JpZ2luT2Zmc2V0ID09PSAtMTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkT2Zmc2V0ID0gbnVtZXJpY0Zvcm1hdHRlcih2YWwgIT09IG51bGwgJiYgdmFsICE9PSB2b2lkIDAgPyB2YWwgOiAnJywge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSkubGVuZ3RoIC0gZm9ybWF0dGVkVmFsdWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBNYXRoLm1heCghaXNMaWtlS2V5Ym9hcmRJbnB1dCA/IGZvcm1hdHRlZE9mZnNldCA6IG9yaWdpbk9mZnNldCwgMCkgKyAoaGFzRGVjaW1hbFBvaW50ID8gb3JpZ2luT2Zmc2V0IDwgMCA/IDMgOiAyIDogMCk7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnb2Zmc2V0Jywgb2Zmc2V0KTtcbiAgICAgICAgY29uc29sZS5pbmZvKCdvcmlnaW5PZmZzZXQnLCBvcmlnaW5PZmZzZXQpO1xuICAgICAgICBjb25zb2xlLmluZm8oJ2Zvcm1hdHRlZE9mZnNldCcsIGZvcm1hdHRlZE9mZnNldCk7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnaXNMaWtlS2V5Ym9hcmRJbnB1dCcsIGlzTGlrZUtleWJvYXJkSW5wdXQpO1xuICAgICAgICBjb25zb2xlLmluZm8oJ2lucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50JywgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQpO1xuICAgICAgICBjYWxjQ2FyZXRQb3ModmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwID8gdmFsIDogJycsIG9mZnNldCwgTWF0aC5tYXgoaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhbHVlUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIF92YWx1ZSxcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICAgICAgbWluLFxuICAgICAgICAgICAgbWF4LFxuICAgICAgICAgICAgbmVnYXRpdmUsXG4gICAgICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICB9O1xuICAgIH0sIFtfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWluLCBtYXgsIG5lZ2F0aXZlLCBtYXhGcmFjdGlvbkRpZ2l0c10pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIGpvaW5DbHMod3JhcHBlckNscywgY2xhc3NlcyhzaXplKSwgaW52YWxpZCAmJiBjbGFzc2VzKCdpbnZhbGlkJyksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCByZWFkT25seSAmJiBjbGFzc2VzKCdyZWFkb25seScpLCBfdmFsdWUgJiYgY2xhc3NlcygnZmlsbGVkJykpKSwgY2hpbGRyZW46IFtsYWJlbFxuICAgICAgICAgICAgICAgID8gbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICA/IF9qc3goU2tlbGV0b24sIHsgd2lkdGg6ICc3MnB4JywgaGVpZ2h0OiAnMThweCcsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtbG9hZGluZycpIH0pXG4gICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJywgam9pbkNscyhyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENscykpLCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgICAgICAgICAgICA6IG51bGwsIF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBjb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NOYW1lLCBpc0ZvY3VzICYmIGNsYXNzZXMoJ2ZvY3VzJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VsZW1lbnQnLCAoIWlzRm9jdXMgJiYgaXNNYXhXaWR0aCkgPyBjbGFzc2VzKCdlbGVtZW50LW1heCcpIDogJycpLCBjaGlsZHJlbjogX2pzeChcImlucHV0XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBpbnB1dFJlZiwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlYWRPbmx5OiByZWFkT25seSwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzdHlsZTogeyAnLS1pbnB1dC13aWR0aCc6IGAke193aWR0aH1weGAgfSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgb25TZWxlY3Q6IGhhbmRsZVNlbGVjdCwgb25Gb2N1czogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXMgPT09IG51bGwgfHwgb25Gb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Gb2N1cyhlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBvbkJsdXI6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gfSkpIH0pLCBjdXJyZW5jeSAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogY3VycmVuY3lSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnY3VycmVuY3knKSwgY2hpbGRyZW46IGN1cnJlbmN5IH0pLCBsb2FkaW5nID8gX2pzeChTcGlubmVyLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4LWxvYWRpbmcnKSwgc3Ryb2tlV2lkdGg6ICc0JyB9KSA6IHN1ZmZpeCA/IF9qc3goXCJzcGFuXCIsIHsgcmVmOiBzdWZmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSkgOiBudWxsLCBfanN4KFwic3BhblwiLCB7IHJlZjogZmFrZUVsZVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmYWtlJyksIG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2hpbGRyZW46IGZvcm1hdHRlZFZhbHVlIH0pXSB9KSwgKG1lc3NhZ2UgfHwgZm9vdG5vdGUpICYmIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdleHRyYScpLCBjaGlsZHJlbjogW21lc3NhZ2UgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIG1lc3NhZ2VDbHMpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSwgZm9vdG5vdGUgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZm9vdG5vdGUnLCBmb290bm90ZUNscyksIGNoaWxkcmVuOiBmb290bm90ZSB9KV0gfSldIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oSW5wdXRBbW91bnQpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -1 +1 @@
1
- .om-react-ui-input-amount-normal-wrapper{display:inline-flex;flex-direction:column;width:100%}.om-react-ui-input-amount-normal{display:inline-flex;gap:8px;align-items:center;justify-content:start;width:100%;height:56px;padding:12px 16px;padding-bottom:16px;background-color:#f8f8f8;border:1px solid #d1d2d2;border-radius:12px;cursor:text}.om-react-ui-input-amount-normal:hover{border-color:#073387}.om-react-ui-input-amount-normal-focus{border-color:#073387;border-width:2px}.om-react-ui-input-amount-normal-element{width:100%}.om-react-ui-input-amount-normal-element input{width:100%;height:52px;padding:0;color:#131313;font-weight:400;font-size:16px;font-family:inherit;font-style:normal;line-height:22px;background-color:inherit;border:none;border-radius:0;outline:none;transition:none}.om-react-ui-input-amount-normal-element input::placeholder{color:#9fa3a3;font-weight:400}.om-react-ui-input-amount-normal-fake{position:absolute;top:0;left:-9999px;z-index:-1;display:inline-block;white-space:pre;visibility:hidden;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;inset-block-start:0;inset-inline-start:0}.om-react-ui-input-amount-normal-label{display:inline-block;margin-bottom:8px;font-weight:600;font-size:16px;font-style:normal;line-height:18px;word-wrap:break-word;word-break:break-all}.om-react-ui-input-amount-normal-label-required:after{margin-left:4px;color:#ae0000;font-size:16px;font-style:normal;line-height:120%;content:"*"}.om-react-ui-input-amount-normal-label-loading{margin-bottom:8px}.om-react-ui-input-amount-normal-currency,.om-react-ui-input-amount-normal-prefix,.om-react-ui-input-amount-normal-suffix{display:inline-flex;flex-grow:0;flex-shrink:0;align-items:center}.om-react-ui-input-amount-normal-suffix{margin-left:auto}.om-react-ui-input-amount-normal-suffix-loading{display:inline-block;width:16px;height:16px;margin:0 8px 0 auto}.om-react-ui-input-amount-normal-suffix-loading svg circle{stroke:#9fa3a3!important}.om-react-ui-input-amount-normal-message{display:flex;gap:4px;align-items:center;justify-content:flex-start;margin-top:4px;color:#646465;font-weight:400;font-size:12px;font-style:normal;line-height:17px;word-wrap:break-word;word-break:keep-all}.om-react-ui-input-amount-normal-message-success{color:#1f5800}.om-react-ui-input-amount-normal-message-error{color:#ae0000}.om-react-ui-input-amount-normal-footnote{margin-top:4px;text-align:left}.om-react-ui-input-amount-normal-readonly .om-react-ui-input-amount-normal{border-color:#d1d2d2;border-width:1px}.om-react-ui-input-amount-normal-readonly .om-react-ui-input-amount-normal-element input{cursor:default}.om-react-ui-input-amount-normal-disabled .om-react-ui-input-amount-normal{background-color:#e3e4e4;border-color:#e3e4e4;border-width:1px;cursor:not-allowed}.om-react-ui-input-amount-normal-disabled .om-react-ui-input-amount-normal-element input{opacity:1}.om-react-ui-input-amount-normal-disabled.om-react-ui-input-amount-normal-filled .om-react-ui-input-amount-normal{background-color:#f0f0f0;border-color:#f0f0f0;cursor:text}.om-react-ui-input-amount-normal-disabled.om-react-ui-input-amount-normal-filled .om-react-ui-input-amount-normal-element input{cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text;pointer-events:auto}.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal{border-color:#1f5800;border-width:1px}.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-element,.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-element input,.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-message,.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-prefix{color:#1f5800}.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal{border-color:#ae0000;border-width:1px}.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-element,.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-element input,.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-message,.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-prefix{color:#ae0000}
1
+ .om-react-ui-input-amount-normal-wrapper{display:inline-flex;flex-direction:column;width:100%}.om-react-ui-input-amount-normal{display:inline-flex;gap:8px;align-items:center;justify-content:start;width:100%;height:56px;padding:12px 16px;background-color:#f8f8f8;border:1px solid #d1d2d2;border-radius:12px;cursor:text}.om-react-ui-input-amount-normal:hover{border-color:#073387}.om-react-ui-input-amount-normal-focus{border-color:#073387;border-width:2px}.om-react-ui-input-amount-normal-element{width:100%}.om-react-ui-input-amount-normal-element input{width:100%;height:52px;padding:0;color:#131313;font-weight:400;font-size:16px;font-family:inherit;font-style:normal;line-height:22px;background-color:inherit;border:none;border-radius:0;outline:none;transition:none}.om-react-ui-input-amount-normal-element input::placeholder{color:#9fa3a3;font-weight:400}.om-react-ui-input-amount-normal-fake{position:absolute;top:0;left:-9999px;z-index:-1;display:inline-block;white-space:pre;visibility:hidden;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;inset-block-start:0;inset-inline-start:0}.om-react-ui-input-amount-normal-label{display:inline-block;margin-bottom:8px;font-weight:600;font-size:16px;font-style:normal;line-height:18px;word-wrap:break-word;word-break:break-all}.om-react-ui-input-amount-normal-label-required:after{margin-left:4px;color:#ae0000;font-size:16px;font-style:normal;line-height:120%;content:"*"}.om-react-ui-input-amount-normal-label-loading{margin-bottom:8px}.om-react-ui-input-amount-normal-currency,.om-react-ui-input-amount-normal-prefix,.om-react-ui-input-amount-normal-suffix{display:inline-flex;flex-grow:0;flex-shrink:0;align-items:center}.om-react-ui-input-amount-normal-suffix{margin-left:auto}.om-react-ui-input-amount-normal-suffix-loading{display:inline-block;width:16px;height:16px;margin:0 8px 0 auto}.om-react-ui-input-amount-normal-suffix-loading svg circle{stroke:#9fa3a3!important}.om-react-ui-input-amount-normal-message{display:flex;gap:4px;align-items:center;justify-content:flex-start;margin-top:4px;color:#646465;font-weight:400;font-size:12px;font-style:normal;line-height:17px;word-wrap:break-word;word-break:keep-all}.om-react-ui-input-amount-normal-message-success{color:#1f5800}.om-react-ui-input-amount-normal-message-error{color:#ae0000}.om-react-ui-input-amount-normal-footnote{margin-top:4px;text-align:left}.om-react-ui-input-amount-normal-readonly .om-react-ui-input-amount-normal{border-color:#d1d2d2;border-width:1px}.om-react-ui-input-amount-normal-readonly .om-react-ui-input-amount-normal-element input{cursor:default}.om-react-ui-input-amount-normal-disabled .om-react-ui-input-amount-normal{background-color:#e3e4e4;border-color:#e3e4e4;border-width:1px;cursor:not-allowed}.om-react-ui-input-amount-normal-disabled .om-react-ui-input-amount-normal-element input{opacity:1}.om-react-ui-input-amount-normal-disabled.om-react-ui-input-amount-normal-filled .om-react-ui-input-amount-normal{background-color:#f0f0f0;border-color:#f0f0f0;cursor:text}.om-react-ui-input-amount-normal-disabled.om-react-ui-input-amount-normal-filled .om-react-ui-input-amount-normal-element input{cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text;pointer-events:auto}.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal{border-color:#1f5800;border-width:1px}.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-element,.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-element input,.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-message,.om-react-ui-input-amount-normal-success .om-react-ui-input-amount-normal-prefix{color:#1f5800}.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal{border-color:#ae0000;border-width:1px}.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-element,.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-element input,.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-message,.om-react-ui-input-amount-normal-invalid .om-react-ui-input-amount-normal-prefix{color:#ae0000}.om-react-ui-input-amount-normal-small .om-react-ui-input-amount-normal{height:44px}.om-react-ui-input-amount-normal-small .om-react-ui-input-amount-normal-element input{height:40px;font-size:14px;line-height:20px}
@@ -19,7 +19,6 @@ $cls-normal: #{$cls}-normal;
19
19
  width: 100%;
20
20
  height: 56px;
21
21
  padding: 12px 16px;
22
- padding-bottom: 16px;
23
22
  background-color: $color-grey-light;
24
23
  border-color: $color-grey-bold;
25
24
  border-style: solid;
@@ -237,4 +236,18 @@ $cls-normal: #{$cls}-normal;
237
236
  }
238
237
  }
239
238
  }
239
+ }
240
+
241
+ .#{$cls-normal}-small {
242
+ .#{$cls-normal} {
243
+ height: 44px;
244
+
245
+ &-element {
246
+ input {
247
+ height: 40px;
248
+ font-size: 14px;
249
+ line-height: 20px;
250
+ }
251
+ }
252
+ }
240
253
  }