@1money/component-ui 0.0.90-alpha.17 → 0.0.90-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.
@@ -230,7 +230,8 @@ var VerificationDialogBase = function VerificationDialogBase(_ref) {
230
230
  label: cooldownLeft > 0 ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
231
231
  children: [resend.label, " (", cooldownLeft, "s)"]
232
232
  }) : resend.label,
233
- disabled: cooldownLeft > 0 || verifying || resending,
233
+ loading: resending,
234
+ disabled: cooldownLeft > 0 || verifying,
234
235
  onClick: handleResend
235
236
  } : secondary === false ? undefined : secondary !== null && secondary !== void 0 ? secondary : onClose ? {
236
237
  onClick: onClose
@@ -276,4 +277,4 @@ var VerificationDialogBase = function VerificationDialogBase(_ref) {
276
277
  });
277
278
  };
278
279
  var VerificationDialog = exports.VerificationDialog = /*#__PURE__*/(0, _react.memo)(VerificationDialogBase);
279
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX09UUCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfQmFzZURpYWxvZyIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIlBSRUZJWCIsIlZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UiLCJfcmVmIiwib3BlbiIsIm1hc2tDbG9zYWJsZSIsInNob3dCYWNrSWNvbiIsIm9uQmFjayIsImNsYXNzTmFtZSIsImV5ZWJyb3ciLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb25TdHJvbmciLCJvdHBIaW50IiwibWFzayIsInNlY29uZGFyeSIsInJlc2VuZCIsImZvb3Rub3RlIiwib25WZXJpZnkiLCJvbkNsb3NlIiwic3VibWl0VGV4dCIsIl9yZWYkbGVuZ3RoIiwibGVuZ3RoIiwiVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUyIsIl9yZWYkYXV0b1N1Ym1pdCIsImF1dG9TdWJtaXQiLCJfcmVmJGF1dG9Gb2N1cyIsImF1dG9Gb2N1cyIsIl9yZWYkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRWYWx1ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidmVyaWZ5aW5nIiwic2V0VmVyaWZ5aW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJyZXNlbmRpbmciLCJzZXRSZXNlbmRpbmciLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJjb29sZG93bkxlZnQiLCJzZXRDb29sZG93bkxlZnQiLCJ2ZXJpZnlpbmdSZWYiLCJ1c2VSZWYiLCJzZXNzaW9uUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNvb2xpbmciLCJ1bmRlZmluZWQiLCJ0aW1lciIsInNldEludGVydmFsIiwibGVmdCIsIk1hdGgiLCJtYXgiLCJjbGVhckludGVydmFsIiwicnVuVmVyaWZ5IiwidXNlQ2FsbGJhY2siLCJjb2RlIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJzZXNzaW9uIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic2VudCIsImdlbmVyaWNFcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpbmlzaCIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVSZXNlbmQiLCJfY2FsbGVlMiIsIl90MiIsIl9jb250ZXh0MiIsIm9uUmVzZW5kIiwiY29vbGRvd24iLCJyZXNvbHZlZFNlY29uZGFyeSIsImxhYmVsIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJjaGlsZHJlbiIsImRpc2FibGVkIiwib25DbGljayIsImhpbnQiLCJfanN4IiwiQmFzZURpYWxvZyIsImpvaW5DbHMiLCJjbGFzc25hbWVzIiwicHJpbWFyeSIsImxvYWRpbmciLCJJbnB1dE9UUCIsInN0YXR1cyIsImZlZWRiYWNrIiwiZmVlZGJhY2tJY29uIiwib25DaGFuZ2UiLCJvbkNvbXBsZXRlIiwiVmVyaWZpY2F0aW9uRGlhbG9nIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxJQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFJQUEsT0FBQTtBQUFpQixTQUFBTyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUosd0JBQUFJLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElB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QUFJLEVBQUM3RyxzQkFBc0IsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzLCBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElucHV0T1RQIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JbnB1dC9PVFAnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nIH0gZnJvbSAnLi4vQmFzZURpYWxvZyc7XG5pbXBvcnQgeyBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICd2ZXJpZmljYXRpb24tZGlhbG9nJztcbi8qKlxuICogT1RQIHZlcmlmaWNhdGlvbiBzY2VuYXJpbyBzaGVsbCDigJQgYEJhc2VEaWFsb2dgICsgYElucHV0Lk9UUGAuIE93bnMgdGhlXG4gKiB2ZXJpZmljYXRpb24gaW50ZXJhY3Rpb246IGF1dG8tc3VibWl0IG9uIGNvbXBsZXRpb24sIHN1Ym1pdCBsb2FkaW5nLFxuICogZXJyb3IgZGlzcGxheSB3aXRoIGNsZWFyLW9uLWVycm9yLCBhbmQgYW4gb3B0aW9uYWwgcmF0ZS1saW1pdGVkIHJlc2VuZFxuICogcm93LiBUaGUgY29uc3VtZXIgZHJpdmVzIHRoZSB3aG9sZSBmbG93IHRocm91Z2ggb25lIGBvblZlcmlmeWAgY2FsbGJhY2suXG4gKi9cbmNvbnN0IFZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UgPSAoeyBvcGVuLCBtYXNrQ2xvc2FibGUsIHNob3dCYWNrSWNvbiwgb25CYWNrLCBjbGFzc05hbWUsIGV5ZWJyb3csIHRpdGxlLCBkZXNjcmlwdGlvbiwgXG4vLyBEZWZhdWx0cyB0byB0aGUgZmFtaWx5J3Mgc3Ryb25nIHdlaWdodDsgcGFzcyBgZmFsc2VgIHdoZW4gdGhlIGNvcHkgZW1iZWRzXG4vLyBhbiBlbWFpbCAob3Igb3RoZXIgc3BhbikgdGhhdCBzaG91bGQgYmUgdGhlIGVtcGhhc2l6ZWQgcGFydCBpbnN0ZWFkLlxuZGVzY3JpcHRpb25TdHJvbmcsIG90cEhpbnQsIG1hc2ssIHNlY29uZGFyeSwgcmVzZW5kLCBmb290bm90ZSwgb25WZXJpZnksIG9uQ2xvc2UsIHN1Ym1pdFRleHQsIGxlbmd0aCA9IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMubGVuZ3RoLCBhdXRvU3VibWl0ID0gVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5hdXRvU3VibWl0LCBhdXRvRm9jdXMgPSBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmF1dG9Gb2N1cywgc2hvd0Nsb3NlSWNvbiA9IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMuc2hvd0Nsb3NlSWNvbiwgfSkgPT4ge1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3ZlcmlmeWluZywgc2V0VmVyaWZ5aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcmVzZW5kaW5nLCBzZXRSZXNlbmRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb29sZG93bkxlZnQsIHNldENvb2xkb3duTGVmdF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCB2ZXJpZnlpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIC8vIFNlc3Npb24gZXBvY2g6IGJ1bXBlZCBvbiBjbG9zZSBzbyBhc3luYyB3b3JrIHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBvcGVuXG4gICAgLy8gKG9uVmVyaWZ5IC8gb25SZXNlbmQgc3RpbGwgaW4gZmxpZ2h0KSBjYW5ub3QgdG91Y2ggdGhlIG5leHQgc2Vzc2lvbidzXG4gICAgLy8gc3RhdGUgb3IgbG9ja3MuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBBIGZyZXNoIHNlc3Npb24gZXZlcnkgdGltZSB0aGUgZGlhbG9nIG9wZW5zLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXNzaW9uUmVmLmN1cnJlbnQgKz0gMTtcbiAgICAgICAgc2V0VmFsdWUoJycpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgICAgc2V0VmVyaWZ5aW5nKGZhbHNlKTtcbiAgICAgICAgc2V0UmVzZW5kaW5nKGZhbHNlKTtcbiAgICAgICAgdmVyaWZ5aW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LCBbb3Blbl0pO1xuICAgIGNvbnN0IGNvb2xpbmcgPSBjb29sZG93bkxlZnQgPiAwO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghY29vbGluZylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gc2V0Q29vbGRvd25MZWZ0KChsZWZ0KSA9PiBNYXRoLm1heCgwLCBsZWZ0IC0gMSkpLCAxMDAwKTtcbiAgICAgICAgcmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgIH0sIFtjb29saW5nXSk7XG4gICAgY29uc3QgcnVuVmVyaWZ5ID0gdXNlQ2FsbGJhY2soKGNvZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAodmVyaWZ5aW5nUmVmLmN1cnJlbnQgfHwgY29kZS5sZW5ndGggIT09IGxlbmd0aCB8fCAhb25WZXJpZnkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIHZlcmlmeWluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgc2V0VmVyaWZ5aW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIG9uVmVyaWZ5KGNvZGUpO1xuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCAhPT0gc2Vzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3IodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgJiYgcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgIDogVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5nZW5lcmljRXJyb3IpO1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAodGhyb3duKSB7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ICE9PSBzZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldEVycm9yKHRocm93biBpbnN0YW5jZW9mIEVycm9yICYmIHRocm93bi5tZXNzYWdlXG4gICAgICAgICAgICAgICAgPyB0aHJvd24ubWVzc2FnZVxuICAgICAgICAgICAgICAgIDogVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5nZW5lcmljRXJyb3IpO1xuICAgICAgICAgICAgc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgLy8gQSBzdGFsZSBjb21wbGV0aW9uIG11c3Qgbm90IGNsZWFyIHRoZSBsb2NrIGEgbmV3ZXIgc2Vzc2lvbiBob2xkcy5cbiAgICAgICAgICAgIGlmIChzZXNzaW9uUmVmLmN1cnJlbnQgPT09IHNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICB2ZXJpZnlpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNldFZlcmlmeWluZyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSwgW2xlbmd0aCwgb25WZXJpZnldKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAobmV4dCkgPT4ge1xuICAgICAgICBzZXRWYWx1ZShuZXh0KTtcbiAgICAgICAgaWYgKGVycm9yKVxuICAgICAgICAgICAgc2V0RXJyb3IobnVsbCk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVSZXNlbmQgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCEocmVzZW5kID09PSBudWxsIHx8IHJlc2VuZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzZW5kLm9uUmVzZW5kKSB8fCBjb29sZG93bkxlZnQgPiAwIHx8IHJlc2VuZGluZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25SZWYuY3VycmVudDtcbiAgICAgICAgc2V0UmVzZW5kaW5nKHRydWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgeWllbGQgcmVzZW5kLm9uUmVzZW5kKCk7XG4gICAgICAgICAgICAvLyBDb29sZG93biBzdGFydHMgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwgZGlzcGF0Y2g7IGEgcmVqZWN0aW9uIGxlYXZlc1xuICAgICAgICAgICAgLy8gdGhlIGJ1dHRvbiBhcm1lZCBmb3IgYSByZXRyeSAodGhlIGNvbnN1bWVyIHN1cmZhY2VzIGl0cyBvd24gZXJyb3IpLlxuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCA9PT0gc2Vzc2lvbiAmJiByZXNlbmQuY29vbGRvd24pXG4gICAgICAgICAgICAgICAgc2V0Q29vbGRvd25MZWZ0KHJlc2VuZC5jb29sZG93bik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgICAgICAvLyBTd2FsbG93ZWQgZGVsaWJlcmF0ZWx5IOKAlCBzZWUgYWJvdmU7IHdpdGhvdXQgdGhpcyBhbiBvblJlc2VuZFxuICAgICAgICAgICAgLy8gcmVqZWN0aW9uIHdvdWxkIHN1cmZhY2UgYXMgYW4gdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uLlxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCA9PT0gc2Vzc2lvbilcbiAgICAgICAgICAgICAgICBzZXRSZXNlbmRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gUmVzZW5kIHRha2VzIHRoZSBsZWZ0IChzZWNvbmRhcnkpIGJ1dHRvbiwgc2hvd2luZyBhIGNvdW50ZG93biB3aGlsZVxuICAgIC8vIGNvb2xpbmcgZG93bjsgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0IENhbmNlbCAob3IgYW4gZXhwbGljaXQgc2Vjb25kYXJ5KS5cbiAgICBjb25zdCByZXNvbHZlZFNlY29uZGFyeSA9IHJlc2VuZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGxhYmVsOiBjb29sZG93bkxlZnQgPiAwID8gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3Jlc2VuZC5sYWJlbCwgXCIgKFwiLCBjb29sZG93bkxlZnQsIFwicylcIl0gfSkpIDogKHJlc2VuZC5sYWJlbCksXG4gICAgICAgICAgICBkaXNhYmxlZDogY29vbGRvd25MZWZ0ID4gMCB8fCB2ZXJpZnlpbmcgfHwgcmVzZW5kaW5nLFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlUmVzZW5kLFxuICAgICAgICB9XG4gICAgICAgIDogc2Vjb25kYXJ5ID09PSBmYWxzZVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogKHNlY29uZGFyeSAhPT0gbnVsbCAmJiBzZWNvbmRhcnkgIT09IHZvaWQgMCA/IHNlY29uZGFyeSA6IChvbkNsb3NlID8geyBvbkNsaWNrOiBvbkNsb3NlIH0gOiB1bmRlZmluZWQpKTtcbiAgICBjb25zdCBoaW50ID0gZXJyb3IgIT09IG51bGwgJiYgZXJyb3IgIT09IHZvaWQgMCA/IGVycm9yIDogb3RwSGludDtcbiAgICByZXR1cm4gKF9qc3goQmFzZURpYWxvZywgeyBvcGVuOiBvcGVuLCBleWVicm93OiBleWVicm93LCBtYXNrQ2xvc2FibGU6IG1hc2tDbG9zYWJsZSwgc2hvd0Nsb3NlSWNvbjogc2hvd0Nsb3NlSWNvbiwgc2hvd0JhY2tJY29uOiBzaG93QmFja0ljb24sIG9uQmFjazogb25CYWNrLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NuYW1lcyhQUkVGSVgpKCksIGNsYXNzTmFtZSksIHRpdGxlOiB0aXRsZSwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBkZXNjcmlwdGlvblN0cm9uZzogZGVzY3JpcHRpb25TdHJvbmcsIG9uQ2xvc2U6IG9uQ2xvc2UsIHNlY29uZGFyeTogcmVzb2x2ZWRTZWNvbmRhcnksIHByaW1hcnk6IHtcbiAgICAgICAgICAgIGxhYmVsOiBzdWJtaXRUZXh0LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHZhbHVlLmxlbmd0aCAhPT0gbGVuZ3RoLFxuICAgICAgICAgICAgbG9hZGluZzogdmVyaWZ5aW5nLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4gcnVuVmVyaWZ5KHZhbHVlKSxcbiAgICAgICAgfSwgZm9vdG5vdGU6IGZvb3Rub3RlLCBjaGlsZHJlbjogX2pzeChJbnB1dE9UUCwgeyBsZW5ndGg6IGxlbmd0aCwgdmFsdWU6IHZhbHVlLCBhdXRvRm9jdXM6IGF1dG9Gb2N1cywgbWFzazogbWFzaywgc3RhdHVzOiBlcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCcsIGZlZWRiYWNrOiBoaW50LCBcbiAgICAgICAgICAgIC8vIEVycm9yIHJvd3Mgc2hvdyB0aGUgd2FybmluZyBnbHlwaCAob20gcmVxdWlyZXMgaXQgZXhwbGljaXRseSwgbGlrZVxuICAgICAgICAgICAgLy8gSW5wdXQpOyB0aGUgcGxhaW4gaGludCBoYXMgbm9uZS5cbiAgICAgICAgICAgIGZlZWRiYWNrSWNvbjogZXJyb3IgPyAnZXJyb3InIDogdW5kZWZpbmVkLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvbkNvbXBsZXRlOiAoY29kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhdXRvU3VibWl0KVxuICAgICAgICAgICAgICAgICAgICB2b2lkIHJ1blZlcmlmeShjb2RlKTtcbiAgICAgICAgICAgIH0gfSkgfSkpO1xufTtcbmV4cG9ydCBjb25zdCBWZXJpZmljYXRpb25EaWFsb2cgPSBtZW1vKFZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
280
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX09UUCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfQmFzZURpYWxvZyIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIlBSRUZJWCIsIlZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UiLCJfcmVmIiwib3BlbiIsIm1hc2tDbG9zYWJsZSIsInNob3dCYWNrSWNvbiIsIm9uQmFjayIsImNsYXNzTmFtZSIsImV5ZWJyb3ciLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb25TdHJvbmciLCJvdHBIaW50IiwibWFzayIsInNlY29uZGFyeSIsInJlc2VuZCIsImZvb3Rub3RlIiwib25WZXJpZnkiLCJvbkNsb3NlIiwic3VibWl0VGV4dCIsIl9yZWYkbGVuZ3RoIiwibGVuZ3RoIiwiVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUyIsIl9yZWYkYXV0b1N1Ym1pdCIsImF1dG9TdWJtaXQiLCJfcmVmJGF1dG9Gb2N1cyIsImF1dG9Gb2N1cyIsIl9yZWYkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRWYWx1ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidmVyaWZ5aW5nIiwic2V0VmVyaWZ5aW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJyZXNlbmRpbmciLCJzZXRSZXNlbmRpbmciLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJjb29sZG93bkxlZnQiLCJzZXRDb29sZG93bkxlZnQiLCJ2ZXJpZnlpbmdSZWYiLCJ1c2VSZWYiLCJzZXNzaW9uUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNvb2xpbmciLCJ1bmRlZmluZWQiLCJ0aW1lciIsInNldEludGVydmFsIiwibGVmdCIsIk1hdGgiLCJtYXgiLCJjbGVhckludGVydmFsIiwicnVuVmVyaWZ5IiwidXNlQ2FsbGJhY2siLCJjb2RlIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJzZXNzaW9uIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic2VudCIsImdlbmVyaWNFcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpbmlzaCIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVSZXNlbmQiLCJfY2FsbGVlMiIsIl90MiIsIl9jb250ZXh0MiIsIm9uUmVzZW5kIiwiY29vbGRvd24iLCJyZXNvbHZlZFNlY29uZGFyeSIsImxhYmVsIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJjaGlsZHJlbiIsImxvYWRpbmciLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJoaW50IiwiX2pzeCIsIkJhc2VEaWFsb2ciLCJqb2luQ2xzIiwiY2xhc3NuYW1lcyIsInByaW1hcnkiLCJJbnB1dE9UUCIsInN0YXR1cyIsImZlZWRiYWNrIiwiZmVlZGJhY2tJY29uIiwib25DaGFuZ2UiLCJvbkNvbXBsZXRlIiwiVmVyaWZpY2F0aW9uRGlhbG9nIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxJQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFJQUEsT0FBQTtBQUFpQixTQUFBTyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUosd0JBQUFJLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElB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LGdCQUFHLElBQUFFLFdBQUksRUFBQzdHLHNCQUFzQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMsIGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSW5wdXRPVFAgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0lucHV0L09UUCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJhc2VEaWFsb2cgfSBmcm9tICcuLi9CYXNlRGlhbG9nJztcbmltcG9ydCB7IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ3ZlcmlmaWNhdGlvbi1kaWFsb2cnO1xuLyoqXG4gKiBPVFAgdmVyaWZpY2F0aW9uIHNjZW5hcmlvIHNoZWxsIOKAlCBgQmFzZURpYWxvZ2AgKyBgSW5wdXQuT1RQYC4gT3ducyB0aGVcbiAqIHZlcmlmaWNhdGlvbiBpbnRlcmFjdGlvbjogYXV0by1zdWJtaXQgb24gY29tcGxldGlvbiwgc3VibWl0IGxvYWRpbmcsXG4gKiBlcnJvciBkaXNwbGF5IHdpdGggY2xlYXItb24tZXJyb3IsIGFuZCBhbiBvcHRpb25hbCByYXRlLWxpbWl0ZWQgcmVzZW5kXG4gKiByb3cuIFRoZSBjb25zdW1lciBkcml2ZXMgdGhlIHdob2xlIGZsb3cgdGhyb3VnaCBvbmUgYG9uVmVyaWZ5YCBjYWxsYmFjay5cbiAqL1xuY29uc3QgVmVyaWZpY2F0aW9uRGlhbG9nQmFzZSA9ICh7IG9wZW4sIG1hc2tDbG9zYWJsZSwgc2hvd0JhY2tJY29uLCBvbkJhY2ssIGNsYXNzTmFtZSwgZXllYnJvdywgdGl0bGUsIGRlc2NyaXB0aW9uLCBcbi8vIERlZmF1bHRzIHRvIHRoZSBmYW1pbHkncyBzdHJvbmcgd2VpZ2h0OyBwYXNzIGBmYWxzZWAgd2hlbiB0aGUgY29weSBlbWJlZHNcbi8vIGFuIGVtYWlsIChvciBvdGhlciBzcGFuKSB0aGF0IHNob3VsZCBiZSB0aGUgZW1waGFzaXplZCBwYXJ0IGluc3RlYWQuXG5kZXNjcmlwdGlvblN0cm9uZywgb3RwSGludCwgbWFzaywgc2Vjb25kYXJ5LCByZXNlbmQsIGZvb3Rub3RlLCBvblZlcmlmeSwgb25DbG9zZSwgc3VibWl0VGV4dCwgbGVuZ3RoID0gVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5sZW5ndGgsIGF1dG9TdWJtaXQgPSBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmF1dG9TdWJtaXQsIGF1dG9Gb2N1cyA9IFZFUklGSUNBVElPTl9ESUFMT0dfREVGQVVMVFMuYXV0b0ZvY3VzLCBzaG93Q2xvc2VJY29uID0gVkVSSUZJQ0FUSU9OX0RJQUxPR19ERUZBVUxUUy5zaG93Q2xvc2VJY29uLCB9KSA9PiB7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdmVyaWZ5aW5nLCBzZXRWZXJpZnlpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtyZXNlbmRpbmcsIHNldFJlc2VuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2Nvb2xkb3duTGVmdCwgc2V0Q29vbGRvd25MZWZ0XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IHZlcmlmeWluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gU2Vzc2lvbiBlcG9jaDogYnVtcGVkIG9uIGNsb3NlIHNvIGFzeW5jIHdvcmsgc3RhcnRlZCBpbiBhIHByZXZpb3VzIG9wZW5cbiAgICAvLyAob25WZXJpZnkgLyBvblJlc2VuZCBzdGlsbCBpbiBmbGlnaHQpIGNhbm5vdCB0b3VjaCB0aGUgbmV4dCBzZXNzaW9uJ3NcbiAgICAvLyBzdGF0ZSBvciBsb2Nrcy5cbiAgICBjb25zdCBzZXNzaW9uUmVmID0gdXNlUmVmKDApO1xuICAgIC8vIEEgZnJlc2ggc2Vzc2lvbiBldmVyeSB0aW1lIHRoZSBkaWFsb2cgb3BlbnMuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG9wZW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBzZXRWYWx1ZSgnJyk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICBzZXRWZXJpZnlpbmcoZmFsc2UpO1xuICAgICAgICBzZXRSZXNlbmRpbmcoZmFsc2UpO1xuICAgICAgICB2ZXJpZnlpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH0sIFtvcGVuXSk7XG4gICAgY29uc3QgY29vbGluZyA9IGNvb2xkb3duTGVmdCA+IDA7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFjb29saW5nKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiBzZXRDb29sZG93bkxlZnQoKGxlZnQpID0+IE1hdGgubWF4KDAsIGxlZnQgLSAxKSksIDEwMDApO1xuICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgfSwgW2Nvb2xpbmddKTtcbiAgICBjb25zdCBydW5WZXJpZnkgPSB1c2VDYWxsYmFjaygoY29kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICh2ZXJpZnlpbmdSZWYuY3VycmVudCB8fCBjb2RlLmxlbmd0aCAhPT0gbGVuZ3RoIHx8ICFvblZlcmlmeSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25SZWYuY3VycmVudDtcbiAgICAgICAgdmVyaWZ5aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRWZXJpZnlpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgb25WZXJpZnkoY29kZSk7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ICE9PSBzZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcih0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyAmJiByZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgPyByZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgOiBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmdlbmVyaWNFcnJvcik7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoICh0aHJvd24pIHtcbiAgICAgICAgICAgIGlmIChzZXNzaW9uUmVmLmN1cnJlbnQgIT09IHNlc3Npb24pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0RXJyb3IodGhyb3duIGluc3RhbmNlb2YgRXJyb3IgJiYgdGhyb3duLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICA/IHRocm93bi5tZXNzYWdlXG4gICAgICAgICAgICAgICAgOiBWRVJJRklDQVRJT05fRElBTE9HX0RFRkFVTFRTLmdlbmVyaWNFcnJvcik7XG4gICAgICAgICAgICBzZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAvLyBBIHN0YWxlIGNvbXBsZXRpb24gbXVzdCBub3QgY2xlYXIgdGhlIGxvY2sgYSBuZXdlciBzZXNzaW9uIGhvbGRzLlxuICAgICAgICAgICAgaWYgKHNlc3Npb25SZWYuY3VycmVudCA9PT0gc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgIHZlcmlmeWluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0VmVyaWZ5aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbbGVuZ3RoLCBvblZlcmlmeV0pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChuZXh0KSA9PiB7XG4gICAgICAgIHNldFZhbHVlKG5leHQpO1xuICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZVJlc2VuZCA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIShyZXNlbmQgPT09IG51bGwgfHwgcmVzZW5kID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNlbmQub25SZXNlbmQpIHx8IGNvb2xkb3duTGVmdCA+IDAgfHwgcmVzZW5kaW5nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gc2Vzc2lvblJlZi5jdXJyZW50O1xuICAgICAgICBzZXRSZXNlbmRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB5aWVsZCByZXNlbmQub25SZXNlbmQoKTtcbiAgICAgICAgICAgIC8vIENvb2xkb3duIHN0YXJ0cyBvbmx5IGFmdGVyIGEgc3VjY2Vzc2Z1bCBkaXNwYXRjaDsgYSByZWplY3Rpb24gbGVhdmVzXG4gICAgICAgICAgICAvLyB0aGUgYnV0dG9uIGFybWVkIGZvciBhIHJldHJ5ICh0aGUgY29uc3VtZXIgc3VyZmFjZXMgaXRzIG93biBlcnJvcikuXG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ID09PSBzZXNzaW9uICYmIHJlc2VuZC5jb29sZG93bilcbiAgICAgICAgICAgICAgICBzZXRDb29sZG93bkxlZnQocmVzZW5kLmNvb2xkb3duKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFN3YWxsb3dlZCBkZWxpYmVyYXRlbHkg4oCUIHNlZSBhYm92ZTsgd2l0aG91dCB0aGlzIGFuIG9uUmVzZW5kXG4gICAgICAgICAgICAvLyByZWplY3Rpb24gd291bGQgc3VyZmFjZSBhcyBhbiB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24uXG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvblJlZi5jdXJyZW50ID09PSBzZXNzaW9uKVxuICAgICAgICAgICAgICAgIHNldFJlc2VuZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBSZXNlbmQgdGFrZXMgdGhlIGxlZnQgKHNlY29uZGFyeSkgYnV0dG9uLCBzaG93aW5nIGEgY291bnRkb3duIHdoaWxlXG4gICAgLy8gY29vbGluZyBkb3duOyBvdGhlcndpc2UgdGhlIGRlZmF1bHQgQ2FuY2VsIChvciBhbiBleHBsaWNpdCBzZWNvbmRhcnkpLlxuICAgIGNvbnN0IHJlc29sdmVkU2Vjb25kYXJ5ID0gcmVzZW5kXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbGFiZWw6IGNvb2xkb3duTGVmdCA+IDAgPyAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbcmVzZW5kLmxhYmVsLCBcIiAoXCIsIGNvb2xkb3duTGVmdCwgXCJzKVwiXSB9KSkgOiAocmVzZW5kLmxhYmVsKSxcbiAgICAgICAgICAgIGxvYWRpbmc6IHJlc2VuZGluZyxcbiAgICAgICAgICAgIGRpc2FibGVkOiBjb29sZG93bkxlZnQgPiAwIHx8IHZlcmlmeWluZyxcbiAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZVJlc2VuZCxcbiAgICAgICAgfVxuICAgICAgICA6IHNlY29uZGFyeSA9PT0gZmFsc2VcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IChzZWNvbmRhcnkgIT09IG51bGwgJiYgc2Vjb25kYXJ5ICE9PSB2b2lkIDAgPyBzZWNvbmRhcnkgOiAob25DbG9zZSA/IHsgb25DbGljazogb25DbG9zZSB9IDogdW5kZWZpbmVkKSk7XG4gICAgY29uc3QgaGludCA9IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IG90cEhpbnQ7XG4gICAgcmV0dXJuIChfanN4KEJhc2VEaWFsb2csIHsgb3Blbjogb3BlbiwgZXllYnJvdzogZXllYnJvdywgbWFza0Nsb3NhYmxlOiBtYXNrQ2xvc2FibGUsIHNob3dDbG9zZUljb246IHNob3dDbG9zZUljb24sIHNob3dCYWNrSWNvbjogc2hvd0JhY2tJY29uLCBvbkJhY2s6IG9uQmFjaywgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzbmFtZXMoUFJFRklYKSgpLCBjbGFzc05hbWUpLCB0aXRsZTogdGl0bGUsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZGVzY3JpcHRpb25TdHJvbmc6IGRlc2NyaXB0aW9uU3Ryb25nLCBvbkNsb3NlOiBvbkNsb3NlLCBzZWNvbmRhcnk6IHJlc29sdmVkU2Vjb25kYXJ5LCBwcmltYXJ5OiB7XG4gICAgICAgICAgICBsYWJlbDogc3VibWl0VGV4dCxcbiAgICAgICAgICAgIGRpc2FibGVkOiB2YWx1ZS5sZW5ndGggIT09IGxlbmd0aCxcbiAgICAgICAgICAgIGxvYWRpbmc6IHZlcmlmeWluZyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHJ1blZlcmlmeSh2YWx1ZSksXG4gICAgICAgIH0sIGZvb3Rub3RlOiBmb290bm90ZSwgY2hpbGRyZW46IF9qc3goSW5wdXRPVFAsIHsgbGVuZ3RoOiBsZW5ndGgsIHZhbHVlOiB2YWx1ZSwgYXV0b0ZvY3VzOiBhdXRvRm9jdXMsIG1hc2s6IG1hc2ssIHN0YXR1czogZXJyb3IgPyAnZXJyb3InIDogJ2RlZmF1bHQnLCBmZWVkYmFjazogaGludCwgXG4gICAgICAgICAgICAvLyBFcnJvciByb3dzIHNob3cgdGhlIHdhcm5pbmcgZ2x5cGggKG9tIHJlcXVpcmVzIGl0IGV4cGxpY2l0bHksIGxpa2VcbiAgICAgICAgICAgIC8vIElucHV0KTsgdGhlIHBsYWluIGhpbnQgaGFzIG5vbmUuXG4gICAgICAgICAgICBmZWVkYmFja0ljb246IGVycm9yID8gJ2Vycm9yJyA6IHVuZGVmaW5lZCwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgb25Db21wbGV0ZTogKGNvZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXV0b1N1Ym1pdClcbiAgICAgICAgICAgICAgICAgICAgdm9pZCBydW5WZXJpZnkoY29kZSk7XG4gICAgICAgICAgICB9IH0pIH0pKTtcbn07XG5leHBvcnQgY29uc3QgVmVyaWZpY2F0aW9uRGlhbG9nID0gbWVtbyhWZXJpZmljYXRpb25EaWFsb2dCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -137,7 +137,9 @@ var LoadingDialogBase = function LoadingDialogBase(_ref) {
137
137
  }, _callee, null, [[2, 4, 5, 6]]);
