@1money/react-ui 1.14.1 → 1.14.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.
@@ -131,7 +131,7 @@ export var InputAmount = function InputAmount(props) {
131
131
  var calcCaretPos = useCallback(function (val) {
132
132
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
133
133
  var currPos = arguments.length > 2 ? arguments[2] : undefined;
134
- var _a, _b, _c;
134
+ var _a, _b;
135
135
  if (inputRef.current) {
136
136
  var _valueRef$current = valueRef.current,
137
137
  _value2 = _valueRef$current._value,
@@ -142,13 +142,9 @@ export var InputAmount = function InputAmount(props) {
142
142
  allowNegative: _negative
143
143
  });
144
144
  var originOffset = val.length - ((_a = _value2 === null || _value2 === void 0 ? void 0 : _value2.length) !== null && _a !== void 0 ? _a : 0);
145
- var isAdd = originOffset > 0;
146
- var ignoreOldPos = isAdd ? val.length - ((_b = _value2 === null || _value2 === void 0 ? void 0 : _value2.length) !== null && _b !== void 0 ? _b : 0) > 1 : false;
147
- var position = (_c = currPos !== null && currPos !== void 0 ? currPos : inputRef.current.selectionEnd) !== null && _c !== void 0 ? _c : 0;
148
- if (!ignoreOldPos) {
149
- var oldPosVal = _formattedValue.slice(0, Math.max(position, 0));
150
- position = oldPosVal.split(',').join('').length;
151
- }
145
+ var position = (_b = currPos !== null && currPos !== void 0 ? currPos : inputRef.current.selectionEnd) !== null && _b !== void 0 ? _b : 0;
146
+ var oldPosVal = _formattedValue.slice(0, Math.max(position, 0));
147
+ position = oldPosVal.split(',').join('').length;
152
148
  var posVal = val.slice(0, position + originOffset);
153
149
  formattedNewVal.split('').reduce(function (acc, _char, ind) {
154
150
  if (_char === ',') return acc;else acc.push(_char);
@@ -400,4 +396,4 @@ export var InputAmount = function InputAmount(props) {
400
396
  });
401
397
  };
402
398
  export default /*#__PURE__*/memo(InputAmount);
403
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJwcmVmaXhFbGVDbHMiLCJzdWZmaXhFbGVDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsImlnbm9yZVNlbGVjdFJlZiIsIm9uQ2hhbmdlUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInRob3VzYW5kU2VwYXJhdG9yIiwiYWxsb3dOZWdhdGl2ZSIsInZhbHVlUmVmIiwic2Nyb2xsVG9FbmQiLCJzdGlja3kiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfYSIsImlucHV0IiwiY3VycmVudCIsImxlbiIsInBvc2l0aW9uIiwic2Nyb2xsTGVmdCIsInNob3VsZFRvRW5kIiwic3RhcnQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsInNjcm9sbFdpZHRoIiwiZm9jdXMiLCJjYWxjQ2FyZXRQb3MiLCJvZmZzZXQiLCJjdXJyUG9zIiwiX2IiLCJfYyIsIl92YWx1ZVJlZiRjdXJyZW50IiwiZm9ybWF0dGVkTmV3VmFsIiwib3JpZ2luT2Zmc2V0IiwiaXNBZGQiLCJpZ25vcmVPbGRQb3MiLCJzZWxlY3Rpb25FbmQiLCJvbGRQb3NWYWwiLCJzbGljZSIsIk1hdGgiLCJzcGxpdCIsImpvaW4iLCJwb3NWYWwiLCJyZWR1Y2UiLCJhY2MiLCJjaGFyIiwiaW5kIiwicHVzaCIsImhhbmRsZUNoYW5nZSIsIl9kIiwiX3ZhbHVlUmVmJGN1cnJlbnQyIiwidGFyZ2V0IiwiaGFzRGVjaW1hbFBvaW50IiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsImlzU3RhbmRhbG9uZU1pbnVzIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiaW50IiwiZGVjaW1hbCIsIm1heERlY2ltYWxzIiwiTnVtYmVyIiwidHJ1bmNhdGVkRGVjaW1hbHMiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQyIiwib2xkSW50IiwiZGVjaW1hbHMiLCJtYXRjaCIsImJuIiwibm9ybWFsaXplZCIsInRvRml4ZWQiLCJ0cmltIiwic3RhcnRzV2l0aCIsImlzWmVybyIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlU2VsZWN0IiwiX2UiLCJfZiIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwiYWJzIiwiemVybyIsIkJpZ0ludCIsIl9zcGxpdCIsIl9zcGxpdDIiLCJzeW50aGV0aWNFdmVudCIsInN0clZhbCIsIndpZHRoIiwiaGVpZ2h0IiwicmVmIiwib25DbGljayIsIkhUTUxJbnB1dEVsZW1lbnQiLCJhc3NpZ24iLCJzdHlsZSIsIm9uU2VsZWN0Iiwic3Ryb2tlV2lkdGgiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElB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Q0FBQSxLQUFBLEVBQUE7UUFBSzRDLFNBQVMsRUFBRXdCLE9BQU8sQ0FBQyxTQUFTLEVBQUVuQixVQUFVLENBQUM7UUFBQVosUUFBQSxFQUFHMEI7TUFBTyxDQUFBLENBQU8sRUFDMUVyQixRQUFRLElBQUkxQyxJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUs0QyxTQUFTLEVBQUV3QixPQUFPLENBQUMsVUFBVSxFQUFFekIsV0FBVyxDQUFDO1FBQUFOLFFBQUEsRUFBR0s7TUFBUSxDQUFBLENBQU87SUFBQSxDQUFBLENBQzNFO0VBQUEsQ0FBQSxDQUVKO0FBQ1IsQ0FBQztBQUVELDRCQUFldkMsSUFBSSxDQUFDNEIsV0FBVyxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgbnVtZXJpY0Zvcm1hdHRlciB9IGZyb20gJ3JlYWN0LW51bWJlci1mb3JtYXQnO1xuaW1wb3J0IHsgU2tlbGV0b24gfSBmcm9tICdwcmltZXJlYWN0L3NrZWxldG9uJztcbmltcG9ydCBTcGlubmVyIGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBNSU5fSU5QVVRfV0lEVEggPSAzMztcbmNvbnN0IG5vcm1hbGl6ZU51bWJlcklucHV0ID0gKHZhbCkgPT4gdmFsXG4gICAgLnJlcGxhY2UoL1tcXHUzMDAyXFx1ZmYwZVxcdWZmNjFdL2csICcuJylcbiAgICAucmVwbGFjZSgvW1xcdUZGMENdL2csICcsJyk7XG5jb25zdCBjYWxjVmFsdWVJblJhbmdlID0gKHZhbCwgbWluLCBtYXgpID0+IHtcbiAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT09ICctJyB8fCBpc05hTigrdmFsKSlcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICBsZXQgY2FsY1ZhbCA9IHZhbDtcbiAgICBjb25zdCBiblZhbCA9IEJpZ051bWJlcih2YWwpO1xuICAgIGlmICh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50Jykge1xuICAgICAgICBjb25zdCBtaW5CbiA9IEJpZ051bWJlcihtaW4pO1xuICAgICAgICBpZiAoYm5WYWwubHQobWluQm4pKSB7XG4gICAgICAgICAgICBjYWxjVmFsID0gJycgKyBtaW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1heEJuID0gQmlnTnVtYmVyKG1heCk7XG4gICAgICAgIGlmIChiblZhbC5ndChtYXhCbikpIHtcbiAgICAgICAgICAgIGNhbGNWYWwgPSAnJyArIG1heDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FsY1ZhbDtcbn07XG5leHBvcnQgY29uc3QgSW5wdXRBbW91bnQgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgdHlwZSA9ICdwcmltYXJ5JywgbWF4RnJhY3Rpb25EaWdpdHMsIGNoaWxkcmVuLCBwbGFjZWhvbGRlciA9ICcwJywgbWluLCBtYXgsIFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBzaXplID0gJ2xhcmdlJywgZm9vdG5vdGUsIGZvb3Rub3RlQ2xzLCBjbGFzc05hbWUsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBwcmVmaXhDbHMgPSAnaW5wdXQtYW1vdW50JywgbWVzc2FnZUNscywgcHJlZml4RWxlQ2xzLCBzdWZmaXhFbGVDbHMsIGludmFsaWQsIG5lZ2F0aXZlLCByZXF1aXJlZCwgbG9hZGluZywgc3VjY2VzcywgZGlzYWJsZWQsIHJlYWRPbmx5LCBsYWJlbCwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBtZXNzYWdlLCBvbkNoYW5nZSwgb25CbHVyLCBvbkZvY3VzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1widmFsdWVcIiwgXCJ0eXBlXCIsIFwibWF4RnJhY3Rpb25EaWdpdHNcIiwgXCJjaGlsZHJlblwiLCBcInBsYWNlaG9sZGVyXCIsIFwibWluXCIsIFwibWF4XCIsIFwic2l6ZVwiLCBcImZvb3Rub3RlXCIsIFwiZm9vdG5vdGVDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJ3cmFwcGVyQ2xzXCIsIFwibGFiZWxDbHNcIiwgXCJwcmVmaXhDbHNcIiwgXCJtZXNzYWdlQ2xzXCIsIFwicHJlZml4RWxlQ2xzXCIsIFwic3VmZml4RWxlQ2xzXCIsIFwiaW52YWxpZFwiLCBcIm5lZ2F0aXZlXCIsIFwicmVxdWlyZWRcIiwgXCJsb2FkaW5nXCIsIFwic3VjY2Vzc1wiLCBcImRpc2FibGVkXCIsIFwicmVhZE9ubHlcIiwgXCJsYWJlbFwiLCBcInByZWZpeFwiLCBcInN1ZmZpeFwiLCBcImN1cnJlbmN5XCIsIFwibWVzc2FnZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25CbHVyXCIsIFwib25Gb2N1c1wiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7cHJlZml4Q2xzfS0ke3R5cGV9YCk7XG4gICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZmFrZUVsZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmVmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc3VmZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGN1cnJlbmN5UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBpbnB1dENhcmV0UG9zaXRpb25SZWYgPSB1c2VSZWYoMCk7XG4gICAgY29uc3QgaWdub3JlU2VsZWN0UmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBvbkNoYW5nZVJlZiA9IHVzZVJlZihvbkNoYW5nZSk7XG4gICAgY29uc3QgW192YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW193aWR0aCwgc2V0V2lkdGhdID0gdXNlU3RhdGUoTUlOX0lOUFVUX1dJRFRIKTtcbiAgICBjb25zdCBbaXNNYXhXaWR0aCwgc2V0SXNNYXhXaWR0aF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2lzRm9jdXMsIHNldElzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICB9KTtcbiAgICB9LCBbX3ZhbHVlLCBuZWdhdGl2ZV0pO1xuICAgIGNvbnN0IHZhbHVlUmVmID0gdXNlUmVmKHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIF92YWx1ZSxcbiAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgIG1pbixcbiAgICAgICAgbWF4LFxuICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoc3RpY2t5ID0gZmFsc2UpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghaW5wdXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IGlucHV0LnZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGlucHV0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZFRvRW5kID0gIXN0aWNreTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzaG91bGRUb0VuZCA/IGxlbiA6IGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50O1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgc3RhcnQpO1xuICAgICAgICBpbnB1dC5zY3JvbGxMZWZ0ID0gc2hvdWxkVG9FbmQgPyBpbnB1dC5zY3JvbGxXaWR0aCA6IHBvc2l0aW9uO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBjYWxjQ2FyZXRQb3MgPSB1c2VDYWxsYmFjaygodmFsLCBvZmZzZXQgPSAwLCBjdXJyUG9zKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBfdmFsdWUsIG5lZ2F0aXZlLCBmb3JtYXR0ZWRWYWx1ZSB9ID0gdmFsdWVSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZE5ld1ZhbCA9IG51bWVyaWNGb3JtYXR0ZXIodmFsLCB7XG4gICAgICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9mZnNldCA9IHZhbC5sZW5ndGggLSAoKF9hID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCk7XG4gICAgICAgICAgICBjb25zdCBpc0FkZCA9IG9yaWdpbk9mZnNldCA+IDA7XG4gICAgICAgICAgICBjb25zdCBpZ25vcmVPbGRQb3MgPSBpc0FkZCA/IHZhbC5sZW5ndGggLSAoKF9iID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCkgPiAxIDogZmFsc2U7XG4gICAgICAgICAgICBsZXQgcG9zaXRpb24gPSAoX2MgPSBjdXJyUG9zICE9PSBudWxsICYmIGN1cnJQb3MgIT09IHZvaWQgMCA/IGN1cnJQb3MgOiBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgIGlmICghaWdub3JlT2xkUG9zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2xkUG9zVmFsID0gZm9ybWF0dGVkVmFsdWUuc2xpY2UoMCwgTWF0aC5tYXgocG9zaXRpb24sIDApKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IG9sZFBvc1ZhbC5zcGxpdCgnLCcpLmpvaW4oJycpLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBvc1ZhbCA9IHZhbC5zbGljZSgwLCAocG9zaXRpb24gKyBvcmlnaW5PZmZzZXQpKTtcbiAgICAgICAgICAgIGZvcm1hdHRlZE5ld1ZhbC5zcGxpdCgnJykucmVkdWNlKChhY2MsIGNoYXIsIGluZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGFyID09PSAnLCcpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChjaGFyKTtcbiAgICAgICAgICAgICAgICBpZiAoYWNjLmpvaW4oJycpID09PSBwb3NWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBpbmQgKyAxO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICAgICAgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQgPSBwb3NpdGlvbiArIG9mZnNldDtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgX3ZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWluLCBtYXgsIG5lZ2F0aXZlLCBtYXhGcmFjdGlvbkRpZ2l0cyB9ID0gdmFsdWVSZWYuY3VycmVudDtcbiAgICAgICAgbGV0IHZhbCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICBpZiAodmFsICE9IG51bGwpXG4gICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGhhc0RlY2ltYWxQb2ludCA9ICEhdmFsICYmIHZhbC5lbmRzV2l0aCgnLicpO1xuICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgaWYgKCFuZWdhdGl2ZSAmJiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsLmluY2x1ZGVzKCctJykpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBpc1N0YW5kYWxvbmVNaW51cyA9IG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nO1xuICAgICAgICBpZiAoIWlzU3RhbmRhbG9uZU1pbnVzICYmIGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodmFsID09PSBfdmFsdWUgJiYgIWhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgY29uc3QgW2ludCwgZGVjaW1hbF0gPSB2YWwuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGNvbnN0IG1heERlY2ltYWxzID0gTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBtYXhEZWNpbWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRydW5jYXRlZERlY2ltYWxzID0gZGVjaW1hbC5zbGljZSgwLCBtYXhEZWNpbWFscyk7XG4gICAgICAgICAgICAgICAgY29uc3QgW29sZEludCxdID0gZm9ybWF0dGVkVmFsdWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAob2xkSW50LnNwbGl0KCcsJykuam9pbignJykgPT0gaW50KVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgdmFsID0gYCR7aW50fS4ke3RydW5jYXRlZERlY2ltYWxzfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50JykgfHwgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgdmFsID0gY2FsY1ZhbHVlSW5SYW5nZSh2YWwsIG1pbiwgbWF4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsICE9PSAnJykge1xuICAgICAgICAgICAgaWYgKGlzU3RhbmRhbG9uZU1pbnVzKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSB2YWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhbCA9IGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgc2V0VmFsdWUodmFsID09PSAnJyA/IG51bGwgOiB2YWwpO1xuICAgICAgICAgICAgY2FsY0NhcmV0UG9zKHZhbCwgaGFzRGVjaW1hbFBvaW50ID8gMiA6IDAsIE1hdGgubWF4KGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50LCAwKSk7XG4gICAgICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIChfZCA9IG9uQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5jYWxsKG9uQ2hhbmdlUmVmLCBlLCB2YWwpO1xuICAgIH0sIFtkaXNhYmxlZCwgcmVhZE9ubHldKTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJQb3MgPSAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2VsZWN0aW9uRW5kO1xuICAgICAgICBpZiAodHlwZW9mIGN1cnJQb3MgPT09ICdudW1iZXInKVxuICAgICAgICAgICAgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQgPSBjdXJyUG9zO1xuICAgIH0sIFtdKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKF9iID0gKF9hID0gY29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTUlOX0lOUFVUX1dJRFRIO1xuICAgICAgICBjb25zdCBwcmVmaXhXaWR0aCA9IChfZCA9IChfYyA9IHByZWZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgIGNvbnN0IHN1ZmZpeFdpZHRoID0gKF9mID0gKF9lID0gc3VmZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMDtcbiAgICAgICAgY29uc3QgY3VycmVuY3lXaWR0aCA9IChfaCA9IChfZyA9IGN1cnJlbmN5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2ggIT09IHZvaWQgMCA/IF9oIDogMDtcbiAgICAgICAgY29uc3QgZmFrZVdpZHRoID0gKF9rID0gKF9qID0gZmFrZUVsZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2oub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IDA7XG4gICAgICAgIGNvbnN0IGdhcFdpZHRoID0gcHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgPyAyNFxuICAgICAgICAgICAgOiAocHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGgpIHx8IChwcmVmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKSB8fCAoc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aClcbiAgICAgICAgICAgICAgICA/IDE2XG4gICAgICAgICAgICAgICAgOiBwcmVmaXhXaWR0aCB8fCBzdWZmaXhXaWR0aCB8fCBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBwcmVmaXhXaWR0aCAtIHN1ZmZpeFdpZHRoIC0gY3VycmVuY3lXaWR0aCAtIGdhcFdpZHRoO1xuICAgICAgICBjb25zdCBpc01heCA9IGZha2VXaWR0aCA+PSBtYXhXaWR0aDtcbiAgICAgICAgc2V0V2lkdGgoTWF0aC5taW4obWF4V2lkdGgsIE1hdGgubWF4KGZha2VXaWR0aCwgTUlOX0lOUFVUX1dJRFRIKSkpO1xuICAgICAgICBzZXRJc01heFdpZHRoKGlzTWF4KTtcbiAgICAgICAgaWYgKGlzRm9jdXMpXG4gICAgICAgICAgICBzY3JvbGxUb0VuZCh0cnVlKTtcbiAgICB9LCBbX3ZhbHVlLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIGlzRm9jdXNdKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGxldCB2YWwgPSB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnID8gX3ZhbHVlIDogdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGlzU3RhbmRhbG9uZU1pbnVzID0gZmFsc2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHZhbCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGhhc0RlY2ltYWxQb2ludCA9ICEhdmFsICYmIHZhbC5lbmRzV2l0aCgnLicpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICAgICAgaWYgKCFuZWdhdGl2ZSlcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnJlcGxhY2UoLy0vZywgJycpO1xuICAgICAgICAgICAgICAgIGlzU3RhbmRhbG9uZU1pbnVzID0gISFuZWdhdGl2ZSAmJiB2YWwgPT09ICctJztcbiAgICAgICAgICAgICAgICBpZiAoIWlzU3RhbmRhbG9uZU1pbnVzICYmIGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInICYmIHR5cGVvZiB2YWwgIT09ICdiaWdpbnQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBNYXRoLmFicyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB6ZXJvID0gQmlnSW50KDApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA8IHplcm8gPyAtdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmXG4gICAgICAgICAgICAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgY29uc3QgW2ludCwgZGVjaW1hbF0gPSAoJycgKyB2YWwpLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBjb25zdCBtYXhEZWNpbWFscyA9IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gbWF4RGVjaW1hbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWREZWNpbWFscyA9IGRlY2ltYWwuc2xpY2UoMCwgbWF4RGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHt0cnVuY2F0ZWREZWNpbWFsc31gO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKHZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzeW50aGV0aWNFdmVudCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogaW5wdXRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gb25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25DaGFuZ2VSZWYsIHN5bnRoZXRpY0V2ZW50LCB2YWwgIT09IG51bGwgJiYgdmFsICE9PSB2b2lkIDAgPyB2YWwgOiAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UoJycgKyB2YWwsIG1pbiwgbWF4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNTdGFuZGFsb25lTWludXMpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSAnLSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJWYWwgPSAnJyArIHZhbDtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfZCA9IChfYyA9IChfYiA9IHN0clZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2JbMV0pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5sZW5ndGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiBzdHJWYWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFsID0gYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0VmFsdWUodmFsKTtcbiAgICAgICAgfVxuICAgICAgICBjYWxjQ2FyZXRQb3ModmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwID8gdmFsIDogJycsIGhhc0RlY2ltYWxQb2ludCA/IDIgOiAwLCBNYXRoLm1heChpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCwgMCkpO1xuICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfSwgW3ZhbHVlLCBtYXhGcmFjdGlvbkRpZ2l0cywgbWluLCBtYXgsIG5lZ2F0aXZlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgb25DaGFuZ2VSZWYuY3VycmVudCA9IG9uQ2hhbmdlO1xuICAgICAgICB2YWx1ZVJlZi5jdXJyZW50ID0ge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBfdmFsdWUsXG4gICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgICAgIG1pbixcbiAgICAgICAgICAgIG1heCxcbiAgICAgICAgICAgIG5lZ2F0aXZlLFxuICAgICAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHNcbiAgICAgICAgfTtcbiAgICB9LCBbX3ZhbHVlLCB2YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG9uQ2hhbmdlXSk7XG4gICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgam9pbkNscyh3cmFwcGVyQ2xzLCBjbGFzc2VzKHNpemUpLCBpbnZhbGlkICYmIGNsYXNzZXMoJ2ludmFsaWQnKSwgc3VjY2VzcyAmJiBjbGFzc2VzKCdzdWNjZXNzJyksIGRpc2FibGVkICYmIGNsYXNzZXMoJ2Rpc2FibGVkJyksIHJlYWRPbmx5ICYmIGNsYXNzZXMoJ3JlYWRvbmx5JyksIF92YWx1ZSAmJiBjbGFzc2VzKCdmaWxsZWQnKSkpLCBjaGlsZHJlbjogW2xhYmVsXG4gICAgICAgICAgICAgICAgPyBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgID8gX2pzeChTa2VsZXRvbiwgeyB3aWR0aDogJzcycHgnLCBoZWlnaHQ6ICcxOHB4JywgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC1sb2FkaW5nJykgfSlcbiAgICAgICAgICAgICAgICAgICAgOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnLCBqb2luQ2xzKHJlcXVpcmVkICYmIGNsYXNzZXMoJ2xhYmVsLXJlcXVpcmVkJyksIGxhYmVsQ2xzKSksIGNoaWxkcmVuOiBsYWJlbCB9KVxuICAgICAgICAgICAgICAgIDogbnVsbCwgX2pzeHMoXCJkaXZcIiwgeyByZWY6IGNvbnRhaW5lclJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjbGFzc05hbWUsIGlzRm9jdXMgJiYgY2xhc3NlcygnZm9jdXMnKSkpLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXhXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IHByZWZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnLCBwcmVmaXhFbGVDbHMpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbGVtZW50JywgKCFpc0ZvY3VzICYmIGlzTWF4V2lkdGgpID8gY2xhc3NlcygnZWxlbWVudC1tYXgnKSA6ICcnKSwgY2hpbGRyZW46IF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaW5wdXRSZWYsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZWFkT25seTogcmVhZE9ubHksIGRpc2FibGVkOiBkaXNhYmxlZCwgc3R5bGU6IHsgJy0taW5wdXQtd2lkdGgnOiBgJHtfd2lkdGh9cHhgIH0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uU2VsZWN0OiBoYW5kbGVTZWxlY3QsIG9uRm9jdXM6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgb25CbHVyOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pKSB9KSwgY3VycmVuY3kgJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IGN1cnJlbmN5UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1cnJlbmN5JyksIGNoaWxkcmVuOiBjdXJyZW5jeSB9KSwgbG9hZGluZyA/IF9qc3goU3Bpbm5lciwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeC1sb2FkaW5nJyksIHN0cm9rZVdpZHRoOiAnNCcgfSkgOiBzdWZmaXggPyBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcsIHN1ZmZpeEVsZUNscyksIGNoaWxkcmVuOiBzdWZmaXggfSkgOiBudWxsLCBfanN4KFwic3BhblwiLCB7IHJlZjogZmFrZUVsZVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmYWtlJyksIG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2hpbGRyZW46IGZvcm1hdHRlZFZhbHVlIH0pXSB9KSwgKG1lc3NhZ2UgfHwgZm9vdG5vdGUpICYmIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdleHRyYScpLCBjaGlsZHJlbjogW21lc3NhZ2UgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIG1lc3NhZ2VDbHMpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSwgZm9vdG5vdGUgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZm9vdG5vdGUnLCBmb290bm90ZUNscyksIGNoaWxkcmVuOiBmb290bm90ZSB9KV0gfSldIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oSW5wdXRBbW91bnQpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
399
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJwcmVmaXhFbGVDbHMiLCJzdWZmaXhFbGVDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsImlnbm9yZVNlbGVjdFJlZiIsIm9uQ2hhbmdlUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInRob3VzYW5kU2VwYXJhdG9yIiwiYWxsb3dOZWdhdGl2ZSIsInZhbHVlUmVmIiwic2Nyb2xsVG9FbmQiLCJzdGlja3kiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfYSIsImlucHV0IiwiY3VycmVudCIsImxlbiIsInBvc2l0aW9uIiwic2Nyb2xsTGVmdCIsInNob3VsZFRvRW5kIiwic3RhcnQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsInNjcm9sbFdpZHRoIiwiZm9jdXMiLCJjYWxjQ2FyZXRQb3MiLCJvZmZzZXQiLCJjdXJyUG9zIiwiX2IiLCJfdmFsdWVSZWYkY3VycmVudCIsImZvcm1hdHRlZE5ld1ZhbCIsIm9yaWdpbk9mZnNldCIsInNlbGVjdGlvbkVuZCIsIm9sZFBvc1ZhbCIsInNsaWNlIiwiTWF0aCIsInNwbGl0Iiwiam9pbiIsInBvc1ZhbCIsInJlZHVjZSIsImFjYyIsImNoYXIiLCJpbmQiLCJwdXNoIiwiaGFuZGxlQ2hhbmdlIiwiX2MiLCJfZCIsIl92YWx1ZVJlZiRjdXJyZW50MiIsInRhcmdldCIsImhhc0RlY2ltYWxQb2ludCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsIl92YWwkc3BsaXQiLCJfdmFsJHNwbGl0MiIsImludCIsImRlY2ltYWwiLCJtYXhEZWNpbWFscyIsIk51bWJlciIsInRydW5jYXRlZERlY2ltYWxzIiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0IiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0MiIsIm9sZEludCIsImRlY2ltYWxzIiwibWF0Y2giLCJibiIsIm5vcm1hbGl6ZWQiLCJ0b0ZpeGVkIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJpc1plcm8iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVNlbGVjdCIsIl9lIiwiX2YiLCJfZyIsIl9oIiwiX2oiLCJfayIsImNvbnRhaW5lcldpZHRoIiwib2Zmc2V0V2lkdGgiLCJwcmVmaXhXaWR0aCIsInN1ZmZpeFdpZHRoIiwiY3VycmVuY3lXaWR0aCIsImZha2VXaWR0aCIsImdhcFdpZHRoIiwibWF4V2lkdGgiLCJpc01heCIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwic3ludGhldGljRXZlbnQiLCJzdHJWYWwiLCJ3aWR0aCIsImhlaWdodCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJvblNlbGVjdCIsInN0cm9rZVdpZHRoIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FB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cyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNhbGNWYWx1ZUluUmFuZ2UgPSAodmFsLCBtaW4sIG1heCkgPT4ge1xuICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PT0gJy0nIHx8IGlzTmFOKCt2YWwpKVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIGxldCBjYWxjVmFsID0gdmFsO1xuICAgIGNvbnN0IGJuVmFsID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBtaW4gPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1pbkJuID0gQmlnTnVtYmVyKG1pbik7XG4gICAgICAgIGlmIChiblZhbC5sdChtaW5CbikpIHtcbiAgICAgICAgICAgIGNhbGNWYWwgPSAnJyArIG1pbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWF4Qm4gPSBCaWdOdW1iZXIobWF4KTtcbiAgICAgICAgaWYgKGJuVmFsLmd0KG1heEJuKSkge1xuICAgICAgICAgICAgY2FsY1ZhbCA9ICcnICsgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYWxjVmFsO1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBwcmVmaXhFbGVDbHMsIHN1ZmZpeEVsZUNscywgaW52YWxpZCwgbmVnYXRpdmUsIHJlcXVpcmVkLCBsb2FkaW5nLCBzdWNjZXNzLCBkaXNhYmxlZCwgcmVhZE9ubHksIGxhYmVsLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIG1lc3NhZ2UsIG9uQ2hhbmdlLCBvbkJsdXIsIG9uRm9jdXMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJ2YWx1ZVwiLCBcInR5cGVcIiwgXCJtYXhGcmFjdGlvbkRpZ2l0c1wiLCBcImNoaWxkcmVuXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJtaW5cIiwgXCJtYXhcIiwgXCJzaXplXCIsIFwiZm9vdG5vdGVcIiwgXCJmb290bm90ZUNsc1wiLCBcImNsYXNzTmFtZVwiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcInByZWZpeENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJwcmVmaXhFbGVDbHNcIiwgXCJzdWZmaXhFbGVDbHNcIiwgXCJpbnZhbGlkXCIsIFwibmVnYXRpdmVcIiwgXCJyZXF1aXJlZFwiLCBcImxvYWRpbmdcIiwgXCJzdWNjZXNzXCIsIFwiZGlzYWJsZWRcIiwgXCJyZWFkT25seVwiLCBcImxhYmVsXCIsIFwicHJlZml4XCIsIFwic3VmZml4XCIsIFwiY3VycmVuY3lcIiwgXCJtZXNzYWdlXCIsIFwib25DaGFuZ2VcIiwgXCJvbkJsdXJcIiwgXCJvbkZvY3VzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtwcmVmaXhDbHN9LSR7dHlwZX1gKTtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmYWtlRWxlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZWZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdWZmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY3VycmVuY3lSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGlucHV0Q2FyZXRQb3NpdGlvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBpZ25vcmVTZWxlY3RSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IG9uQ2hhbmdlUmVmID0gdXNlUmVmKG9uQ2hhbmdlKTtcbiAgICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbX3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShNSU5fSU5QVVRfV0lEVEgpO1xuICAgIGNvbnN0IFtpc01heFdpZHRoLCBzZXRJc01heFdpZHRoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNGb2N1cywgc2V0SXNGb2N1c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgIH0pO1xuICAgIH0sIFtfdmFsdWUsIG5lZ2F0aXZlXSk7XG4gICAgY29uc3QgdmFsdWVSZWYgPSB1c2VSZWYoe1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgX3ZhbHVlLFxuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgbWluLFxuICAgICAgICBtYXgsXG4gICAgICAgIG5lZ2F0aXZlLFxuICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0cyxcbiAgICB9KTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGNhbGNDYXJldFBvcyA9IHVzZUNhbGxiYWNrKCh2YWwsIG9mZnNldCA9IDAsIGN1cnJQb3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgX3ZhbHVlLCBuZWdhdGl2ZSwgZm9ybWF0dGVkVmFsdWUgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5PZmZzZXQgPSB2YWwubGVuZ3RoIC0gKChfYSA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApO1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gKF9iID0gY3VyclBvcyAhPT0gbnVsbCAmJiBjdXJyUG9zICE9PSB2b2lkIDAgPyBjdXJyUG9zIDogaW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25FbmQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7XG4gICAgICAgICAgICBjb25zdCBvbGRQb3NWYWwgPSBmb3JtYXR0ZWRWYWx1ZS5zbGljZSgwLCBNYXRoLm1heChwb3NpdGlvbiwgMCkpO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBvbGRQb3NWYWwuc3BsaXQoJywnKS5qb2luKCcnKS5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBwb3NWYWwgPSB2YWwuc2xpY2UoMCwgKHBvc2l0aW9uICsgb3JpZ2luT2Zmc2V0KSk7XG4gICAgICAgICAgICBmb3JtYXR0ZWROZXdWYWwuc3BsaXQoJycpLnJlZHVjZSgoYWNjLCBjaGFyLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKGFjYy5qb2luKCcnKSA9PT0gcG9zVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kICsgMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zaXRpb24gKyBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIF92YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgbWF4RnJhY3Rpb25EaWdpdHMgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsKVxuICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGlmICghbmVnYXRpdmUgJiYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5pbmNsdWRlcygnLScpKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNTdGFuZGFsb25lTWludXMgPSBuZWdhdGl2ZSAmJiB2YWwgPT09ICctJztcbiAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHZhbCA9PT0gX3ZhbHVlICYmICFoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gdmFsLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBjb25zdCBtYXhEZWNpbWFscyA9IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gbWF4RGVjaW1hbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWREZWNpbWFscyA9IGRlY2ltYWwuc2xpY2UoMCwgbWF4RGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvbGRJbnQsXSA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZEludC5zcGxpdCgnLCcpLmpvaW4oJycpID09IGludClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHt0cnVuY2F0ZWREZWNpbWFsc31gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHx8ICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHZhbCA9ICctJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKF9jID0gKF9iID0gKF9hID0gdmFsLm1hdGNoKC9cXC4oXFxkKykkLykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBibiA9IEJpZ051bWJlcih2YWwpO1xuICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbC50cmltKCkuc3RhcnRzV2l0aCgnLScpICYmIGJuLmlzWmVybygpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy0nKSA/IG5vcm1hbGl6ZWQgOiBgLSR7bm9ybWFsaXplZH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtub3JtYWxpemVkfSR7aGFzRGVjaW1hbFBvaW50ID8gJy4nIDogJyd9YC50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHZhbCA9PT0gJycgPyBudWxsIDogdmFsKTtcbiAgICAgICAgICAgIGNhbGNDYXJldFBvcyh2YWwsIGhhc0RlY2ltYWxQb2ludCA/IDIgOiAwLCBNYXRoLm1heChpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCwgMCkpO1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICAoX2QgPSBvbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChvbkNoYW5nZVJlZiwgZSwgdmFsKTtcbiAgICB9LCBbZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpZ25vcmVTZWxlY3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyUG9zID0gKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXJyUG9zID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gY3VyclBvcztcbiAgICB9LCBbXSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzKVxuICAgICAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgfSwgW192YWx1ZSwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBpc0ZvY3VzXSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBsZXQgdmFsID0gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyA/IF92YWx1ZSA6IHZhbHVlO1xuICAgICAgICBsZXQgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIGxldCBpc1N0YW5kYWxvbmVNaW51cyA9IGZhbHNlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC8tL2csICcnKTtcbiAgICAgICAgICAgICAgICBpc1N0YW5kYWxvbmVNaW51cyA9ICEhbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsICE9PSAnYmlnaW50JylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFuZWdhdGl2ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gTWF0aC5hYnModmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgemVybyA9IEJpZ0ludCgwKTtcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwgPCB6ZXJvID8gLXZhbCA6IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSAmJlxuICAgICAgICAgICAgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gKCcnICsgdmFsKS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgY29uc3QgbWF4RGVjaW1hbHMgPSBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IG1heERlY2ltYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJ1bmNhdGVkRGVjaW1hbHMgPSBkZWNpbWFsLnNsaWNlKDAsIG1heERlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7dHJ1bmNhdGVkRGVjaW1hbHN9YDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ludGhldGljRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGlucHV0UmVmLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IG9uQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uQ2hhbmdlUmVmLCBzeW50aGV0aWNFdmVudCwgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwID8gdmFsIDogJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzU3RhbmRhbG9uZU1pbnVzKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RyVmFsID0gJycgKyB2YWw7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2QgPSAoX2MgPSAoX2IgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWzFdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubGVuZ3RoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHN0clZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhbCA9IGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FsY0NhcmV0UG9zKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHZvaWQgMCA/IHZhbCA6ICcnLCBoYXNEZWNpbWFsUG9pbnQgPyAyIDogMCwgTWF0aC5tYXgoaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcbiAgICAgICAgdmFsdWVSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgX3ZhbHVlLFxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgICAgICBtaW4sXG4gICAgICAgICAgICBtYXgsXG4gICAgICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgICAgIG1heEZyYWN0aW9uRGlnaXRzXG4gICAgICAgIH07XG4gICAgfSwgW192YWx1ZSwgdmFsdWUsIGZvcm1hdHRlZFZhbHVlLCBtaW4sIG1heCwgbmVnYXRpdmUsIG1heEZyYWN0aW9uRGlnaXRzLCBvbkNoYW5nZV0pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIGpvaW5DbHMod3JhcHBlckNscywgY2xhc3NlcyhzaXplKSwgaW52YWxpZCAmJiBjbGFzc2VzKCdpbnZhbGlkJyksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCByZWFkT25seSAmJiBjbGFzc2VzKCdyZWFkb25seScpLCBfdmFsdWUgJiYgY2xhc3NlcygnZmlsbGVkJykpKSwgY2hpbGRyZW46IFtsYWJlbFxuICAgICAgICAgICAgICAgID8gbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICA/IF9qc3goU2tlbGV0b24sIHsgd2lkdGg6ICc3MnB4JywgaGVpZ2h0OiAnMThweCcsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtbG9hZGluZycpIH0pXG4gICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJywgam9pbkNscyhyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENscykpLCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgICAgICAgICAgICA6IG51bGwsIF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBjb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NOYW1lLCBpc0ZvY3VzICYmIGNsYXNzZXMoJ2ZvY3VzJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JywgcHJlZml4RWxlQ2xzKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZWxlbWVudCcsICghaXNGb2N1cyAmJiBpc01heFdpZHRoKSA/IGNsYXNzZXMoJ2VsZW1lbnQtbWF4JykgOiAnJyksIGNoaWxkcmVuOiBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVhZE9ubHk6IHJlYWRPbmx5LCBkaXNhYmxlZDogZGlzYWJsZWQsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvblNlbGVjdDogaGFuZGxlU2VsZWN0LCBvbkZvY3VzOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQmx1cjogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9KSkgfSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBjdXJyZW5jeVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBjaGlsZHJlbjogY3VycmVuY3kgfSksIGxvYWRpbmcgPyBfanN4KFNwaW5uZXIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgtbG9hZGluZycpLCBzdHJva2VXaWR0aDogJzQnIH0pIDogc3VmZml4ID8gX2pzeChcInNwYW5cIiwgeyByZWY6IHN1ZmZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnLCBzdWZmaXhFbGVDbHMpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBmb3JtYXR0ZWRWYWx1ZSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=