botframework-webchat-component 4.15.8-main.20230328.2c853c8 → 4.15.8-main.20230331.0e770c8

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.
@@ -47,11 +47,16 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
47
 
48
48
  var useDirection = _botframeworkWebchatApi.hooks.useDirection,
49
49
  useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer,
50
+ usePonyfill = _botframeworkWebchatApi.hooks.usePonyfill,
50
51
  useStyleOptions = _botframeworkWebchatApi.hooks.useStyleOptions;
51
52
 
52
53
  var ConnectivityStatusConnecting = function ConnectivityStatusConnecting(_ref) {
53
54
  var reconnect = _ref.reconnect;
54
55
 
56
+ var _usePonyfill = usePonyfill(),
57
+ _usePonyfill2 = _slicedToArray(_usePonyfill, 1),
58
+ Date = _usePonyfill2[0].Date;
59
+
55
60
  var _useStyleOptions = useStyleOptions(),
56
61
  _useStyleOptions2 = _slicedToArray(_useStyleOptions, 1),
57
62
  slowConnectionAfter = _useStyleOptions2[0].slowConnectionAfter;
@@ -103,4 +108,4 @@ ConnectivityStatusConnecting.propTypes = {
103
108
  };
104
109
  var _default = ConnectivityStatusConnecting;
105
110
  exports.default = _default;
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VEaXJlY3Rpb24iLCJob29rcyIsInVzZUxvY2FsaXplciIsInVzZVN0eWxlT3B0aW9ucyIsIkNvbm5lY3Rpdml0eVN0YXR1c0Nvbm5lY3RpbmciLCJyZWNvbm5lY3QiLCJzbG93Q29ubmVjdGlvbkFmdGVyIiwidXNlU3R5bGVTZXQiLCJjb25uZWN0aXZpdHlOb3RpZmljYXRpb25TdHlsZVNldCIsImNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvbiIsIndhcm5pbmdOb3RpZmljYXRpb25TdHlsZVNldCIsIndhcm5pbmdOb3RpZmljYXRpb24iLCJkaXJlY3Rpb24iLCJ1c2VTdGF0ZSIsIkRhdGUiLCJub3ciLCJpbml0aWFsUmVuZGVyQXQiLCJmb3JjZVJlbmRlciIsInVzZUZvcmNlUmVuZGVyIiwibG9jYWxpemUiLCJpbml0aWFsQ29ubmVjdGlvblRleHQiLCJpbnRlcnJ1cHRlZENvbm5lY3Rpb25UZXh0Iiwic2xvd0Nvbm5lY3Rpb25UZXh0IiwidXNlVGltZXIiLCJzbG93IiwiY2xhc3NOYW1lcyIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db25uZWN0aXZpdHlTdGF0dXMvQ29ubmVjdGluZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBTY3JlZW5SZWFkZXJUZXh0IGZyb20gJy4uL1NjcmVlblJlYWRlclRleHQnO1xuaW1wb3J0IFNwaW5uZXJBbmltYXRpb24gZnJvbSAnLi9Bc3NldHMvU3Bpbm5lckFuaW1hdGlvbic7XG5pbXBvcnQgdXNlRm9yY2VSZW5kZXIgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlRm9yY2VSZW5kZXInO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VUaW1lciBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VUaW1lcic7XG5pbXBvcnQgV2FybmluZ05vdGlmaWNhdGlvbkljb24gZnJvbSAnLi9Bc3NldHMvV2FybmluZ05vdGlmaWNhdGlvbkljb24nO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlTG9jYWxpemVyLCB1c2VTdHlsZU9wdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBDb25uZWN0aXZpdHlTdGF0dXNDb25uZWN0aW5nID0gKHsgcmVjb25uZWN0IH0pID0+IHtcbiAgY29uc3QgW3sgc2xvd0Nvbm5lY3Rpb25BZnRlciB9XSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbXG4gICAgeyBjb25uZWN0aXZpdHlOb3RpZmljYXRpb246IGNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvblN0eWxlU2V0LCB3YXJuaW5nTm90aWZpY2F0aW9uOiB3YXJuaW5nTm90aWZpY2F0aW9uU3R5bGVTZXQgfVxuICBdID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW2RpcmVjdGlvbl0gPSB1c2VEaXJlY3Rpb24oKTtcbiAgY29uc3QgW2luaXRpYWxSZW5kZXJBdF0gPSB1c2VTdGF0ZSgoKSA9PiBEYXRlLm5vdygpKTtcbiAgY29uc3QgZm9yY2VSZW5kZXIgPSB1c2VGb3JjZVJlbmRlcigpO1xuICBjb25zdCBsb2NhbGl6ZSA9IHVzZUxvY2FsaXplcigpO1xuXG4gIGNvbnN0IGluaXRpYWxDb25uZWN0aW9uVGV4dCA9IGxvY2FsaXplKCdDT05ORUNUSVZJVFlfU1RBVFVTX0FMVF9DT05ORUNUSU5HJyk7XG4gIGNvbnN0IGludGVycnVwdGVkQ29ubmVjdGlvblRleHQgPSBsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFRfUkVDT05ORUNUSU5HJyk7XG4gIGNvbnN0IHNsb3dDb25uZWN0aW9uVGV4dCA9IGxvY2FsaXplKCdDT05ORUNUSVZJVFlfU1RBVFVTX0FMVF9TTE9XX0NPTk5FQ1RJT04nKTtcblxuICB1c2VUaW1lcihpbml0aWFsUmVuZGVyQXQgKyBzbG93Q29ubmVjdGlvbkFmdGVyLCBmb3JjZVJlbmRlcik7XG5cbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qgc2xvdyA9IG5vdyA+PSBpbml0aWFsUmVuZGVyQXQgKyBzbG93Q29ubmVjdGlvbkFmdGVyO1xuXG4gIHJldHVybiBzbG93ID8gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHRleHQ9e2xvY2FsaXplKCdDT05ORUNUSVZJVFlfU1RBVFVTX0FMVCcsIHNsb3dDb25uZWN0aW9uVGV4dCl9IC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtaGlkZGVuPXt0cnVlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX2Nvbm5lY3Rpdml0eVN0YXR1cycsIHdhcm5pbmdOb3RpZmljYXRpb25TdHlsZVNldCArICcnKX1cbiAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICA+XG4gICAgICAgIDxXYXJuaW5nTm90aWZpY2F0aW9uSWNvbiAvPlxuICAgICAgICB7c2xvd0Nvbm5lY3Rpb25UZXh0fVxuICAgICAgPC9kaXY+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKSA6IChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dFxuICAgICAgICB0ZXh0PXtsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFQnLCByZWNvbm5lY3QgPyBpbnRlcnJ1cHRlZENvbm5lY3Rpb25UZXh0IDogaW5pdGlhbENvbm5lY3Rpb25UZXh0KX1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtaGlkZGVuPXt0cnVlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX2Nvbm5lY3Rpdml0eVN0YXR1cycsIGNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvblN0eWxlU2V0ICsgJycpfVxuICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgID5cbiAgICAgICAgPFNwaW5uZXJBbmltYXRpb24gLz5cbiAgICAgICAge3JlY29ubmVjdCA/IGludGVycnVwdGVkQ29ubmVjdGlvblRleHQgOiBpbml0aWFsQ29ubmVjdGlvblRleHR9XG4gICAgICA8L2Rpdj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcblxuQ29ubmVjdGl2aXR5U3RhdHVzQ29ubmVjdGluZy5kZWZhdWx0UHJvcHMgPSB7XG4gIHJlY29ubmVjdDogZmFsc2Vcbn07XG5cbkNvbm5lY3Rpdml0eVN0YXR1c0Nvbm5lY3RpbmcucHJvcFR5cGVzID0ge1xuICByZWNvbm5lY3Q6IFByb3BUeXBlcy5ib29sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb25uZWN0aXZpdHlTdGF0dXNDb25uZWN0aW5nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFRQSxZQUFSLEdBQXdEQyw2QkFBeEQsQ0FBUUQsWUFBUjtBQUFBLElBQXNCRSxZQUF0QixHQUF3REQsNkJBQXhELENBQXNCQyxZQUF0QjtBQUFBLElBQW9DQyxlQUFwQyxHQUF3REYsNkJBQXhELENBQW9DRSxlQUFwQzs7QUFFQSxJQUFNQyw0QkFBNEIsR0FBRyxTQUEvQkEsNEJBQStCLE9BQW1CO0VBQUEsSUFBaEJDLFNBQWdCLFFBQWhCQSxTQUFnQjs7RUFDdEQsdUJBQWtDRixlQUFlLEVBQWpEO0VBQUE7RUFBQSxJQUFTRyxtQkFBVCx3QkFBU0EsbUJBQVQ7O0VBQ0EsbUJBRUksSUFBQUMscUJBQUEsR0FGSjtFQUFBO0VBQUE7RUFBQSxJQUM4QkMsZ0NBRDlCLGtCQUNJQyx3QkFESjtFQUFBLElBQ3FGQywyQkFEckYsa0JBQ2dFQyxtQkFEaEU7O0VBR0Esb0JBQW9CWCxZQUFZLEVBQWhDO0VBQUE7RUFBQSxJQUFPWSxTQUFQOztFQUNBLGdCQUEwQixJQUFBQyxlQUFBLEVBQVM7SUFBQSxPQUFNQyxJQUFJLENBQUNDLEdBQUwsRUFBTjtFQUFBLENBQVQsQ0FBMUI7RUFBQTtFQUFBLElBQU9DLGVBQVA7O0VBQ0EsSUFBTUMsV0FBVyxHQUFHLElBQUFDLHVCQUFBLEdBQXBCO0VBQ0EsSUFBTUMsUUFBUSxHQUFHakIsWUFBWSxFQUE3QjtFQUVBLElBQU1rQixxQkFBcUIsR0FBR0QsUUFBUSxDQUFDLG9DQUFELENBQXRDO0VBQ0EsSUFBTUUseUJBQXlCLEdBQUdGLFFBQVEsQ0FBQyxzQ0FBRCxDQUExQztFQUNBLElBQU1HLGtCQUFrQixHQUFHSCxRQUFRLENBQUMseUNBQUQsQ0FBbkM7RUFFQSxJQUFBSSxpQkFBQSxFQUFTUCxlQUFlLEdBQUdWLG1CQUEzQixFQUFnRFcsV0FBaEQ7RUFFQSxJQUFNRixHQUFHLEdBQUdELElBQUksQ0FBQ0MsR0FBTCxFQUFaO0VBQ0EsSUFBTVMsSUFBSSxHQUFHVCxHQUFHLElBQUlDLGVBQWUsR0FBR1YsbUJBQXRDO0VBRUEsT0FBT2tCLElBQUksZ0JBQ1QsNkJBQUMsY0FBRCxDQUFPLFFBQVAscUJBQ0UsNkJBQUMseUJBQUQ7SUFBa0IsSUFBSSxFQUFFTCxRQUFRLENBQUMseUJBQUQsRUFBNEJHLGtCQUE1QjtFQUFoQyxFQURGLGVBRUU7SUFDRSxlQUFhLElBRGY7SUFFRSxTQUFTLEVBQUUsSUFBQUcsbUJBQUEsRUFBVyw2QkFBWCxFQUEwQ2YsMkJBQTJCLEdBQUcsRUFBeEUsQ0FGYjtJQUdFLEdBQUcsRUFBRUU7RUFIUCxnQkFLRSw2QkFBQyxnQ0FBRCxPQUxGLEVBTUdVLGtCQU5ILENBRkYsQ0FEUyxnQkFhVCw2QkFBQyxjQUFELENBQU8sUUFBUCxxQkFDRSw2QkFBQyx5QkFBRDtJQUNFLElBQUksRUFBRUgsUUFBUSxDQUFDLHlCQUFELEVBQTRCZCxTQUFTLEdBQUdnQix5QkFBSCxHQUErQkQscUJBQXBFO0VBRGhCLEVBREYsZUFJRTtJQUNFLGVBQWEsSUFEZjtJQUVFLFNBQVMsRUFBRSxJQUFBSyxtQkFBQSxFQUFXLDZCQUFYLEVBQTBDakIsZ0NBQWdDLEdBQUcsRUFBN0UsQ0FGYjtJQUdFLEdBQUcsRUFBRUk7RUFIUCxnQkFLRSw2QkFBQyx5QkFBRCxPQUxGLEVBTUdQLFNBQVMsR0FBR2dCLHlCQUFILEdBQStCRCxxQkFOM0MsQ0FKRixDQWJGO0FBMkJELENBOUNEOztBQWdEQWhCLDRCQUE0QixDQUFDc0IsWUFBN0IsR0FBNEM7RUFDMUNyQixTQUFTLEVBQUU7QUFEK0IsQ0FBNUM7QUFJQUQsNEJBQTRCLENBQUN1QixTQUE3QixHQUF5QztFQUN2Q3RCLFNBQVMsRUFBRXVCLGtCQUFBLENBQVVDO0FBRGtCLENBQXpDO2VBSWV6Qiw0QiJ9
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VEaXJlY3Rpb24iLCJob29rcyIsInVzZUxvY2FsaXplciIsInVzZVBvbnlmaWxsIiwidXNlU3R5bGVPcHRpb25zIiwiQ29ubmVjdGl2aXR5U3RhdHVzQ29ubmVjdGluZyIsInJlY29ubmVjdCIsIkRhdGUiLCJzbG93Q29ubmVjdGlvbkFmdGVyIiwidXNlU3R5bGVTZXQiLCJjb25uZWN0aXZpdHlOb3RpZmljYXRpb25TdHlsZVNldCIsImNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvbiIsIndhcm5pbmdOb3RpZmljYXRpb25TdHlsZVNldCIsIndhcm5pbmdOb3RpZmljYXRpb24iLCJkaXJlY3Rpb24iLCJ1c2VTdGF0ZSIsIm5vdyIsImluaXRpYWxSZW5kZXJBdCIsImZvcmNlUmVuZGVyIiwidXNlRm9yY2VSZW5kZXIiLCJsb2NhbGl6ZSIsImluaXRpYWxDb25uZWN0aW9uVGV4dCIsImludGVycnVwdGVkQ29ubmVjdGlvblRleHQiLCJzbG93Q29ubmVjdGlvblRleHQiLCJ1c2VUaW1lciIsInNsb3ciLCJjbGFzc05hbWVzIiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCJdLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Nvbm5lY3Rpdml0eVN0YXR1cy9Db25uZWN0aW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFNjcmVlblJlYWRlclRleHQgZnJvbSAnLi4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgU3Bpbm5lckFuaW1hdGlvbiBmcm9tICcuL0Fzc2V0cy9TcGlubmVyQW5pbWF0aW9uJztcbmltcG9ydCB1c2VGb3JjZVJlbmRlciBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VGb3JjZVJlbmRlcic7XG5pbXBvcnQgdXNlU3R5bGVTZXQgZnJvbSAnLi4vaG9va3MvdXNlU3R5bGVTZXQnO1xuaW1wb3J0IHVzZVRpbWVyIGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVRpbWVyJztcbmltcG9ydCBXYXJuaW5nTm90aWZpY2F0aW9uSWNvbiBmcm9tICcuL0Fzc2V0cy9XYXJuaW5nTm90aWZpY2F0aW9uSWNvbic7XG5cbmNvbnN0IHsgdXNlRGlyZWN0aW9uLCB1c2VMb2NhbGl6ZXIsIHVzZVBvbnlmaWxsLCB1c2VTdHlsZU9wdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBDb25uZWN0aXZpdHlTdGF0dXNDb25uZWN0aW5nID0gKHsgcmVjb25uZWN0IH0pID0+IHtcbiAgY29uc3QgW3sgRGF0ZSB9XSA9IHVzZVBvbnlmaWxsKCk7XG4gIGNvbnN0IFt7IHNsb3dDb25uZWN0aW9uQWZ0ZXIgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgW1xuICAgIHsgY29ubmVjdGl2aXR5Tm90aWZpY2F0aW9uOiBjb25uZWN0aXZpdHlOb3RpZmljYXRpb25TdHlsZVNldCwgd2FybmluZ05vdGlmaWNhdGlvbjogd2FybmluZ05vdGlmaWNhdGlvblN0eWxlU2V0IH1cbiAgXSA9IHVzZVN0eWxlU2V0KCk7XG4gIGNvbnN0IFtkaXJlY3Rpb25dID0gdXNlRGlyZWN0aW9uKCk7XG4gIGNvbnN0IFtpbml0aWFsUmVuZGVyQXRdID0gdXNlU3RhdGUoKCkgPT4gRGF0ZS5ub3coKSk7XG4gIGNvbnN0IGZvcmNlUmVuZGVyID0gdXNlRm9yY2VSZW5kZXIoKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcblxuICBjb25zdCBpbml0aWFsQ29ubmVjdGlvblRleHQgPSBsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFRfQ09OTkVDVElORycpO1xuICBjb25zdCBpbnRlcnJ1cHRlZENvbm5lY3Rpb25UZXh0ID0gbG9jYWxpemUoJ0NPTk5FQ1RJVklUWV9TVEFUVVNfQUxUX1JFQ09OTkVDVElORycpO1xuICBjb25zdCBzbG93Q29ubmVjdGlvblRleHQgPSBsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFRfU0xPV19DT05ORUNUSU9OJyk7XG5cbiAgdXNlVGltZXIoaW5pdGlhbFJlbmRlckF0ICsgc2xvd0Nvbm5lY3Rpb25BZnRlciwgZm9yY2VSZW5kZXIpO1xuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGNvbnN0IHNsb3cgPSBub3cgPj0gaW5pdGlhbFJlbmRlckF0ICsgc2xvd0Nvbm5lY3Rpb25BZnRlcjtcblxuICByZXR1cm4gc2xvdyA/IChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCB0ZXh0PXtsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFQnLCBzbG93Q29ubmVjdGlvblRleHQpfSAvPlxuICAgICAgPGRpdlxuICAgICAgICBhcmlhLWhpZGRlbj17dHJ1ZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCd3ZWJjaGF0X19jb25uZWN0aXZpdHlTdGF0dXMnLCB3YXJuaW5nTm90aWZpY2F0aW9uU3R5bGVTZXQgKyAnJyl9XG4gICAgICAgIGRpcj17ZGlyZWN0aW9ufVxuICAgICAgPlxuICAgICAgICA8V2FybmluZ05vdGlmaWNhdGlvbkljb24gLz5cbiAgICAgICAge3Nsb3dDb25uZWN0aW9uVGV4dH1cbiAgICAgIDwvZGl2PlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICkgOiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPFNjcmVlblJlYWRlclRleHRcbiAgICAgICAgdGV4dD17bG9jYWxpemUoJ0NPTk5FQ1RJVklUWV9TVEFUVVNfQUxUJywgcmVjb25uZWN0ID8gaW50ZXJydXB0ZWRDb25uZWN0aW9uVGV4dCA6IGluaXRpYWxDb25uZWN0aW9uVGV4dCl9XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBhcmlhLWhpZGRlbj17dHJ1ZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCd3ZWJjaGF0X19jb25uZWN0aXZpdHlTdGF0dXMnLCBjb25uZWN0aXZpdHlOb3RpZmljYXRpb25TdHlsZVNldCArICcnKX1cbiAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICA+XG4gICAgICAgIDxTcGlubmVyQW5pbWF0aW9uIC8+XG4gICAgICAgIHtyZWNvbm5lY3QgPyBpbnRlcnJ1cHRlZENvbm5lY3Rpb25UZXh0IDogaW5pdGlhbENvbm5lY3Rpb25UZXh0fVxuICAgICAgPC9kaXY+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbkNvbm5lY3Rpdml0eVN0YXR1c0Nvbm5lY3RpbmcuZGVmYXVsdFByb3BzID0ge1xuICByZWNvbm5lY3Q6IGZhbHNlXG59O1xuXG5Db25uZWN0aXZpdHlTdGF0dXNDb25uZWN0aW5nLnByb3BUeXBlcyA9IHtcbiAgcmVjb25uZWN0OiBQcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ubmVjdGl2aXR5U3RhdHVzQ29ubmVjdGluZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBUUEsWUFBUixHQUFxRUMsNkJBQXJFLENBQVFELFlBQVI7QUFBQSxJQUFzQkUsWUFBdEIsR0FBcUVELDZCQUFyRSxDQUFzQkMsWUFBdEI7QUFBQSxJQUFvQ0MsV0FBcEMsR0FBcUVGLDZCQUFyRSxDQUFvQ0UsV0FBcEM7QUFBQSxJQUFpREMsZUFBakQsR0FBcUVILDZCQUFyRSxDQUFpREcsZUFBakQ7O0FBRUEsSUFBTUMsNEJBQTRCLEdBQUcsU0FBL0JBLDRCQUErQixPQUFtQjtFQUFBLElBQWhCQyxTQUFnQixRQUFoQkEsU0FBZ0I7O0VBQ3RELG1CQUFtQkgsV0FBVyxFQUE5QjtFQUFBO0VBQUEsSUFBU0ksSUFBVCxvQkFBU0EsSUFBVDs7RUFDQSx1QkFBa0NILGVBQWUsRUFBakQ7RUFBQTtFQUFBLElBQVNJLG1CQUFULHdCQUFTQSxtQkFBVDs7RUFDQSxtQkFFSSxJQUFBQyxxQkFBQSxHQUZKO0VBQUE7RUFBQTtFQUFBLElBQzhCQyxnQ0FEOUIsa0JBQ0lDLHdCQURKO0VBQUEsSUFDcUZDLDJCQURyRixrQkFDZ0VDLG1CQURoRTs7RUFHQSxvQkFBb0JiLFlBQVksRUFBaEM7RUFBQTtFQUFBLElBQU9jLFNBQVA7O0VBQ0EsZ0JBQTBCLElBQUFDLGVBQUEsRUFBUztJQUFBLE9BQU1SLElBQUksQ0FBQ1MsR0FBTCxFQUFOO0VBQUEsQ0FBVCxDQUExQjtFQUFBO0VBQUEsSUFBT0MsZUFBUDs7RUFDQSxJQUFNQyxXQUFXLEdBQUcsSUFBQUMsdUJBQUEsR0FBcEI7RUFDQSxJQUFNQyxRQUFRLEdBQUdsQixZQUFZLEVBQTdCO0VBRUEsSUFBTW1CLHFCQUFxQixHQUFHRCxRQUFRLENBQUMsb0NBQUQsQ0FBdEM7RUFDQSxJQUFNRSx5QkFBeUIsR0FBR0YsUUFBUSxDQUFDLHNDQUFELENBQTFDO0VBQ0EsSUFBTUcsa0JBQWtCLEdBQUdILFFBQVEsQ0FBQyx5Q0FBRCxDQUFuQztFQUVBLElBQUFJLGlCQUFBLEVBQVNQLGVBQWUsR0FBR1QsbUJBQTNCLEVBQWdEVSxXQUFoRDtFQUVBLElBQU1GLEdBQUcsR0FBR1QsSUFBSSxDQUFDUyxHQUFMLEVBQVo7RUFDQSxJQUFNUyxJQUFJLEdBQUdULEdBQUcsSUFBSUMsZUFBZSxHQUFHVCxtQkFBdEM7RUFFQSxPQUFPaUIsSUFBSSxnQkFDVCw2QkFBQyxjQUFELENBQU8sUUFBUCxxQkFDRSw2QkFBQyx5QkFBRDtJQUFrQixJQUFJLEVBQUVMLFFBQVEsQ0FBQyx5QkFBRCxFQUE0Qkcsa0JBQTVCO0VBQWhDLEVBREYsZUFFRTtJQUNFLGVBQWEsSUFEZjtJQUVFLFNBQVMsRUFBRSxJQUFBRyxtQkFBQSxFQUFXLDZCQUFYLEVBQTBDZCwyQkFBMkIsR0FBRyxFQUF4RSxDQUZiO0lBR0UsR0FBRyxFQUFFRTtFQUhQLGdCQUtFLDZCQUFDLGdDQUFELE9BTEYsRUFNR1Msa0JBTkgsQ0FGRixDQURTLGdCQWFULDZCQUFDLGNBQUQsQ0FBTyxRQUFQLHFCQUNFLDZCQUFDLHlCQUFEO0lBQ0UsSUFBSSxFQUFFSCxRQUFRLENBQUMseUJBQUQsRUFBNEJkLFNBQVMsR0FBR2dCLHlCQUFILEdBQStCRCxxQkFBcEU7RUFEaEIsRUFERixlQUlFO0lBQ0UsZUFBYSxJQURmO0lBRUUsU0FBUyxFQUFFLElBQUFLLG1CQUFBLEVBQVcsNkJBQVgsRUFBMENoQixnQ0FBZ0MsR0FBRyxFQUE3RSxDQUZiO0lBR0UsR0FBRyxFQUFFSTtFQUhQLGdCQUtFLDZCQUFDLHlCQUFELE9BTEYsRUFNR1IsU0FBUyxHQUFHZ0IseUJBQUgsR0FBK0JELHFCQU4zQyxDQUpGLENBYkY7QUEyQkQsQ0EvQ0Q7O0FBaURBaEIsNEJBQTRCLENBQUNzQixZQUE3QixHQUE0QztFQUMxQ3JCLFNBQVMsRUFBRTtBQUQrQixDQUE1QztBQUlBRCw0QkFBNEIsQ0FBQ3VCLFNBQTdCLEdBQXlDO0VBQ3ZDdEIsU0FBUyxFQUFFdUIsa0JBQUEsQ0FBVUM7QUFEa0IsQ0FBekM7ZUFJZXpCLDRCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"TextBox.d.ts","sourceRoot":"","sources":["../../src/SendBox/TextBox.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AA8BnC,QAAA,MAAM,kBAAkB,8BAoCrB,CAAC;AAEJ;;GAEG;AACH,KAAK,qBAAqB,GAAG;IAC3B;;;;OAIG;IACH,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,wBAAwB,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,iBAAS,gBAAgB,IAAI,qBAAqB,CAOjD;AAED,iBAAS,eAAe,IAAI;IAC1B,MAAM;IACN,CACE,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,KACtD;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CACrE,CAgDA;AAID,QAAA,MAAM,OAAO;;;;;;;;;;CAwRZ,CAAC;AAUF,eAAe,OAAO,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"TextBox.d.ts","sourceRoot":"","sources":["../../src/SendBox/TextBox.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AA8BnC,QAAA,MAAM,kBAAkB,8BAoCrB,CAAC;AAEJ;;GAEG;AACH,KAAK,qBAAqB,GAAG;IAC3B;;;;OAIG;IACH,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,wBAAwB,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,iBAAS,gBAAgB,IAAI,qBAAqB,CAOjD;AAED,iBAAS,eAAe,IAAI;IAC1B,MAAM;IACN,CACE,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,KACtD;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CACrE,CAgDA;AAID,QAAA,MAAM,OAAO;;;;;;;;;;CA4RZ,CAAC;AAUF,eAAe,OAAO,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
@@ -67,6 +67,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
67
67
 
68
68
  var useDisabled = _botframeworkWebchatApi.hooks.useDisabled,
69
69
  useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer,
70
+ usePonyfill = _botframeworkWebchatApi.hooks.usePonyfill,
70
71
  useSendBoxValue = _botframeworkWebchatApi.hooks.useSendBoxValue,
71
72
  useStopDictate = _botframeworkWebchatApi.hooks.useStopDictate,
72
73
  useStyleOptions = _botframeworkWebchatApi.hooks.useStyleOptions;
@@ -212,6 +213,10 @@ var TextBox = function TextBox(_ref4) {
212
213
  _useStyleOptions2 = _slicedToArray(_useStyleOptions, 1),
213
214
  sendBoxTextWrap = _useStyleOptions2[0].sendBoxTextWrap;
214
215
 
216
+ var _usePonyfill = usePonyfill(),
217
+ _usePonyfill2 = _slicedToArray(_usePonyfill, 1),
218
+ setTimeout = _usePonyfill2[0].setTimeout;
219
+
215
220
  var _useDisabled = useDisabled(),
216
221
  _useDisabled2 = _slicedToArray(_useDisabled, 1),
217
222
  disabled = _useDisabled2[0];
@@ -410,7 +415,10 @@ var TextBox = function TextBox(_ref4) {
410
415
  // To not activate the virtual keyboard while changing focus to an input, we will temporarily set it as read-only and flip it back.
411
416
  // https://stackoverflow.com/questions/7610758/prevent-iphone-default-keyboard-when-focusing-an-input/7610923
412
417
  var readOnly = current.getAttribute('readonly');
413
- current.setAttribute('readonly', 'readonly');
418
+ current.setAttribute('readonly', 'readonly'); // TODO: [P2] We should update this logic to handle quickly-successive `focusCallback`.
419
+ // If a succeeding `focusCallback` is being called, the `setTimeout` should run immediately.
420
+ // Or the second `focusCallback` should not set `readonly` to `true`.
421
+
414
422
  setTimeout(function () {
415
423
  var current = inputElementRef.current;
416
424
 
@@ -423,7 +431,7 @@ var TextBox = function TextBox(_ref4) {
423
431
  current.focus();
424
432
  }
425
433
  }
426
- }, [inputElementRef]);
434
+ }, [inputElementRef, setTimeout]);
427
435
  (0, _useRegisterFocusSendBox.default)(focusCallback);
428
436
  return /*#__PURE__*/_react.default.createElement("form", {
429
437
  "aria-disabled": disabled,
@@ -479,4 +487,4 @@ TextBox.propTypes = {
479
487
  };
480
488
  var _default = TextBox;
481
489
  exports.default = _default;
482
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VEaXNhYmxlZCIsImhvb2tzIiwidXNlTG9jYWxpemVyIiwidXNlU2VuZEJveFZhbHVlIiwidXNlU3RvcERpY3RhdGUiLCJ1c2VTdHlsZU9wdGlvbnMiLCJST09UX1NUWUxFIiwiZGlzcGxheSIsImZsZXgiLCJjb25uZWN0U2VuZFRleHRCb3giLCJzZWxlY3RvcnMiLCJjb25uZWN0VG9XZWJDaGF0IiwiZGlzYWJsZWQiLCJmb2N1c1NlbmRCb3giLCJsYW5ndWFnZSIsInNjcm9sbFRvRW5kIiwic2VuZEJveFZhbHVlIiwic2V0U2VuZEJveCIsInN0b3BEaWN0YXRlIiwic3VibWl0U2VuZEJveCIsIm9uQ2hhbmdlIiwidmFsdWUiLCJ0YXJnZXQiLCJvbktleVByZXNzIiwiZXZlbnQiLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0Iiwib25TdWJtaXQiLCJ1c2VUZXh0Qm94U3VibWl0Iiwic3VibWl0IiwidXNlU3VibWl0IiwidXNlQ2FsbGJhY2siLCJzZXRGb2N1cyIsInVuZGVmaW5lZCIsInVzZVRleHRCb3hWYWx1ZSIsInNldFZhbHVlIiwicmVwbGFjZUVtb3RpY29uIiwidXNlUmVwbGFjZUVtb3RpY29uIiwic2V0dGVyIiwibmV4dFZhbHVlIiwic2VsZWN0aW9uRW5kIiwic2VsZWN0aW9uU3RhcnQiLCJFcnJvciIsImxlbmd0aCIsIm5leHRTZWxlY3Rpb25FbmQiLCJuZXh0U2VsZWN0aW9uU3RhcnQiLCJuZXh0VmFsdWVXaXRoRW1vamkiLCJQUkVWRU5UX0RFRkFVTFRfSEFORExFUiIsIlRleHRCb3giLCJjbGFzc05hbWUiLCJ1c2VTdHlsZVNldCIsInNlbmRCb3hUZXh0Qm94U3R5bGVTZXQiLCJzZW5kQm94VGV4dEJveCIsInNlbmRCb3hUZXh0V3JhcCIsInRleHRCb3hWYWx1ZSIsInNldFRleHRCb3hWYWx1ZSIsImlucHV0RWxlbWVudFJlZiIsInVzZVJlZiIsImxvY2FsaXplIiwicGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYiLCJwcmV2SW5wdXRTdGF0ZVJlZiIsInJvb3RDbGFzc05hbWUiLCJ1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCIsInNjcm9sbERvd24iLCJ1c2VTY3JvbGxEb3duIiwic2Nyb2xsVXAiLCJ1c2VTY3JvbGxVcCIsInN1Ym1pdFRleHRCb3giLCJ1bmRvU3RhY2tSZWYiLCJzZW5kQm94U3RyaW5nIiwidHlwZVlvdXJNZXNzYWdlU3RyaW5nIiwicmVtZW1iZXJJbnB1dFN0YXRlIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInNldFNlbGVjdGlvblJhbmdlQW5kVmFsdWUiLCJoYW5kbGVDaGFuZ2UiLCJwdXNoIiwibmV4dElucHV0U3RhdGUiLCJoYW5kbGVGb2N1cyIsImhhbmRsZUtleURvd24iLCJjdHJsS2V5IiwibWV0YUtleSIsInBvcHBlZElucHV0U3RhdGUiLCJwb3AiLCJoYW5kbGVLZXlQcmVzcyIsImhhbmRsZVNlbGVjdCIsImN1cnJlbnRUYXJnZXQiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVLZXlEb3duQ2FwdHVyZSIsIm5hdmlnYWJsZUV2ZW50IiwiaGFuZGxlZCIsImRpc3BsYWNlbWVudCIsIkluZmluaXR5Iiwic3RvcFByb3BhZ2F0aW9uIiwiZm9jdXNDYWxsYmFjayIsIm5vS2V5Ym9hcmQiLCJpZTExIiwicmVhZE9ubHkiLCJnZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGUiLCJzZXRUaW1lb3V0IiwiZm9jdXMiLCJyZW1vdmVBdHRyaWJ1dGUiLCJ1c2VSZWdpc3RlckZvY3VzU2VuZEJveCIsImNsYXNzTmFtZXMiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1RleHRCb3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGllMTEgfSBmcm9tICcuLi9VdGlscy9kZXRlY3RCcm93c2VyJztcbmltcG9ydCBBY2Nlc3NpYmxlSW5wdXRUZXh0IGZyb20gJy4uL1V0aWxzL0FjY2Vzc2libGVJbnB1dFRleHQnO1xuaW1wb3J0IEF1dG9SZXNpemVUZXh0QXJlYSBmcm9tICcuL0F1dG9SZXNpemVUZXh0QXJlYSc7XG5pbXBvcnQgY29ubmVjdFRvV2ViQ2hhdCBmcm9tICcuLi9jb25uZWN0VG9XZWJDaGF0JztcbmltcG9ydCBuYXZpZ2FibGVFdmVudCBmcm9tICcuLi9VdGlscy9UeXBlRm9jdXNTaW5rL25hdmlnYWJsZUV2ZW50JztcbmltcG9ydCB1c2VSZWdpc3RlckZvY3VzU2VuZEJveCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VSZWdpc3RlckZvY3VzU2VuZEJveCc7XG5pbXBvcnQgdXNlUmVwbGFjZUVtb3RpY29uIGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVJlcGxhY2VFbW90aWNvbic7XG5pbXBvcnQgdXNlU2Nyb2xsRG93biBmcm9tICcuLi9ob29rcy91c2VTY3JvbGxEb3duJztcbmltcG9ydCB1c2VTY3JvbGxVcCBmcm9tICcuLi9ob29rcy91c2VTY3JvbGxVcCc7XG5pbXBvcnQgdXNlU3R5bGVTZXQgZnJvbSAnLi4vaG9va3MvdXNlU3R5bGVTZXQnO1xuaW1wb3J0IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0JztcbmltcG9ydCB1c2VTdWJtaXQgZnJvbSAnLi4vcHJvdmlkZXJzL2ludGVybmFsL1NlbmRCb3gvdXNlU3VibWl0JztcblxuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0LCBSZWFjdEV2ZW50SGFuZGxlciB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgeyB1c2VEaXNhYmxlZCwgdXNlTG9jYWxpemVyLCB1c2VTZW5kQm94VmFsdWUsIHVzZVN0b3BEaWN0YXRlLCB1c2VTdHlsZU9wdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBST09UX1NUWUxFID0ge1xuICAnJi53ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveCc6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG5cbiAgICAnJiAud2ViY2hhdF9fc2VuZC1ib3gtdGV4dC1ib3hfX2lucHV0LCAmIC53ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveF9fdGV4dC1hcmVhJzoge1xuICAgICAgZmxleDogMVxuICAgIH1cbiAgfVxufTtcblxuY29uc3QgY29ubmVjdFNlbmRUZXh0Qm94ID0gKC4uLnNlbGVjdG9ycykgPT5cbiAgY29ubmVjdFRvV2ViQ2hhdChcbiAgICAoeyBkaXNhYmxlZCwgZm9jdXNTZW5kQm94LCBsYW5ndWFnZSwgc2Nyb2xsVG9FbmQsIHNlbmRCb3hWYWx1ZSwgc2V0U2VuZEJveCwgc3RvcERpY3RhdGUsIHN1Ym1pdFNlbmRCb3ggfSkgPT4gKHtcbiAgICAgIGRpc2FibGVkLFxuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBvbkNoYW5nZTogKHsgdGFyZ2V0OiB7IHZhbHVlIH0gfSkgPT4ge1xuICAgICAgICBzZXRTZW5kQm94KHZhbHVlKTtcbiAgICAgICAgc3RvcERpY3RhdGUoKTtcbiAgICAgIH0sXG4gICAgICBvbktleVByZXNzOiBldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ0VudGVyJyAmJiAhc2hpZnRLZXkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgaWYgKHNlbmRCb3hWYWx1ZSkge1xuICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgIHN1Ym1pdFNlbmRCb3goKTtcbiAgICAgICAgICAgIGZvY3VzU2VuZEJveCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9uU3VibWl0OiBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgLy8gQ29uc2lkZXIgY2xlYXJpbmcgdGhlIHNlbmQgYm94IG9ubHkgYWZ0ZXIgd2UgcmVjZWl2ZWQgUE9TVF9BQ1RJVklUWV9QRU5ESU5HXG4gICAgICAgIC8vIEUuZy4gaWYgdGhlIGNvbm5lY3Rpb24gaXMgYmFkLCBzZW5kaW5nIHRoZSBtZXNzYWdlIGVzc2VudGlhbGx5IGRvIG5vdGhpbmcgYnV0IGp1c3QgY2xlYXJpbmcgdGhlIHNlbmQgYm94XG5cbiAgICAgICAgaWYgKHNlbmRCb3hWYWx1ZSkge1xuICAgICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgc3VibWl0U2VuZEJveCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdmFsdWU6IHNlbmRCb3hWYWx1ZVxuICAgIH0pLFxuICAgIC4uLnNlbGVjdG9yc1xuICApO1xuXG4vKipcbiAqIFN1Ym1pdHMgdGhlIHRleHQgYm94IGFuZCBvcHRpb25hbGx5IHNldCB0aGUgZm9jdXMgYWZ0ZXIgc2VuZC5cbiAqL1xudHlwZSBTdWJtaXRUZXh0Qm94RnVuY3Rpb24gPSB7XG4gIC8qKlxuICAgKiBTdWJtaXRzIHRoZSB0ZXh0IGJveCwgd2l0aG91dCBzZXR0aW5nIHRoZSBmb2N1cyBhZnRlciBzZW5kLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBJbnN0ZWFkIG9mIHBhc3NpbmcgYGZhbHNlYCwgeW91IHNob3VsZCBsZWF2ZSB0aGUgYHNldEZvY3VzYCBhcmd1bWVudCBgdW5kZWZpbmVkYC5cbiAgICovXG4gIChzZXRGb2N1czogZmFsc2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTdWJtaXRzIHRoZSB0ZXh0IGJveCBhbmQgb3B0aW9uYWxseSBzZXQgdGhlIGZvY3VzIGFmdGVyIHNlbmQuXG4gICAqL1xuICAoc2V0Rm9jdXM/OiAnc2VuZEJveCcgfCAnc2VuZEJveFdpdGhvdXRLZXlib2FyZCcpOiB2b2lkO1xufTtcblxuZnVuY3Rpb24gdXNlVGV4dEJveFN1Ym1pdCgpOiBTdWJtaXRUZXh0Qm94RnVuY3Rpb24ge1xuICBjb25zdCBzdWJtaXQgPSB1c2VTdWJtaXQoKTtcblxuICByZXR1cm4gdXNlQ2FsbGJhY2s8U3VibWl0VGV4dEJveEZ1bmN0aW9uPihcbiAgICAoc2V0Rm9jdXM/OiBmYWxzZSB8ICdzZW5kQm94JyB8ICdzZW5kQm94V2l0aG91dEtleWJvYXJkJykgPT4gc3VibWl0KHsgc2V0Rm9jdXM6IHNldEZvY3VzIHx8IHVuZGVmaW5lZCB9KSxcbiAgICBbc3VibWl0XVxuICApO1xufVxuXG5mdW5jdGlvbiB1c2VUZXh0Qm94VmFsdWUoKTogW1xuICBzdHJpbmcsXG4gIChcbiAgICB0ZXh0Qm94VmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IHNlbGVjdGlvbkVuZDogbnVtYmVyOyBzZWxlY3Rpb25TdGFydDogbnVtYmVyIH1cbiAgKSA9PiB7IHNlbGVjdGlvbkVuZDogbnVtYmVyOyBzZWxlY3Rpb25TdGFydDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH1cbl0ge1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVNlbmRCb3hWYWx1ZSgpO1xuICBjb25zdCByZXBsYWNlRW1vdGljb24gPSB1c2VSZXBsYWNlRW1vdGljb24oKTtcbiAgY29uc3Qgc3RvcERpY3RhdGUgPSB1c2VTdG9wRGljdGF0ZSgpO1xuXG4gIGNvbnN0IHNldHRlciA9IHVzZUNhbGxiYWNrPFxuICAgIChcbiAgICAgIG5leHRWYWx1ZTogc3RyaW5nLFxuICAgICAgb3B0aW9ucz86IHsgc2VsZWN0aW9uRW5kOiBudW1iZXI7IHNlbGVjdGlvblN0YXJ0OiBudW1iZXIgfVxuICAgICkgPT4ge1xuICAgICAgc2VsZWN0aW9uRW5kOiBudW1iZXI7XG4gICAgICBzZWxlY3Rpb25TdGFydDogbnVtYmVyO1xuICAgICAgdmFsdWU6IHN0cmluZztcbiAgICB9XG4gID4oXG4gICAgKG5leHRWYWx1ZSwgeyBzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0IH0gPSB7IHNlbGVjdGlvbkVuZDogdW5kZWZpbmVkLCBzZWxlY3Rpb25TdGFydDogdW5kZWZpbmVkIH0pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgbmV4dFZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBGaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gdXNlVGV4dEJveFZhbHVlKCkgbXVzdCBiZSBhIHN0cmluZy4nKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ3VycmVudGx5LCB3ZSBjYW5ub3QgZGV0ZWN0IHdoZXRoZXIgdGhlIGNoYW5nZSBpcyBkdWUgdG8gY2xpcGJvYXJkIHBhc3RlIG9yIHByZXNzaW5nIGEga2V5IG9uIHRoZSBrZXlib2FyZC5cbiAgICAgIC8vIFdlIHNob3VsZCBub3QgY2hhbmdlIHRvIGVtb2ppIHdoZW4gdGhlIHVzZXIgaXMgcGFzdGluZyB0ZXh0LlxuICAgICAgLy8gV2Ugd291bGQgYXNzdW1lLCBmb3IgYSBzaW5nbGUgY2hhcmFjdGVyIGFkZGl0aW9uLCB0aGUgdXNlciBtdXN0IGJlIHByZXNzaW5nIGEga2V5LlxuICAgICAgaWYgKG5leHRWYWx1ZS5sZW5ndGggPT09IHZhbHVlLmxlbmd0aCArIDEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNlbGVjdGlvbkVuZDogbmV4dFNlbGVjdGlvbkVuZCxcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydDogbmV4dFNlbGVjdGlvblN0YXJ0LFxuICAgICAgICAgIHZhbHVlOiBuZXh0VmFsdWVXaXRoRW1vamlcbiAgICAgICAgfSA9IHJlcGxhY2VFbW90aWNvbih7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlOiBuZXh0VmFsdWUgfSk7XG5cbiAgICAgICAgc2VsZWN0aW9uRW5kID0gbmV4dFNlbGVjdGlvbkVuZDtcbiAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBuZXh0U2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIG5leHRWYWx1ZSA9IG5leHRWYWx1ZVdpdGhFbW9qaTtcbiAgICAgIH1cblxuICAgICAgc2V0VmFsdWUobmV4dFZhbHVlKTtcbiAgICAgIHN0b3BEaWN0YXRlKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNlbGVjdGlvbkVuZCxcbiAgICAgICAgc2VsZWN0aW9uU3RhcnQsXG4gICAgICAgIHZhbHVlOiBuZXh0VmFsdWVcbiAgICAgIH07XG4gICAgfSxcbiAgICBbcmVwbGFjZUVtb3RpY29uLCBzZXRWYWx1ZSwgc3RvcERpY3RhdGUsIHZhbHVlXVxuICApO1xuXG4gIHJldHVybiBbdmFsdWUsIHNldHRlcl07XG59XG5cbmNvbnN0IFBSRVZFTlRfREVGQVVMVF9IQU5ETEVSID0gZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuY29uc3QgVGV4dEJveCA9ICh7IGNsYXNzTmFtZSB9KSA9PiB7XG4gIGNvbnN0IFssIHNldFNlbmRCb3hdID0gdXNlU2VuZEJveFZhbHVlKCk7XG4gIGNvbnN0IFt7IHNlbmRCb3hUZXh0Qm94OiBzZW5kQm94VGV4dEJveFN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW3sgc2VuZEJveFRleHRXcmFwIH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFtkaXNhYmxlZF0gPSB1c2VEaXNhYmxlZCgpO1xuICBjb25zdCBbdGV4dEJveFZhbHVlLCBzZXRUZXh0Qm94VmFsdWVdID0gdXNlVGV4dEJveFZhbHVlKCk7XG4gIGNvbnN0IGlucHV0RWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50ICYgSFRNTFRleHRBcmVhRWxlbWVudD4gPSB1c2VSZWYoKTtcbiAgY29uc3QgbG9jYWxpemUgPSB1c2VMb2NhbGl6ZXIoKTtcbiAgY29uc3QgcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBwcmV2SW5wdXRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDx7XG4gICAgc2VsZWN0aW9uRW5kOiBudW1iZXI7XG4gICAgc2VsZWN0aW9uU3RhcnQ6IG51bWJlcjtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9PiA9IHVzZVJlZigpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuICBjb25zdCBzY3JvbGxEb3duID0gdXNlU2Nyb2xsRG93bigpO1xuICBjb25zdCBzY3JvbGxVcCA9IHVzZVNjcm9sbFVwKCk7XG4gIGNvbnN0IHN1Ym1pdFRleHRCb3ggPSB1c2VUZXh0Qm94U3VibWl0KCk7XG4gIGNvbnN0IHVuZG9TdGFja1JlZiA9IHVzZVJlZihbXSk7XG5cbiAgY29uc3Qgc2VuZEJveFN0cmluZyA9IGxvY2FsaXplKCdURVhUX0lOUFVUX0FMVCcpO1xuICBjb25zdCB0eXBlWW91ck1lc3NhZ2VTdHJpbmcgPSBsb2NhbGl6ZSgnVEVYVF9JTlBVVF9QTEFDRUhPTERFUicpO1xuXG4gIGNvbnN0IHJlbWVtYmVySW5wdXRTdGF0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBjdXJyZW50OiB7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH1cbiAgICB9ID0gaW5wdXRFbGVtZW50UmVmO1xuXG4gICAgcHJldklucHV0U3RhdGVSZWYuY3VycmVudCA9IHsgc2VsZWN0aW9uRW5kLCBzZWxlY3Rpb25TdGFydCwgdmFsdWUgfTtcbiAgfSwgW2lucHV0RWxlbWVudFJlZiwgcHJldklucHV0U3RhdGVSZWZdKTtcblxuICAvLyBUaGlzIGlzIGZvciBUeXBlRm9jdXNTaW5rLiBXaGVuIHRoZSBmb2N1cyBpbiBvbiB0aGUgc2NyaXB0LCB0aGVuIHN0YXJ0aW5nIHByZXNzIFwiYVwiLCB3aXRob3V0IHRoaXMgbGluZSwgaXQgd291bGQgY2F1c2UgZXJyb3JzLlxuICAvLyBXZSBjYWxsIHJlbWVtYmVySW5wdXRTdGF0ZSgpIHdoZW4gXCJvbkZvY3VzXCIgZXZlbnQgaXMgZmlyZWQsIGJ1dCBzaW5jZSB0aGlzIGlzIGZyb20gVHlwZUZvY3VzU2luaywgd2UgYXJlIG5vdCBhYmxlIHRvIHJlY2VpdmUgXCJvbkZvY3VzXCIgZXZlbnQgYmVmb3JlIGl0IGhhcHBlbi5cbiAgdXNlRWZmZWN0KHJlbWVtYmVySW5wdXRTdGF0ZSwgW3JlbWVtYmVySW5wdXRTdGF0ZV0pO1xuXG4gIC8vIFRoaXMgaXMgZm9yIG1vdmluZyB0aGUgc2VsZWN0aW9uIHdoaWxlIHNldHRpbmcgdGhlIHNlbmQgYm94IHZhbHVlLlxuICAvLyBJZiB3ZSBvbmx5IHVzZSBzZXRTZW5kQm94LCB3ZSB3aWxsIG5lZWQgdG8gd2FpdCBmb3IgdGhlIG5leHQgcmVuZGVyIGN5Y2xlIHRvIGdldCB0aGUgdmFsdWUgaW4sIGJlZm9yZSB3ZSBjYW4gc2V0IHNlbGVjdGlvbkVuZC9TdGFydC5cbiAgY29uc3Qgc2V0U2VsZWN0aW9uUmFuZ2VBbmRWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH0pID0+IHtcbiAgICAgIGlmIChpbnB1dEVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHNldCB0aGUgdmFsdWUsIGJlZm9yZSBzZWxlY3Rpb25TdGFydC9zZWxlY3Rpb25FbmQuXG4gICAgICAgIGlucHV0RWxlbWVudFJlZi5jdXJyZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaW5wdXRFbGVtZW50UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydDtcbiAgICAgICAgaW5wdXRFbGVtZW50UmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kO1xuICAgICAgfVxuXG4gICAgICBzZXRTZW5kQm94KHZhbHVlKTtcbiAgICB9LFxuICAgIFtpbnB1dEVsZW1lbnRSZWYsIHNldFNlbmRCb3hdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICB0YXJnZXQ6IHsgc2VsZWN0aW9uRW5kLCBzZWxlY3Rpb25TdGFydCwgdmFsdWUgfVxuICAgICAgfSA9IGV2ZW50O1xuXG4gICAgICBpZiAocGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYuY3VycmVudCkge1xuICAgICAgICB1bmRvU3RhY2tSZWYuY3VycmVudC5wdXNoKHsgLi4ucHJldklucHV0U3RhdGVSZWYuY3VycmVudCB9KTtcblxuICAgICAgICBwbGFjZUNoZWNrcG9pbnRPbkNoYW5nZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5leHRJbnB1dFN0YXRlID0gc2V0VGV4dEJveFZhbHVlKHZhbHVlLCB7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQgfSk7XG5cbiAgICAgIC8vIElmIGFuIGVtb3RpY29uIGlzIGNvbnZlcnRlZCB0byBlbW9qaSwgcGxhY2UgYW5vdGhlciBjaGVja3BvaW50LlxuICAgICAgaWYgKG5leHRJbnB1dFN0YXRlLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICB1bmRvU3RhY2tSZWYuY3VycmVudC5wdXNoKHsgc2VsZWN0aW9uRW5kLCBzZWxlY3Rpb25TdGFydCwgdmFsdWUgfSk7XG5cbiAgICAgICAgcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYuY3VycmVudCA9IHRydWU7XG5cbiAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2VBbmRWYWx1ZShuZXh0SW5wdXRTdGF0ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYsIHByZXZJbnB1dFN0YXRlUmVmLCBzZXRTZWxlY3Rpb25SYW5nZUFuZFZhbHVlLCBzZXRUZXh0Qm94VmFsdWUsIHVuZG9TdGFja1JlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZW1lbWJlcklucHV0U3RhdGUoKTtcblxuICAgIHBsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICB9LCBbcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYsIHJlbWVtYmVySW5wdXRTdGF0ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBjb25zdCB7IGN0cmxLZXksIGtleSwgbWV0YUtleSB9ID0gZXZlbnQ7XG5cbiAgICAgIGlmICgoY3RybEtleSB8fCBtZXRhS2V5KSAmJiAoa2V5ID09PSAnWicgfHwga2V5ID09PSAneicpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgcG9wcGVkSW5wdXRTdGF0ZSA9IHVuZG9TdGFja1JlZi5jdXJyZW50LnBvcCgpO1xuXG4gICAgICAgIGlmIChwb3BwZWRJbnB1dFN0YXRlKSB7XG4gICAgICAgICAgcHJldklucHV0U3RhdGVSZWYuY3VycmVudCA9IHsgLi4ucG9wcGVkSW5wdXRTdGF0ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZJbnB1dFN0YXRlUmVmLmN1cnJlbnQgPSB7IHNlbGVjdGlvbkVuZDogMCwgc2VsZWN0aW9uU3RhcnQ6IDAsIHZhbHVlOiAnJyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2VBbmRWYWx1ZShwcmV2SW5wdXRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtwcmV2SW5wdXRTdGF0ZVJlZiwgc2V0U2VsZWN0aW9uUmFuZ2VBbmRWYWx1ZSwgdW5kb1N0YWNrUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUtleVByZXNzID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBrZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcblxuICAgICAgaWYgKGtleSA9PT0gJ0VudGVyJyAmJiAhc2hpZnRLZXkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAvLyBJZiB0ZXh0IGJveCBpcyBzdWJtaXR0ZWQsIGZvY3VzIG9uIHRoZSBzZW5kIGJveFxuICAgICAgICBzdWJtaXRUZXh0Qm94KCdzZW5kQm94Jyk7XG5cbiAgICAgICAgLy8gQWZ0ZXIgc3VibWl0LCB3ZSB3aWxsIGNsZWFyIHRoZSB1bmRvIHN0YWNrLlxuICAgICAgICB1bmRvU3RhY2tSZWYuY3VycmVudCA9IFtdO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3N1Ym1pdFRleHRCb3gsIHVuZG9TdGFja1JlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VDYWxsYmFjazxSZWFjdEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD4+KFxuICAgICh7IGN1cnJlbnRUYXJnZXQ6IHsgc2VsZWN0aW9uRW5kLCBzZWxlY3Rpb25TdGFydCwgdmFsdWUgfSB9KSA9PiB7XG4gICAgICBpZiAodmFsdWUgPT09IHByZXZJbnB1dFN0YXRlUmVmLmN1cnJlbnQudmFsdWUpIHtcbiAgICAgICAgLy8gV2hlbiBjYXJldCBtb3ZlLCB3ZSBzaG91bGQgcHVzaCB0byB1bmRvIHN0YWNrIG9uIGNoYW5nZS5cbiAgICAgICAgcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHByZXZJbnB1dFN0YXRlUmVmLmN1cnJlbnQgPSB7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH07XG4gICAgfSxcbiAgICBbcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYsIHByZXZJbnB1dFN0YXRlUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIC8vIENvbnNpZGVyIGNsZWFyaW5nIHRoZSBzZW5kIGJveCBvbmx5IGFmdGVyIHdlIHJlY2VpdmVkIFBPU1RfQUNUSVZJVFlfUEVORElOR1xuICAgICAgLy8gRS5nLiBpZiB0aGUgY29ubmVjdGlvbiBpcyBiYWQsIHNlbmRpbmcgdGhlIG1lc3NhZ2UgZXNzZW50aWFsbHkgZG8gbm90aGluZyBidXQganVzdCBjbGVhcmluZyB0aGUgc2VuZCBib3hcbiAgICAgIHN1Ym1pdFRleHRCb3goKTtcblxuICAgICAgLy8gQWZ0ZXIgc3VibWl0LCB3ZSB3aWxsIGNsZWFyIHRoZSB1bmRvIHN0YWNrLlxuICAgICAgdW5kb1N0YWNrUmVmLmN1cnJlbnQgPSBbXTtcbiAgICB9LFxuICAgIFtzdWJtaXRUZXh0Qm94LCB1bmRvU3RhY2tSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBjb25zdCB7IGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcblxuICAgICAgaWYgKGN0cmxLZXkgfHwgbWV0YUtleSB8fCBzaGlmdEtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIE5hdmlnYWJsZSBldmVudCBtZWFucyB0aGUgZW5kLXVzZXIgaXMgZm9jdXNpbmcgb24gYW4gaW5wdXR0YWJsZSBlbGVtZW50LCBidXQgaXQgaXMgb2theSB0byBjYXB0dXJlIHRoZSBhcnJvdyBrZXlzLlxuICAgICAgaWYgKG5hdmlnYWJsZUV2ZW50KGV2ZW50KSkge1xuICAgICAgICBsZXQgaGFuZGxlZCA9IHRydWU7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICBjYXNlICdFbmQnOlxuICAgICAgICAgICAgc2Nyb2xsRG93bih7IGRpc3BsYWNlbWVudDogSW5maW5pdHkgfSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgc2Nyb2xsVXAoeyBkaXNwbGFjZW1lbnQ6IEluZmluaXR5IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgICAgICBzY3JvbGxEb3duKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgICAgICBzY3JvbGxVcCgpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaGFuZGxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFuZGxlZCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtzY3JvbGxEb3duLCBzY3JvbGxVcF1cbiAgKTtcblxuICBjb25zdCBmb2N1c0NhbGxiYWNrID0gdXNlQ2FsbGJhY2s8KG9wdGlvbnM/OiB7IG5vS2V5Ym9hcmQ/OiBib29sZWFuIH0pID0+IHZvaWQ+KFxuICAgICh7IG5vS2V5Ym9hcmQgfSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IGlucHV0RWxlbWVudFJlZjtcblxuICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgLy8gVGhlIFwiZGlzYWJsZSBzb2Z0IGtleWJvYXJkIG9uIG1vYmlsZSBkZXZpY2VzXCIgbG9naWMgd2lsbCBub3Qgd29yayBvbiBJRTExLiBJdCB3aWxsIGNhdXNlIHRoZSA8aW5wdXQ+IHRvIGJlY29tZSByZWFkLW9ubHkgdW50aWwgbmV4dCBmb2N1cy5cbiAgICAgICAgLy8gVGh1cywgbm8gbW9iaWxlIGRldmljZXMgY2FycnkgSUUxMSBzbyB3ZSBkb24ndCBuZWVkIHRvIGV4cGxpY2l0bHkgZGlzYWJsZSBzb2Z0IGtleWJvYXJkIG9uIElFMTEuXG4gICAgICAgIC8vIFNlZSAjMzc1NyBmb3IgcmVwcm8gYW5kIGRldGFpbHMuXG4gICAgICAgIGlmIChub0tleWJvYXJkICYmICFpZTExKSB7XG4gICAgICAgICAgLy8gVG8gbm90IGFjdGl2YXRlIHRoZSB2aXJ0dWFsIGtleWJvYXJkIHdoaWxlIGNoYW5naW5nIGZvY3VzIHRvIGFuIGlucHV0LCB3ZSB3aWxsIHRlbXBvcmFyaWx5IHNldCBpdCBhcyByZWFkLW9ubHkgYW5kIGZsaXAgaXQgYmFjay5cbiAgICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NjEwNzU4L3ByZXZlbnQtaXBob25lLWRlZmF1bHQta2V5Ym9hcmQtd2hlbi1mb2N1c2luZy1hbi1pbnB1dC83NjEwOTIzXG4gICAgICAgICAgY29uc3QgcmVhZE9ubHkgPSBjdXJyZW50LmdldEF0dHJpYnV0ZSgncmVhZG9ubHknKTtcblxuICAgICAgICAgIGN1cnJlbnQuc2V0QXR0cmlidXRlKCdyZWFkb25seScsICdyZWFkb25seScpO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IGlucHV0RWxlbWVudFJlZjtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICByZWFkT25seSA/IGN1cnJlbnQuc2V0QXR0cmlidXRlKCdyZWFkb25seScsIHJlYWRPbmx5KSA6IGN1cnJlbnQucmVtb3ZlQXR0cmlidXRlKCdyZWFkb25seScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2lucHV0RWxlbWVudFJlZl1cbiAgKTtcblxuICB1c2VSZWdpc3RlckZvY3VzU2VuZEJveChmb2N1c0NhbGxiYWNrKTtcblxuICByZXR1cm4gKFxuICAgIDxmb3JtXG4gICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX3NlbmQtYm94LXRleHQtYm94JyxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc2VuZEJveFRleHRCb3hTdHlsZVNldCArICcnLFxuICAgICAgICAoY2xhc3NOYW1lIHx8ICcnKSArICcnXG4gICAgICApfVxuICAgICAgb25TdWJtaXQ9e2Rpc2FibGVkID8gUFJFVkVOVF9ERUZBVUxUX0hBTkRMRVIgOiBoYW5kbGVTdWJtaXR9XG4gICAgPlxuICAgICAgeyFzZW5kQm94VGV4dFdyYXAgPyAoXG4gICAgICAgIDxBY2Nlc3NpYmxlSW5wdXRUZXh0XG4gICAgICAgICAgYXJpYS1sYWJlbD17c2VuZEJveFN0cmluZ31cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveF9faW5wdXRcIlxuICAgICAgICAgIGRhdGEtaWQ9XCJ3ZWJjaGF0LXNlbmRib3gtaW5wdXRcIlxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBlbnRlcktleUhpbnQ9XCJzZW5kXCJcbiAgICAgICAgICBpbnB1dE1vZGU9XCJ0ZXh0XCJcbiAgICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVGb2N1c31cbiAgICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvbktleURvd25DYXB0dXJlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUtleURvd25DYXB0dXJlfVxuICAgICAgICAgIG9uS2V5UHJlc3M9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlS2V5UHJlc3N9XG4gICAgICAgICAgb25TZWxlY3Q9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlU2VsZWN0fVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0eXBlWW91ck1lc3NhZ2VTdHJpbmd9XG4gICAgICAgICAgcmVhZE9ubHk9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlZj17aW5wdXRFbGVtZW50UmVmfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICB2YWx1ZT17dGV4dEJveFZhbHVlfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPEF1dG9SZXNpemVUZXh0QXJlYVxuICAgICAgICAgIGFyaWEtbGFiZWw9e3NlbmRCb3hTdHJpbmd9XG4gICAgICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fc2VuZC1ib3gtdGV4dC1ib3hfX3RleHQtYXJlYVwiXG4gICAgICAgICAgZGF0YS1pZD1cIndlYmNoYXQtc2VuZGJveC1pbnB1dFwiXG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGVudGVyS2V5SGludD1cInNlbmRcIlxuICAgICAgICAgIGlucHV0TW9kZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUNoYW5nZX1cbiAgICAgICAgICBvbkZvY3VzPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUZvY3VzfVxuICAgICAgICAgIG9uS2V5RG93bj17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVLZXlEb3dufVxuICAgICAgICAgIG9uS2V5RG93bkNhcHR1cmU9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlS2V5RG93bkNhcHR1cmV9XG4gICAgICAgICAgb25LZXlQcmVzcz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVLZXlQcmVzc31cbiAgICAgICAgICBvblNlbGVjdD17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVTZWxlY3R9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3R5cGVZb3VyTWVzc2FnZVN0cmluZ31cbiAgICAgICAgICByZWFkT25seT17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVmPXtpbnB1dEVsZW1lbnRSZWZ9XG4gICAgICAgICAgcm93cz17MX1cbiAgICAgICAgICB0ZXh0QXJlYUNsYXNzTmFtZT1cIndlYmNoYXRfX3NlbmQtYm94LXRleHQtYm94X19odG1sLXRleHQtYXJlYVwiXG4gICAgICAgICAgdmFsdWU9e3RleHRCb3hWYWx1ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7ZGlzYWJsZWQgJiYgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveF9fZ2xhc3NcIiAvPn1cbiAgICA8L2Zvcm0+XG4gICk7XG59O1xuXG5UZXh0Qm94LmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJ1xufTtcblxuVGV4dEJveC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEJveDtcblxuZXhwb3J0IHsgY29ubmVjdFNlbmRUZXh0Qm94LCB1c2VUZXh0Qm94U3VibWl0LCB1c2VUZXh0Qm94VmFsdWUgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFRQSxXQUFSLEdBQXdGQyw2QkFBeEYsQ0FBUUQsV0FBUjtBQUFBLElBQXFCRSxZQUFyQixHQUF3RkQsNkJBQXhGLENBQXFCQyxZQUFyQjtBQUFBLElBQW1DQyxlQUFuQyxHQUF3RkYsNkJBQXhGLENBQW1DRSxlQUFuQztBQUFBLElBQW9EQyxjQUFwRCxHQUF3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
490
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VEaXNhYmxlZCIsImhvb2tzIiwidXNlTG9jYWxpemVyIiwidXNlUG9ueWZpbGwiLCJ1c2VTZW5kQm94VmFsdWUiLCJ1c2VTdG9wRGljdGF0ZSIsInVzZVN0eWxlT3B0aW9ucyIsIlJPT1RfU1RZTEUiLCJkaXNwbGF5IiwiZmxleCIsImNvbm5lY3RTZW5kVGV4dEJveCIsInNlbGVjdG9ycyIsImNvbm5lY3RUb1dlYkNoYXQiLCJkaXNhYmxlZCIsImZvY3VzU2VuZEJveCIsImxhbmd1YWdlIiwic2Nyb2xsVG9FbmQiLCJzZW5kQm94VmFsdWUiLCJzZXRTZW5kQm94Iiwic3RvcERpY3RhdGUiLCJzdWJtaXRTZW5kQm94Iiwib25DaGFuZ2UiLCJ2YWx1ZSIsInRhcmdldCIsIm9uS2V5UHJlc3MiLCJldmVudCIsImtleSIsInNoaWZ0S2V5IiwicHJldmVudERlZmF1bHQiLCJvblN1Ym1pdCIsInVzZVRleHRCb3hTdWJtaXQiLCJzdWJtaXQiLCJ1c2VTdWJtaXQiLCJ1c2VDYWxsYmFjayIsInNldEZvY3VzIiwidW5kZWZpbmVkIiwidXNlVGV4dEJveFZhbHVlIiwic2V0VmFsdWUiLCJyZXBsYWNlRW1vdGljb24iLCJ1c2VSZXBsYWNlRW1vdGljb24iLCJzZXR0ZXIiLCJuZXh0VmFsdWUiLCJzZWxlY3Rpb25FbmQiLCJzZWxlY3Rpb25TdGFydCIsIkVycm9yIiwibGVuZ3RoIiwibmV4dFNlbGVjdGlvbkVuZCIsIm5leHRTZWxlY3Rpb25TdGFydCIsIm5leHRWYWx1ZVdpdGhFbW9qaSIsIlBSRVZFTlRfREVGQVVMVF9IQU5ETEVSIiwiVGV4dEJveCIsImNsYXNzTmFtZSIsInVzZVN0eWxlU2V0Iiwic2VuZEJveFRleHRCb3hTdHlsZVNldCIsInNlbmRCb3hUZXh0Qm94Iiwic2VuZEJveFRleHRXcmFwIiwic2V0VGltZW91dCIsInRleHRCb3hWYWx1ZSIsInNldFRleHRCb3hWYWx1ZSIsImlucHV0RWxlbWVudFJlZiIsInVzZVJlZiIsImxvY2FsaXplIiwicGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYiLCJwcmV2SW5wdXRTdGF0ZVJlZiIsInJvb3RDbGFzc05hbWUiLCJ1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCIsInNjcm9sbERvd24iLCJ1c2VTY3JvbGxEb3duIiwic2Nyb2xsVXAiLCJ1c2VTY3JvbGxVcCIsInN1Ym1pdFRleHRCb3giLCJ1bmRvU3RhY2tSZWYiLCJzZW5kQm94U3RyaW5nIiwidHlwZVlvdXJNZXNzYWdlU3RyaW5nIiwicmVtZW1iZXJJbnB1dFN0YXRlIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInNldFNlbGVjdGlvblJhbmdlQW5kVmFsdWUiLCJoYW5kbGVDaGFuZ2UiLCJwdXNoIiwibmV4dElucHV0U3RhdGUiLCJoYW5kbGVGb2N1cyIsImhhbmRsZUtleURvd24iLCJjdHJsS2V5IiwibWV0YUtleSIsInBvcHBlZElucHV0U3RhdGUiLCJwb3AiLCJoYW5kbGVLZXlQcmVzcyIsImhhbmRsZVNlbGVjdCIsImN1cnJlbnRUYXJnZXQiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVLZXlEb3duQ2FwdHVyZSIsIm5hdmlnYWJsZUV2ZW50IiwiaGFuZGxlZCIsImRpc3BsYWNlbWVudCIsIkluZmluaXR5Iiwic3RvcFByb3BhZ2F0aW9uIiwiZm9jdXNDYWxsYmFjayIsIm5vS2V5Ym9hcmQiLCJpZTExIiwicmVhZE9ubHkiLCJnZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGUiLCJmb2N1cyIsInJlbW92ZUF0dHJpYnV0ZSIsInVzZVJlZ2lzdGVyRm9jdXNTZW5kQm94IiwiY2xhc3NOYW1lcyIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyJdLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlbmRCb3gvVGV4dEJveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgaWUxMSB9IGZyb20gJy4uL1V0aWxzL2RldGVjdEJyb3dzZXInO1xuaW1wb3J0IEFjY2Vzc2libGVJbnB1dFRleHQgZnJvbSAnLi4vVXRpbHMvQWNjZXNzaWJsZUlucHV0VGV4dCc7XG5pbXBvcnQgQXV0b1Jlc2l6ZVRleHRBcmVhIGZyb20gJy4vQXV0b1Jlc2l6ZVRleHRBcmVhJztcbmltcG9ydCBjb25uZWN0VG9XZWJDaGF0IGZyb20gJy4uL2Nvbm5lY3RUb1dlYkNoYXQnO1xuaW1wb3J0IG5hdmlnYWJsZUV2ZW50IGZyb20gJy4uL1V0aWxzL1R5cGVGb2N1c1NpbmsvbmF2aWdhYmxlRXZlbnQnO1xuaW1wb3J0IHVzZVJlZ2lzdGVyRm9jdXNTZW5kQm94IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVJlZ2lzdGVyRm9jdXNTZW5kQm94JztcbmltcG9ydCB1c2VSZXBsYWNlRW1vdGljb24gZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlUmVwbGFjZUVtb3RpY29uJztcbmltcG9ydCB1c2VTY3JvbGxEb3duIGZyb20gJy4uL2hvb2tzL3VzZVNjcm9sbERvd24nO1xuaW1wb3J0IHVzZVNjcm9sbFVwIGZyb20gJy4uL2hvb2tzL3VzZVNjcm9sbFVwJztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuaW1wb3J0IHVzZVN1Ym1pdCBmcm9tICcuLi9wcm92aWRlcnMvaW50ZXJuYWwvU2VuZEJveC91c2VTdWJtaXQnO1xuXG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QsIFJlYWN0RXZlbnRIYW5kbGVyIH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCB7IHVzZURpc2FibGVkLCB1c2VMb2NhbGl6ZXIsIHVzZVBvbnlmaWxsLCB1c2VTZW5kQm94VmFsdWUsIHVzZVN0b3BEaWN0YXRlLCB1c2VTdHlsZU9wdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBST09UX1NUWUxFID0ge1xuICAnJi53ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveCc6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG5cbiAgICAnJiAud2ViY2hhdF9fc2VuZC1ib3gtdGV4dC1ib3hfX2lucHV0LCAmIC53ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveF9fdGV4dC1hcmVhJzoge1xuICAgICAgZmxleDogMVxuICAgIH1cbiAgfVxufTtcblxuY29uc3QgY29ubmVjdFNlbmRUZXh0Qm94ID0gKC4uLnNlbGVjdG9ycykgPT5cbiAgY29ubmVjdFRvV2ViQ2hhdChcbiAgICAoeyBkaXNhYmxlZCwgZm9jdXNTZW5kQm94LCBsYW5ndWFnZSwgc2Nyb2xsVG9FbmQsIHNlbmRCb3hWYWx1ZSwgc2V0U2VuZEJveCwgc3RvcERpY3RhdGUsIHN1Ym1pdFNlbmRCb3ggfSkgPT4gKHtcbiAgICAgIGRpc2FibGVkLFxuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBvbkNoYW5nZTogKHsgdGFyZ2V0OiB7IHZhbHVlIH0gfSkgPT4ge1xuICAgICAgICBzZXRTZW5kQm94KHZhbHVlKTtcbiAgICAgICAgc3RvcERpY3RhdGUoKTtcbiAgICAgIH0sXG4gICAgICBvbktleVByZXNzOiBldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ0VudGVyJyAmJiAhc2hpZnRLZXkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgaWYgKHNlbmRCb3hWYWx1ZSkge1xuICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgIHN1Ym1pdFNlbmRCb3goKTtcbiAgICAgICAgICAgIGZvY3VzU2VuZEJveCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9uU3VibWl0OiBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgLy8gQ29uc2lkZXIgY2xlYXJpbmcgdGhlIHNlbmQgYm94IG9ubHkgYWZ0ZXIgd2UgcmVjZWl2ZWQgUE9TVF9BQ1RJVklUWV9QRU5ESU5HXG4gICAgICAgIC8vIEUuZy4gaWYgdGhlIGNvbm5lY3Rpb24gaXMgYmFkLCBzZW5kaW5nIHRoZSBtZXNzYWdlIGVzc2VudGlhbGx5IGRvIG5vdGhpbmcgYnV0IGp1c3QgY2xlYXJpbmcgdGhlIHNlbmQgYm94XG5cbiAgICAgICAgaWYgKHNlbmRCb3hWYWx1ZSkge1xuICAgICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgc3VibWl0U2VuZEJveCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdmFsdWU6IHNlbmRCb3hWYWx1ZVxuICAgIH0pLFxuICAgIC4uLnNlbGVjdG9yc1xuICApO1xuXG4vKipcbiAqIFN1Ym1pdHMgdGhlIHRleHQgYm94IGFuZCBvcHRpb25hbGx5IHNldCB0aGUgZm9jdXMgYWZ0ZXIgc2VuZC5cbiAqL1xudHlwZSBTdWJtaXRUZXh0Qm94RnVuY3Rpb24gPSB7XG4gIC8qKlxuICAgKiBTdWJtaXRzIHRoZSB0ZXh0IGJveCwgd2l0aG91dCBzZXR0aW5nIHRoZSBmb2N1cyBhZnRlciBzZW5kLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBJbnN0ZWFkIG9mIHBhc3NpbmcgYGZhbHNlYCwgeW91IHNob3VsZCBsZWF2ZSB0aGUgYHNldEZvY3VzYCBhcmd1bWVudCBgdW5kZWZpbmVkYC5cbiAgICovXG4gIChzZXRGb2N1czogZmFsc2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTdWJtaXRzIHRoZSB0ZXh0IGJveCBhbmQgb3B0aW9uYWxseSBzZXQgdGhlIGZvY3VzIGFmdGVyIHNlbmQuXG4gICAqL1xuICAoc2V0Rm9jdXM/OiAnc2VuZEJveCcgfCAnc2VuZEJveFdpdGhvdXRLZXlib2FyZCcpOiB2b2lkO1xufTtcblxuZnVuY3Rpb24gdXNlVGV4dEJveFN1Ym1pdCgpOiBTdWJtaXRUZXh0Qm94RnVuY3Rpb24ge1xuICBjb25zdCBzdWJtaXQgPSB1c2VTdWJtaXQoKTtcblxuICByZXR1cm4gdXNlQ2FsbGJhY2s8U3VibWl0VGV4dEJveEZ1bmN0aW9uPihcbiAgICAoc2V0Rm9jdXM/OiBmYWxzZSB8ICdzZW5kQm94JyB8ICdzZW5kQm94V2l0aG91dEtleWJvYXJkJykgPT4gc3VibWl0KHsgc2V0Rm9jdXM6IHNldEZvY3VzIHx8IHVuZGVmaW5lZCB9KSxcbiAgICBbc3VibWl0XVxuICApO1xufVxuXG5mdW5jdGlvbiB1c2VUZXh0Qm94VmFsdWUoKTogW1xuICBzdHJpbmcsXG4gIChcbiAgICB0ZXh0Qm94VmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IHNlbGVjdGlvbkVuZDogbnVtYmVyOyBzZWxlY3Rpb25TdGFydDogbnVtYmVyIH1cbiAgKSA9PiB7IHNlbGVjdGlvbkVuZDogbnVtYmVyOyBzZWxlY3Rpb25TdGFydDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH1cbl0ge1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVNlbmRCb3hWYWx1ZSgpO1xuICBjb25zdCByZXBsYWNlRW1vdGljb24gPSB1c2VSZXBsYWNlRW1vdGljb24oKTtcbiAgY29uc3Qgc3RvcERpY3RhdGUgPSB1c2VTdG9wRGljdGF0ZSgpO1xuXG4gIGNvbnN0IHNldHRlciA9IHVzZUNhbGxiYWNrPFxuICAgIChcbiAgICAgIG5leHRWYWx1ZTogc3RyaW5nLFxuICAgICAgb3B0aW9ucz86IHsgc2VsZWN0aW9uRW5kOiBudW1iZXI7IHNlbGVjdGlvblN0YXJ0OiBudW1iZXIgfVxuICAgICkgPT4ge1xuICAgICAgc2VsZWN0aW9uRW5kOiBudW1iZXI7XG4gICAgICBzZWxlY3Rpb25TdGFydDogbnVtYmVyO1xuICAgICAgdmFsdWU6IHN0cmluZztcbiAgICB9XG4gID4oXG4gICAgKG5leHRWYWx1ZSwgeyBzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0IH0gPSB7IHNlbGVjdGlvbkVuZDogdW5kZWZpbmVkLCBzZWxlY3Rpb25TdGFydDogdW5kZWZpbmVkIH0pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgbmV4dFZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBGaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gdXNlVGV4dEJveFZhbHVlKCkgbXVzdCBiZSBhIHN0cmluZy4nKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ3VycmVudGx5LCB3ZSBjYW5ub3QgZGV0ZWN0IHdoZXRoZXIgdGhlIGNoYW5nZSBpcyBkdWUgdG8gY2xpcGJvYXJkIHBhc3RlIG9yIHByZXNzaW5nIGEga2V5IG9uIHRoZSBrZXlib2FyZC5cbiAgICAgIC8vIFdlIHNob3VsZCBub3QgY2hhbmdlIHRvIGVtb2ppIHdoZW4gdGhlIHVzZXIgaXMgcGFzdGluZyB0ZXh0LlxuICAgICAgLy8gV2Ugd291bGQgYXNzdW1lLCBmb3IgYSBzaW5nbGUgY2hhcmFjdGVyIGFkZGl0aW9uLCB0aGUgdXNlciBtdXN0IGJlIHByZXNzaW5nIGEga2V5LlxuICAgICAgaWYgKG5leHRWYWx1ZS5sZW5ndGggPT09IHZhbHVlLmxlbmd0aCArIDEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNlbGVjdGlvbkVuZDogbmV4dFNlbGVjdGlvbkVuZCxcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydDogbmV4dFNlbGVjdGlvblN0YXJ0LFxuICAgICAgICAgIHZhbHVlOiBuZXh0VmFsdWVXaXRoRW1vamlcbiAgICAgICAgfSA9IHJlcGxhY2VFbW90aWNvbih7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlOiBuZXh0VmFsdWUgfSk7XG5cbiAgICAgICAgc2VsZWN0aW9uRW5kID0gbmV4dFNlbGVjdGlvbkVuZDtcbiAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBuZXh0U2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIG5leHRWYWx1ZSA9IG5leHRWYWx1ZVdpdGhFbW9qaTtcbiAgICAgIH1cblxuICAgICAgc2V0VmFsdWUobmV4dFZhbHVlKTtcbiAgICAgIHN0b3BEaWN0YXRlKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNlbGVjdGlvbkVuZCxcbiAgICAgICAgc2VsZWN0aW9uU3RhcnQsXG4gICAgICAgIHZhbHVlOiBuZXh0VmFsdWVcbiAgICAgIH07XG4gICAgfSxcbiAgICBbcmVwbGFjZUVtb3RpY29uLCBzZXRWYWx1ZSwgc3RvcERpY3RhdGUsIHZhbHVlXVxuICApO1xuXG4gIHJldHVybiBbdmFsdWUsIHNldHRlcl07XG59XG5cbmNvbnN0IFBSRVZFTlRfREVGQVVMVF9IQU5ETEVSID0gZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuY29uc3QgVGV4dEJveCA9ICh7IGNsYXNzTmFtZSB9KSA9PiB7XG4gIGNvbnN0IFssIHNldFNlbmRCb3hdID0gdXNlU2VuZEJveFZhbHVlKCk7XG4gIGNvbnN0IFt7IHNlbmRCb3hUZXh0Qm94OiBzZW5kQm94VGV4dEJveFN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW3sgc2VuZEJveFRleHRXcmFwIH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFt7IHNldFRpbWVvdXQgfV0gPSB1c2VQb255ZmlsbCgpO1xuICBjb25zdCBbZGlzYWJsZWRdID0gdXNlRGlzYWJsZWQoKTtcbiAgY29uc3QgW3RleHRCb3hWYWx1ZSwgc2V0VGV4dEJveFZhbHVlXSA9IHVzZVRleHRCb3hWYWx1ZSgpO1xuICBjb25zdCBpbnB1dEVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTElucHV0RWxlbWVudCAmIEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gdXNlUmVmKCk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IHBsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgcHJldklucHV0U3RhdGVSZWY6IE11dGFibGVSZWZPYmplY3Q8e1xuICAgIHNlbGVjdGlvbkVuZDogbnVtYmVyO1xuICAgIHNlbGVjdGlvblN0YXJ0OiBudW1iZXI7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgfT4gPSB1c2VSZWYoKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcbiAgY29uc3Qgc2Nyb2xsRG93biA9IHVzZVNjcm9sbERvd24oKTtcbiAgY29uc3Qgc2Nyb2xsVXAgPSB1c2VTY3JvbGxVcCgpO1xuICBjb25zdCBzdWJtaXRUZXh0Qm94ID0gdXNlVGV4dEJveFN1Ym1pdCgpO1xuICBjb25zdCB1bmRvU3RhY2tSZWYgPSB1c2VSZWYoW10pO1xuXG4gIGNvbnN0IHNlbmRCb3hTdHJpbmcgPSBsb2NhbGl6ZSgnVEVYVF9JTlBVVF9BTFQnKTtcbiAgY29uc3QgdHlwZVlvdXJNZXNzYWdlU3RyaW5nID0gbG9jYWxpemUoJ1RFWFRfSU5QVVRfUExBQ0VIT0xERVInKTtcblxuICBjb25zdCByZW1lbWJlcklucHV0U3RhdGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgY3VycmVudDogeyBzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0LCB2YWx1ZSB9XG4gICAgfSA9IGlucHV0RWxlbWVudFJlZjtcblxuICAgIHByZXZJbnB1dFN0YXRlUmVmLmN1cnJlbnQgPSB7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH07XG4gIH0sIFtpbnB1dEVsZW1lbnRSZWYsIHByZXZJbnB1dFN0YXRlUmVmXSk7XG5cbiAgLy8gVGhpcyBpcyBmb3IgVHlwZUZvY3VzU2luay4gV2hlbiB0aGUgZm9jdXMgaW4gb24gdGhlIHNjcmlwdCwgdGhlbiBzdGFydGluZyBwcmVzcyBcImFcIiwgd2l0aG91dCB0aGlzIGxpbmUsIGl0IHdvdWxkIGNhdXNlIGVycm9ycy5cbiAgLy8gV2UgY2FsbCByZW1lbWJlcklucHV0U3RhdGUoKSB3aGVuIFwib25Gb2N1c1wiIGV2ZW50IGlzIGZpcmVkLCBidXQgc2luY2UgdGhpcyBpcyBmcm9tIFR5cGVGb2N1c1NpbmssIHdlIGFyZSBub3QgYWJsZSB0byByZWNlaXZlIFwib25Gb2N1c1wiIGV2ZW50IGJlZm9yZSBpdCBoYXBwZW4uXG4gIHVzZUVmZmVjdChyZW1lbWJlcklucHV0U3RhdGUsIFtyZW1lbWJlcklucHV0U3RhdGVdKTtcblxuICAvLyBUaGlzIGlzIGZvciBtb3ZpbmcgdGhlIHNlbGVjdGlvbiB3aGlsZSBzZXR0aW5nIHRoZSBzZW5kIGJveCB2YWx1ZS5cbiAgLy8gSWYgd2Ugb25seSB1c2Ugc2V0U2VuZEJveCwgd2Ugd2lsbCBuZWVkIHRvIHdhaXQgZm9yIHRoZSBuZXh0IHJlbmRlciBjeWNsZSB0byBnZXQgdGhlIHZhbHVlIGluLCBiZWZvcmUgd2UgY2FuIHNldCBzZWxlY3Rpb25FbmQvU3RhcnQuXG4gIGNvbnN0IHNldFNlbGVjdGlvblJhbmdlQW5kVmFsdWUgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0LCB2YWx1ZSB9KSA9PiB7XG4gICAgICBpZiAoaW5wdXRFbGVtZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBzZXQgdGhlIHZhbHVlLCBiZWZvcmUgc2VsZWN0aW9uU3RhcnQvc2VsZWN0aW9uRW5kLlxuICAgICAgICBpbnB1dEVsZW1lbnRSZWYuY3VycmVudC52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlucHV0RWxlbWVudFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGlucHV0RWxlbWVudFJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZDtcbiAgICAgIH1cblxuICAgICAgc2V0U2VuZEJveCh2YWx1ZSk7XG4gICAgfSxcbiAgICBbaW5wdXRFbGVtZW50UmVmLCBzZXRTZW5kQm94XVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgdGFyZ2V0OiB7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH1cbiAgICAgIH0gPSBldmVudDtcblxuICAgICAgaWYgKHBsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgdW5kb1N0YWNrUmVmLmN1cnJlbnQucHVzaCh7IC4uLnByZXZJbnB1dFN0YXRlUmVmLmN1cnJlbnQgfSk7XG5cbiAgICAgICAgcGxhY2VDaGVja3BvaW50T25DaGFuZ2VSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXh0SW5wdXRTdGF0ZSA9IHNldFRleHRCb3hWYWx1ZSh2YWx1ZSwgeyBzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0IH0pO1xuXG4gICAgICAvLyBJZiBhbiBlbW90aWNvbiBpcyBjb252ZXJ0ZWQgdG8gZW1vamksIHBsYWNlIGFub3RoZXIgY2hlY2twb2ludC5cbiAgICAgIGlmIChuZXh0SW5wdXRTdGF0ZS52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgdW5kb1N0YWNrUmVmLmN1cnJlbnQucHVzaCh7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH0pO1xuXG4gICAgICAgIHBsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICAgIHNldFNlbGVjdGlvblJhbmdlQW5kVmFsdWUobmV4dElucHV0U3RhdGUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3BsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLCBwcmV2SW5wdXRTdGF0ZVJlZiwgc2V0U2VsZWN0aW9uUmFuZ2VBbmRWYWx1ZSwgc2V0VGV4dEJveFZhbHVlLCB1bmRvU3RhY2tSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmVtZW1iZXJJbnB1dFN0YXRlKCk7XG5cbiAgICBwbGFjZUNoZWNrcG9pbnRPbkNoYW5nZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgfSwgW3BsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLCByZW1lbWJlcklucHV0U3RhdGVdKTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBjdHJsS2V5LCBrZXksIG1ldGFLZXkgfSA9IGV2ZW50O1xuXG4gICAgICBpZiAoKGN0cmxLZXkgfHwgbWV0YUtleSkgJiYgKGtleSA9PT0gJ1onIHx8IGtleSA9PT0gJ3onKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IHBvcHBlZElucHV0U3RhdGUgPSB1bmRvU3RhY2tSZWYuY3VycmVudC5wb3AoKTtcblxuICAgICAgICBpZiAocG9wcGVkSW5wdXRTdGF0ZSkge1xuICAgICAgICAgIHByZXZJbnB1dFN0YXRlUmVmLmN1cnJlbnQgPSB7IC4uLnBvcHBlZElucHV0U3RhdGUgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2SW5wdXRTdGF0ZVJlZi5jdXJyZW50ID0geyBzZWxlY3Rpb25FbmQ6IDAsIHNlbGVjdGlvblN0YXJ0OiAwLCB2YWx1ZTogJycgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFNlbGVjdGlvblJhbmdlQW5kVmFsdWUocHJldklucHV0U3RhdGVSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcHJldklucHV0U3RhdGVSZWYsIHNldFNlbGVjdGlvblJhbmdlQW5kVmFsdWUsIHVuZG9TdGFja1JlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVLZXlQcmVzcyA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsga2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XG5cbiAgICAgIGlmIChrZXkgPT09ICdFbnRlcicgJiYgIXNoaWZ0S2V5KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgLy8gSWYgdGV4dCBib3ggaXMgc3VibWl0dGVkLCBmb2N1cyBvbiB0aGUgc2VuZCBib3hcbiAgICAgICAgc3VibWl0VGV4dEJveCgnc2VuZEJveCcpO1xuXG4gICAgICAgIC8vIEFmdGVyIHN1Ym1pdCwgd2Ugd2lsbCBjbGVhciB0aGUgdW5kbyBzdGFjay5cbiAgICAgICAgdW5kb1N0YWNrUmVmLmN1cnJlbnQgPSBbXTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzdWJtaXRUZXh0Qm94LCB1bmRvU3RhY2tSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlQ2FsbGJhY2s8UmVhY3RFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+PihcbiAgICAoeyBjdXJyZW50VGFyZ2V0OiB7IHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIHZhbHVlIH0gfSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSBwcmV2SW5wdXRTdGF0ZVJlZi5jdXJyZW50LnZhbHVlKSB7XG4gICAgICAgIC8vIFdoZW4gY2FyZXQgbW92ZSwgd2Ugc2hvdWxkIHB1c2ggdG8gdW5kbyBzdGFjayBvbiBjaGFuZ2UuXG4gICAgICAgIHBsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwcmV2SW5wdXRTdGF0ZVJlZi5jdXJyZW50ID0geyBzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0LCB2YWx1ZSB9O1xuICAgIH0sXG4gICAgW3BsYWNlQ2hlY2twb2ludE9uQ2hhbmdlUmVmLCBwcmV2SW5wdXRTdGF0ZVJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAvLyBDb25zaWRlciBjbGVhcmluZyB0aGUgc2VuZCBib3ggb25seSBhZnRlciB3ZSByZWNlaXZlZCBQT1NUX0FDVElWSVRZX1BFTkRJTkdcbiAgICAgIC8vIEUuZy4gaWYgdGhlIGNvbm5lY3Rpb24gaXMgYmFkLCBzZW5kaW5nIHRoZSBtZXNzYWdlIGVzc2VudGlhbGx5IGRvIG5vdGhpbmcgYnV0IGp1c3QgY2xlYXJpbmcgdGhlIHNlbmQgYm94XG4gICAgICBzdWJtaXRUZXh0Qm94KCk7XG5cbiAgICAgIC8vIEFmdGVyIHN1Ym1pdCwgd2Ugd2lsbCBjbGVhciB0aGUgdW5kbyBzdGFjay5cbiAgICAgIHVuZG9TdGFja1JlZi5jdXJyZW50ID0gW107XG4gICAgfSxcbiAgICBbc3VibWl0VGV4dEJveCwgdW5kb1N0YWNrUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd25DYXB0dXJlID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBjdHJsS2V5LCBtZXRhS2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XG5cbiAgICAgIGlmIChjdHJsS2V5IHx8IG1ldGFLZXkgfHwgc2hpZnRLZXkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBOYXZpZ2FibGUgZXZlbnQgbWVhbnMgdGhlIGVuZC11c2VyIGlzIGZvY3VzaW5nIG9uIGFuIGlucHV0dGFibGUgZWxlbWVudCwgYnV0IGl0IGlzIG9rYXkgdG8gY2FwdHVyZSB0aGUgYXJyb3cga2V5cy5cbiAgICAgIGlmIChuYXZpZ2FibGVFdmVudChldmVudCkpIHtcbiAgICAgICAgbGV0IGhhbmRsZWQgPSB0cnVlO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgIHNjcm9sbERvd24oeyBkaXNwbGFjZW1lbnQ6IEluZmluaXR5IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICAgIHNjcm9sbFVwKHsgZGlzcGxhY2VtZW50OiBJbmZpbml0eSB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgICAgc2Nyb2xsRG93bigpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgICAgc2Nyb2xsVXAoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGhhbmRsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbc2Nyb2xsRG93biwgc2Nyb2xsVXBdXG4gICk7XG5cbiAgY29uc3QgZm9jdXNDYWxsYmFjayA9IHVzZUNhbGxiYWNrPChvcHRpb25zPzogeyBub0tleWJvYXJkPzogYm9vbGVhbiB9KSA9PiB2b2lkPihcbiAgICAoeyBub0tleWJvYXJkIH0gPSB7fSkgPT4ge1xuICAgICAgY29uc3QgeyBjdXJyZW50IH0gPSBpbnB1dEVsZW1lbnRSZWY7XG5cbiAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgIC8vIFRoZSBcImRpc2FibGUgc29mdCBrZXlib2FyZCBvbiBtb2JpbGUgZGV2aWNlc1wiIGxvZ2ljIHdpbGwgbm90IHdvcmsgb24gSUUxMS4gSXQgd2lsbCBjYXVzZSB0aGUgPGlucHV0PiB0byBiZWNvbWUgcmVhZC1vbmx5IHVudGlsIG5leHQgZm9jdXMuXG4gICAgICAgIC8vIFRodXMsIG5vIG1vYmlsZSBkZXZpY2VzIGNhcnJ5IElFMTEgc28gd2UgZG9uJ3QgbmVlZCB0byBleHBsaWNpdGx5IGRpc2FibGUgc29mdCBrZXlib2FyZCBvbiBJRTExLlxuICAgICAgICAvLyBTZWUgIzM3NTcgZm9yIHJlcHJvIGFuZCBkZXRhaWxzLlxuICAgICAgICBpZiAobm9LZXlib2FyZCAmJiAhaWUxMSkge1xuICAgICAgICAgIC8vIFRvIG5vdCBhY3RpdmF0ZSB0aGUgdmlydHVhbCBrZXlib2FyZCB3aGlsZSBjaGFuZ2luZyBmb2N1cyB0byBhbiBpbnB1dCwgd2Ugd2lsbCB0ZW1wb3JhcmlseSBzZXQgaXQgYXMgcmVhZC1vbmx5IGFuZCBmbGlwIGl0IGJhY2suXG4gICAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzYxMDc1OC9wcmV2ZW50LWlwaG9uZS1kZWZhdWx0LWtleWJvYXJkLXdoZW4tZm9jdXNpbmctYW4taW5wdXQvNzYxMDkyM1xuICAgICAgICAgIGNvbnN0IHJlYWRPbmx5ID0gY3VycmVudC5nZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG5cbiAgICAgICAgICBjdXJyZW50LnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCAncmVhZG9ubHknKTtcblxuICAgICAgICAgIC8vIFRPRE86IFtQMl0gV2Ugc2hvdWxkIHVwZGF0ZSB0aGlzIGxvZ2ljIHRvIGhhbmRsZSBxdWlja2x5LXN1Y2Nlc3NpdmUgYGZvY3VzQ2FsbGJhY2tgLlxuICAgICAgICAgIC8vICAgICAgIElmIGEgc3VjY2VlZGluZyBgZm9jdXNDYWxsYmFja2AgaXMgYmVpbmcgY2FsbGVkLCB0aGUgYHNldFRpbWVvdXRgIHNob3VsZCBydW4gaW1tZWRpYXRlbHkuXG4gICAgICAgICAgLy8gICAgICAgT3IgdGhlIHNlY29uZCBgZm9jdXNDYWxsYmFja2Agc2hvdWxkIG5vdCBzZXQgYHJlYWRvbmx5YCB0byBgdHJ1ZWAuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IGlucHV0RWxlbWVudFJlZjtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICByZWFkT25seSA/IGN1cnJlbnQuc2V0QXR0cmlidXRlKCdyZWFkb25seScsIHJlYWRPbmx5KSA6IGN1cnJlbnQucmVtb3ZlQXR0cmlidXRlKCdyZWFkb25seScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2lucHV0RWxlbWVudFJlZiwgc2V0VGltZW91dF1cbiAgKTtcblxuICB1c2VSZWdpc3RlckZvY3VzU2VuZEJveChmb2N1c0NhbGxiYWNrKTtcblxuICByZXR1cm4gKFxuICAgIDxmb3JtXG4gICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX3NlbmQtYm94LXRleHQtYm94JyxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc2VuZEJveFRleHRCb3hTdHlsZVNldCArICcnLFxuICAgICAgICAoY2xhc3NOYW1lIHx8ICcnKSArICcnXG4gICAgICApfVxuICAgICAgb25TdWJtaXQ9e2Rpc2FibGVkID8gUFJFVkVOVF9ERUZBVUxUX0hBTkRMRVIgOiBoYW5kbGVTdWJtaXR9XG4gICAgPlxuICAgICAgeyFzZW5kQm94VGV4dFdyYXAgPyAoXG4gICAgICAgIDxBY2Nlc3NpYmxlSW5wdXRUZXh0XG4gICAgICAgICAgYXJpYS1sYWJlbD17c2VuZEJveFN0cmluZ31cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveF9faW5wdXRcIlxuICAgICAgICAgIGRhdGEtaWQ9XCJ3ZWJjaGF0LXNlbmRib3gtaW5wdXRcIlxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBlbnRlcktleUhpbnQ9XCJzZW5kXCJcbiAgICAgICAgICBpbnB1dE1vZGU9XCJ0ZXh0XCJcbiAgICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVGb2N1c31cbiAgICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvbktleURvd25DYXB0dXJlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUtleURvd25DYXB0dXJlfVxuICAgICAgICAgIG9uS2V5UHJlc3M9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlS2V5UHJlc3N9XG4gICAgICAgICAgb25TZWxlY3Q9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlU2VsZWN0fVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0eXBlWW91ck1lc3NhZ2VTdHJpbmd9XG4gICAgICAgICAgcmVhZE9ubHk9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlZj17aW5wdXRFbGVtZW50UmVmfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICB2YWx1ZT17dGV4dEJveFZhbHVlfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPEF1dG9SZXNpemVUZXh0QXJlYVxuICAgICAgICAgIGFyaWEtbGFiZWw9e3NlbmRCb3hTdHJpbmd9XG4gICAgICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fc2VuZC1ib3gtdGV4dC1ib3hfX3RleHQtYXJlYVwiXG4gICAgICAgICAgZGF0YS1pZD1cIndlYmNoYXQtc2VuZGJveC1pbnB1dFwiXG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGVudGVyS2V5SGludD1cInNlbmRcIlxuICAgICAgICAgIGlucHV0TW9kZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUNoYW5nZX1cbiAgICAgICAgICBvbkZvY3VzPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUZvY3VzfVxuICAgICAgICAgIG9uS2V5RG93bj17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVLZXlEb3dufVxuICAgICAgICAgIG9uS2V5RG93bkNhcHR1cmU9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogaGFuZGxlS2V5RG93bkNhcHR1cmV9XG4gICAgICAgICAgb25LZXlQcmVzcz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVLZXlQcmVzc31cbiAgICAgICAgICBvblNlbGVjdD17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVTZWxlY3R9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3R5cGVZb3VyTWVzc2FnZVN0cmluZ31cbiAgICAgICAgICByZWFkT25seT17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVmPXtpbnB1dEVsZW1lbnRSZWZ9XG4gICAgICAgICAgcm93cz17MX1cbiAgICAgICAgICB0ZXh0QXJlYUNsYXNzTmFtZT1cIndlYmNoYXRfX3NlbmQtYm94LXRleHQtYm94X19odG1sLXRleHQtYXJlYVwiXG4gICAgICAgICAgdmFsdWU9e3RleHRCb3hWYWx1ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7ZGlzYWJsZWQgJiYgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zZW5kLWJveC10ZXh0LWJveF9fZ2xhc3NcIiAvPn1cbiAgICA8L2Zvcm0+XG4gICk7XG59O1xuXG5UZXh0Qm94LmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJ1xufTtcblxuVGV4dEJveC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEJveDtcblxuZXhwb3J0IHsgY29ubmVjdFNlbmRUZXh0Qm94LCB1c2VUZXh0Qm94U3VibWl0LCB1c2VUZXh0Qm94VmFsdWUgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFRQSxXQUFSLEdBQXFHQyw2QkFBckcsQ0FBUUQsV0FBUjtBQUFBLElBQXFCRSxZQUFyQixHQUFxR0QsNkJBQXJHLENBQXFCQyxZQUFyQjtBQUFBLElBQW1DQyxXQUFuQyxHQUFxR0YsNkJBQXJHLENBQW1DRSxXQUFuQztBQUFBLElBQWdEQyxlQUFoRCxHQUFxR0gsNkJBQXJHLENBQWdERyxlQUFoRDtBQUFBLElBQWlFQyxjQUFqRSxHQUFxR0osNkJBQXJHLENBQWlFSSxjQUFqRTtBQUFBLElBQWlGQyxlQUFqRixHQUFxR0wsNkJBQXJHLENBQWlGSyxlQUFqRjtBQUVBLElBQU1DLFVBQVUsR0FBRztFQUNqQixnQ0FBZ0M7SUFDOUJDLE9BQU8sRUFBRSxNQURxQjtJQUc5QixrRkFBa0Y7TUFDaEZDLElBQUksRUFBRTtJQUQwRTtFQUhwRDtBQURmLENBQW5COztBQVVBLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUI7RUFBQSxrQ0FBSUMsU0FBSjtJQUFJQSxTQUFKO0VBQUE7O0VBQUEsT0FDekJDLHlCQUFBLGdCQUNFO0lBQUEsSUFBR0MsUUFBSCxRQUFHQSxRQUFIO0lBQUEsSUFBYUMsWUFBYixRQUFhQSxZQUFiO0lBQUEsSUFBMkJDLFFBQTNCLFFBQTJCQSxRQUEzQjtJQUFBLElBQXFDQyxXQUFyQyxRQUFxQ0EsV0FBckM7SUFBQSxJQUFrREMsWUFBbEQsUUFBa0RBLFlBQWxEO0lBQUEsSUFBZ0VDLFVBQWhFLFFBQWdFQSxVQUFoRTtJQUFBLElBQTRFQyxXQUE1RSxRQUE0RUEs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
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = useForceRenderAtInterval;
7
7
 
8
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
9
+
8
10
  var _react = require("react");
9
11
 
10
12
  var _mathRandom = _interopRequireDefault(require("math-random"));
@@ -25,18 +27,28 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
25
27
 
26
28
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
29
 
28
- // The `nextTimer` function calculates the next absolute time that the timer should be fired based on the origin (original time received), interval, and current time.
30
+ var usePonyfill = _botframeworkWebchatApi.hooks.usePonyfill; // The `nextTimer` function calculates the next absolute time that the timer should be fired based on the origin (original time received), interval, and current time.
29
31
  // If the origin is t=260, and we are currently at t=1000, nextTimer must return t=60260.
30
32
  // If the origin is t=260, and we are currently at t=60260 (exact landing), we must return t=120260, not t=60260.
31
33
  // This is for fixing bug #2103: https://github.com/microsoft/BotFramework-WebChat/issues/2103.
32
- function nextTimer(origin, interval) {
34
+ // False positive: we are using `Date` as a type.
35
+ // eslint-disable-next-line no-restricted-globals
36
+
37
+ function nextTimer(origin, interval, _ref) {
38
+ var Date = _ref.Date;
33
39
  var time = new Date(origin).getTime();
34
40
  var now = Date.now();
35
41
  return time > now ? time : now + interval - (now - time) % interval;
36
42
  }
37
43
 
38
- function useForceRenderAtInterval(origin, interval, fn) {
39
- var _useState = (0, _react.useState)(nextTimer(origin, interval)),
44
+ function useForceRenderAtInterval( // False positive: we are using `Date` as a type.
45
+ // eslint-disable-next-line no-restricted-globals
46
+ origin, interval, fn) {
47
+ var _usePonyfill = usePonyfill(),
48
+ _usePonyfill2 = _slicedToArray(_usePonyfill, 1),
49
+ ponyfill = _usePonyfill2[0];
50
+
51
+ var _useState = (0, _react.useState)(nextTimer(origin, interval, ponyfill)),
40
52
  _useState2 = _slicedToArray(_useState, 2),
41
53
  timer = _useState2[0],
42
54
  setTimer = _useState2[1];
@@ -47,9 +59,9 @@ function useForceRenderAtInterval(origin, interval, fn) {
47
59
  // Sending the same value to useTimer(), it will not do another schedule because the value did not change.
48
60
  // So, we are adding a bit randomness, so useTimer() should pick up the newer scheduled time.
49
61
 
50
- setTimer(nextTimer(origin, interval) + (0, _mathRandom.default)());
51
- }, [fn, origin, interval]);
62
+ setTimer(nextTimer(origin, interval, ponyfill) + (0, _mathRandom.default)());
63
+ }, [fn, origin, interval, ponyfill]);
52
64
  (0, _useTimer.default)(timer, handler);
53
65
  return [timer, setTimer];
54
66
  }
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuZXh0VGltZXIiLCJvcmlnaW4iLCJpbnRlcnZhbCIsInRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm5vdyIsInVzZUZvcmNlUmVuZGVyQXRJbnRlcnZhbCIsImZuIiwidXNlU3RhdGUiLCJ0aW1lciIsInNldFRpbWVyIiwiaGFuZGxlciIsInVzZUNhbGxiYWNrIiwicmFuZG9tIiwidXNlVGltZXIiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9pbnRlcm5hbC91c2VGb3JjZVJlbmRlckF0SW50ZXJ2YWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHJhbmRvbSBmcm9tICdtYXRoLXJhbmRvbSc7XG5cbmltcG9ydCB1c2VUaW1lciBmcm9tICcuL3VzZVRpbWVyJztcblxuLy8gVGhlIGBuZXh0VGltZXJgIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIG5leHQgYWJzb2x1dGUgdGltZSB0aGF0IHRoZSB0aW1lciBzaG91bGQgYmUgZmlyZWQgYmFzZWQgb24gdGhlIG9yaWdpbiAob3JpZ2luYWwgdGltZSByZWNlaXZlZCksIGludGVydmFsLCBhbmQgY3VycmVudCB0aW1lLlxuLy8gSWYgdGhlIG9yaWdpbiBpcyB0PTI2MCwgYW5kIHdlIGFyZSBjdXJyZW50bHkgYXQgdD0xMDAwLCBuZXh0VGltZXIgbXVzdCByZXR1cm4gdD02MDI2MC5cbi8vIElmIHRoZSBvcmlnaW4gaXMgdD0yNjAsIGFuZCB3ZSBhcmUgY3VycmVudGx5IGF0IHQ9NjAyNjAgKGV4YWN0IGxhbmRpbmcpLCB3ZSBtdXN0IHJldHVybiB0PTEyMDI2MCwgbm90IHQ9NjAyNjAuXG4vLyBUaGlzIGlzIGZvciBmaXhpbmcgYnVnICMyMTAzOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L0JvdEZyYW1ld29yay1XZWJDaGF0L2lzc3Vlcy8yMTAzLlxuXG5mdW5jdGlvbiBuZXh0VGltZXIob3JpZ2luLCBpbnRlcnZhbCkge1xuICBjb25zdCB0aW1lID0gbmV3IERhdGUob3JpZ2luKS5nZXRUaW1lKCk7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIHRpbWUgPiBub3cgPyB0aW1lIDogbm93ICsgaW50ZXJ2YWwgLSAoKG5vdyAtIHRpbWUpICUgaW50ZXJ2YWwpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VGb3JjZVJlbmRlckF0SW50ZXJ2YWwob3JpZ2luLCBpbnRlcnZhbCwgZm4pIHtcbiAgY29uc3QgW3RpbWVyLCBzZXRUaW1lcl0gPSB1c2VTdGF0ZShuZXh0VGltZXIob3JpZ2luLCBpbnRlcnZhbCkpO1xuICBjb25zdCBoYW5kbGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGZuICYmIGZuKCk7XG5cbiAgICAvLyBDaHJvbWUgbWF5IGZpcmUgdGhlIHNldFRpbWVvdXQgY2FsbGJhY2sgMSBtcyBiZWZvcmUgaXRzIG9yaWdpbmFsIHNjaGVkdWxlLlxuICAgIC8vIFRodXMsIHdoZW4gd2UgY2FsY3VsYXRlIHRoZSBcIm5leHRcIiB2YWx1ZSwgaXQgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGJlZm9yZS5cbiAgICAvLyBTZW5kaW5nIHRoZSBzYW1lIHZhbHVlIHRvIHVzZVRpbWVyKCksIGl0IHdpbGwgbm90IGRvIGFub3RoZXIgc2NoZWR1bGUgYmVjYXVzZSB0aGUgdmFsdWUgZGlkIG5vdCBjaGFuZ2UuXG4gICAgLy8gU28sIHdlIGFyZSBhZGRpbmcgYSBiaXQgcmFuZG9tbmVzcywgc28gdXNlVGltZXIoKSBzaG91bGQgcGljayB1cCB0aGUgbmV3ZXIgc2NoZWR1bGVkIHRpbWUuXG5cbiAgICBzZXRUaW1lcihuZXh0VGltZXIob3JpZ2luLCBpbnRlcnZhbCkgKyByYW5kb20oKSk7XG4gIH0sIFtmbiwgb3JpZ2luLCBpbnRlcnZhbF0pO1xuXG4gIHVzZVRpbWVyKHRpbWVyLCBoYW5kbGVyKTtcblxuICByZXR1cm4gW3RpbWVyLCBzZXRUaW1lcl07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsU0FBU0EsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkJDLFFBQTNCLEVBQXFDO0VBQ25DLElBQU1DLElBQUksR0FBRyxJQUFJQyxJQUFKLENBQVNILE1BQVQsRUFBaUJJLE9BQWpCLEVBQWI7RUFDQSxJQUFNQyxHQUFHLEdBQUdGLElBQUksQ0FBQ0UsR0FBTCxFQUFaO0VBRUEsT0FBT0gsSUFBSSxHQUFHRyxHQUFQLEdBQWFILElBQWIsR0FBb0JHLEdBQUcsR0FBR0osUUFBTixHQUFrQixDQUFDSSxHQUFHLEdBQUdILElBQVAsSUFBZUQsUUFBNUQ7QUFDRDs7QUFFYyxTQUFTSyx3QkFBVCxDQUFrQ04sTUFBbEMsRUFBMENDLFFBQTFDLEVBQW9ETSxFQUFwRCxFQUF3RDtFQUNyRSxnQkFBMEIsSUFBQUMsZUFBQSxFQUFTVCxTQUFTLENBQUNDLE1BQUQsRUFBU0MsUUFBVCxDQUFsQixDQUExQjtFQUFBO0VBQUEsSUFBT1EsS0FBUDtFQUFBLElBQWNDLFFBQWQ7O0VBQ0EsSUFBTUMsT0FBTyxHQUFHLElBQUFDLGtCQUFBLEVBQVksWUFBTTtJQUNoQ0wsRUFBRSxJQUFJQSxFQUFFLEVBQVIsQ0FEZ0MsQ0FHaEM7SUFDQTtJQUNBO0lBQ0E7O0lBRUFHLFFBQVEsQ0FBQ1gsU0FBUyxDQUFDQyxNQUFELEVBQVNDLFFBQVQsQ0FBVCxHQUE4QixJQUFBWSxtQkFBQSxHQUEvQixDQUFSO0VBQ0QsQ0FUZSxFQVNiLENBQUNOLEVBQUQsRUFBS1AsTUFBTCxFQUFhQyxRQUFiLENBVGEsQ0FBaEI7RUFXQSxJQUFBYSxpQkFBQSxFQUFTTCxLQUFULEVBQWdCRSxPQUFoQjtFQUVBLE9BQU8sQ0FBQ0YsS0FBRCxFQUFRQyxRQUFSLENBQVA7QUFDRCJ9
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VQb255ZmlsbCIsImhvb2tzIiwibmV4dFRpbWVyIiwib3JpZ2luIiwiaW50ZXJ2YWwiLCJEYXRlIiwidGltZSIsImdldFRpbWUiLCJub3ciLCJ1c2VGb3JjZVJlbmRlckF0SW50ZXJ2YWwiLCJmbiIsInBvbnlmaWxsIiwidXNlU3RhdGUiLCJ0aW1lciIsInNldFRpbWVyIiwiaGFuZGxlciIsInVzZUNhbGxiYWNrIiwicmFuZG9tIiwidXNlVGltZXIiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9pbnRlcm5hbC91c2VGb3JjZVJlbmRlckF0SW50ZXJ2YWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHJhbmRvbSBmcm9tICdtYXRoLXJhbmRvbSc7XG5cbmltcG9ydCB1c2VUaW1lciBmcm9tICcuL3VzZVRpbWVyJztcblxuaW1wb3J0IHR5cGUgeyBEaXNwYXRjaCwgU2V0U3RhdGVBY3Rpb24gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IEdsb2JhbFNjb3BlUG9ueWZpbGwgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuY29uc3QgeyB1c2VQb255ZmlsbCB9ID0gaG9va3M7XG5cbi8vIFRoZSBgbmV4dFRpbWVyYCBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBuZXh0IGFic29sdXRlIHRpbWUgdGhhdCB0aGUgdGltZXIgc2hvdWxkIGJlIGZpcmVkIGJhc2VkIG9uIHRoZSBvcmlnaW4gKG9yaWdpbmFsIHRpbWUgcmVjZWl2ZWQpLCBpbnRlcnZhbCwgYW5kIGN1cnJlbnQgdGltZS5cbi8vIElmIHRoZSBvcmlnaW4gaXMgdD0yNjAsIGFuZCB3ZSBhcmUgY3VycmVudGx5IGF0IHQ9MTAwMCwgbmV4dFRpbWVyIG11c3QgcmV0dXJuIHQ9NjAyNjAuXG4vLyBJZiB0aGUgb3JpZ2luIGlzIHQ9MjYwLCBhbmQgd2UgYXJlIGN1cnJlbnRseSBhdCB0PTYwMjYwIChleGFjdCBsYW5kaW5nKSwgd2UgbXVzdCByZXR1cm4gdD0xMjAyNjAsIG5vdCB0PTYwMjYwLlxuLy8gVGhpcyBpcyBmb3IgZml4aW5nIGJ1ZyAjMjEwMzogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9Cb3RGcmFtZXdvcmstV2ViQ2hhdC9pc3N1ZXMvMjEwMy5cblxuLy8gRmFsc2UgcG9zaXRpdmU6IHdlIGFyZSB1c2luZyBgRGF0ZWAgYXMgYSB0eXBlLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFsc1xuZnVuY3Rpb24gbmV4dFRpbWVyKG9yaWdpbjogRGF0ZSB8IG51bWJlciB8IHN0cmluZywgaW50ZXJ2YWw6IG51bWJlciwgeyBEYXRlIH06IEdsb2JhbFNjb3BlUG9ueWZpbGwpOiBudW1iZXIge1xuICBjb25zdCB0aW1lID0gbmV3IERhdGUob3JpZ2luKS5nZXRUaW1lKCk7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIHRpbWUgPiBub3cgPyB0aW1lIDogbm93ICsgaW50ZXJ2YWwgLSAoKG5vdyAtIHRpbWUpICUgaW50ZXJ2YWwpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VGb3JjZVJlbmRlckF0SW50ZXJ2YWwoXG4gIC8vIEZhbHNlIHBvc2l0aXZlOiB3ZSBhcmUgdXNpbmcgYERhdGVgIGFzIGEgdHlwZS5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFsc1xuICBvcmlnaW46IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsXG4gIGludGVydmFsOiBudW1iZXIsXG4gIGZuOiAoKSA9PiB2b2lkXG4pOiBbbnVtYmVyLCBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxudW1iZXI+Pl0ge1xuICBjb25zdCBbcG9ueWZpbGxdID0gdXNlUG9ueWZpbGwoKTtcbiAgY29uc3QgW3RpbWVyLCBzZXRUaW1lcl0gPSB1c2VTdGF0ZTxudW1iZXI+KG5leHRUaW1lcihvcmlnaW4sIGludGVydmFsLCBwb255ZmlsbCkpO1xuICBjb25zdCBoYW5kbGVyID0gdXNlQ2FsbGJhY2s8KCkgPT4gdm9pZD4oKCkgPT4ge1xuICAgIGZuICYmIGZuKCk7XG5cbiAgICAvLyBDaHJvbWUgbWF5IGZpcmUgdGhlIHNldFRpbWVvdXQgY2FsbGJhY2sgMSBtcyBiZWZvcmUgaXRzIG9yaWdpbmFsIHNjaGVkdWxlLlxuICAgIC8vIFRodXMsIHdoZW4gd2UgY2FsY3VsYXRlIHRoZSBcIm5leHRcIiB2YWx1ZSwgaXQgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGJlZm9yZS5cbiAgICAvLyBTZW5kaW5nIHRoZSBzYW1lIHZhbHVlIHRvIHVzZVRpbWVyKCksIGl0IHdpbGwgbm90IGRvIGFub3RoZXIgc2NoZWR1bGUgYmVjYXVzZSB0aGUgdmFsdWUgZGlkIG5vdCBjaGFuZ2UuXG4gICAgLy8gU28sIHdlIGFyZSBhZGRpbmcgYSBiaXQgcmFuZG9tbmVzcywgc28gdXNlVGltZXIoKSBzaG91bGQgcGljayB1cCB0aGUgbmV3ZXIgc2NoZWR1bGVkIHRpbWUuXG5cbiAgICBzZXRUaW1lcihuZXh0VGltZXIob3JpZ2luLCBpbnRlcnZhbCwgcG9ueWZpbGwpICsgcmFuZG9tKCkpO1xuICB9LCBbZm4sIG9yaWdpbiwgaW50ZXJ2YWwsIHBvbnlmaWxsXSk7XG5cbiAgdXNlVGltZXIodGltZXIsIGhhbmRsZXIpO1xuXG4gIHJldHVybiBbdGltZXIsIHNldFRpbWVyXTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsSUFBUUEsV0FBUixHQUF3QkMsNkJBQXhCLENBQVFELFdBQVIsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7QUFDQSxTQUFTRSxTQUFULENBQW1CQyxNQUFuQixFQUFtREMsUUFBbkQsUUFBNEc7RUFBQSxJQUFyQ0MsSUFBcUMsUUFBckNBLElBQXFDO0VBQzFHLElBQU1DLElBQUksR0FBRyxJQUFJRCxJQUFKLENBQVNGLE1BQVQsRUFBaUJJLE9BQWpCLEVBQWI7RUFDQSxJQUFNQyxHQUFHLEdBQUdILElBQUksQ0FBQ0csR0FBTCxFQUFaO0VBRUEsT0FBT0YsSUFBSSxHQUFHRSxHQUFQLEdBQWFGLElBQWIsR0FBb0JFLEdBQUcsR0FBR0osUUFBTixHQUFrQixDQUFDSSxHQUFHLEdBQUdGLElBQVAsSUFBZUYsUUFBNUQ7QUFDRDs7QUFFYyxTQUFTSyx3QkFBVCxFQUNiO0FBQ0E7QUFDQU4sTUFIYSxFQUliQyxRQUphLEVBS2JNLEVBTGEsRUFNK0I7RUFDNUMsbUJBQW1CVixXQUFXLEVBQTlCO0VBQUE7RUFBQSxJQUFPVyxRQUFQOztFQUNBLGdCQUEwQixJQUFBQyxlQUFBLEVBQWlCVixTQUFTLENBQUNDLE1BQUQsRUFBU0MsUUFBVCxFQUFtQk8sUUFBbkIsQ0FBMUIsQ0FBMUI7RUFBQTtFQUFBLElBQU9FLEtBQVA7RUFBQSxJQUFjQyxRQUFkOztFQUNBLElBQU1DLE9BQU8sR0FBRyxJQUFBQyxrQkFBQSxFQUF3QixZQUFNO0lBQzVDTixFQUFFLElBQUlBLEVBQUUsRUFBUixDQUQ0QyxDQUc1QztJQUNBO0lBQ0E7SUFDQTs7SUFFQUksUUFBUSxDQUFDWixTQUFTLENBQUNDLE1BQUQsRUFBU0MsUUFBVCxFQUFtQk8sUUFBbkIsQ0FBVCxHQUF3QyxJQUFBTSxtQkFBQSxHQUF6QyxDQUFSO0VBQ0QsQ0FUZSxFQVNiLENBQUNQLEVBQUQsRUFBS1AsTUFBTCxFQUFhQyxRQUFiLEVBQXVCTyxRQUF2QixDQVRhLENBQWhCO0VBV0EsSUFBQU8saUJBQUEsRUFBU0wsS0FBVCxFQUFnQkUsT0FBaEI7RUFFQSxPQUFPLENBQUNGLEtBQUQsRUFBUUMsUUFBUixDQUFQO0FBQ0QifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"useObserveFocusVisible.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useObserveFocusVisible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAA2C,MAAM,OAAO,CAAC;AA+O7F,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,MAAM,IAAI,QAqB3G"}
1
+ {"version":3,"file":"useObserveFocusVisible.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useObserveFocusVisible.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,SAAS,EAA2C,MAAM,OAAO,CAAC;AAkP7F,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,MAAM,IAAI,QAqB3G"}
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = useObserveFocusVisible;
7
7
 
8
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
9
+
8
10
  var _react = require("react");
9
11
 
10
12
  var _supportPseudoClass = _interopRequireDefault(require("../../Utils/supportPseudoClass"));
@@ -27,6 +29,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
27
29
 
28
30
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
31
 
32
+ var usePonyfill = _botframeworkWebchatApi.hooks.usePonyfill;
30
33
  var INPUT_TYPES_ALLOW_LIST = ['date', 'datetime-local', 'datetime', 'email', 'month', 'number', 'password', 'search', 'tel', 'text', 'time', 'url', 'week'];
31
34
  /**
32
35
  * Computes whether the given element should automatically trigger the
@@ -76,7 +79,11 @@ function createEventSubscription(target, types, handler) {
76
79
 
77
80
 
78
81
  function useObserveFocusVisibleForLegacyBrowsers(targetRef, onFocusVisibleRef) {
79
- // This polyfill algorithm is adopted from https://github.com/WICG/focus-visible.
82
+ var _usePonyfill = usePonyfill(),
83
+ _usePonyfill2 = _slicedToArray(_usePonyfill, 1),
84
+ Date = _usePonyfill2[0].Date; // This polyfill algorithm is adopted from https://github.com/WICG/focus-visible.
85
+
86
+
80
87
  var blurSinceRef = (0, _react.useRef)(0);
81
88
  var hadKeyboardEventRef = (0, _react.useRef)(true);
82
89
  var hasFocusVisibleRef = (0, _react.useRef)(false);
@@ -119,7 +126,7 @@ function useObserveFocusVisibleForLegacyBrowsers(targetRef, onFocusVisibleRef) {
119
126
  blurSinceRef.current = Date.now();
120
127
  setHasFocusVisible(false);
121
128
  }
122
- }, [blurSinceRef, hasFocusVisibleRef, setHasFocusVisible, targetRef]);
129
+ }, [blurSinceRef, Date, hasFocusVisibleRef, setHasFocusVisible, targetRef]);
123
130
  var handleVisibilityChange = (0, _react.useCallback)(function () {
124
131
  if (document.visibilityState === 'hidden') {
125
132
  // The element is blurred due to "visibilityState" set to "hidden".
@@ -131,7 +138,7 @@ function useObserveFocusVisibleForLegacyBrowsers(targetRef, onFocusVisibleRef) {
131
138
 
132
139
  eventSubscription.resume();
133
140
  }
134
- }, [blurSinceRef, eventSubscription, hadKeyboardEventRef]);
141
+ }, [blurSinceRef, Date, eventSubscription, hadKeyboardEventRef]);
135
142
  (0, _react.useEffect)(function () {
136
143
  document.addEventListener('keydown', handleKeyDown, true);
137
144
  document.addEventListener('mousedown', handlePointerDown, true);
@@ -209,4 +216,4 @@ function useObserveFocusVisible(targetRef, onFocusVisible) {
209
216
  useObserveFocusVisibleForLegacyBrowsers(targetRef, onFocusVisibleRef);
210
217
  }
211
218
  }
212
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlBVVF9UWVBFU19BTExPV19MSVNUIiwiZm9jdXNUcmlnZ2Vyc0tleWJvYXJkTW9kYWxpdHkiLCJlbCIsImlzQ29udGVudEVkaXRhYmxlIiwicmVhZE9ubHkiLCJ0YWdOYW1lIiwidHlwZSIsImluY2x1ZGVzIiwiY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24iLCJ0YXJnZXQiLCJ0eXBlcyIsImhhbmRsZXIiLCJzdWJzY3JpYmVkIiwic3Vic2NyaWJlIiwiZm9yRWFjaCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ1bnN1YnNjcmliZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ1bmRlZmluZWQiLCJwYXVzZSIsInJlc3VtZSIsInVzZU9ic2VydmVGb2N1c1Zpc2libGVGb3JMZWdhY3lCcm93c2VycyIsInRhcmdldFJlZiIsIm9uRm9jdXNWaXNpYmxlUmVmIiwiYmx1clNpbmNlUmVmIiwidXNlUmVmIiwiaGFkS2V5Ym9hcmRFdmVudFJlZiIsImhhc0ZvY3VzVmlzaWJsZVJlZiIsImV2ZW50U3Vic2NyaXB0aW9uIiwidXNlTWVtbyIsImRvY3VtZW50IiwiZXZlbnQiLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwiY3VycmVudCIsInNldEhhc0ZvY3VzVmlzaWJsZSIsInVzZUNhbGxiYWNrIiwibmV4dEhhc0ZvY3VzVmlzaWJsZSIsImhhbmRsZUtleURvd24iLCJhbHRLZXkiLCJjdHJsS2V5IiwibWV0YUtleSIsImhhbmRsZVBvaW50ZXJEb3duIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVCbHVyIiwiRGF0ZSIsIm5vdyIsImhhbmRsZVZpc2liaWxpdHlDaGFuZ2UiLCJ2aXNpYmlsaXR5U3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VPYnNlcnZlRm9jdXNWaXNpYmxlRm9yTW9kZXJuQnJvd3NlcnMiLCJtYXRjaGVzIiwiY2FsbCIsInVzZU9ic2VydmVGb2N1c1Zpc2libGUiLCJvbkZvY3VzVmlzaWJsZSIsInVzZU5vbmNlIiwibm9uY2UiLCJ1c2VWYWx1ZVJlZiIsIm5vbmNlUmVmIiwic3VwcG9ydEZvY3VzVmlzaWJsZSIsInN1cHBvcnRQc2V1ZG9DbGFzcyJdLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL2ludGVybmFsL3VzZU9ic2VydmVGb2N1c1Zpc2libGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0YWJsZVJlZk9iamVjdCwgUmVmT2JqZWN0LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBzdXBwb3J0UHNldWRvQ2xhc3MgZnJvbSAnLi4vLi4vVXRpbHMvc3VwcG9ydFBzZXVkb0NsYXNzJztcbmltcG9ydCB1c2VOb25jZSBmcm9tICcuL3VzZU5vbmNlJztcbmltcG9ydCB1c2VWYWx1ZVJlZiBmcm9tICcuL3VzZVZhbHVlUmVmJztcblxuY29uc3QgSU5QVVRfVFlQRVNfQUxMT1dfTElTVCA9IFtcbiAgJ2RhdGUnLFxuICAnZGF0ZXRpbWUtbG9jYWwnLFxuICAnZGF0ZXRpbWUnLFxuICAnZW1haWwnLFxuICAnbW9udGgnLFxuICAnbnVtYmVyJyxcbiAgJ3Bhc3N3b3JkJyxcbiAgJ3NlYXJjaCcsXG4gICd0ZWwnLFxuICAndGV4dCcsXG4gICd0aW1lJyxcbiAgJ3VybCcsXG4gICd3ZWVrJ1xuXTtcblxuLyoqXG4gKiBDb21wdXRlcyB3aGV0aGVyIHRoZSBnaXZlbiBlbGVtZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgdGhlXG4gKiBgZm9jdXMtdmlzaWJsZWAgY2xhc3MgYmVpbmcgYWRkZWQsIGkuZS4gd2hldGhlciBpdCBzaG91bGQgYWx3YXlzIG1hdGNoXG4gKiBgOmZvY3VzLXZpc2libGVgIHdoZW4gZm9jdXNlZC5cbiAqIEBwYXJhbSB7RWxlbWVudH0gZWxcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGZvY3VzVHJpZ2dlcnNLZXlib2FyZE1vZGFsaXR5KGVsOiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCk6IGJvb2xlYW4ge1xuICBjb25zdCB7IGlzQ29udGVudEVkaXRhYmxlLCByZWFkT25seSwgdGFnTmFtZSwgdHlwZSB9ID0gZWw7XG5cbiAgcmV0dXJuIChcbiAgICAodGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiBJTlBVVF9UWVBFU19BTExPV19MSVNULmluY2x1ZGVzKHR5cGUpICYmICFyZWFkT25seSkgfHxcbiAgICAodGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyAmJiAhcmVhZE9ubHkpIHx8XG4gICAgaXNDb250ZW50RWRpdGFibGVcbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24oXG4gIHRhcmdldDogRWxlbWVudCB8IE5vZGUsXG4gIHR5cGVzOiBzdHJpbmdbXSxcbiAgaGFuZGxlcjogKGV2ZW50OiBFdmVudCkgPT4gdm9pZFxuKToge1xuICBwYXVzZTogKCkgPT4gdm9pZDtcbiAgcmVzdW1lOiAoKSA9PiB2b2lkO1xufSB7XG4gIGxldCBzdWJzY3JpYmVkOiB0cnVlO1xuXG4gIGNvbnN0IHN1YnNjcmliZSA9ICgpID0+IHtcbiAgICBpZiAoIXN1YnNjcmliZWQpIHtcbiAgICAgIHR5cGVzLmZvckVhY2godHlwZSA9PiB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKSk7XG4gICAgICBzdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdW5zdWJzY3JpYmUgPSAoKSA9PiB7XG4gICAgaWYgKHN1YnNjcmliZWQpIHtcbiAgICAgIHR5cGVzLmZvckVhY2godHlwZSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKSk7XG4gICAgICBzdWJzY3JpYmVkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHBhdXNlOiB1bnN1YnNjcmliZSxcbiAgICByZXN1bWU6IHN1YnNjcmliZVxuICB9O1xufVxuXG4vLyBUT0RPOiBBZGQgdGVzdHNcbi8vICAgICAgIDEuIEZvY3VzIHZpYSBrZXlib2FyZCB2cy4gbW91c2Vcbi8vICAgICAgIDIuIEZvY3VzIHZpYSBrZXlib2FyZCwgc3dpdGNoIGFwcCwgc3dpdGNoIGJhY2sgKGV4cGVjdCB0byBnZXQgYW5vdGhlciBmb2N1c1Zpc2libGUgYWZ0ZXIgc3dpdGNoIGJhY2spXG4vLyAgICAgICAzLiBGb2N1cyB2aWEgbW91c2UsIHN3aXRjaCBhcHAsIHN3aXRjaCBiYWNrIChkbyBOT1QgZXhwZWN0IHRvIGdldCBhbm90aGVyIGZvY3VzVmlzaWJsZSBhZnRlciBzd2l0Y2ggYmFjaylcbmZ1bmN0aW9uIHVzZU9ic2VydmVGb2N1c1Zpc2libGVGb3JMZWdhY3lCcm93c2VycyhcbiAgdGFyZ2V0UmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+LFxuICBvbkZvY3VzVmlzaWJsZVJlZjogTXV0YWJsZVJlZk9iamVjdDwoKSA9PiB2b2lkPlxuKSB7XG4gIC8vIFRoaXMgcG9seWZpbGwgYWxnb3JpdGhtIGlzIGFkb3B0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9mb2N1cy12aXNpYmxlLlxuICBjb25zdCBibHVyU2luY2VSZWYgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGhhZEtleWJvYXJkRXZlbnRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGhhc0ZvY3VzVmlzaWJsZVJlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgZXZlbnRTdWJzY3JpcHRpb24gPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjcmVhdGVFdmVudFN1YnNjcmlwdGlvbihcbiAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgIFtcbiAgICAgICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgICAgICAnbW91c2Vkb3duJyxcbiAgICAgICAgICAnbW91c2V1cCcsXG4gICAgICAgICAgJ3BvaW50ZXJtb3ZlJyxcbiAgICAgICAgICAncG9pbnRlcmRvd24nLFxuICAgICAgICAgICdwb2ludGVydXAnLFxuICAgICAgICAgICd0b3VjaG1vdmUnLFxuICAgICAgICAgICd0b3VjaHN0YXJ0JyxcbiAgICAgICAgICAndG91Y2hlbmQnXG4gICAgICAgIF0sXG4gICAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkubm9kZU5hbWU/LnRvTG93ZXJDYXNlKCkgIT09ICdodG1sJykge1xuICAgICAgICAgICAgaGFkS2V5Ym9hcmRFdmVudFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBldmVudFN1YnNjcmlwdGlvbi5wYXVzZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICBbaGFkS2V5Ym9hcmRFdmVudFJlZl1cbiAgKTtcblxuICBjb25zdCBzZXRIYXNGb2N1c1Zpc2libGUgPSB1c2VDYWxsYmFjayhcbiAgICBuZXh0SGFzRm9jdXNWaXNpYmxlID0+IHtcbiAgICAgIGlmIChoYXNGb2N1c1Zpc2libGVSZWYuY3VycmVudCAhPT0gbmV4dEhhc0ZvY3VzVmlzaWJsZSkge1xuICAgICAgICBoYXNGb2N1c1Zpc2libGVSZWYuY3VycmVudCA9IG5leHRIYXNGb2N1c1Zpc2libGU7XG4gICAgICAgIG5leHRIYXNGb2N1c1Zpc2libGUgJiYgb25Gb2N1c1Zpc2libGVSZWY/LmN1cnJlbnQoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYXNGb2N1c1Zpc2libGVSZWYsIG9uRm9jdXNWaXNpYmxlUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGFyZ2V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0SGFzRm9jdXNWaXNpYmxlKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBoYWRLZXlib2FyZEV2ZW50UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sXG4gICAgW2hhZEtleWJvYXJkRXZlbnRSZWYsIHNldEhhc0ZvY3VzVmlzaWJsZSwgdGFyZ2V0UmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhhZEtleWJvYXJkRXZlbnRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaGFkS2V5Ym9hcmRFdmVudFJlZl0pO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgdGFyZ2V0IH06IEV2ZW50KSA9PiB7XG4gICAgICB0YXJnZXQgPT09IHRhcmdldFJlZi5jdXJyZW50ICYmXG4gICAgICAgIChoYWRLZXlib2FyZEV2ZW50UmVmLmN1cnJlbnQgfHwgZm9jdXNUcmlnZ2Vyc0tleWJvYXJkTW9kYWxpdHkodGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpKSAmJlxuICAgICAgICBzZXRIYXNGb2N1c1Zpc2libGUodHJ1ZSk7XG4gICAgfSxcbiAgICBbaGFkS2V5Ym9hcmRFdmVudFJlZiwgc2V0SGFzRm9jdXNWaXNpYmxlLCB0YXJnZXRSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50YXJnZXQgPT09IHRhcmdldFJlZi5jdXJyZW50ICYmIGhhc0ZvY3VzVmlzaWJsZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGJsdXJTaW5jZVJlZi5jdXJyZW50ID0gRGF0ZS5ub3coKTtcblxuICAgICAgICBzZXRIYXNGb2N1c1Zpc2libGUoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JsdXJTaW5jZVJlZiwgaGFzRm9jdXNWaXNpYmxlUmVmLCBzZXRIYXNGb2N1c1Zpc2libGUsIHRhcmdldFJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBibHVycmVkIGR1ZSB0byBcInZpc2liaWxpdHlTdGF0ZVwiIHNldCB0byBcImhpZGRlblwiLlxuICAgICAgLy8gMTAwbXMgaXMgcmVmZXJlbmNlZCBmcm9tIHRoZSBXSUNHIHBvbHlmaWxsLlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgIGlmIChEYXRlLm5vdygpIC0gYmx1clNpbmNlUmVmLmN1cnJlbnQgPCAxMDApIHtcbiAgICAgICAgaGFkS2V5Ym9hcmRFdmVudFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgZXZlbnRTdWJzY3JpcHRpb24ucmVzdW1lKCk7XG4gICAgfVxuICB9LCBbYmx1clNpbmNlUmVmLCBldmVudFN1YnNjcmlwdGlvbiwgaGFkS2V5Ym9hcmRFdmVudFJlZl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24sIHRydWUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duLCB0cnVlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duLCB0cnVlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgaGFuZGxlUG9pbnRlckRvd24sIHRydWUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlLCB0cnVlKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSk7XG4gICAgfTtcbiAgfSwgW2hhbmRsZUtleURvd24sIGhhbmRsZVBvaW50ZXJEb3duLCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnQ6IHRhcmdldCB9ID0gdGFyZ2V0UmVmO1xuXG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVCbHVyLCB0cnVlKTtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cywgdHJ1ZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVCbHVyKTtcbiAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcbiAgICB9O1xuXG4gICAgLy8gV2Ugc3BlY2lmaWNhbGx5IGFkZCBcInRhcmdldFJlZi5jdXJyZW50XCIgaGVyZS5cbiAgICAvLyBJZiB0aGUgdGFyZ2V0IGVsZW1lbnQgY2hhbmdlZCwgd2Ugc2hvdWxkIHJlYXR0YWNoIG91ciBldmVudCBsaXN0ZW5lcnMuXG4gIH0sIFtoYW5kbGVCbHVyLCBoYW5kbGVGb2N1cywgdGFyZ2V0UmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBldmVudFN1YnNjcmlwdGlvbi5yZXN1bWUoKTtcblxuICAgIHJldHVybiAoKSA9PiBldmVudFN1YnNjcmlwdGlvbi5wYXVzZSgpO1xuICB9LCBbZXZlbnRTdWJzY3JpcHRpb25dKTtcbn1cblxuZnVuY3Rpb24gdXNlT2JzZXJ2ZUZvY3VzVmlzaWJsZUZvck1vZGVybkJyb3dzZXJzKFxuICB0YXJnZXRSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4sXG4gIG9uRm9jdXNWaXNpYmxlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PCgpID0+IHZvaWQ+XG4pIHtcbiAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50IH0gPSB0YXJnZXRSZWY7XG5cbiAgICBpZiAoXG4gICAgICAvLyBcIm1zTWF0Y2hlc1NlbGVjdG9yXCIgaXMgdmVuZG9yLXByZWZpeGVkIHZlcnNpb24gb2YgXCJtYXRjaGVzXCIuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICAoY3VycmVudC5tYXRjaGVzIHx8IChjdXJyZW50Wydtc01hdGNoZXNTZWxlY3RvciddIGFzIChzZWxlY3Rvcjogc3RyaW5nKSA9PiBib29sZWFuKSkuY2FsbChcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgJzpmb2N1cy12aXNpYmxlJ1xuICAgICAgKVxuICAgICkge1xuICAgICAgb25Gb2N1c1Zpc2libGVSZWY/LmN1cnJlbnQoKTtcbiAgICB9XG4gIH0sIFtvbkZvY3VzVmlzaWJsZVJlZiwgdGFyZ2V0UmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnQ6IHRhcmdldCB9ID0gdGFyZ2V0UmVmO1xuXG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFuZGxlRm9jdXMpO1xuXG4gICAgcmV0dXJuICgpID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcblxuICAgIC8vIFdlIHNwZWNpZmljYWxseSBhZGQgXCJ0YXJnZXRSZWYuY3VycmVudFwiIGhlcmUuXG4gICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGNoYW5nZWQsIHdlIHNob3VsZCByZWF0dGFjaCBvdXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2hhbmRsZUZvY3VzLCB0YXJnZXRSZWYsIHRhcmdldFJlZi5jdXJyZW50XSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU9ic2VydmVGb2N1c1Zpc2libGUodGFyZ2V0UmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+LCBvbkZvY3VzVmlzaWJsZTogKCkgPT4gdm9pZCkge1xuICBjb25zdCBbbm9uY2VdID0gdXNlTm9uY2UoKTtcbiAgY29uc3Qgb25Gb2N1c1Zpc2libGVSZWYgPSB1c2VWYWx1ZVJlZihvbkZvY3VzVmlzaWJsZSk7XG5cbiAgLy8gVGhlIG5vbmNlIGlzIHVzZSBmb3IgYnJvd3NlciBjYXBhYmlsaXRpZXMuIEp1c3QgaW4gY2FzZSB0aGUgXCJub25jZVwiIGhhZCBjaGFuZ2VkIHVuZXhwZWN0ZWRseSwgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgYnJvd3NlciBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuICAvLyBUaHVzLCB3ZSBhcmUgdXNpbmcgYW4gaW5pdGlhbCB2ZXJzaW9uIG9mIFwibm9uY2VcIi4gSW4gY2FzZSB3ZWIgZGV2cyBjaGFuZ2VkIHRoZSBcIm5vbmNlXCIgdG8gYW4gaW52YWxpZCB2YWx1ZSwgd2Ugd29uJ3QgYnJlYWsgcnVsZXMgb2YgaG9va3MgKGFzIHN0YXRlZCBiZWxvdykuXG4gIGNvbnN0IG5vbmNlUmVmID0gdXNlUmVmKG5vbmNlKTtcblxuICAvLyBcIjpmb2N1cy12aXNpYmxlXCIgc2VsZWN0b3IgaXMgc3VwcG9ydGVkIGZyb20gQ2hyb21lL0VkZ2UgODYrIGFuZCBub3Qgc3VwcG9ydGVkIGluIElFMTEgb3IgU2FmYXJpLlxuICAvLyBEb2luZyBhIGNhcGFiaWxpdHkgY2hlY2sgb24gcHNldWRvIGNsYXNzZXMgcmVxdWlyZXMgaW5qZWN0aW5nIGEgc3R5bGVzaGVldCwgdGh1cyBub25jZSBpcyBuZWVkZWQuXG4gIGNvbnN0IHN1cHBvcnRGb2N1c1Zpc2libGUgPSB1c2VNZW1vKCgpID0+IHN1cHBvcnRQc2V1ZG9DbGFzcygnOmZvY3VzLXZpc2libGUnLCBub25jZVJlZi5jdXJyZW50KSwgW25vbmNlUmVmXSk7XG5cbiAgLy8gU2luY2UgXCJzdXBwb3J0UHNldWRvQ2xhc3NcIiBpcyBhIGJyb3dzZXIgY2FwYWJpbGl0eSwgdGhlIHJlc3VsdCBzaG91bGQgYmUgY29uc3RhbnQgZHVyaW5nIHRoZSBwYWdlIGxpZmV0aW1lLlxuICAvLyBUaHVzLCBydW5uaW5nIGhvb2tzIGNvbmRpdGlvbmFsbHkgaXMgb2theSBoZXJlLlxuICBpZiAoc3VwcG9ydEZvY3VzVmlzaWJsZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZU9ic2VydmVGb2N1c1Zpc2libGVGb3JNb2Rlcm5Ccm93c2Vycyh0YXJnZXRSZWYsIG9uRm9jdXNWaXNpYmxlUmVmKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VPYnNlcnZlRm9jdXNWaXNpYmxlRm9yTGVnYWN5QnJvd3NlcnModGFyZ2V0UmVmLCBvbkZvY3VzVmlzaWJsZVJlZik7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsc0JBQXNCLEdBQUcsQ0FDN0IsTUFENkIs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
219
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VQb255ZmlsbCIsImhvb2tzIiwiSU5QVVRfVFlQRVNfQUxMT1dfTElTVCIsImZvY3VzVHJpZ2dlcnNLZXlib2FyZE1vZGFsaXR5IiwiZWwiLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidGFnTmFtZSIsInR5cGUiLCJpbmNsdWRlcyIsImNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uIiwidGFyZ2V0IiwidHlwZXMiLCJoYW5kbGVyIiwic3Vic2NyaWJlZCIsInN1YnNjcmliZSIsImZvckVhY2giLCJhZGRFdmVudExpc3RlbmVyIiwidW5zdWJzY3JpYmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidW5kZWZpbmVkIiwicGF1c2UiLCJyZXN1bWUiLCJ1c2VPYnNlcnZlRm9jdXNWaXNpYmxlRm9yTGVnYWN5QnJvd3NlcnMiLCJ0YXJnZXRSZWYiLCJvbkZvY3VzVmlzaWJsZVJlZiIsIkRhdGUiLCJibHVyU2luY2VSZWYiLCJ1c2VSZWYiLCJoYWRLZXlib2FyZEV2ZW50UmVmIiwiaGFzRm9jdXNWaXNpYmxlUmVmIiwiZXZlbnRTdWJzY3JpcHRpb24iLCJ1c2VNZW1vIiwiZG9jdW1lbnQiLCJldmVudCIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJjdXJyZW50Iiwic2V0SGFzRm9jdXNWaXNpYmxlIiwidXNlQ2FsbGJhY2siLCJuZXh0SGFzRm9jdXNWaXNpYmxlIiwiaGFuZGxlS2V5RG93biIsImFsdEtleSIsImN0cmxLZXkiLCJtZXRhS2V5IiwiaGFuZGxlUG9pbnRlckRvd24iLCJoYW5kbGVGb2N1cyIsImhhbmRsZUJsdXIiLCJub3ciLCJoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlIiwidmlzaWJpbGl0eVN0YXRlIiwidXNlRWZmZWN0IiwidXNlT2JzZXJ2ZUZvY3VzVmlzaWJsZUZvck1vZGVybkJyb3dzZXJzIiwibWF0Y2hlcyIsImNhbGwiLCJ1c2VPYnNlcnZlRm9jdXNWaXNpYmxlIiwib25Gb2N1c1Zpc2libGUiLCJ1c2VOb25jZSIsIm5vbmNlIiwidXNlVmFsdWVSZWYiLCJub25jZVJlZiIsInN1cHBvcnRGb2N1c1Zpc2libGUiLCJzdXBwb3J0UHNldWRvQ2xhc3MiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9pbnRlcm5hbC91c2VPYnNlcnZlRm9jdXNWaXNpYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCB7IE11dGFibGVSZWZPYmplY3QsIFJlZk9iamVjdCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgc3VwcG9ydFBzZXVkb0NsYXNzIGZyb20gJy4uLy4uL1V0aWxzL3N1cHBvcnRQc2V1ZG9DbGFzcyc7XG5pbXBvcnQgdXNlTm9uY2UgZnJvbSAnLi91c2VOb25jZSc7XG5pbXBvcnQgdXNlVmFsdWVSZWYgZnJvbSAnLi91c2VWYWx1ZVJlZic7XG5cbmNvbnN0IHsgdXNlUG9ueWZpbGwgfSA9IGhvb2tzO1xuXG5jb25zdCBJTlBVVF9UWVBFU19BTExPV19MSVNUID0gW1xuICAnZGF0ZScsXG4gICdkYXRldGltZS1sb2NhbCcsXG4gICdkYXRldGltZScsXG4gICdlbWFpbCcsXG4gICdtb250aCcsXG4gICdudW1iZXInLFxuICAncGFzc3dvcmQnLFxuICAnc2VhcmNoJyxcbiAgJ3RlbCcsXG4gICd0ZXh0JyxcbiAgJ3RpbWUnLFxuICAndXJsJyxcbiAgJ3dlZWsnXG5dO1xuXG4vKipcbiAqIENvbXB1dGVzIHdoZXRoZXIgdGhlIGdpdmVuIGVsZW1lbnQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciB0aGVcbiAqIGBmb2N1cy12aXNpYmxlYCBjbGFzcyBiZWluZyBhZGRlZCwgaS5lLiB3aGV0aGVyIGl0IHNob3VsZCBhbHdheXMgbWF0Y2hcbiAqIGA6Zm9jdXMtdmlzaWJsZWAgd2hlbiBmb2N1c2VkLlxuICogQHBhcmFtIHtFbGVtZW50fSBlbFxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZm9jdXNUcmlnZ2Vyc0tleWJvYXJkTW9kYWxpdHkoZWw6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgaXNDb250ZW50RWRpdGFibGUsIHJlYWRPbmx5LCB0YWdOYW1lLCB0eXBlIH0gPSBlbDtcblxuICByZXR1cm4gKFxuICAgICh0YWdOYW1lID09PSAnSU5QVVQnICYmIElOUFVUX1RZUEVTX0FMTE9XX0xJU1QuaW5jbHVkZXModHlwZSkgJiYgIXJlYWRPbmx5KSB8fFxuICAgICh0YWdOYW1lID09PSAnVEVYVEFSRUEnICYmICFyZWFkT25seSkgfHxcbiAgICBpc0NvbnRlbnRFZGl0YWJsZVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFdmVudFN1YnNjcmlwdGlvbihcbiAgdGFyZ2V0OiBFbGVtZW50IHwgTm9kZSxcbiAgdHlwZXM6IHN0cmluZ1tdLFxuICBoYW5kbGVyOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkXG4pOiB7XG4gIHBhdXNlOiAoKSA9PiB2b2lkO1xuICByZXN1bWU6ICgpID0+IHZvaWQ7XG59IHtcbiAgbGV0IHN1YnNjcmliZWQ6IHRydWU7XG5cbiAgY29uc3Qgc3Vic2NyaWJlID0gKCkgPT4ge1xuICAgIGlmICghc3Vic2NyaWJlZCkge1xuICAgICAgdHlwZXMuZm9yRWFjaCh0eXBlID0+IHRhcmdldC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpKTtcbiAgICAgIHN1YnNjcmliZWQgPSB0cnVlO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1bnN1YnNjcmliZSA9ICgpID0+IHtcbiAgICBpZiAoc3Vic2NyaWJlZCkge1xuICAgICAgdHlwZXMuZm9yRWFjaCh0eXBlID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpKTtcbiAgICAgIHN1YnNjcmliZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgcGF1c2U6IHVuc3Vic2NyaWJlLFxuICAgIHJlc3VtZTogc3Vic2NyaWJlXG4gIH07XG59XG5cbi8vIFRPRE86IEFkZCB0ZXN0c1xuLy8gICAgICAgMS4gRm9jdXMgdmlhIGtleWJvYXJkIHZzLiBtb3VzZVxuLy8gICAgICAgMi4gRm9jdXMgdmlhIGtleWJvYXJkLCBzd2l0Y2ggYXBwLCBzd2l0Y2ggYmFjayAoZXhwZWN0IHRvIGdldCBhbm90aGVyIGZvY3VzVmlzaWJsZSBhZnRlciBzd2l0Y2ggYmFjaylcbi8vICAgICAgIDMuIEZvY3VzIHZpYSBtb3VzZSwgc3dpdGNoIGFwcCwgc3dpdGNoIGJhY2sgKGRvIE5PVCBleHBlY3QgdG8gZ2V0IGFub3RoZXIgZm9jdXNWaXNpYmxlIGFmdGVyIHN3aXRjaCBiYWNrKVxuZnVuY3Rpb24gdXNlT2JzZXJ2ZUZvY3VzVmlzaWJsZUZvckxlZ2FjeUJyb3dzZXJzKFxuICB0YXJnZXRSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4sXG4gIG9uRm9jdXNWaXNpYmxlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PCgpID0+IHZvaWQ+XG4pIHtcbiAgY29uc3QgW3sgRGF0ZSB9XSA9IHVzZVBvbnlmaWxsKCk7XG4gIC8vIFRoaXMgcG9seWZpbGwgYWxnb3JpdGhtIGlzIGFkb3B0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9mb2N1cy12aXNpYmxlLlxuICBjb25zdCBibHVyU2luY2VSZWYgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGhhZEtleWJvYXJkRXZlbnRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGhhc0ZvY3VzVmlzaWJsZVJlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgZXZlbnRTdWJzY3JpcHRpb24gPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjcmVhdGVFdmVudFN1YnNjcmlwdGlvbihcbiAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgIFtcbiAgICAgICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgICAgICAnbW91c2Vkb3duJyxcbiAgICAgICAgICAnbW91c2V1cCcsXG4gICAgICAgICAgJ3BvaW50ZXJtb3ZlJyxcbiAgICAgICAgICAncG9pbnRlcmRvd24nLFxuICAgICAgICAgICdwb2ludGVydXAnLFxuICAgICAgICAgICd0b3VjaG1vdmUnLFxuICAgICAgICAgICd0b3VjaHN0YXJ0JyxcbiAgICAgICAgICAndG91Y2hlbmQnXG4gICAgICAgIF0sXG4gICAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkubm9kZU5hbWU/LnRvTG93ZXJDYXNlKCkgIT09ICdodG1sJykge1xuICAgICAgICAgICAgaGFkS2V5Ym9hcmRFdmVudFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBldmVudFN1YnNjcmlwdGlvbi5wYXVzZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICBbaGFkS2V5Ym9hcmRFdmVudFJlZl1cbiAgKTtcblxuICBjb25zdCBzZXRIYXNGb2N1c1Zpc2libGUgPSB1c2VDYWxsYmFjayhcbiAgICBuZXh0SGFzRm9jdXNWaXNpYmxlID0+IHtcbiAgICAgIGlmIChoYXNGb2N1c1Zpc2libGVSZWYuY3VycmVudCAhPT0gbmV4dEhhc0ZvY3VzVmlzaWJsZSkge1xuICAgICAgICBoYXNGb2N1c1Zpc2libGVSZWYuY3VycmVudCA9IG5leHRIYXNGb2N1c1Zpc2libGU7XG4gICAgICAgIG5leHRIYXNGb2N1c1Zpc2libGUgJiYgb25Gb2N1c1Zpc2libGVSZWY/LmN1cnJlbnQoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYXNGb2N1c1Zpc2libGVSZWYsIG9uRm9jdXNWaXNpYmxlUmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGFyZ2V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0SGFzRm9jdXNWaXNpYmxlKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBoYWRLZXlib2FyZEV2ZW50UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sXG4gICAgW2hhZEtleWJvYXJkRXZlbnRSZWYsIHNldEhhc0ZvY3VzVmlzaWJsZSwgdGFyZ2V0UmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhhZEtleWJvYXJkRXZlbnRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaGFkS2V5Ym9hcmRFdmVudFJlZl0pO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgdGFyZ2V0IH06IEV2ZW50KSA9PiB7XG4gICAgICB0YXJnZXQgPT09IHRhcmdldFJlZi5jdXJyZW50ICYmXG4gICAgICAgIChoYWRLZXlib2FyZEV2ZW50UmVmLmN1cnJlbnQgfHwgZm9jdXNUcmlnZ2Vyc0tleWJvYXJkTW9kYWxpdHkodGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpKSAmJlxuICAgICAgICBzZXRIYXNGb2N1c1Zpc2libGUodHJ1ZSk7XG4gICAgfSxcbiAgICBbaGFkS2V5Ym9hcmRFdmVudFJlZiwgc2V0SGFzRm9jdXNWaXNpYmxlLCB0YXJnZXRSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50YXJnZXQgPT09IHRhcmdldFJlZi5jdXJyZW50ICYmIGhhc0ZvY3VzVmlzaWJsZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGJsdXJTaW5jZVJlZi5jdXJyZW50ID0gRGF0ZS5ub3coKTtcblxuICAgICAgICBzZXRIYXNGb2N1c1Zpc2libGUoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2JsdXJTaW5jZVJlZiwgRGF0ZSwgaGFzRm9jdXNWaXNpYmxlUmVmLCBzZXRIYXNGb2N1c1Zpc2libGUsIHRhcmdldFJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBibHVycmVkIGR1ZSB0byBcInZpc2liaWxpdHlTdGF0ZVwiIHNldCB0byBcImhpZGRlblwiLlxuICAgICAgLy8gMTAwbXMgaXMgcmVmZXJlbmNlZCBmcm9tIHRoZSBXSUNHIHBvbHlmaWxsLlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgIGlmIChEYXRlLm5vdygpIC0gYmx1clNpbmNlUmVmLmN1cnJlbnQgPCAxMDApIHtcbiAgICAgICAgaGFkS2V5Ym9hcmRFdmVudFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgZXZlbnRTdWJzY3JpcHRpb24ucmVzdW1lKCk7XG4gICAgfVxuICB9LCBbYmx1clNpbmNlUmVmLCBEYXRlLCBldmVudFN1YnNjcmlwdGlvbiwgaGFkS2V5Ym9hcmRFdmVudFJlZl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24sIHRydWUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duLCB0cnVlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duLCB0cnVlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgaGFuZGxlUG9pbnRlckRvd24sIHRydWUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlLCB0cnVlKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSk7XG4gICAgfTtcbiAgfSwgW2hhbmRsZUtleURvd24sIGhhbmRsZVBvaW50ZXJEb3duLCBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnQ6IHRhcmdldCB9ID0gdGFyZ2V0UmVmO1xuXG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVCbHVyLCB0cnVlKTtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cywgdHJ1ZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVCbHVyKTtcbiAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcbiAgICB9O1xuXG4gICAgLy8gV2Ugc3BlY2lmaWNhbGx5IGFkZCBcInRhcmdldFJlZi5jdXJyZW50XCIgaGVyZS5cbiAgICAvLyBJZiB0aGUgdGFyZ2V0IGVsZW1lbnQgY2hhbmdlZCwgd2Ugc2hvdWxkIHJlYXR0YWNoIG91ciBldmVudCBsaXN0ZW5lcnMuXG4gIH0sIFtoYW5kbGVCbHVyLCBoYW5kbGVGb2N1cywgdGFyZ2V0UmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBldmVudFN1YnNjcmlwdGlvbi5yZXN1bWUoKTtcblxuICAgIHJldHVybiAoKSA9PiBldmVudFN1YnNjcmlwdGlvbi5wYXVzZSgpO1xuICB9LCBbZXZlbnRTdWJzY3JpcHRpb25dKTtcbn1cblxuZnVuY3Rpb24gdXNlT2JzZXJ2ZUZvY3VzVmlzaWJsZUZvck1vZGVybkJyb3dzZXJzKFxuICB0YXJnZXRSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4sXG4gIG9uRm9jdXNWaXNpYmxlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PCgpID0+IHZvaWQ+XG4pIHtcbiAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50IH0gPSB0YXJnZXRSZWY7XG5cbiAgICBpZiAoXG4gICAgICAvLyBcIm1zTWF0Y2hlc1NlbGVjdG9yXCIgaXMgdmVuZG9yLXByZWZpeGVkIHZlcnNpb24gb2YgXCJtYXRjaGVzXCIuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICAoY3VycmVudC5tYXRjaGVzIHx8IChjdXJyZW50Wydtc01hdGNoZXNTZWxlY3RvciddIGFzIChzZWxlY3Rvcjogc3RyaW5nKSA9PiBib29sZWFuKSkuY2FsbChcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgJzpmb2N1cy12aXNpYmxlJ1xuICAgICAgKVxuICAgICkge1xuICAgICAgb25Gb2N1c1Zpc2libGVSZWY/LmN1cnJlbnQoKTtcbiAgICB9XG4gIH0sIFtvbkZvY3VzVmlzaWJsZVJlZiwgdGFyZ2V0UmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnQ6IHRhcmdldCB9ID0gdGFyZ2V0UmVmO1xuXG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFuZGxlRm9jdXMpO1xuXG4gICAgcmV0dXJuICgpID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcblxuICAgIC8vIFdlIHNwZWNpZmljYWxseSBhZGQgXCJ0YXJnZXRSZWYuY3VycmVudFwiIGhlcmUuXG4gICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGNoYW5nZWQsIHdlIHNob3VsZCByZWF0dGFjaCBvdXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2hhbmRsZUZvY3VzLCB0YXJnZXRSZWYsIHRhcmdldFJlZi5jdXJyZW50XSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU9ic2VydmVGb2N1c1Zpc2libGUodGFyZ2V0UmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+LCBvbkZvY3VzVmlzaWJsZTogKCkgPT4gdm9pZCkge1xuICBjb25zdCBbbm9uY2VdID0gdXNlTm9uY2UoKTtcbiAgY29uc3Qgb25Gb2N1c1Zpc2libGVSZWYgPSB1c2VWYWx1ZVJlZihvbkZvY3VzVmlzaWJsZSk7XG5cbiAgLy8gVGhlIG5vbmNlIGlzIHVzZSBmb3IgYnJvd3NlciBjYXBhYmlsaXRpZXMuIEp1c3QgaW4gY2FzZSB0aGUgXCJub25jZVwiIGhhZCBjaGFuZ2VkIHVuZXhwZWN0ZWRseSwgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgYnJvd3NlciBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuICAvLyBUaHVzLCB3ZSBhcmUgdXNpbmcgYW4gaW5pdGlhbCB2ZXJzaW9uIG9mIFwibm9uY2VcIi4gSW4gY2FzZSB3ZWIgZGV2cyBjaGFuZ2VkIHRoZSBcIm5vbmNlXCIgdG8gYW4gaW52YWxpZCB2YWx1ZSwgd2Ugd29uJ3QgYnJlYWsgcnVsZXMgb2YgaG9va3MgKGFzIHN0YXRlZCBiZWxvdykuXG4gIGNvbnN0IG5vbmNlUmVmID0gdXNlUmVmKG5vbmNlKTtcblxuICAvLyBcIjpmb2N1cy12aXNpYmxlXCIgc2VsZWN0b3IgaXMgc3VwcG9ydGVkIGZyb20gQ2hyb21lL0VkZ2UgODYrIGFuZCBub3Qgc3VwcG9ydGVkIGluIElFMTEgb3IgU2FmYXJpLlxuICAvLyBEb2luZyBhIGNhcGFiaWxpdHkgY2hlY2sgb24gcHNldWRvIGNsYXNzZXMgcmVxdWlyZXMgaW5qZWN0aW5nIGEgc3R5bGVzaGVldCwgdGh1cyBub25jZSBpcyBuZWVkZWQuXG4gIGNvbnN0IHN1cHBvcnRGb2N1c1Zpc2libGUgPSB1c2VNZW1vKCgpID0+IHN1cHBvcnRQc2V1ZG9DbGFzcygnOmZvY3VzLXZpc2libGUnLCBub25jZVJlZi5jdXJyZW50KSwgW25vbmNlUmVmXSk7XG5cbiAgLy8gU2luY2UgXCJzdXBwb3J0UHNldWRvQ2xhc3NcIiBpcyBhIGJyb3dzZXIgY2FwYWJpbGl0eSwgdGhlIHJlc3VsdCBzaG91bGQgYmUgY29uc3RhbnQgZHVyaW5nIHRoZSBwYWdlIGxpZmV0aW1lLlxuICAvLyBUaHVzLCBydW5uaW5nIGhvb2tzIGNvbmRpdGlvbmFsbHkgaXMgb2theSBoZXJlLlxuICBpZiAoc3VwcG9ydEZvY3VzVmlzaWJsZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZU9ic2VydmVGb2N1c1Zpc2libGVGb3JNb2Rlcm5Ccm93c2Vycyh0YXJnZXRSZWYsIG9uRm9jdXNWaXNpYmxlUmVmKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VPYnNlcnZlRm9jdXNWaXNp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
@@ -5,16 +5,51 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = useTimer;
7
7
 
8
+ var _botframeworkWebchatApi = require("botframework-webchat-api");
9
+
8
10
  var _react = require("react");
9
11
 
12
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
+
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
+
20
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21
+
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+
24
+ var usePonyfill = _botframeworkWebchatApi.hooks.usePonyfill; // TODO: [P2] Dedupe this function from "api", possibly create a new "util" package.
25
+
26
+ /**
27
+ * Calls a callback function at a specific time.
28
+ */
29
+
10
30
  function useTimer(at, fn) {
31
+ var _usePonyfill = usePonyfill(),
32
+ _usePonyfill2 = _slicedToArray(_usePonyfill, 1),
33
+ _usePonyfill2$ = _usePonyfill2[0],
34
+ clearTimeout = _usePonyfill2$.clearTimeout,
35
+ Date = _usePonyfill2$.Date,
36
+ setTimeout = _usePonyfill2$.setTimeout;
37
+
11
38
  (0, _react.useEffect)(function () {
12
39
  if (typeof at === 'number') {
13
- var timeout = setTimeout(fn, Math.max(0, at - Date.now()));
14
- return function () {
15
- return clearTimeout(timeout);
16
- };
40
+ var ms = Math.max(0, at - Date.now()); // useEffect() is running after yielding to sync code via setImmediate (IE), MessageChannel (4ms), or setTimeout.
41
+ // Thus, when calling setTimeout(..., 0), under Lolex, it will be waited for another loop.
42
+ // In other words, setTimeout(..., 0) won't fire right away. It will be fired after clock.tick(<any number>).
43
+
44
+ if (ms) {
45
+ var timeout = setTimeout(fn, ms);
46
+ return function () {
47
+ return clearTimeout(timeout);
48
+ };
49
+ }
50
+
51
+ fn();
17
52
  }
18
- }, [at, fn]);
53
+ }, [at, clearTimeout, Date, fn, setTimeout]);
19
54
  }
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VUaW1lciIsImF0IiwiZm4iLCJ1c2VFZmZlY3QiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsIk1hdGgiLCJtYXgiLCJEYXRlIiwibm93IiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvaW50ZXJuYWwvdXNlVGltZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUaW1lcihhdCwgZm4pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGF0ID09PSAnbnVtYmVyJykge1xuICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoZm4sIE1hdGgubWF4KDAsIGF0IC0gRGF0ZS5ub3coKSkpO1xuXG4gICAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgIH1cbiAgfSwgW2F0LCBmbl0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRWUsU0FBU0EsUUFBVCxDQUFrQkMsRUFBbEIsRUFBc0JDLEVBQXRCLEVBQTBCO0VBQ3ZDLElBQUFDLGdCQUFBLEVBQVUsWUFBTTtJQUNkLElBQUksT0FBT0YsRUFBUCxLQUFjLFFBQWxCLEVBQTRCO01BQzFCLElBQU1HLE9BQU8sR0FBR0MsVUFBVSxDQUFDSCxFQUFELEVBQUtJLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWU4sRUFBRSxHQUFHTyxJQUFJLENBQUNDLEdBQUwsRUFBakIsQ0FBTCxDQUExQjtNQUVBLE9BQU87UUFBQSxPQUFNQyxZQUFZLENBQUNOLE9BQUQsQ0FBbEI7TUFBQSxDQUFQO0lBQ0Q7RUFDRixDQU5ELEVBTUcsQ0FBQ0gsRUFBRCxFQUFLQyxFQUFMLENBTkg7QUFPRCJ9
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VQb255ZmlsbCIsImhvb2tzIiwidXNlVGltZXIiLCJhdCIsImZuIiwiY2xlYXJUaW1lb3V0IiwiRGF0ZSIsInNldFRpbWVvdXQiLCJ1c2VFZmZlY3QiLCJtcyIsIk1hdGgiLCJtYXgiLCJub3ciLCJ0aW1lb3V0Il0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvaW50ZXJuYWwvdXNlVGltZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCB7IHVzZVBvbnlmaWxsIH0gPSBob29rcztcblxuLy8gVE9ETzogW1AyXSBEZWR1cGUgdGhpcyBmdW5jdGlvbiBmcm9tIFwiYXBpXCIsIHBvc3NpYmx5IGNyZWF0ZSBhIG5ldyBcInV0aWxcIiBwYWNrYWdlLlxuXG4vKipcbiAqIENhbGxzIGEgY2FsbGJhY2sgZnVuY3Rpb24gYXQgYSBzcGVjaWZpYyB0aW1lLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUaW1lcihhdDogbnVtYmVyLCBmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICBjb25zdCBbeyBjbGVhclRpbWVvdXQsIERhdGUsIHNldFRpbWVvdXQgfV0gPSB1c2VQb255ZmlsbCgpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IG1zID0gTWF0aC5tYXgoMCwgYXQgLSBEYXRlLm5vdygpKTtcblxuICAgICAgLy8gdXNlRWZmZWN0KCkgaXMgcnVubmluZyBhZnRlciB5aWVsZGluZyB0byBzeW5jIGNvZGUgdmlhIHNldEltbWVkaWF0ZSAoSUUpLCBNZXNzYWdlQ2hhbm5lbCAoNG1zKSwgb3Igc2V0VGltZW91dC5cbiAgICAgIC8vIFRodXMsIHdoZW4gY2FsbGluZyBzZXRUaW1lb3V0KC4uLiwgMCksIHVuZGVyIExvbGV4LCBpdCB3aWxsIGJlIHdhaXRlZCBmb3IgYW5vdGhlciBsb29wLlxuICAgICAgLy8gSW4gb3RoZXIgd29yZHMsIHNldFRpbWVvdXQoLi4uLCAwKSB3b24ndCBmaXJlIHJpZ2h0IGF3YXkuIEl0IHdpbGwgYmUgZmlyZWQgYWZ0ZXIgY2xvY2sudGljayg8YW55IG51bWJlcj4pLlxuICAgICAgaWYgKG1zKSB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZuLCBtcyk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgZm4oKTtcbiAgICB9XG4gIH0sIFthdCwgY2xlYXJUaW1lb3V0LCBEYXRlLCBmbiwgc2V0VGltZW91dF0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBUUEsV0FBUixHQUF3QkMsNkJBQXhCLENBQVFELFdBQVIsQyxDQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFDZSxTQUFTRSxRQUFULENBQWtCQyxFQUFsQixFQUE4QkMsRUFBOUIsRUFBb0Q7RUFDakUsbUJBQTZDSixXQUFXLEVBQXhEO0VBQUE7RUFBQTtFQUFBLElBQVNLLFlBQVQsa0JBQVNBLFlBQVQ7RUFBQSxJQUF1QkMsSUFBdkIsa0JBQXVCQSxJQUF2QjtFQUFBLElBQTZCQyxVQUE3QixrQkFBNkJBLFVBQTdCOztFQUVBLElBQUFDLGdCQUFBLEVBQVUsWUFBTTtJQUNkLElBQUksT0FBT0wsRUFBUCxLQUFjLFFBQWxCLEVBQTRCO01BQzFCLElBQU1NLEVBQUUsR0FBR0MsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZUixFQUFFLEdBQUdHLElBQUksQ0FBQ00sR0FBTCxFQUFqQixDQUFYLENBRDBCLENBRzFCO01BQ0E7TUFDQTs7TUFDQSxJQUFJSCxFQUFKLEVBQVE7UUFDTixJQUFNSSxPQUFPLEdBQUdOLFVBQVUsQ0FBQ0gsRUFBRCxFQUFLSyxFQUFMLENBQTFCO1FBRUEsT0FBTztVQUFBLE9BQU1KLFlBQVksQ0FBQ1EsT0FBRCxDQUFsQjtRQUFBLENBQVA7TUFDRDs7TUFFRFQsRUFBRTtJQUNIO0VBQ0YsQ0FmRCxFQWVHLENBQUNELEVBQUQsRUFBS0UsWUFBTCxFQUFtQkMsSUFBbkIsRUFBeUJGLEVBQXpCLEVBQTZCRyxVQUE3QixDQWZIO0FBZ0JEIn0=
package/lib/index.d.ts CHANGED
@@ -62,14 +62,12 @@ declare const hooks: {
62
62
  useLanguage: typeof apiHooks.useLanguage;
63
63
  useLastAcknowledgedActivityKey: typeof apiHooks.useLastAcknowledgedActivityKey;
64
64
  useLastReadActivityKey: typeof apiHooks.useLastReadActivityKey;
65
- useLastTypingAt: typeof apiHooks.useLastTypingAt;
66
- useLocalize: typeof apiHooks.useLocalize;
67
- useLocalizeDate: typeof apiHooks.useLocalizeDate;
68
65
  useLocalizer: typeof apiHooks.useLocalizer;
69
66
  useMarkActivityAsSpoken: typeof apiHooks.useMarkActivityAsSpoken;
70
67
  useMarkActivityKeyAsRead: typeof apiHooks.useMarkActivityKeyAsRead;
71
68
  useMarkAllAsAcknowledged: typeof apiHooks.useMarkAllAsAcknowledged;
72
69
  usePerformCardAction: typeof apiHooks.usePerformCardAction;
70
+ usePonyfill: typeof apiHooks.usePonyfill;
73
71
  usePostActivity: typeof apiHooks.usePostActivity;
74
72
  useReferenceGrammarID: typeof apiHooks.useReferenceGrammarID;
75
73
  useRelativeTimeFormatter: typeof apiHooks.useRelativeTimeFormatter;
@@ -107,10 +105,6 @@ declare const version: string;
107
105
  declare const Components: {
108
106
  BasicWebChat: import("react").FC<BasicWebChatProps>;
109
107
  Composer: import("react").FC<ComposerProps>;
110
- Localize: ({ args, text }: {
111
- args: [(string | number)?, ...string[]];
112
- text: any;
113
- }) => any;
114
108
  AccessKeySinkSurface: any;
115
109
  BasicConnectivityStatus: any;
116
110
  BasicSendBox: import("react").FC<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,IAAI,QAAQ,EAAY,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEnG,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIrD,OAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA6BjE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,OAAO,MAAM,mCAAmC,CAAC;AACxD,OAAO,4BAA4B,MAAM,4CAA4C,CAAC;AACtF,OAAO,kCAAkC,MAAM,kDAAkD,CAAC;AAClG,OAAO,8BAA8B,MAAM,8CAA8C,CAAC;AAC1F,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,WAAW,MAAM,mCAAmC,CAAC;AAE5D,OAAO,KAAK,cAAc,MAAM,eAAe,CAAC;AAEhD,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGV,CAAC;AAEF,QAAA,MAAM,OAAO,QAAkC,CAAC;AAEhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Cf,CAAC;AAEF,eAAe,YAAY,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,4BAA4B,EAC5B,kCAAkC,EAClC,8BAA8B,EAC9B,cAAc,EACd,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,EACR,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,IAAI,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzF,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIrD,OAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA6BjE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,OAAO,MAAM,mCAAmC,CAAC;AACxD,OAAO,4BAA4B,MAAM,4CAA4C,CAAC;AACtF,OAAO,kCAAkC,MAAM,kDAAkD,CAAC;AAClG,OAAO,8BAA8B,MAAM,8CAA8C,CAAC;AAC1F,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,WAAW,MAAM,mCAAmC,CAAC;AAE5D,OAAO,KAAK,cAAc,MAAM,eAAe,CAAC;AAEhD,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGV,CAAC;AAEF,QAAA,MAAM,OAAO,QAAkC,CAAC;AAEhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Cf,CAAC;AAEF,eAAe,YAAY,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,4BAA4B,EAC5B,kCAAkC,EAClC,8BAA8B,EAC9B,cAAc,EACd,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,EACR,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}