138
138
  }));
139
139
  };
140
- void poll();
140
+ // Timers FIRST: a pollFn that throws synchronously settles during the
141
+ // first poll, and settle() must find real timer handles to clear —
142
+ // creating them afterwards would leave a live no-op interval behind.
141
143
  interval = setInterval(function () {
142
144
  return void poll();
143
145
  }, pollInterval);
@@ -147,6 +149,7 @@ var LoadingDialogBase = function LoadingDialogBase(_ref) {
147
149
  return (_a = onPendingRef.current) === null || _a === void 0 ? void 0 : _a.call(onPendingRef);
148
150
  });
149
151
  }, pollTimeout);
152
+ void poll();
150
153
  return function () {
151
154
  settled = true;
152
155
  clearInterval(interval);
@@ -193,4 +196,4 @@ var LoadingDialogBase = function LoadingDialogBase(_ref) {
193
196
  });
194
197
  };
195
198
  var LoadingDialog = exports.LoadingDialog = /*#__PURE__*/(0, _react.memo)(LoadingDialogBase);
196
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvTG9hZGluZ0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRGlhbG9nIiwiX0ljb25zIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiUFJFRklYIiwiTE9BRElOR19URVhUIiwiSElOVF9URVhUIiwiTG9hZGluZ0RpYWxvZ0Jhc2UiLCJfcmVmIiwib3BlbiIsIl9yZWYkaWNvblNpemUiLCJpY29uU2l6ZSIsInBvbGxGbiIsIl9yZWYkcG9sbEludGVydmFsIiwicG9sbEludGVydmFsIiwiX3JlZiRwb2xsVGltZW91dCIsInBvbGxUaW1lb3V0Iiwib25TdWNjZXNzIiwib25QZW5kaW5nIiwib25GYWlsZWQiLCJjbGFzc05hbWUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsInBvbGxGblJlZiIsInVzZUxhdGVzdCIsIm9uU3VjY2Vzc1JlZiIsIm9uUGVuZGluZ1JlZiIsIm9uRmFpbGVkUmVmIiwiaGFzUG9sbEZuIiwidXNlRWZmZWN0IiwidW5kZWZpbmVkIiwic2V0dGxlZCIsImluRmxpZ2h0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0Iiwic2V0dGxlIiwiZmlyZSIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJwb2xsIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJjdXJyZW50Iiwic2VudCIsInN0YXR1cyIsIl9hIiwiZGF0YSIsImZpbmlzaCIsInN0b3AiLCJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJfanN4IiwiRGlhbG9nIiwid2lkdGgiLCJCQVNFX0RJQUxPR19ERUZBVUxUUyIsIm1hc2tDbG9zYWJsZSIsInNob3dDbG9zZUljb24iLCJqb2luQ2xzIiwiY2hpbGRyZW4iLCJfanN4cyIsIkljb25zIiwibmFtZSIsInNpemUiLCJUeXBvZ3JhcGh5IiwiSGVhZGxpbmUiLCJzcGxpdCIsIm1hcCIsImNoYXIiLCJpbmRleCIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJjb25jYXQiLCJCb2R5Iiwic3Ryb25nIiwiY29sb3IiLCJMb2FkaW5nRGlhbG9nIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1RBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQUVBQSxPQUFB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QUk7VUFBQ1csTUFBTSxFQUFBLElBQUE7VUFBQ0MsS0FBSyxFQUFDLG1CQUFtQjtVQUFBaEIsUUFBQSxFQUN4RDFEO1FBQVMsQ0FBQSxDQUNNO01BQUEsQ0FBQSxDQUNkO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUM7QUFFTSxJQUFNMkUsYUFBYSxHQUFBQyxPQUFBLENBQUFELGFBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDNUUsaUJBQWlCLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL3ZhcmlhbnRzL0xvYWRpbmdEaWFsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRGlhbG9nJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQkFTRV9ESUFMT0dfREVGQVVMVFMgfSBmcm9tICcuLi9CYXNlRGlhbG9nL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ2xvYWRpbmctZGlhbG9nJztcbi8vIEdlbmVyaWMgVUkgdm9jYWJ1bGFyeSAobGlrZSBDb25maXJtL0NhbmNlbCksIGZpeGVkIGFzIGluIHRoZSBsZWdhY3kgbW9kYWwuXG5jb25zdCBMT0FESU5HX1RFWFQgPSAnTG9hZGluZy4uLic7XG5jb25zdCBISU5UX1RFWFQgPSAnUGxlYXNlIHdhaXQgYSBmZXcgc2Vjb25kcyc7XG5jb25zdCBMb2FkaW5nRGlhbG9nQmFzZSA9ICh7IG9wZW4sIGljb25TaXplID0gNzQsIHBvbGxGbiwgcG9sbEludGVydmFsID0gMTAwMCwgcG9sbFRpbWVvdXQgPSA1MDAwLCBvblN1Y2Nlc3MsIG9uUGVuZGluZywgb25GYWlsZWQsIGNsYXNzTmFtZSwgfSkgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKFBSRUZJWCk7XG4gICAgLy8gTGF0ZXN0LXJlZnMga2VlcCB0aGUgcG9sbGluZyBzZXNzaW9uIGFsaXZlIGFjcm9zcyByZS1yZW5kZXJzIHdpdGggaW5saW5lXG4gICAgLy8gY2FsbGJhY2tzIOKAlCBvbmx5IG9wZW4vaW50ZXJ2YWwvdGltZW91dCAoYW5kIHBvbGxGbiBwcmVzZW5jZSkgcmVzdGFydCBpdC5cbiAgICBjb25zdCBwb2xsRm5SZWYgPSB1c2VMYXRlc3QocG9sbEZuKTtcbiAgICBjb25zdCBvblN1Y2Nlc3NSZWYgPSB1c2VMYXRlc3Qob25TdWNjZXNzKTtcbiAgICBjb25zdCBvblBlbmRpbmdSZWYgPSB1c2VMYXRlc3Qob25QZW5kaW5nKTtcbiAgICBjb25zdCBvbkZhaWxlZFJlZiA9IHVzZUxhdGVzdChvbkZhaWxlZCk7XG4gICAgY29uc3QgaGFzUG9sbEZuID0gISFwb2xsRm47XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gUG9sbGluZyBpcyB0aWVkIHRvIHZpc2liaWxpdHk6IGEgbW91bnRlZC1idXQtY2xvc2VkIGRpYWxvZyBtdXN0IG5vdFxuICAgICAgICAvLyBwb2xsIChvciBmaXJlIHRlcm1pbmFsIGNhbGxiYWNrcyBmcm9tIGJlaGluZCBhIGhpZGRlbiBzdXJmYWNlKS5cbiAgICAgICAgaWYgKCFoYXNQb2xsRm4gfHwgIW9wZW4pXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBTaW5nbGUtdGVybWluYWwtb3V0Y29tZSBndWFyZDogd2hpY2hldmVyIG9mIHN1Y2Nlc3MvZmFpbGVkL3BlbmRpbmdcbiAgICAgICAgLy8gc2V0dGxlcyBmaXJzdCB3aW5zOyBhbiBpbi1mbGlnaHQgcG9sbEZuIHJlc29sdmluZyBhZnRlciB0aGUgdGltZW91dFxuICAgICAgICAvLyAob3IgYWZ0ZXIgY2xvc2UvdW5tb3VudCkgaXMgZGlzY2FyZGVkLlxuICAgICAgICBsZXQgc2V0dGxlZCA9IGZhbHNlO1xuICAgICAgICBsZXQgaW5GbGlnaHQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGludGVydmFsO1xuICAgICAgICBsZXQgdGltZW91dDtcbiAgICAgICAgY29uc3Qgc2V0dGxlID0gKGZpcmUpID0+IHtcbiAgICAgICAgICAgIGlmIChzZXR0bGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICBmaXJlKCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBvbGwgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmIChzZXR0bGVkIHx8IGluRmxpZ2h0KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGluRmxpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgcG9sbEZuUmVmLmN1cnJlbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldHRsZSgoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IG9uU3VjY2Vzc1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvblN1Y2Nlc3NSZWYsIHJlc3VsdC5kYXRhKTsgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdmYWlsZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldHRsZSgoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IG9uRmFpbGVkUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uRmFpbGVkUmVmLCByZXN1bHQuZGF0YSk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHNldHRsZSgoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IG9uRmFpbGVkUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uRmFpbGVkUmVmLCBlcnJvcik7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaW5GbGlnaHQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZvaWQgcG9sbCgpO1xuICAgICAgICBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHZvaWQgcG9sbCgpLCBwb2xsSW50ZXJ2YWwpO1xuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvblBlbmRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25QZW5kaW5nUmVmKTsgfSksIHBvbGxUaW1lb3V0KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHNldHRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIH07XG4gICAgfSwgW2hhc1BvbGxGbiwgb3BlbiwgcG9sbEludGVydmFsLCBwb2xsVGltZW91dCwgcG9sbEZuUmVmLCBvblN1Y2Nlc3NSZWYsIG9uUGVuZGluZ1JlZiwgb25GYWlsZWRSZWZdKTtcbiAgICByZXR1cm4gKF9qc3goRGlhbG9nLCB7IG9wZW46IG9wZW4sIHdpZHRoOiBCQVNFX0RJQUxPR19ERUZBVUxUUy53aWR0aCwgbWFza0Nsb3NhYmxlOiBmYWxzZSwgc2hvd0Nsb3NlSWNvbjogZmFsc2UsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3RhY2snKSwgY2hpbGRyZW46IFtfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3BpbicpLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiAnbG9nb0JnJywgc2l6ZTogaWNvblNpemUgfSkgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd0ZXh0JyksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5LkhlYWRsaW5lLCB7IHNpemU6ICdzbScsIGNoaWxkcmVuOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd2F2ZScpLCBjaGlsZHJlbjogTE9BRElOR19URVhULnNwbGl0KCcnKS5tYXAoKGNoYXIsIGluZGV4KSA9PiAoX2pzeChcInNwYW5cIiwgeyBzdHlsZTogeyBhbmltYXRpb25EZWxheTogYCR7aW5kZXggKiAwLjF9c2AgfSwgY2hpbGRyZW46IGNoYXIgfSwgYCR7Y2hhcn0tJHtpbmRleH1gKSkpIH0pIH0pLCBfanN4KFR5cG9ncmFwaHkuQm9keSwgeyBzaXplOiAnbWQnLCBzdHJvbmc6IHRydWUsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogSElOVF9URVhUIH0pXSB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nRGlhbG9nID0gbWVtbyhMb2FkaW5nRGlhbG9nQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
199
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvTG9hZGluZ0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRGlhbG9nIiwiX0ljb25zIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiUFJFRklYIiwiTE9BRElOR19URVhUIiwiSElOVF9URVhUIiwiTG9hZGluZ0RpYWxvZ0Jhc2UiLCJfcmVmIiwib3BlbiIsIl9yZWYkaWNvblNpemUiLCJpY29uU2l6ZSIsInBvbGxGbiIsIl9yZWYkcG9sbEludGVydmFsIiwicG9sbEludGVydmFsIiwiX3JlZiRwb2xsVGltZW91dCIsInBvbGxUaW1lb3V0Iiwib25TdWNjZXNzIiwib25QZW5kaW5nIiwib25GYWlsZWQiLCJjbGFzc05hbWUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsInBvbGxGblJlZiIsInVzZUxhdGVzdCIsIm9uU3VjY2Vzc1JlZiIsIm9uUGVuZGluZ1JlZiIsIm9uRmFpbGVkUmVmIiwiaGFzUG9sbEZuIiwidXNlRWZmZWN0IiwidW5kZWZpbmVkIiwic2V0dGxlZCIsImluRmxpZ2h0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0Iiwic2V0dGxlIiwiZmlyZSIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJwb2xsIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJjdXJyZW50Iiwic2VudCIsInN0YXR1cyIsIl9hIiwiZGF0YSIsImZpbmlzaCIsInN0b3AiLCJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJfanN4IiwiRGlhbG9nIiwid2lkdGgiLCJCQVNFX0RJQUxPR19ERUZBVUxUUyIsIm1hc2tDbG9zYWJsZSIsInNob3dDbG9zZUljb24iLCJqb2luQ2xzIiwiY2hpbGRyZW4iLCJfanN4cyIsIkljb25zIiwibmFtZSIsInNpemUiLCJUeXBvZ3JhcGh5IiwiSGVhZGxpbmUiLCJzcGxpdCIsIm1hcCIsImNoYXIiLCJpbmRleCIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJjb25jYXQiLCJCb2R5Iiwic3Ryb25nIiwiY29sb3IiLCJMb2FkaW5nRGlhbG9nIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1RBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQUVBQSxPQUFB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QUNWLElBQUksRUFBQyxJQUFJO1VBQUNXLE1BQU0sRUFBQSxJQUFBO1VBQUNDLEtBQUssRUFBQyxtQkFBbUI7VUFBQWhCLFFBQUEsRUFDeEQxRDtRQUFTLENBQUEsQ0FDTTtNQUFBLENBQUEsQ0FDZDtJQUFBLENBQUE7RUFDRixDQUFBLENBQ0M7QUFFYixDQUFDO0FBRU0sSUFBTTJFLGFBQWEsR0FBQUMsT0FBQSxDQUFBRCxhQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQzVFLGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0RpYWxvZyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJBU0VfRElBTE9HX0RFRkFVTFRTIH0gZnJvbSAnLi4vQmFzZURpYWxvZy9jb25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdsb2FkaW5nLWRpYWxvZyc7XG4vLyBHZW5lcmljIFVJIHZvY2FidWxhcnkgKGxpa2UgQ29uZmlybS9DYW5jZWwpLCBmaXhlZCBhcyBpbiB0aGUgbGVnYWN5IG1vZGFsLlxuY29uc3QgTE9BRElOR19URVhUID0gJ0xvYWRpbmcuLi4nO1xuY29uc3QgSElOVF9URVhUID0gJ1BsZWFzZSB3YWl0IGEgZmV3IHNlY29uZHMnO1xuY29uc3QgTG9hZGluZ0RpYWxvZ0Jhc2UgPSAoeyBvcGVuLCBpY29uU2l6ZSA9IDc0LCBwb2xsRm4sIHBvbGxJbnRlcnZhbCA9IDEwMDAsIHBvbGxUaW1lb3V0ID0gNTAwMCwgb25TdWNjZXNzLCBvblBlbmRpbmcsIG9uRmFpbGVkLCBjbGFzc05hbWUsIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhQUkVGSVgpO1xuICAgIC8vIExhdGVzdC1yZWZzIGtlZXAgdGhlIHBvbGxpbmcgc2Vzc2lvbiBhbGl2ZSBhY3Jvc3MgcmUtcmVuZGVycyB3aXRoIGlubGluZVxuICAgIC8vIGNhbGxiYWNrcyDigJQgb25seSBvcGVuL2ludGVydmFsL3RpbWVvdXQgKGFuZCBwb2xsRm4gcHJlc2VuY2UpIHJlc3RhcnQgaXQuXG4gICAgY29uc3QgcG9sbEZuUmVmID0gdXNlTGF0ZXN0KHBvbGxGbik7XG4gICAgY29uc3Qgb25TdWNjZXNzUmVmID0gdXNlTGF0ZXN0KG9uU3VjY2Vzcyk7XG4gICAgY29uc3Qgb25QZW5kaW5nUmVmID0gdXNlTGF0ZXN0KG9uUGVuZGluZyk7XG4gICAgY29uc3Qgb25GYWlsZWRSZWYgPSB1c2VMYXRlc3Qob25GYWlsZWQpO1xuICAgIGNvbnN0IGhhc1BvbGxGbiA9ICEhcG9sbEZuO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFBvbGxpbmcgaXMgdGllZCB0byB2aXNpYmlsaXR5OiBhIG1vdW50ZWQtYnV0LWNsb3NlZCBkaWFsb2cgbXVzdCBub3RcbiAgICAgICAgLy8gcG9sbCAob3IgZmlyZSB0ZXJtaW5hbCBjYWxsYmFja3MgZnJvbSBiZWhpbmQgYSBoaWRkZW4gc3VyZmFjZSkuXG4gICAgICAgIGlmICghaGFzUG9sbEZuIHx8ICFvcGVuKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gU2luZ2xlLXRlcm1pbmFsLW91dGNvbWUgZ3VhcmQ6IHdoaWNoZXZlciBvZiBzdWNjZXNzL2ZhaWxlZC9wZW5kaW5nXG4gICAgICAgIC8vIHNldHRsZXMgZmlyc3Qgd2luczsgYW4gaW4tZmxpZ2h0IHBvbGxGbiByZXNvbHZpbmcgYWZ0ZXIgdGhlIHRpbWVvdXRcbiAgICAgICAgLy8gKG9yIGFmdGVyIGNsb3NlL3VubW91bnQpIGlzIGRpc2NhcmRlZC5cbiAgICAgICAgbGV0IHNldHRsZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgIGxldCBpbnRlcnZhbDtcbiAgICAgICAgbGV0IHRpbWVvdXQ7XG4gICAgICAgIGNvbnN0IHNldHRsZSA9IChmaXJlKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXR0bGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgZmlyZSgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwb2xsID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoc2V0dGxlZCB8fCBpbkZsaWdodClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpbkZsaWdodCA9IHRydWU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIHBvbGxGblJlZi5jdXJyZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvblN1Y2Nlc3NSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25TdWNjZXNzUmVmLCByZXN1bHQuZGF0YSk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZmFpbGVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvbkZhaWxlZFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZhaWxlZFJlZiwgcmVzdWx0LmRhdGEpOyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvbkZhaWxlZFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZhaWxlZFJlZiwgZXJyb3IpOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaW1lcnMgRklSU1Q6IGEgcG9sbEZuIHRoYXQgdGhyb3dzIHN5bmNocm9ub3VzbHkgc2V0dGxlcyBkdXJpbmcgdGhlXG4gICAgICAgIC8vIGZpcnN0IHBvbGwsIGFuZCBzZXR0bGUoKSBtdXN0IGZpbmQgcmVhbCB0aW1lciBoYW5kbGVzIHRvIGNsZWFyIOKAlFxuICAgICAgICAvLyBjcmVhdGluZyB0aGVtIGFmdGVyd2FyZHMgd291bGQgbGVhdmUgYSBsaXZlIG5vLW9wIGludGVydmFsIGJlaGluZC5cbiAgICAgICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB2b2lkIHBvbGwoKSwgcG9sbEludGVydmFsKTtcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0dGxlKCgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gb25QZW5kaW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uUGVuZGluZ1JlZik7IH0pLCBwb2xsVGltZW91dCk7XG4gICAgICAgIHZvaWQgcG9sbCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgc2V0dGxlZCA9IHRydWU7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgfTtcbiAgICB9LCBbaGFzUG9sbEZuLCBvcGVuLCBwb2xsSW50ZXJ2YWwsIHBvbGxUaW1lb3V0LCBwb2xsRm5SZWYsIG9uU3VjY2Vzc1JlZiwgb25QZW5kaW5nUmVmLCBvbkZhaWxlZFJlZl0pO1xuICAgIHJldHVybiAoX2pzeChEaWFsb2csIHsgb3Blbjogb3Blbiwgd2lkdGg6IEJBU0VfRElBTE9HX0RFRkFVTFRTLndpZHRoLCBtYXNrQ2xvc2FibGU6IGZhbHNlLCBzaG93Q2xvc2VJY29uOiBmYWxzZSwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdGFjaycpLCBjaGlsZHJlbjogW19qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGluJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6ICdsb2dvQmcnLCBzaXplOiBpY29uU2l6ZSB9KSB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3RleHQnKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHkuSGVhZGxpbmUsIHsgc2l6ZTogJ3NtJywgY2hpbGRyZW46IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3YXZlJyksIGNoaWxkcmVuOiBMT0FESU5HX1RFWFQuc3BsaXQoJycpLm1hcCgoY2hhciwgaW5kZXgpID0+IChfanN4KFwic3BhblwiLCB7IHN0eWxlOiB7IGFuaW1hdGlvbkRlbGF5OiBgJHtpbmRleCAqIDAuMX1zYCB9LCBjaGlsZHJlbjogY2hhciB9LCBgJHtjaGFyfS0ke2luZGV4fWApKSkgfSkgfSksIF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogdHJ1ZSwgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBISU5UX1RFWFQgfSldIH0pXSB9KSB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IExvYWRpbmdEaWFsb2cgPSBtZW1vKExvYWRpbmdEaWFsb2dCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -31,17 +31,19 @@ var useRelayedFormRef = exports.useRelayedFormRef = function useRelayedFormRef(f
31
31
  }
32
32
  };
33
33
  }, []);
34
- // Track a swapped-in formRef prop and backfill it with the live instance.
35
- // The cleanup clears the outgoing ref (on swap AND on shell unmount) so a
36
- // consumer can never hold a handle to an unmounted form — a stale instance
37
- // would validate an empty field store and report fake success.
34
+ // Track a swapped-in formRef prop and backfill it with the live instance;
35
+ // the cleanup clears the outgoing ref on swap and on shell unmount. The
36
+ // inner-form lifecycle needs no handling here: ProForm's own ref-sync
37
+ // cleanup publishes `undefined` through the setter when the form unmounts
38
+ // (e.g. the shell stays mounted with `open=false`), so `innerRef.current`
39
+ // never holds an unmounted instance.
38
40
  (0, _react.useEffect)(function () {
39
41
  externalRef.current = formRef;
40
42
  if (formRef) formRef.current = innerRef.current;
41
43
  return function () {
42
44
  if (formRef) formRef.current = undefined;
43
45
  };
44
- });
46
+ }, [formRef, innerRef]);
45
47
  return innerRef;
46
48
  };
47
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NoYXJlZC9zcmMvYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLnRzIiwiYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJ1c2VSZWxheWVkRm9ybVJlZiIsImV4cG9ydHMiLCJmb3JtUmVmIiwiZXh0ZXJuYWxSZWYiLCJ1c2VSZWYiLCJpbm5lclJlZiIsInVzZU1lbW8iLCJpbnN0YW5jZSIsImN1cnJlbnQiLCJuZXh0IiwiZXh0ZXJuYWwiLCJ1c2VFZmZlY3QiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUlBO0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURJTyxJQUFNQyxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQzVCRSxPQUF1RSxFQUNyRTtFQUNGLElBQU1DLFdBQVcsR0FBRyxJQUFBQyxhQUFNLEVBQUNGLE9BQU8sQ0FBQztFQUVuQyxJQUFNRyxRQUFRLEdBQUcsSUFBQUMsY0FBTyxFQUFDLFlBQUs7SUFDNUIsSUFBSUMsUUFBaUQ7SUFDckQsT0FBTztNQUNMLElBQUlDLE9BQU9BLENBQUEsRUFBQTtRQUNULE9BQU9ELFFBQVE7TUFDakIsQ0FBQztNQUNELElBQUlDLE9BQU9BLENBQUNDLElBQTZDLEVBQUE7UUFDdkRGLFFBQVEsR0FBR0UsSUFBSTtRQUNmLElBQU1DLFFBQVEsR0FBR1AsV0FBVyxDQUFDSyxPQUFPO1FBQ3BDLElBQUlFLFFBQVEsRUFBRUEsUUFBUSxDQUFDRixPQUFPLEdBQUdDLElBQUk7TUFDdkM7SUNKRSxDREtIO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBQUUsZ0JBQVMsRUFBQyxZQUFLO0lBQ2JSLFdBQVcsQ0FBQ0ssT0FBTyxHQUFHTixPQUFPO0lBQzdCLElBQUlBLE9BQU8sRUFBRUEsT0FBTyxDQUFDTSxPQUFPLEdBQUdILFFBQVEsQ0FBQ0csT0FBTztJQUMvQyxPQUFPLFlBQUs7TUFDVixJQUFJTixPQUFPLEVBQUVBLE9BQU8sQ0FBQ00sT0FBTyxHQUFHSSxTQUFTO0lBQzFDLENBQUM7RUFDSCxDQUFDLENBQUM7RUFFRixPQUFPUCxRQUFRO0FBQ2pCLENBQUMiLCJmaWxlIjoiYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogVGhlIGlubmVyIHJlZiBhIGZvcm0gc2hlbGwgKEZvcm1EaWFsb2cgLyBGb3JtUGFnZSkgaGFuZHMgdG8gQmFzZVByb0Zvcm0sXG4gKiB3aXJlZCBzbyB3cml0ZXMgZmxvdyB0aHJvdWdoIHRvIHRoZSBjb25zdW1lcidzIGBmb3JtUmVmYCBpbW1lZGlhdGVseS5cbiAqXG4gKiBQcm9Gb3JtIHB1Ymxpc2hlcyBpdHMgaW5zdGFuY2UgZnJvbSBpdHMgT1dOIGVmZmVjdC4gV2hlbiB0aGUgc2hlbGwncyBwb3J0YWxcbiAqIG1vdW50cyB0aGUgZm9ybSBhIGNvbW1pdCBhZnRlciB0aGUgc2hlbGwgKERpYWxvZyBjcmVhdGVzIHRoZSBwb3J0YWwgbm9kZSBpblxuICogYW4gZWZmZWN0KSwgdGhlIHNoZWxsJ3MgZWZmZWN0cyBoYXZlIGFscmVhZHkgcnVuIOKAlCBhIHBhc3NpdmVcbiAqIGBmb3JtUmVmLmN1cnJlbnQgPSBpbm5lclJlZi5jdXJyZW50YCBjb3B5IG5ldmVyIHJlLWZpcmVzIHVubGVzcyBzb21ldGhpbmdcbiAqIGVsc2UgcmUtcmVuZGVycyB0aGUgc2hlbGwsIGxlYXZpbmcgdGhlIGNvbnN1bWVyJ3MgZm9ybVJlZiB1bmRlZmluZWQuIFRoZVxuICogc2V0dGVyIHJlbGF5IGZvcndhcmRzIHRoZSBwdWJsaXNoIGluIHRoZSBzYW1lIHRpY2sgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlbGF5ZWRGb3JtUmVmID0gKGZvcm1SZWYpID0+IHtcbiAgICBjb25zdCBleHRlcm5hbFJlZiA9IHVzZVJlZihmb3JtUmVmKTtcbiAgICBjb25zdCBpbm5lclJlZiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgaW5zdGFuY2U7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgY3VycmVudCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGN1cnJlbnQobmV4dCkge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbmV4dDtcbiAgICAgICAgICAgICAgICBjb25zdCBleHRlcm5hbCA9IGV4dGVybmFsUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKGV4dGVybmFsKVxuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbC5jdXJyZW50ID0gbmV4dDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIC8vIFRyYWNrIGEgc3dhcHBlZC1pbiBmb3JtUmVmIHByb3AgYW5kIGJhY2tmaWxsIGl0IHdpdGggdGhlIGxpdmUgaW5zdGFuY2UuXG4gICAgLy8gVGhlIGNsZWFudXAgY2xlYXJzIHRoZSBvdXRnb2luZyByZWYgKG9uIHN3YXAgQU5EIG9uIHNoZWxsIHVubW91bnQpIHNvIGFcbiAgICAvLyBjb25zdW1lciBjYW4gbmV2ZXIgaG9sZCBhIGhhbmRsZSB0byBhbiB1bm1vdW50ZWQgZm9ybSDigJQgYSBzdGFsZSBpbnN0YW5jZVxuICAgIC8vIHdvdWxkIHZhbGlkYXRlIGFuIGVtcHR5IGZpZWxkIHN0b3JlIGFuZCByZXBvcnQgZmFrZSBzdWNjZXNzLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBmb3JtUmVmO1xuICAgICAgICBpZiAoZm9ybVJlZilcbiAgICAgICAgICAgIGZvcm1SZWYuY3VycmVudCA9IGlubmVyUmVmLmN1cnJlbnQ7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9ybVJlZilcbiAgICAgICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIGlubmVyUmVmO1xufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
49
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NoYXJlZC9zcmMvYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLnRzIiwiYnVzaW5lc3Mvc2hhcmVkL2Zvcm1Db3JlL3VzZVJlbGF5ZWRGb3JtUmVmLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJ1c2VSZWxheWVkRm9ybVJlZiIsImV4cG9ydHMiLCJmb3JtUmVmIiwiZXh0ZXJuYWxSZWYiLCJ1c2VSZWYiLCJpbm5lclJlZiIsInVzZU1lbW8iLCJpbnN0YW5jZSIsImN1cnJlbnQiLCJuZXh0IiwiZXh0ZXJuYWwiLCJ1c2VFZmZlY3QiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUlBO0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURJTyxJQUFNQyxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQzVCRSxPQUF1RSxFQUNyRTtFQUNGLElBQU1DLFdBQVcsR0FBRyxJQUFBQyxhQUFNLEVBQUNGLE9BQU8sQ0FBQztFQUVuQyxJQUFNRyxRQUFRLEdBQUcsSUFBQUMsY0FBTyxFQUFDLFlBQUs7SUFDNUIsSUFBSUMsUUFBaUQ7SUFDckQsT0FBTztNQUNMLElBQUlDLE9BQU9BLENBQUEsRUFBQTtRQUNULE9BQU9ELFFBQVE7TUFDakIsQ0FBQztNQUNELElBQUlDLE9BQU9BLENBQUNDLElBQTZDLEVBQUE7UUFDdkRGLFFBQVEsR0FBR0UsSUFBSTtRQUNmLElBQU1DLFFBQVEsR0FBR1AsV0FBVyxDQUFDSyxPQUFPO1FBQ3BDLElBQUlFLFFBQVEsRUFBRUEsUUFBUSxDQUFDRixPQUFPLEdBQUdDLElBQUk7TUFDdkM7SUNKRSxDREtIO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQUFFLGdCQUFTLEVBQUMsWUFBSztJQUNiUixXQUFXLENBQUNLLE9BQU8sR0FBR04sT0FBTztJQUM3QixJQUFJQSxPQUFPLEVBQUVBLE9BQU8sQ0FBQ00sT0FBTyxHQUFHSCxRQUFRLENBQUNHLE9BQU87SUFDL0MsT0FBTyxZQUFLO01BQ1YsSUFBSU4sT0FBTyxFQUFFQSxPQUFPLENBQUNNLE9BQU8sR0FBR0ksU0FBUztJQUMxQyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNWLE9BQU8sRUFBRUcsUUFBUSxDQUFDLENBQUM7RUFFdkIsT0FBT0EsUUFBUTtBQUNqQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL3NoYXJlZC9mb3JtQ29yZS91c2VSZWxheWVkRm9ybVJlZi5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFRoZSBpbm5lciByZWYgYSBmb3JtIHNoZWxsIChGb3JtRGlhbG9nIC8gRm9ybVBhZ2UpIGhhbmRzIHRvIEJhc2VQcm9Gb3JtLFxuICogd2lyZWQgc28gd3JpdGVzIGZsb3cgdGhyb3VnaCB0byB0aGUgY29uc3VtZXIncyBgZm9ybVJlZmAgaW1tZWRpYXRlbHkuXG4gKlxuICogUHJvRm9ybSBwdWJsaXNoZXMgaXRzIGluc3RhbmNlIGZyb20gaXRzIE9XTiBlZmZlY3QuIFdoZW4gdGhlIHNoZWxsJ3MgcG9ydGFsXG4gKiBtb3VudHMgdGhlIGZvcm0gYSBjb21taXQgYWZ0ZXIgdGhlIHNoZWxsIChEaWFsb2cgY3JlYXRlcyB0aGUgcG9ydGFsIG5vZGUgaW5cbiAqIGFuIGVmZmVjdCksIHRoZSBzaGVsbCdzIGVmZmVjdHMgaGF2ZSBhbHJlYWR5IHJ1biDigJQgYSBwYXNzaXZlXG4gKiBgZm9ybVJlZi5jdXJyZW50ID0gaW5uZXJSZWYuY3VycmVudGAgY29weSBuZXZlciByZS1maXJlcyB1bmxlc3Mgc29tZXRoaW5nXG4gKiBlbHNlIHJlLXJlbmRlcnMgdGhlIHNoZWxsLCBsZWF2aW5nIHRoZSBjb25zdW1lcidzIGZvcm1SZWYgdW5kZWZpbmVkLiBUaGVcbiAqIHNldHRlciByZWxheSBmb3J3YXJkcyB0aGUgcHVibGlzaCBpbiB0aGUgc2FtZSB0aWNrIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWxheWVkRm9ybVJlZiA9IChmb3JtUmVmKSA9PiB7XG4gICAgY29uc3QgZXh0ZXJuYWxSZWYgPSB1c2VSZWYoZm9ybVJlZik7XG4gICAgY29uc3QgaW5uZXJSZWYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IGluc3RhbmNlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBjdXJyZW50KG5leHQpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IG5leHQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSBleHRlcm5hbFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChleHRlcm5hbClcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWwuY3VycmVudCA9IG5leHQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICAvLyBUcmFjayBhIHN3YXBwZWQtaW4gZm9ybVJlZiBwcm9wIGFuZCBiYWNrZmlsbCBpdCB3aXRoIHRoZSBsaXZlIGluc3RhbmNlO1xuICAgIC8vIHRoZSBjbGVhbnVwIGNsZWFycyB0aGUgb3V0Z29pbmcgcmVmIG9uIHN3YXAgYW5kIG9uIHNoZWxsIHVubW91bnQuIFRoZVxuICAgIC8vIGlubmVyLWZvcm0gbGlmZWN5Y2xlIG5lZWRzIG5vIGhhbmRsaW5nIGhlcmU6IFByb0Zvcm0ncyBvd24gcmVmLXN5bmNcbiAgICAvLyBjbGVhbnVwIHB1Ymxpc2hlcyBgdW5kZWZpbmVkYCB0aHJvdWdoIHRoZSBzZXR0ZXIgd2hlbiB0aGUgZm9ybSB1bm1vdW50c1xuICAgIC8vIChlLmcuIHRoZSBzaGVsbCBzdGF5cyBtb3VudGVkIHdpdGggYG9wZW49ZmFsc2VgKSwgc28gYGlubmVyUmVmLmN1cnJlbnRgXG4gICAgLy8gbmV2ZXIgaG9sZHMgYW4gdW5tb3VudGVkIGluc3RhbmNlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBmb3JtUmVmO1xuICAgICAgICBpZiAoZm9ybVJlZilcbiAgICAgICAgICAgIGZvcm1SZWYuY3VycmVudCA9IGlubmVyUmVmLmN1cnJlbnQ7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9ybVJlZilcbiAgICAgICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH07XG4gICAgfSwgW2Zvcm1SZWYsIGlubmVyUmVmXSk7XG4gICAgcmV0dXJuIGlubmVyUmVmO1xufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -338,10 +338,17 @@ var ProFormBase = function ProFormBase(props) {
338
338
  });
339
339
  }, [formInstance, applyPipeline, wrappedHandleSubmit]);
340
340
  // ── Sync to formRef prop ──
341
+ // The cleanup clears the ref on unmount: a handle to an unmounted form
342
+ // validates an empty field store and reports fake success, so consumers
343
+ // (and the business-shell relay refs) must observe `undefined` instead.
341
344
  (0, _react.useEffect)(function () {
342
- if (formRef) {
343
- formRef.current = proFormFormInstance;
344
- }
345
+ if (!formRef) return undefined;
346
+ formRef.current = proFormFormInstance;
347
+ return function () {
348
+ if (formRef.current === proFormFormInstance) {
349
+ formRef.current = undefined;
350
+ }
351
+ };
345
352
  }, [formRef, proFormFormInstance]);
346
353
  // ── request / params auto-load ──
347
354
  var requestRef = (0, _useLatest["default"])(request);
@@ -510,4 +517,4 @@ var ProFormBase = function ProFormBase(props) {
510
517
  ProFormBase.displayName = 'ProForm';
511
518
  var ProForm = exports.ProForm = /*#__PURE__*/(0, _react.memo)(ProFormBase);
512
519
  var _default = exports["default"] = ProForm;
513
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfY2xhc3NuYW1lcyIsIl9HcmlkIiwiX3VzZUZvcm0yIiwiX2NvbnRleHQ0IiwiX1N1Ym1pdHRlciIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfZm9ybVN0b3JlIiwiX3VzZVVybFN5bmMyIiwiX3BhdGhVdGlscyIsIl92YWxpZGF0aW9uRXJyb3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiQ1NTX1BSRUZJWCIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiREVGQVVMVF9DT0xfU1BBTiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlcXVlc3RMb2FkaW5nIiwic2V0UmVxdWVzdExvYWRpbmciLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJzdWJtaXR0aW5nUmVmIiwidXNlUmVmIiwiaXNMb2FkaW5nIiwidHJhbnNmb3JtS2V5UmVmIiwidmFsdWVUeXBlUmVmIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1c2VNZW1vaXplZEZuIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsInVzZUxhdGVzdCIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXREYXRlVmFsdWVzIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdFZhbHVlc0tlZXBOaWwiLCJfdXNlVXJsU3luYyIsInVzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwidXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl9hIiwiX2IiLCJfYyIsImVwb2NoIiwidmFsaWRhdGVkVmFsdWVzIiwicGlwZWxpbmVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwicHJldmVudERlZmF1bHQiLCJhYnJ1cHQiLCJ2YWxpZGF0ZUZpZWxkcyIsInNlbnQiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JzIiwiY29uc29sZSIsImVycm9yIiwiZmluaXNoIiwic3RvcCIsInByb0Zvcm1Gb3JtSW5zdGFuY2UiLCJ1c2VNZW1vIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwicmVzb2x2ZVZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInNldE5lc3RlZFZhbHVlIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsIl9jYWxsZWUyIiwidmFscyIsIl90MiIsIl9jb250ZXh0MiIsInN1Y2Nlc3MiLCJzdWJtaXRGb3JtIiwidXNlRWZmZWN0IiwicmVxdWVzdFJlZiIsImhhc1JlcXVlc3QiLCJzZXJpYWxpemVkUGFyYW1zIiwic3RhYmxlU2VyaWFsaXplIiwiaW5pdEZpcmVkUmVmIiwiZmlyZUluaXQiLCJzdGFsZSIsImZldGNoRGF0YSIsIl9jYWxsZWUzIiwicmVxdWVzdEZuIiwiZGF0YSIsIl90MyIsIl9jb250ZXh0MyIsIl90eXBlb2YyIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInVzZVNoYWxsb3dTdGFibGUiLCJzdGFibGVGb3JtSXRlbVByb3BzIiwic3RhYmxlQ29sUHJvcHMiLCJzdGFibGVMYXlvdXQiLCJzdGFibGVWYWx1ZSIsInNldEZpZWxkVmFsdWUiLCJzZXRGaWVsZEVycm9yIiwic2V0RmllbGRXYXJuaW5nIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwiV3JhcHBlckNvbXBvbmVudCIsIlJvdyIsIkZyYWdtZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiX2pzeCIsIlN1Ym1pdHRlciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiUHJvdmlkZXIiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiX2pzeHMiLCJyZWYiLCJqb2luQ2xzIiwib25TdWJtaXQiLCJoYW5kbGVSZXNldCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ3BCQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFELHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFGLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBTix1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsS0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsU0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksVUFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIsVUFBQSxHQUFBakIsT0FBQTtBQUNBLElBQUFrQixnQkFBQSxHQUFBbEIsT0FBQTtBQUE2RCxTQUFBbUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFsQix3QkFBQWtCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxV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T0FBTyxFQUFFK0UsU0FBUyxDQUFDMkYsV0FBVztRQUFBM0wsUUFBQSxFQUFBLENBRTlCLElBQUFrTCxlQUFBLEVBQUNOLGdCQUFnQixFQUFBdk4sTUFBQSxDQUFBa0ksTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLd0YsWUFBWSxFQUFBO1VBQUEvSyxRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFaUwsYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRG5MLFdBQVcsQ0FBQzhMLFdBQVcsR0FBRyxTQUFTO0FBYTVCLElBQU1DLE9BQU8sR0FBQUMsT0FBQSxDQUFBRCxPQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2pNLFdBQVcsQ0FBNEI7QUFBQyxJQUFBa00sUUFBQSxHQUFBRixPQUFBLGNBRXJERCxPQUFPIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXRlc3QnO1xuaW1wb3J0IHVzZVNhZmVTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZVNhZmVTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAnLi9jb3JlL2hvb2tzL3VzZUZvcm0nO1xuaW1wb3J0IHsgUHJvRm9ybVN0YWJsZUNvbnRleHQsIFByb0Zvcm1TdGF0ZUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgU3VibWl0dGVyIH0gZnJvbSAnLi9TdWJtaXR0ZXInO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHN0YWJsZVNlcmlhbGl6ZSwgdHJhbnNmb3JtU3VibWl0VmFsdWVzLCBvbWl0TmlsVmFsdWVzLCBmb3JtYXREYXRlVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1c2VTaGFsbG93U3RhYmxlIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyB1c2VVcmxTeW5jIH0gZnJvbSAnLi9ob29rcy91c2VVcmxTeW5jJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL2NvcmUvcGF0aFV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2NvcmUvdmFsaWRhdGlvbkVycm9yJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKENTU19QUkVGSVgpO1xuY29uc3QgZm9ybUNsYXNzZXMgPSBjbGFzc25hbWVzKCdmb3JtJyk7XG5jb25zdCBERUZBVUxUX0NPTF9QUk9QUyA9IHsgc3BhbjogREVGQVVMVF9DT0xfU1BBTiB9O1xuY29uc3QgUHJvRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHN1Ym1pdHRlciwgbW9kZSA9ICdlZGl0JywgZ3JpZCA9IGZhbHNlLCBjb2xQcm9wcywgcm93UHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgcmVxdWVzdCwgcGFyYW1zLCBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaCwgb25GaW5pc2hGYWlsZWQsIG9uVmFsdWVzQ2hhbmdlLCBvblJlc2V0LCBvbkluaXQsIG9uTG9hZGluZ0NoYW5nZSwgc3luY1RvVXJsLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IGZhbHNlLCBleHRyYVVybFBhcmFtcywgYXV0b0ZvY3VzRmlyc3RJbnB1dCA9IGZhbHNlLCBmb3JtQ29tcG9uZW50VHlwZSwgZm9ybVJlZiwgb21pdE5pbCA9IHRydWUsIGRhdGVGb3JtYXR0ZXIgPSAnc3RyaW5nJywgZmllbGRQcm9wcywgZm9ybUl0ZW1Qcm9wcywgbGF5b3V0LCBzaXplID0gJ2xhcmdlJywgbGFiZWxBbGlnbiA9ICdsZWZ0JywgZGlzYWJsZWQgPSBmYWxzZSwgdmFsaWRhdGVUcmlnZ2VyID0gJ29uQ2hhbmdlJywgcHJlZml4Q2xzOiBfcHJlZml4Q2xzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJzdWJtaXR0ZXJcIiwgXCJtb2RlXCIsIFwiZ3JpZFwiLCBcImNvbFByb3BzXCIsIFwicm93UHJvcHNcIiwgXCJsb2FkaW5nXCIsIFwicmVxdWVzdFwiLCBcInBhcmFtc1wiLCBcImluaXRpYWxWYWx1ZXNcIiwgXCJvbkZpbmlzaFwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwib25WYWx1ZXNDaGFuZ2VcIiwgXCJvblJlc2V0XCIsIFwib25Jbml0XCIsIFwib25Mb2FkaW5nQ2hhbmdlXCIsIFwic3luY1RvVXJsXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJleHRyYVVybFBhcmFtc1wiLCBcImF1dG9Gb2N1c0ZpcnN0SW5wdXRcIiwgXCJmb3JtQ29tcG9uZW50VHlwZVwiLCBcImZvcm1SZWZcIiwgXCJvbWl0TmlsXCIsIFwiZGF0ZUZvcm1hdHRlclwiLCBcImZpZWxkUHJvcHNcIiwgXCJmb3JtSXRlbVByb3BzXCIsIFwibGF5b3V0XCIsIFwic2l6ZVwiLCBcImxhYmVsQWxpZ25cIiwgXCJkaXNhYmxlZFwiLCBcInZhbGlkYXRlVHJpZ2dlclwiLCBcInByZWZpeENsc1wiXSk7XG4gICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCBzZXRSZXF1ZXN0TG9hZGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIC8vIHVzZVNhZmVTdGF0ZSBmb3IgdGhlIFJFTkRFUkVEIHN1Ym1pdHRpbmcgc3RhdGUgKGl0cyBzZXR0ZXIgaXMgdW5tb3VudC1zYWZlXG4gICAgLy8g4oCUIHRoZSBmaW5hbGx5IGJlbG93IHJ1bnMgYWZ0ZXIgYXdhaXRpbmcgb25GaW5pc2gsIHdoZW4gdGhlIHR5cGljYWxcbiAgICAvLyBzdWJtaXQtdGhlbi1jbG9zZSBmbG93IG1heSBhbHJlYWR5IGhhdmUgdW5tb3VudGVkIHRoZSBmb3JtIG9uIFJlYWN0XG4gICAgLy8gMTYvMTcpLiBUaGUgcmVmIGlzIHRoZSBzeW5jaHJvbm91cyByZS1lbnRyeSBndWFyZDsgQDFtb25leS9ob29rcyBoYXMgbm9cbiAgICAvLyBzaW5nbGUgaG9vayB0aGF0IGlzIGJvdGggdW5tb3VudC1zYWZlIGFuZCBzeW5jaHJvbm91c2x5IHJlYWRhYmxlLlxuICAgIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc3VibWl0dGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gbG9hZGluZyB8fCByZXF1ZXN0TG9hZGluZyB8fCBzdWJtaXR0aW5nO1xuICAgIC8vIOKUgOKUgCBUcmFuc2Zvcm0gLyB2YWx1ZVR5cGUgcmVnaXN0cmllcyDilIDilIBcbiAgICBjb25zdCB0cmFuc2Zvcm1LZXlSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHZhbHVlVHlwZVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgcmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9IGZuO1xuICAgIH0pO1xuICAgIC8vIFRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgZ3VhcmRzIHJlbW92YWw6IGRlbGV0ZSBvbmx5IHdoZW4gdGhlIHJlZ2lzdHJ5XG4gICAgLy8gc3RpbGwgaG9sZHMgdGhlIENBTExFUidTIHJlZ2lzdHJhdGlvbiwgc28gYW4gdW5tb3VudGluZyBpbnN0YW5jZSBjYW4gbmV2ZXJcbiAgICAvLyB3aXBlIGEgc2FtZS1uYW1lIHNpYmxpbmcncyBvciBzdWNjZXNzb3IncyBlbnRyeS5cbiAgICBjb25zdCB1bnJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgaWYgKGZuID09PSB1bmRlZmluZWQgfHwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPT09IGZuKSB7XG4gICAgICAgICAgICBkZWxldGUgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZWdpc3RlclZhbHVlVHlwZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlVHlwZSkgPT4ge1xuICAgICAgICB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9IHZhbHVlVHlwZTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZVR5cGUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9PT0gdmFsdWVUeXBlKSB7XG4gICAgICAgICAgICBkZWxldGUgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvbkZpbmlzaFJlZiA9IHVzZUxhdGVzdChvbkZpbmlzaCk7XG4gICAgY29uc3Qgb25Jbml0UmVmID0gdXNlTGF0ZXN0KG9uSW5pdCk7XG4gICAgY29uc3Qgb25Mb2FkaW5nQ2hhbmdlUmVmID0gdXNlTGF0ZXN0KG9uTG9hZGluZ0NoYW5nZSk7XG4gICAgLy8gU3VibWl0IHBpcGVsaW5lOiBkYXRlcyDihpIgZmllbGQgdHJhbnNmb3JtcyDihpIgb21pdE5pbFxuICAgIGNvbnN0IGFwcGx5UGlwZWxpbmUgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJlc3VsdCA9IHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICAgICAgaWYgKG9taXROaWwpXG4gICAgICAgICAgICByZXN1bHQgPSBvbWl0TmlsVmFsdWVzKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgLy8gU2FtZSBwaXBlbGluZSBXSVRIT1VUIG9taXROaWwg4oCUIHNpbmdsZS1maWVsZCByZWFkZXJzIG11c3Qgbm90IHNlZSBhIGZpZWxkXG4gICAgLy8gdmFuaXNoIGp1c3QgYmVjYXVzZSBpdHMgY3VycmVudCB2YWx1ZSBpcyBlbXB0eS5cbiAgICBjb25zdCBmb3JtYXRWYWx1ZXNLZWVwTmlsID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMocmVzdWx0LCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIFVSTCBzeW5jIChzeW5jVG9VcmwgLyBzeW5jVG9VcmxBc0ltcG9ydGFudCAvIGV4dHJhVXJsUGFyYW1zKSDilIDilIBcbiAgICBjb25zdCB7IHVybEluaXRpYWxWYWx1ZXMsIG9uVXJsU3luY0ZpbmlzaCwgb25VcmxTeW5jUmVzZXQgfSA9IHVzZVVybFN5bmMoe1xuICAgICAgICBzeW5jVG9VcmwsXG4gICAgICAgIGV4dHJhVXJsUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIGluaXRpYWxWYWx1ZXMgaXMgTU9VTlQtT05MWSAoZG9jdW1lbnRlZCBjb250cmFjdDsgdXNlRm9ybUNvcmUgcmUtZnJlZXplc1xuICAgIC8vIGFzIGEgc2FmZXR5IG5ldCkg4oCUIGNvbXB1dGUgdGhlIFVSTCBtZXJnZSBvbmNlIHNvIHRoZSBmcmVlemUgaXMgdmlzaWJsZVxuICAgIC8vIHdoZXJlIHRoZSBwcm9wcyBlbnRlciwgaW5zdGVhZCBvZiByZWNvbXB1dGluZyBkZWFkIHNwcmVhZHMgcGVyIHJlbmRlci5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0gc3luY1RvVXJsXG4gICAgICAgICAgICA/IChzeW5jVG9VcmxBc0ltcG9ydGFudFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzKSwgdXJsSW5pdGlhbFZhbHVlcykgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVybEluaXRpYWxWYWx1ZXMpLCBpbml0aWFsVmFsdWVzKSlcbiAgICAgICAgICAgIDogKGluaXRpYWxWYWx1ZXMgIT09IG51bGwgJiYgaW5pdGlhbFZhbHVlcyAhPT0gdm9pZCAwID8gaW5pdGlhbFZhbHVlcyA6IHt9KTtcbiAgICB9XG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudDtcbiAgICAvLyBCdW1wZWQgb24gZXZlcnkgcmVzZXQg4oCUIGFuIGluLWZsaWdodCBzdWJtaXQgY2FwdHVyZXMgaXQgYW5kIGFib3J0cyB3aGVuXG4gICAgLy8gaXQgY2hhbmdlZCB1bmRlcm5lYXRoICh0aGUgdXNlciBkaXNjYXJkZWQgdGhlIHN1Ym1pc3Npb24ncyB2YWx1ZXMpLlxuICAgIGNvbnN0IHJlc2V0RXBvY2hSZWYgPSB1c2VSZWYoMCk7XG4gICAgLy8gUmVzZXQgY2hhaW46IGZvcm0tbGV2ZWwgb25SZXNldCByZWNlaXZlcyB0aGUgKHBvc3QtcmVzZXQpIGZvcm1hdHRlZFxuICAgIC8vIHZhbHVlcywgdGhlbiB0aGUgZm9ybSdzIG93biBVUkwgcGFyYW1zIGFyZSBjbGVhcmVkLiB1c2VNZW1vaXplZEZuIGRlZmVyc1xuICAgIC8vIGV4ZWN1dGlvbiB0byBldmVudCB0aW1lLCB3aGVuIGBmb3JtSW5zdGFuY2VgIChjcmVhdGVkIGp1c3QgYmVsb3cpIGV4aXN0cy5cbiAgICBjb25zdCBmaXJlRm9ybVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHJlc2V0RXBvY2hSZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjb25zdCBmaW5hbFZhbHVlcyA9IGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoZmluYWxWYWx1ZXMpO1xuICAgICAgICBvblVybFN5bmNSZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBGb3JtIGVuZ2luZSAodXNlRm9ybSB3aXRoIGFzeW5jIHZhbGlkYXRpb24pIOKUgOKUgFxuICAgIGNvbnN0IHsgZm9ybUluc3RhbmNlLCBpbnRlcm5hbHMsIHN0b3JlIH0gPSB1c2VGb3JtKHtcbiAgICAgICAgaW5pdGlhbFZhbHVlczogbWVyZ2VkSW5pdGlhbFZhbHVlcyxcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UsXG4gICAgICAgIG9uUmVzZXQ6IGZpcmVGb3JtUmVzZXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEFzeW5jIHN1Ym1pdCB3aXRoIHRyYW5zZm9ybSBwaXBlbGluZSDilIDilIBcbiAgICAvLyBSZS1lbnRyeSBndWFyZDogYSBzZWNvbmQgc3VibWl0IHdoaWxlIG9uZSBpcyBpbiBmbGlnaHQgaXMgaWdub3JlZCAodGhlXG4gICAgLy8gcmVmIGNhdGNoZXMgdHdvIGNhbGxzIGluIHRoZSBzYW1lIHRpY2spLlxuICAgIGNvbnN0IHdyYXBwZWRIYW5kbGVTdWJtaXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoc3VibWl0dGluZ1JlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKHRydWUpO1xuICAgICAgICAoX2EgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZXBvY2ggPSByZXNldEVwb2NoUmVmLmN1cnJlbnQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRWYWx1ZXMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIChhc3luYykgdmFsaWRhdGlvbiBkaXNjYXJkcyB0aGlzIHN1Ym1pc3Npb24gZW50aXJlbHk6XG4gICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZS1yZWFkcyB0aGUgbGl2ZSBzdG9yZSwgc28gcHJvY2VlZGluZyB3b3VsZCBoYW5kXG4gICAgICAgICAgICAvLyBvbkZpbmlzaCB0aGUgUE9TVC1yZXNldCB2YWx1ZXMuXG4gICAgICAgICAgICBpZiAoZXBvY2ggIT09IHJlc2V0RXBvY2hSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwaXBlbGluZWQgPSBhcHBseVBpcGVsaW5lKHZhbGlkYXRlZFZhbHVlcyk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCAoKF9iID0gb25GaW5pc2hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob25GaW5pc2hSZWYsIHBpcGVsaW5lZCkpO1xuICAgICAgICAgICAgLy8gU3luYyB0aGUgVVJMIHVubGVzcyBvbkZpbmlzaCBleHBsaWNpdGx5IHJldHVybmVkIGZhbHNlIChhIHRocm93IGFib3ZlXG4gICAgICAgICAgICAvLyBhbHNvIHNraXBzIOKAlCBhIGZhaWxlZCBzdWJtaXQgbXVzdCBub3QgcG9sbHV0ZSB0aGUgVVJMKSwgYW5kIG9ubHkgaWZcbiAgICAgICAgICAgIC8vIHRoZSB1c2VyIGRpZCBOT1QgcmVzZXQgdGhlIGZvcm0gd2hpbGUgdGhlIHN1Ym1pdCB3YXMgaW4gZmxpZ2h0LlxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UgJiYgZXBvY2ggPT09IHJlc2V0RXBvY2hSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIG9uVXJsU3luY0ZpbmlzaChwaXBlbGluZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIHZhbGlkYXRpb24gYWxzbyBpbnZhbGlkYXRlcyB0aGUgRkFJTFVSRSBjYWxsYmFjayDigJRcbiAgICAgICAgICAgIC8vIHRoZSBlcnJvciBjYXJyaWVzIHBvc3QtcmVzZXQgdmFsdWVzIGZvciBhIGRpc2NhcmRlZCBzdWJtaXNzaW9uLlxuICAgICAgICAgICAgLy8gKEZpZWxkIGVycm9ycyBmcm9tIHRoZSBkZWFkIHZhbGlkYXRpb24gYXJlIHN1cHByZXNzZWQgYnkgdGhlXG4gICAgICAgICAgICAvLyBwZXItZmllbGQgdmFsaWRhdGlvbiBlcG9jaHM6IHJlc2V0RmllbGRzIGludmFsaWRhdGVzIGluLWZsaWdodCBydW5zLilcbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIE9ubHkgYSBWQUxJREFUSU9OIGZhaWx1cmUgcm91dGVzIHRvIG9uRmluaXNoRmFpbGVkLiBBbiBleGNlcHRpb24gb3V0XG4gICAgICAgICAgICAvLyBvZiB0aGUgY29uc3VtZXIncyBvd24gb25GaW5pc2ggaXMgbm90IGEgdmFsaWRhdGlvbiByZXN1bHQ6IHRoZSBzdWJtaXRcbiAgICAgICAgICAgIC8vIGZhaWxzIChVUkwgdW50b3VjaGVkLCBvdmVybGF5IHN0YXlzIG9wZW4pIGFuZCB0aGUgZXJyb3IgaXMgc3VyZmFjZWRcbiAgICAgICAgICAgIC8vIG9uIHRoZSBjb25zb2xlIGluc3RlYWQgb2YgYmVpbmcgbWlzcmVwb3J0ZWQgd2l0aCBhbiBlbXB0eSBwYXlsb2FkLlxuICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEZvcm1WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkZpbmlzaEZhaWxlZCA9PT0gbnVsbCB8fCBvbkZpbmlzaEZhaWxlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2hGYWlsZWQoeyB2YWx1ZXM6IGVyci52YWx1ZXMsIGVycm9yczogZXJyLmVycm9ycyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSBvbkZpbmlzaCB0aHJldyBkdXJpbmcgc3VibWl0OicsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFN1Ym1pdHRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gb25Mb2FkaW5nQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYWxsKG9uTG9hZGluZ0NoYW5nZVJlZiwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIOKUgOKUgCBQcm9Gb3JtIGluc3RhbmNlOiBzdXBlcnNldCBvZiBGb3JtSW5zdGFuY2Ug4pSA4pSAXG4gICAgY29uc3QgcHJvRm9ybUZvcm1JbnN0YW5jZSA9IHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZm9ybUluc3RhbmNlKSwgeyBnZXRGaWVsZHNGb3JtYXRWYWx1ZTogKCkgPT4gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIGdldEZpZWxkRm9ybWF0VmFsdWU6ICgobmFtZSkgPT4gcmVzb2x2ZVZhbHVlKGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBuYW1lKSksIGdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3Q6IChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRWYWx1ZXNLZWVwTmlsKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKTtcbiAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgICAgICAgLy8gQSBuZXN0ZWQgb2JqZWN0IGNhcnJ5aW5nIE9OTFkgdGhlIHJlcXVlc3RlZCBsZWFmIOKAlCBub3QgdGhlIHdob2xlXG4gICAgICAgICAgICAvLyB0b3AtbGV2ZWwgc3VidHJlZSB0aGUgcGF0aCBoYXBwZW5zIHRvIGxpdmUgaW4uXG4gICAgICAgICAgICByZXR1cm4gc2V0TmVzdGVkVmFsdWUoe30sIG5hbWUsIHJlc29sdmVWYWx1ZShmb3JtYXR0ZWQsIG5hbWUpKTtcbiAgICAgICAgfSwgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXM6IGFwcGx5UGlwZWxpbmUodmFscykgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZWplY3RzIHdpdGggYW4gRXJyb3IgY2FycnlpbmcgdGhlIGZpZWxkIGVycm9ycyBtYXBcbiAgICAgICAgICAgICAgICAvLyAoc2FtZSBzaGFwZSB3cmFwcGVkSGFuZGxlU3VibWl0IGNvbnN1bWVzIGFib3ZlKS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycyB9ID0gZXJyO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IGVycm9ycyAhPT0gbnVsbCAmJiBlcnJvcnMgIT09IHZvaWQgMCA/IGVycm9ycyA6IHt9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdWJtaXRGb3JtOiB3cmFwcGVkSGFuZGxlU3VibWl0IH0pKSwgW2Zvcm1JbnN0YW5jZSwgYXBwbHlQaXBlbGluZSwgd3JhcHBlZEhhbmRsZVN1Ym1pdF0pO1xuICAgIC8vIOKUgOKUgCBTeW5jIHRvIGZvcm1SZWYgcHJvcCDilIDilIBcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZm9ybVJlZikge1xuICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gcHJvRm9ybUZvcm1JbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH0sIFtmb3JtUmVmLCBwcm9Gb3JtRm9ybUluc3RhbmNlXSk7XG4gICAgLy8g4pSA4pSAIHJlcXVlc3QgLyBwYXJhbXMgYXV0by1sb2FkIOKUgOKUgFxuICAgIGNvbnN0IHJlcXVlc3RSZWYgPSB1c2VMYXRlc3QocmVxdWVzdCk7XG4gICAgY29uc3QgaGFzUmVxdWVzdCA9ICEhcmVxdWVzdDtcbiAgICBjb25zdCBzZXJpYWxpemVkUGFyYW1zID0gdXNlTWVtbygoKSA9PiBzdGFibGVTZXJpYWxpemUocGFyYW1zKSwgW3BhcmFtc10pO1xuICAgIC8vIG9uSW5pdCBmaXJlcyBleGFjdGx5IG9uY2U6IGFmdGVyIHRoZSBGSVJTVCByZXF1ZXN0IHJlc29sdmVzIHdoZW4gYVxuICAgIC8vIHJlcXVlc3QgaXMgY29uZmlndXJlZCwgb3RoZXJ3aXNlIHJpZ2h0IGFmdGVyIG1vdW50LlxuICAgIGNvbnN0IGluaXRGaXJlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZmlyZUluaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5pdEZpcmVkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRGaXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgKF9hID0gb25Jbml0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uSW5pdFJlZiwgYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIHByb0Zvcm1Gb3JtSW5zdGFuY2UpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFN0YWxlbmVzcyBndWFyZDogaWYgcGFyYW1zIGNoYW5nZSBhZ2FpbiBiZWZvcmUgdGhpcyBmZXRjaCByZXNvbHZlcywgdGhlXG4gICAgICAgIC8vIGNsZWFudXAgbWFya3MgaXQgc3RhbGUgc28gdGhlIGxhdGUgcmVzcG9uc2UgY2FuJ3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZXNcbiAgICAgICAgLy8gYSBuZXdlciByZXF1ZXN0IGFscmVhZHkgKG9yIHdpbGwpIHNldC5cbiAgICAgICAgbGV0IHN0YWxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZldGNoRGF0YSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEZuID0gcmVxdWVzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKCFyZXF1ZXN0Rm4pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXF1ZXN0Rm4ocGFyYW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlICYmIGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZHNWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gQSBmYWlsZWQgcmVxdWVzdCBtdXN0IG5vdCBlc2NhcGUgYXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiDigJQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZm9ybSBrZWVwcyBpdHMgaW5pdGlhbFZhbHVlcyBhbmQgdGhlIGZhaWx1cmUgaXMgc3VyZmFjZWQgb24gdGhlXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZSAobWlycm9ycyB0aGUgZmllbGQtbGV2ZWwgdXNlRmllbGRSZXF1ZXN0IGhhbmRsaW5nKS5cbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSByZXF1ZXN0IGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGEgTk9OLXN1cGVyc2VkZWQgc2V0dGxlIGluaXRpYWxpemVzIHRoZSBmb3JtOiBhIHN0YWxlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlcXVlc3QncyBkYXRhIHdhcyBkaXNjYXJkZWQsIHNvIGl0cyB2YWx1ZXMgbXVzdCBub3QgYmUgcmVwb3J0ZWQuXG4gICAgICAgICAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlcXVlc3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZmV0Y2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmaXJlSW5pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzdGFsZSA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFJlLWZldGNoIHdoZW4gcGFyYW1zIGNoYW5nZSBieSBWQUxVRSAoZGVwZW5kaW5nIG9uIHRoZSByYXcgYHBhcmFtc2BcbiAgICAgICAgLy8gcmVmZXJlbmNlIHdvdWxkIHJlLXJ1biBvbiBldmVyeSByZW5kZXIgZm9yIGlubGluZSBvYmplY3QgbGl0ZXJhbHMgYW5kLFxuICAgICAgICAvLyBjb21iaW5lZCB3aXRoIHRoZSBsb2FkaW5nIHNldFN0YXRlLCBsb29wIGZvcmV2ZXIpIOKAlCBhbmQgd2hlbiBgcmVxdWVzdGBcbiAgICAgICAgLy8gZmlyc3QgYmVjb21lcyBkZWZpbmVkIChlLmcuIGJlaGluZCBhIGZlYXR1cmUgZmxhZyksIG1pcnJvcmluZ1xuICAgICAgICAvLyB1c2VGaWVsZFJlcXVlc3QuIGZpcmVJbml0J3Mgb25jZS1ndWFyZCBrZWVwcyBvbkluaXQgZnJvbSByZS1maXJpbmcuXG4gICAgfSwgW3NlcmlhbGl6ZWRQYXJhbXMsIGhhc1JlcXVlc3RdKTtcbiAgICAvLyDilIDilIAgYXV0b0ZvY3VzRmlyc3RJbnB1dCDilIDilIBcbiAgICBjb25zdCBmb3JtRWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWF1dG9Gb2N1c0ZpcnN0SW5wdXQgfHwgbW9kZSA9PT0gJ3JlYWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBmaXJzdElucHV0ID0gKF9hID0gZm9ybUVsUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5xdWVyeVNlbGVjdG9yKCdpbnB1dDpub3QoW3R5cGU9XCJoaWRkZW5cIl0pOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyk7XG4gICAgICAgIGZpcnN0SW5wdXQgPT09IG51bGwgfHwgZmlyc3RJbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RJbnB1dC5mb2N1cygpO1xuICAgICAgICAvLyBNb3VudC1vbmx5IGJ5IGRlc2lnbi5cbiAgICB9LCBbXSk7XG4gICAgLy8g4pSA4pSAIFNwbGl0IGNvbnRleHQg4pSA4pSAXG4gICAgLy8gRm9ybS1sZXZlbCBwcm9wIGJhZ3MgYXJlIG9mdGVuIGlubGluZSBsaXRlcmFsczoga2VlcCB0aGVpciBpZGVudGl0eVxuICAgIC8vIHN0YWJsZSB3aGlsZSBzaGFsbG93LWVxdWFsIHNvIHRoZSBzdGFibGUgc2xpY2UgZG9lc24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IHN0YWJsZUZpZWxkUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZpZWxkUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUZvcm1JdGVtUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZvcm1JdGVtUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUNvbFByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShjb2xQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlTGF5b3V0ID0gdXNlU2hhbGxvd1N0YWJsZShsYXlvdXQpO1xuICAgIC8vIFN0YWJsZSBzbGljZTogY29uZmlndXJhdGlvbiArIGlkZW50aXR5LXN0YWJsZSBkaXNwYXRjaGVycy9pbnN0YW5jZS5cbiAgICAvLyBDaGFuZ2VzIG9ubHkgd2hlbiBmb3JtLWxldmVsIHByb3BzIGNoYW5nZSDigJQgTk9UIG9uIGtleXN0cm9rZXMsIHNvXG4gICAgLy8gc3Vic2NyaWJlcnMgbGlrZSBTdWJtaXR0ZXIgYW5kIHRoZSBmaWVsZCBmYWN0b3JpZXMgc2tpcCB0aG9zZSByZW5kZXJzLlxuICAgIGNvbnN0IHN0YWJsZVZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBmb3JtSW5zdGFuY2U6IHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIHNldEZpZWxkVmFsdWU6IGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yOiBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nOiBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkQXN5bmM6IGludGVybmFscy52YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQ6IGludGVybmFscy5yZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQ6IGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHJldGFpbkZpZWxkOiBpbnRlcm5hbHMucmV0YWluRmllbGQsXG4gICAgICAgIHJlbGVhc2VGaWVsZDogaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgLy8gU3VibWl0dGluZy9sb2FkaW5nIGRvZXMgTk9UIGRpc2FibGUgZmllbGRzIOKAlCBvbmx5IHRoZVxuICAgICAgICAvLyBleHBsaWNpdCBgZGlzYWJsZWRgIHByb3AgZG9lcy4gS2VlcGluZyBpc0xvYWRpbmcgb3V0IG9mIHRoaXMgc2xpY2VcbiAgICAgICAgLy8gbWVhbnMgYSBzdWJtaXQgY3ljbGUgbm8gbG9uZ2VyIHJlLXJlbmRlcnMgZXZlcnkgZmllbGQgc2hlbGwuXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIC8vIFByb0Zvcm0gc3BlY2lmaWNzXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbFByb3BzOiBzdGFibGVDb2xQcm9wcyAhPT0gbnVsbCAmJiBzdGFibGVDb2xQcm9wcyAhPT0gdm9pZCAwID8gc3RhYmxlQ29sUHJvcHMgOiBERUZBVUxUX0NPTF9QUk9QUyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm06IHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtOiB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgZmllbGRQcm9wczogc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgZm9ybUl0ZW1Qcm9wczogc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgbGF5b3V0OiBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIH0pLCBbXG4gICAgICAgIHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkV2FybmluZyxcbiAgICAgICAgaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgc3RhYmxlQ29sUHJvcHMsXG4gICAgICAgIHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgc3RhYmxlTGF5b3V0LFxuICAgICAgICBmb3JtQ29tcG9uZW50VHlwZSxcbiAgICBdKTtcbiAgICBjb25zdCBXcmFwcGVyQ29tcG9uZW50ID0gZ3JpZCA/IFJvdyA6IEZyYWdtZW50O1xuICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IGdyaWQgPyBPYmplY3QuYXNzaWduKHt9LCByb3dQcm9wcykgOiB7fTtcbiAgICAvLyBSZXNldCBjYWxsYmFjayBjaGFpbjogdGhlIFN1Ym1pdHRlciByZXNldHMgdGhlIHZhbHVlcyBmaXJzdCwgdGhlbiB0aGVcbiAgICAvLyBzdWJtaXR0ZXItbGV2ZWwgb25SZXNldCwgdGhlbiB0aGUgZm9ybS1sZXZlbCBvblJlc2V0ICh3aXRoIGZpbmFsVmFsdWVzKVxuICAgIC8vIGFuZCB0aGUgVVJMIGNsZWFudXAg4oCUIGZpcmVkIGV4YWN0bHkgb25jZSBwZXIgcmVzZXQgYWN0aW9uLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdHRlclJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlcik7XG4gICAgICAgIGZpcmVGb3JtUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBzdWJtaXR0ZXJOb2RlID0gc3VibWl0dGVyICE9PSBmYWxzZSAmJiBtb2RlICE9PSAncmVhZCcgPyAoX2pzeChTdWJtaXR0ZXIsIE9iamVjdC5hc3NpZ24oe30sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSwgeyBvblJlc2V0OiBoYW5kbGVTdWJtaXR0ZXJSZXNldCwgbG9hZGluZzogaXNMb2FkaW5nIH0pKSkgOiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtU3RhYmxlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RhYmxlVmFsdWUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm1TdGF0ZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHN0b3JlLCBjaGlsZHJlbjogX2pzeHMoXCJmb3JtXCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBmb3JtRWxSZWYsIGNsYXNzTmFtZTogZm9ybUNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSksIG9uU3VibWl0OiB3cmFwcGVkSGFuZGxlU3VibWl0LCBvblJlc2V0OiBpbnRlcm5hbHMuaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiBbX2pzeChXcmFwcGVyQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCB3cmFwcGVyUHJvcHMsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSwgc3VibWl0dGVyTm9kZV0gfSkpIH0pIH0pKTtcbn07XG5Qcm9Gb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtID0gbWVtbyhQcm9Gb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
520
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfY2xhc3NuYW1lcyIsIl9HcmlkIiwiX3VzZUZvcm0yIiwiX2NvbnRleHQ0IiwiX1N1Ym1pdHRlciIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfZm9ybVN0b3JlIiwiX3VzZVVybFN5bmMyIiwiX3BhdGhVdGlscyIsIl92YWxpZGF0aW9uRXJyb3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiQ1NTX1BSRUZJWCIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiREVGQVVMVF9DT0xfU1BBTiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlcXVlc3RMb2FkaW5nIiwic2V0UmVxdWVzdExvYWRpbmciLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJzdWJtaXR0aW5nUmVmIiwidXNlUmVmIiwiaXNMb2FkaW5nIiwidHJhbnNmb3JtS2V5UmVmIiwidmFsdWVUeXBlUmVmIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1c2VNZW1vaXplZEZuIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsInVzZUxhdGVzdCIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXREYXRlVmFsdWVzIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdFZhbHVlc0tlZXBOaWwiLCJfdXNlVXJsU3luYyIsInVzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwidXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl9hIiwiX2IiLCJfYyIsImVwb2NoIiwidmFsaWRhdGVkVmFsdWVzIiwicGlwZWxpbmVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwicHJldmVudERlZmF1bHQiLCJhYnJ1cHQiLCJ2YWxpZGF0ZUZpZWxkcyIsInNlbnQiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JzIiwiY29uc29sZSIsImVycm9yIiwiZmluaXNoIiwic3RvcCIsInByb0Zvcm1Gb3JtSW5zdGFuY2UiLCJ1c2VNZW1vIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwicmVzb2x2ZVZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInNldE5lc3RlZFZhbHVlIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsIl9jYWxsZWUyIiwidmFscyIsIl90MiIsIl9jb250ZXh0MiIsInN1Y2Nlc3MiLCJzdWJtaXRGb3JtIiwidXNlRWZmZWN0IiwicmVxdWVzdFJlZiIsImhhc1JlcXVlc3QiLCJzZXJpYWxpemVkUGFyYW1zIiwic3RhYmxlU2VyaWFsaXplIiwiaW5pdEZpcmVkUmVmIiwiZmlyZUluaXQiLCJzdGFsZSIsImZldGNoRGF0YSIsIl9jYWxsZWUzIiwicmVxdWVzdEZuIiwiZGF0YSIsIl90MyIsIl9jb250ZXh0MyIsIl90eXBlb2YyIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInVzZVNoYWxsb3dTdGFibGUiLCJzdGFibGVGb3JtSXRlbVByb3BzIiwic3RhYmxlQ29sUHJvcHMiLCJzdGFibGVMYXlvdXQiLCJzdGFibGVWYWx1ZSIsInNldEZpZWxkVmFsdWUiLCJzZXRGaWVsZEVycm9yIiwic2V0RmllbGRXYXJuaW5nIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwiV3JhcHBlckNvbXBvbmVudCIsIlJvdyIsIkZyYWdtZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiX2pzeCIsIlN1Ym1pdHRlciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiUHJvdmlkZXIiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiX2pzeHMiLCJyZWYiLCJqb2luQ2xzIiwib25TdWJtaXQiLCJoYW5kbGVSZXNldCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ3BCQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFELHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFGLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBTix1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsS0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsU0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksVUFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIsVUFBQSxHQUFBakIsT0FBQTtBQUNBLElBQUFrQixnQkFBQSxHQUFBbEIsT0FBQTtBQUE2RCxTQUFBbUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFsQix3QkFBQWtCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxV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LEVBQUU5QixTQUFTO1FBQ2R6SixTQUFTLEVBQUVQLFdBQVcsQ0FBQ3lFLFNBQVMsRUFBRSxJQUFBc0gsbUJBQU8sRUFBQ2xNLE9BQU8sQ0FBQSxDQUFFLEVBQUVVLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFeUwsUUFBUSxFQUFFeEYsbUJBQW1CO1FBQzdCakYsT0FBTyxFQUFFK0UsU0FBUyxDQUFDMkYsV0FBVztRQUFBM0wsUUFBQSxFQUFBLENBRTlCLElBQUFrTCxlQUFBLEVBQUNOLGdCQUFnQixFQUFBdk4sTUFBQSxDQUFBa0ksTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLd0YsWUFBWSxFQUFBO1VBQUEvSyxRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFaUwsYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRG5MLFdBQVcsQ0FBQzhMLFdBQVcsR0FBRyxTQUFTO0FBYTVCLElBQU1DLE9BQU8sR0FBQUMsT0FBQSxDQUFBRCxPQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2pNLFdBQVcsQ0FBNEI7QUFBQyxJQUFBa00sUUFBQSxHQUFBRixPQUFBLGNBRXJERCxPQUFPIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXRlc3QnO1xuaW1wb3J0IHVzZVNhZmVTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZVNhZmVTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAnLi9jb3JlL2hvb2tzL3VzZUZvcm0nO1xuaW1wb3J0IHsgUHJvRm9ybVN0YWJsZUNvbnRleHQsIFByb0Zvcm1TdGF0ZUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgU3VibWl0dGVyIH0gZnJvbSAnLi9TdWJtaXR0ZXInO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHN0YWJsZVNlcmlhbGl6ZSwgdHJhbnNmb3JtU3VibWl0VmFsdWVzLCBvbWl0TmlsVmFsdWVzLCBmb3JtYXREYXRlVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1c2VTaGFsbG93U3RhYmxlIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyB1c2VVcmxTeW5jIH0gZnJvbSAnLi9ob29rcy91c2VVcmxTeW5jJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL2NvcmUvcGF0aFV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2NvcmUvdmFsaWRhdGlvbkVycm9yJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKENTU19QUkVGSVgpO1xuY29uc3QgZm9ybUNsYXNzZXMgPSBjbGFzc25hbWVzKCdmb3JtJyk7XG5jb25zdCBERUZBVUxUX0NPTF9QUk9QUyA9IHsgc3BhbjogREVGQVVMVF9DT0xfU1BBTiB9O1xuY29uc3QgUHJvRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHN1Ym1pdHRlciwgbW9kZSA9ICdlZGl0JywgZ3JpZCA9IGZhbHNlLCBjb2xQcm9wcywgcm93UHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgcmVxdWVzdCwgcGFyYW1zLCBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaCwgb25GaW5pc2hGYWlsZWQsIG9uVmFsdWVzQ2hhbmdlLCBvblJlc2V0LCBvbkluaXQsIG9uTG9hZGluZ0NoYW5nZSwgc3luY1RvVXJsLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IGZhbHNlLCBleHRyYVVybFBhcmFtcywgYXV0b0ZvY3VzRmlyc3RJbnB1dCA9IGZhbHNlLCBmb3JtQ29tcG9uZW50VHlwZSwgZm9ybVJlZiwgb21pdE5pbCA9IHRydWUsIGRhdGVGb3JtYXR0ZXIgPSAnc3RyaW5nJywgZmllbGRQcm9wcywgZm9ybUl0ZW1Qcm9wcywgbGF5b3V0LCBzaXplID0gJ2xhcmdlJywgbGFiZWxBbGlnbiA9ICdsZWZ0JywgZGlzYWJsZWQgPSBmYWxzZSwgdmFsaWRhdGVUcmlnZ2VyID0gJ29uQ2hhbmdlJywgcHJlZml4Q2xzOiBfcHJlZml4Q2xzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJzdWJtaXR0ZXJcIiwgXCJtb2RlXCIsIFwiZ3JpZFwiLCBcImNvbFByb3BzXCIsIFwicm93UHJvcHNcIiwgXCJsb2FkaW5nXCIsIFwicmVxdWVzdFwiLCBcInBhcmFtc1wiLCBcImluaXRpYWxWYWx1ZXNcIiwgXCJvbkZpbmlzaFwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwib25WYWx1ZXNDaGFuZ2VcIiwgXCJvblJlc2V0XCIsIFwib25Jbml0XCIsIFwib25Mb2FkaW5nQ2hhbmdlXCIsIFwic3luY1RvVXJsXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJleHRyYVVybFBhcmFtc1wiLCBcImF1dG9Gb2N1c0ZpcnN0SW5wdXRcIiwgXCJmb3JtQ29tcG9uZW50VHlwZVwiLCBcImZvcm1SZWZcIiwgXCJvbWl0TmlsXCIsIFwiZGF0ZUZvcm1hdHRlclwiLCBcImZpZWxkUHJvcHNcIiwgXCJmb3JtSXRlbVByb3BzXCIsIFwibGF5b3V0XCIsIFwic2l6ZVwiLCBcImxhYmVsQWxpZ25cIiwgXCJkaXNhYmxlZFwiLCBcInZhbGlkYXRlVHJpZ2dlclwiLCBcInByZWZpeENsc1wiXSk7XG4gICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCBzZXRSZXF1ZXN0TG9hZGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIC8vIHVzZVNhZmVTdGF0ZSBmb3IgdGhlIFJFTkRFUkVEIHN1Ym1pdHRpbmcgc3RhdGUgKGl0cyBzZXR0ZXIgaXMgdW5tb3VudC1zYWZlXG4gICAgLy8g4oCUIHRoZSBmaW5hbGx5IGJlbG93IHJ1bnMgYWZ0ZXIgYXdhaXRpbmcgb25GaW5pc2gsIHdoZW4gdGhlIHR5cGljYWxcbiAgICAvLyBzdWJtaXQtdGhlbi1jbG9zZSBmbG93IG1heSBhbHJlYWR5IGhhdmUgdW5tb3VudGVkIHRoZSBmb3JtIG9uIFJlYWN0XG4gICAgLy8gMTYvMTcpLiBUaGUgcmVmIGlzIHRoZSBzeW5jaHJvbm91cyByZS1lbnRyeSBndWFyZDsgQDFtb25leS9ob29rcyBoYXMgbm9cbiAgICAvLyBzaW5nbGUgaG9vayB0aGF0IGlzIGJvdGggdW5tb3VudC1zYWZlIGFuZCBzeW5jaHJvbm91c2x5IHJlYWRhYmxlLlxuICAgIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc3VibWl0dGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gbG9hZGluZyB8fCByZXF1ZXN0TG9hZGluZyB8fCBzdWJtaXR0aW5nO1xuICAgIC8vIOKUgOKUgCBUcmFuc2Zvcm0gLyB2YWx1ZVR5cGUgcmVnaXN0cmllcyDilIDilIBcbiAgICBjb25zdCB0cmFuc2Zvcm1LZXlSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHZhbHVlVHlwZVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgcmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9IGZuO1xuICAgIH0pO1xuICAgIC8vIFRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgZ3VhcmRzIHJlbW92YWw6IGRlbGV0ZSBvbmx5IHdoZW4gdGhlIHJlZ2lzdHJ5XG4gICAgLy8gc3RpbGwgaG9sZHMgdGhlIENBTExFUidTIHJlZ2lzdHJhdGlvbiwgc28gYW4gdW5tb3VudGluZyBpbnN0YW5jZSBjYW4gbmV2ZXJcbiAgICAvLyB3aXBlIGEgc2FtZS1uYW1lIHNpYmxpbmcncyBvciBzdWNjZXNzb3IncyBlbnRyeS5cbiAgICBjb25zdCB1bnJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgaWYgKGZuID09PSB1bmRlZmluZWQgfHwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPT09IGZuKSB7XG4gICAgICAgICAgICBkZWxldGUgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZWdpc3RlclZhbHVlVHlwZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlVHlwZSkgPT4ge1xuICAgICAgICB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9IHZhbHVlVHlwZTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZVR5cGUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9PT0gdmFsdWVUeXBlKSB7XG4gICAgICAgICAgICBkZWxldGUgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvbkZpbmlzaFJlZiA9IHVzZUxhdGVzdChvbkZpbmlzaCk7XG4gICAgY29uc3Qgb25Jbml0UmVmID0gdXNlTGF0ZXN0KG9uSW5pdCk7XG4gICAgY29uc3Qgb25Mb2FkaW5nQ2hhbmdlUmVmID0gdXNlTGF0ZXN0KG9uTG9hZGluZ0NoYW5nZSk7XG4gICAgLy8gU3VibWl0IHBpcGVsaW5lOiBkYXRlcyDihpIgZmllbGQgdHJhbnNmb3JtcyDihpIgb21pdE5pbFxuICAgIGNvbnN0IGFwcGx5UGlwZWxpbmUgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJlc3VsdCA9IHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICAgICAgaWYgKG9taXROaWwpXG4gICAgICAgICAgICByZXN1bHQgPSBvbWl0TmlsVmFsdWVzKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgLy8gU2FtZSBwaXBlbGluZSBXSVRIT1VUIG9taXROaWwg4oCUIHNpbmdsZS1maWVsZCByZWFkZXJzIG11c3Qgbm90IHNlZSBhIGZpZWxkXG4gICAgLy8gdmFuaXNoIGp1c3QgYmVjYXVzZSBpdHMgY3VycmVudCB2YWx1ZSBpcyBlbXB0eS5cbiAgICBjb25zdCBmb3JtYXRWYWx1ZXNLZWVwTmlsID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMocmVzdWx0LCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIFVSTCBzeW5jIChzeW5jVG9VcmwgLyBzeW5jVG9VcmxBc0ltcG9ydGFudCAvIGV4dHJhVXJsUGFyYW1zKSDilIDilIBcbiAgICBjb25zdCB7IHVybEluaXRpYWxWYWx1ZXMsIG9uVXJsU3luY0ZpbmlzaCwgb25VcmxTeW5jUmVzZXQgfSA9IHVzZVVybFN5bmMoe1xuICAgICAgICBzeW5jVG9VcmwsXG4gICAgICAgIGV4dHJhVXJsUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIGluaXRpYWxWYWx1ZXMgaXMgTU9VTlQtT05MWSAoZG9jdW1lbnRlZCBjb250cmFjdDsgdXNlRm9ybUNvcmUgcmUtZnJlZXplc1xuICAgIC8vIGFzIGEgc2FmZXR5IG5ldCkg4oCUIGNvbXB1dGUgdGhlIFVSTCBtZXJnZSBvbmNlIHNvIHRoZSBmcmVlemUgaXMgdmlzaWJsZVxuICAgIC8vIHdoZXJlIHRoZSBwcm9wcyBlbnRlciwgaW5zdGVhZCBvZiByZWNvbXB1dGluZyBkZWFkIHNwcmVhZHMgcGVyIHJlbmRlci5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0gc3luY1RvVXJsXG4gICAgICAgICAgICA/IChzeW5jVG9VcmxBc0ltcG9ydGFudFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzKSwgdXJsSW5pdGlhbFZhbHVlcykgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVybEluaXRpYWxWYWx1ZXMpLCBpbml0aWFsVmFsdWVzKSlcbiAgICAgICAgICAgIDogKGluaXRpYWxWYWx1ZXMgIT09IG51bGwgJiYgaW5pdGlhbFZhbHVlcyAhPT0gdm9pZCAwID8gaW5pdGlhbFZhbHVlcyA6IHt9KTtcbiAgICB9XG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudDtcbiAgICAvLyBCdW1wZWQgb24gZXZlcnkgcmVzZXQg4oCUIGFuIGluLWZsaWdodCBzdWJtaXQgY2FwdHVyZXMgaXQgYW5kIGFib3J0cyB3aGVuXG4gICAgLy8gaXQgY2hhbmdlZCB1bmRlcm5lYXRoICh0aGUgdXNlciBkaXNjYXJkZWQgdGhlIHN1Ym1pc3Npb24ncyB2YWx1ZXMpLlxuICAgIGNvbnN0IHJlc2V0RXBvY2hSZWYgPSB1c2VSZWYoMCk7XG4gICAgLy8gUmVzZXQgY2hhaW46IGZvcm0tbGV2ZWwgb25SZXNldCByZWNlaXZlcyB0aGUgKHBvc3QtcmVzZXQpIGZvcm1hdHRlZFxuICAgIC8vIHZhbHVlcywgdGhlbiB0aGUgZm9ybSdzIG93biBVUkwgcGFyYW1zIGFyZSBjbGVhcmVkLiB1c2VNZW1vaXplZEZuIGRlZmVyc1xuICAgIC8vIGV4ZWN1dGlvbiB0byBldmVudCB0aW1lLCB3aGVuIGBmb3JtSW5zdGFuY2VgIChjcmVhdGVkIGp1c3QgYmVsb3cpIGV4aXN0cy5cbiAgICBjb25zdCBmaXJlRm9ybVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHJlc2V0RXBvY2hSZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjb25zdCBmaW5hbFZhbHVlcyA9IGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoZmluYWxWYWx1ZXMpO1xuICAgICAgICBvblVybFN5bmNSZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBGb3JtIGVuZ2luZSAodXNlRm9ybSB3aXRoIGFzeW5jIHZhbGlkYXRpb24pIOKUgOKUgFxuICAgIGNvbnN0IHsgZm9ybUluc3RhbmNlLCBpbnRlcm5hbHMsIHN0b3JlIH0gPSB1c2VGb3JtKHtcbiAgICAgICAgaW5pdGlhbFZhbHVlczogbWVyZ2VkSW5pdGlhbFZhbHVlcyxcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UsXG4gICAgICAgIG9uUmVzZXQ6IGZpcmVGb3JtUmVzZXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEFzeW5jIHN1Ym1pdCB3aXRoIHRyYW5zZm9ybSBwaXBlbGluZSDilIDilIBcbiAgICAvLyBSZS1lbnRyeSBndWFyZDogYSBzZWNvbmQgc3VibWl0IHdoaWxlIG9uZSBpcyBpbiBmbGlnaHQgaXMgaWdub3JlZCAodGhlXG4gICAgLy8gcmVmIGNhdGNoZXMgdHdvIGNhbGxzIGluIHRoZSBzYW1lIHRpY2spLlxuICAgIGNvbnN0IHdyYXBwZWRIYW5kbGVTdWJtaXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoc3VibWl0dGluZ1JlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKHRydWUpO1xuICAgICAgICAoX2EgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZXBvY2ggPSByZXNldEVwb2NoUmVmLmN1cnJlbnQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRWYWx1ZXMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIChhc3luYykgdmFsaWRhdGlvbiBkaXNjYXJkcyB0aGlzIHN1Ym1pc3Npb24gZW50aXJlbHk6XG4gICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZS1yZWFkcyB0aGUgbGl2ZSBzdG9yZSwgc28gcHJvY2VlZGluZyB3b3VsZCBoYW5kXG4gICAgICAgICAgICAvLyBvbkZpbmlzaCB0aGUgUE9TVC1yZXNldCB2YWx1ZXMuXG4gICAgICAgICAgICBpZiAoZXBvY2ggIT09IHJlc2V0RXBvY2hSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwaXBlbGluZWQgPSBhcHBseVBpcGVsaW5lKHZhbGlkYXRlZFZhbHVlcyk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCAoKF9iID0gb25GaW5pc2hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob25GaW5pc2hSZWYsIHBpcGVsaW5lZCkpO1xuICAgICAgICAgICAgLy8gU3luYyB0aGUgVVJMIHVubGVzcyBvbkZpbmlzaCBleHBsaWNpdGx5IHJldHVybmVkIGZhbHNlIChhIHRocm93IGFib3ZlXG4gICAgICAgICAgICAvLyBhbHNvIHNraXBzIOKAlCBhIGZhaWxlZCBzdWJtaXQgbXVzdCBub3QgcG9sbHV0ZSB0aGUgVVJMKSwgYW5kIG9ubHkgaWZcbiAgICAgICAgICAgIC8vIHRoZSB1c2VyIGRpZCBOT1QgcmVzZXQgdGhlIGZvcm0gd2hpbGUgdGhlIHN1Ym1pdCB3YXMgaW4gZmxpZ2h0LlxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UgJiYgZXBvY2ggPT09IHJlc2V0RXBvY2hSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIG9uVXJsU3luY0ZpbmlzaChwaXBlbGluZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIHZhbGlkYXRpb24gYWxzbyBpbnZhbGlkYXRlcyB0aGUgRkFJTFVSRSBjYWxsYmFjayDigJRcbiAgICAgICAgICAgIC8vIHRoZSBlcnJvciBjYXJyaWVzIHBvc3QtcmVzZXQgdmFsdWVzIGZvciBhIGRpc2NhcmRlZCBzdWJtaXNzaW9uLlxuICAgICAgICAgICAgLy8gKEZpZWxkIGVycm9ycyBmcm9tIHRoZSBkZWFkIHZhbGlkYXRpb24gYXJlIHN1cHByZXNzZWQgYnkgdGhlXG4gICAgICAgICAgICAvLyBwZXItZmllbGQgdmFsaWRhdGlvbiBlcG9jaHM6IHJlc2V0RmllbGRzIGludmFsaWRhdGVzIGluLWZsaWdodCBydW5zLilcbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIE9ubHkgYSBWQUxJREFUSU9OIGZhaWx1cmUgcm91dGVzIHRvIG9uRmluaXNoRmFpbGVkLiBBbiBleGNlcHRpb24gb3V0XG4gICAgICAgICAgICAvLyBvZiB0aGUgY29uc3VtZXIncyBvd24gb25GaW5pc2ggaXMgbm90IGEgdmFsaWRhdGlvbiByZXN1bHQ6IHRoZSBzdWJtaXRcbiAgICAgICAgICAgIC8vIGZhaWxzIChVUkwgdW50b3VjaGVkLCBvdmVybGF5IHN0YXlzIG9wZW4pIGFuZCB0aGUgZXJyb3IgaXMgc3VyZmFjZWRcbiAgICAgICAgICAgIC8vIG9uIHRoZSBjb25zb2xlIGluc3RlYWQgb2YgYmVpbmcgbWlzcmVwb3J0ZWQgd2l0aCBhbiBlbXB0eSBwYXlsb2FkLlxuICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEZvcm1WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkZpbmlzaEZhaWxlZCA9PT0gbnVsbCB8fCBvbkZpbmlzaEZhaWxlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2hGYWlsZWQoeyB2YWx1ZXM6IGVyci52YWx1ZXMsIGVycm9yczogZXJyLmVycm9ycyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSBvbkZpbmlzaCB0aHJldyBkdXJpbmcgc3VibWl0OicsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFN1Ym1pdHRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gb25Mb2FkaW5nQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYWxsKG9uTG9hZGluZ0NoYW5nZVJlZiwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIOKUgOKUgCBQcm9Gb3JtIGluc3RhbmNlOiBzdXBlcnNldCBvZiBGb3JtSW5zdGFuY2Ug4pSA4pSAXG4gICAgY29uc3QgcHJvRm9ybUZvcm1JbnN0YW5jZSA9IHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZm9ybUluc3RhbmNlKSwgeyBnZXRGaWVsZHNGb3JtYXRWYWx1ZTogKCkgPT4gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIGdldEZpZWxkRm9ybWF0VmFsdWU6ICgobmFtZSkgPT4gcmVzb2x2ZVZhbHVlKGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBuYW1lKSksIGdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3Q6IChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRWYWx1ZXNLZWVwTmlsKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKTtcbiAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgICAgICAgLy8gQSBuZXN0ZWQgb2JqZWN0IGNhcnJ5aW5nIE9OTFkgdGhlIHJlcXVlc3RlZCBsZWFmIOKAlCBub3QgdGhlIHdob2xlXG4gICAgICAgICAgICAvLyB0b3AtbGV2ZWwgc3VidHJlZSB0aGUgcGF0aCBoYXBwZW5zIHRvIGxpdmUgaW4uXG4gICAgICAgICAgICByZXR1cm4gc2V0TmVzdGVkVmFsdWUoe30sIG5hbWUsIHJlc29sdmVWYWx1ZShmb3JtYXR0ZWQsIG5hbWUpKTtcbiAgICAgICAgfSwgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXM6IGFwcGx5UGlwZWxpbmUodmFscykgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZWplY3RzIHdpdGggYW4gRXJyb3IgY2FycnlpbmcgdGhlIGZpZWxkIGVycm9ycyBtYXBcbiAgICAgICAgICAgICAgICAvLyAoc2FtZSBzaGFwZSB3cmFwcGVkSGFuZGxlU3VibWl0IGNvbnN1bWVzIGFib3ZlKS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycyB9ID0gZXJyO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IGVycm9ycyAhPT0gbnVsbCAmJiBlcnJvcnMgIT09IHZvaWQgMCA/IGVycm9ycyA6IHt9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdWJtaXRGb3JtOiB3cmFwcGVkSGFuZGxlU3VibWl0IH0pKSwgW2Zvcm1JbnN0YW5jZSwgYXBwbHlQaXBlbGluZSwgd3JhcHBlZEhhbmRsZVN1Ym1pdF0pO1xuICAgIC8vIOKUgOKUgCBTeW5jIHRvIGZvcm1SZWYgcHJvcCDilIDilIBcbiAgICAvLyBUaGUgY2xlYW51cCBjbGVhcnMgdGhlIHJlZiBvbiB1bm1vdW50OiBhIGhhbmRsZSB0byBhbiB1bm1vdW50ZWQgZm9ybVxuICAgIC8vIHZhbGlkYXRlcyBhbiBlbXB0eSBmaWVsZCBzdG9yZSBhbmQgcmVwb3J0cyBmYWtlIHN1Y2Nlc3MsIHNvIGNvbnN1bWVyc1xuICAgIC8vIChhbmQgdGhlIGJ1c2luZXNzLXNoZWxsIHJlbGF5IHJlZnMpIG11c3Qgb2JzZXJ2ZSBgdW5kZWZpbmVkYCBpbnN0ZWFkLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZm9ybVJlZilcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGZvcm1SZWYuY3VycmVudCA9IHByb0Zvcm1Gb3JtSW5zdGFuY2U7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9ybVJlZi5jdXJyZW50ID09PSBwcm9Gb3JtRm9ybUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtmb3JtUmVmLCBwcm9Gb3JtRm9ybUluc3RhbmNlXSk7XG4gICAgLy8g4pSA4pSAIHJlcXVlc3QgLyBwYXJhbXMgYXV0by1sb2FkIOKUgOKUgFxuICAgIGNvbnN0IHJlcXVlc3RSZWYgPSB1c2VMYXRlc3QocmVxdWVzdCk7XG4gICAgY29uc3QgaGFzUmVxdWVzdCA9ICEhcmVxdWVzdDtcbiAgICBjb25zdCBzZXJpYWxpemVkUGFyYW1zID0gdXNlTWVtbygoKSA9PiBzdGFibGVTZXJpYWxpemUocGFyYW1zKSwgW3BhcmFtc10pO1xuICAgIC8vIG9uSW5pdCBmaXJlcyBleGFjdGx5IG9uY2U6IGFmdGVyIHRoZSBGSVJTVCByZXF1ZXN0IHJlc29sdmVzIHdoZW4gYVxuICAgIC8vIHJlcXVlc3QgaXMgY29uZmlndXJlZCwgb3RoZXJ3aXNlIHJpZ2h0IGFmdGVyIG1vdW50LlxuICAgIGNvbnN0IGluaXRGaXJlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZmlyZUluaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5pdEZpcmVkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRGaXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgKF9hID0gb25Jbml0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uSW5pdFJlZiwgYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIHByb0Zvcm1Gb3JtSW5zdGFuY2UpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFN0YWxlbmVzcyBndWFyZDogaWYgcGFyYW1zIGNoYW5nZSBhZ2FpbiBiZWZvcmUgdGhpcyBmZXRjaCByZXNvbHZlcywgdGhlXG4gICAgICAgIC8vIGNsZWFudXAgbWFya3MgaXQgc3RhbGUgc28gdGhlIGxhdGUgcmVzcG9uc2UgY2FuJ3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZXNcbiAgICAgICAgLy8gYSBuZXdlciByZXF1ZXN0IGFscmVhZHkgKG9yIHdpbGwpIHNldC5cbiAgICAgICAgbGV0IHN0YWxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZldGNoRGF0YSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEZuID0gcmVxdWVzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKCFyZXF1ZXN0Rm4pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXF1ZXN0Rm4ocGFyYW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlICYmIGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZHNWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gQSBmYWlsZWQgcmVxdWVzdCBtdXN0IG5vdCBlc2NhcGUgYXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiDigJQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZm9ybSBrZWVwcyBpdHMgaW5pdGlhbFZhbHVlcyBhbmQgdGhlIGZhaWx1cmUgaXMgc3VyZmFjZWQgb24gdGhlXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZSAobWlycm9ycyB0aGUgZmllbGQtbGV2ZWwgdXNlRmllbGRSZXF1ZXN0IGhhbmRsaW5nKS5cbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSByZXF1ZXN0IGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGEgTk9OLXN1cGVyc2VkZWQgc2V0dGxlIGluaXRpYWxpemVzIHRoZSBmb3JtOiBhIHN0YWxlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlcXVlc3QncyBkYXRhIHdhcyBkaXNjYXJkZWQsIHNvIGl0cyB2YWx1ZXMgbXVzdCBub3QgYmUgcmVwb3J0ZWQuXG4gICAgICAgICAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlcXVlc3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZmV0Y2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmaXJlSW5pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzdGFsZSA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFJlLWZldGNoIHdoZW4gcGFyYW1zIGNoYW5nZSBieSBWQUxVRSAoZGVwZW5kaW5nIG9uIHRoZSByYXcgYHBhcmFtc2BcbiAgICAgICAgLy8gcmVmZXJlbmNlIHdvdWxkIHJlLXJ1biBvbiBldmVyeSByZW5kZXIgZm9yIGlubGluZSBvYmplY3QgbGl0ZXJhbHMgYW5kLFxuICAgICAgICAvLyBjb21iaW5lZCB3aXRoIHRoZSBsb2FkaW5nIHNldFN0YXRlLCBsb29wIGZvcmV2ZXIpIOKAlCBhbmQgd2hlbiBgcmVxdWVzdGBcbiAgICAgICAgLy8gZmlyc3QgYmVjb21lcyBkZWZpbmVkIChlLmcuIGJlaGluZCBhIGZlYXR1cmUgZmxhZyksIG1pcnJvcmluZ1xuICAgICAgICAvLyB1c2VGaWVsZFJlcXVlc3QuIGZpcmVJbml0J3Mgb25jZS1ndWFyZCBrZWVwcyBvbkluaXQgZnJvbSByZS1maXJpbmcuXG4gICAgfSwgW3NlcmlhbGl6ZWRQYXJhbXMsIGhhc1JlcXVlc3RdKTtcbiAgICAvLyDilIDilIAgYXV0b0ZvY3VzRmlyc3RJbnB1dCDilIDilIBcbiAgICBjb25zdCBmb3JtRWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWF1dG9Gb2N1c0ZpcnN0SW5wdXQgfHwgbW9kZSA9PT0gJ3JlYWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBmaXJzdElucHV0ID0gKF9hID0gZm9ybUVsUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5xdWVyeVNlbGVjdG9yKCdpbnB1dDpub3QoW3R5cGU9XCJoaWRkZW5cIl0pOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyk7XG4gICAgICAgIGZpcnN0SW5wdXQgPT09IG51bGwgfHwgZmlyc3RJbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RJbnB1dC5mb2N1cygpO1xuICAgICAgICAvLyBNb3VudC1vbmx5IGJ5IGRlc2lnbi5cbiAgICB9LCBbXSk7XG4gICAgLy8g4pSA4pSAIFNwbGl0IGNvbnRleHQg4pSA4pSAXG4gICAgLy8gRm9ybS1sZXZlbCBwcm9wIGJhZ3MgYXJlIG9mdGVuIGlubGluZSBsaXRlcmFsczoga2VlcCB0aGVpciBpZGVudGl0eVxuICAgIC8vIHN0YWJsZSB3aGlsZSBzaGFsbG93LWVxdWFsIHNvIHRoZSBzdGFibGUgc2xpY2UgZG9lc24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IHN0YWJsZUZpZWxkUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZpZWxkUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUZvcm1JdGVtUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZvcm1JdGVtUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUNvbFByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShjb2xQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlTGF5b3V0ID0gdXNlU2hhbGxvd1N0YWJsZShsYXlvdXQpO1xuICAgIC8vIFN0YWJsZSBzbGljZTogY29uZmlndXJhdGlvbiArIGlkZW50aXR5LXN0YWJsZSBkaXNwYXRjaGVycy9pbnN0YW5jZS5cbiAgICAvLyBDaGFuZ2VzIG9ubHkgd2hlbiBmb3JtLWxldmVsIHByb3BzIGNoYW5nZSDigJQgTk9UIG9uIGtleXN0cm9rZXMsIHNvXG4gICAgLy8gc3Vic2NyaWJlcnMgbGlrZSBTdWJtaXR0ZXIgYW5kIHRoZSBmaWVsZCBmYWN0b3JpZXMgc2tpcCB0aG9zZSByZW5kZXJzLlxuICAgIGNvbnN0IHN0YWJsZVZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBmb3JtSW5zdGFuY2U6IHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIHNldEZpZWxkVmFsdWU6IGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yOiBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nOiBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkQXN5bmM6IGludGVybmFscy52YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQ6IGludGVybmFscy5yZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQ6IGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHJldGFpbkZpZWxkOiBpbnRlcm5hbHMucmV0YWluRmllbGQsXG4gICAgICAgIHJlbGVhc2VGaWVsZDogaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgLy8gU3VibWl0dGluZy9sb2FkaW5nIGRvZXMgTk9UIGRpc2FibGUgZmllbGRzIOKAlCBvbmx5IHRoZVxuICAgICAgICAvLyBleHBsaWNpdCBgZGlzYWJsZWRgIHByb3AgZG9lcy4gS2VlcGluZyBpc0xvYWRpbmcgb3V0IG9mIHRoaXMgc2xpY2VcbiAgICAgICAgLy8gbWVhbnMgYSBzdWJtaXQgY3ljbGUgbm8gbG9uZ2VyIHJlLXJlbmRlcnMgZXZlcnkgZmllbGQgc2hlbGwuXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIC8vIFByb0Zvcm0gc3BlY2lmaWNzXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbFByb3BzOiBzdGFibGVDb2xQcm9wcyAhPT0gbnVsbCAmJiBzdGFibGVDb2xQcm9wcyAhPT0gdm9pZCAwID8gc3RhYmxlQ29sUHJvcHMgOiBERUZBVUxUX0NPTF9QUk9QUyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm06IHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtOiB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgZmllbGRQcm9wczogc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgZm9ybUl0ZW1Qcm9wczogc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgbGF5b3V0OiBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIH0pLCBbXG4gICAgICAgIHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkV2FybmluZyxcbiAgICAgICAgaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgc3RhYmxlQ29sUHJvcHMsXG4gICAgICAgIHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgc3RhYmxlTGF5b3V0LFxuICAgICAgICBmb3JtQ29tcG9uZW50VHlwZSxcbiAgICBdKTtcbiAgICBjb25zdCBXcmFwcGVyQ29tcG9uZW50ID0gZ3JpZCA/IFJvdyA6IEZyYWdtZW50O1xuICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IGdyaWQgPyBPYmplY3QuYXNzaWduKHt9LCByb3dQcm9wcykgOiB7fTtcbiAgICAvLyBSZXNldCBjYWxsYmFjayBjaGFpbjogdGhlIFN1Ym1pdHRlciByZXNldHMgdGhlIHZhbHVlcyBmaXJzdCwgdGhlbiB0aGVcbiAgICAvLyBzdWJtaXR0ZXItbGV2ZWwgb25SZXNldCwgdGhlbiB0aGUgZm9ybS1sZXZlbCBvblJlc2V0ICh3aXRoIGZpbmFsVmFsdWVzKVxuICAgIC8vIGFuZCB0aGUgVVJMIGNsZWFudXAg4oCUIGZpcmVkIGV4YWN0bHkgb25jZSBwZXIgcmVzZXQgYWN0aW9uLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdHRlclJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlcik7XG4gICAgICAgIGZpcmVGb3JtUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBzdWJtaXR0ZXJOb2RlID0gc3VibWl0dGVyICE9PSBmYWxzZSAmJiBtb2RlICE9PSAncmVhZCcgPyAoX2pzeChTdWJtaXR0ZXIsIE9iamVjdC5hc3NpZ24oe30sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSwgeyBvblJlc2V0OiBoYW5kbGVTdWJtaXR0ZXJSZXNldCwgbG9hZGluZzogaXNMb2FkaW5nIH0pKSkgOiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtU3RhYmxlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RhYmxlVmFsdWUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm1TdGF0ZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHN0b3JlLCBjaGlsZHJlbjogX2pzeHMoXCJmb3JtXCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBmb3JtRWxSZWYsIGNsYXNzTmFtZTogZm9ybUNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSksIG9uU3VibWl0OiB3cmFwcGVkSGFuZGxlU3VibWl0LCBvblJlc2V0OiBpbnRlcm5hbHMuaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiBbX2pzeChXcmFwcGVyQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCB3cmFwcGVyUHJvcHMsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSwgc3VibWl0dGVyTm9kZV0gfSkpIH0pIH0pKTtcbn07XG5Qcm9Gb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtID0gbWVtbyhQcm9Gb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==